local common_defs = { doors = { collision_box = { fixed = {-0.5, -0.5, -0.3125, 0.5, 1.5, -0.5}, type = "fixed" }, drawtype = "mesh", groups = {door = 1, redstone_blocks = 1}, mesh = "utility_door.obj", paramtype = "light", paramtype2 = "4dir", selection_box = { fixed = {-0.5, -0.5, -0.3125, 0.5, 1.5, -0.5}, type = "fixed" }, sunlight_propagates = true, use_texture_alpha = "clip" } } local function set_door_tiles(identifier, side_tiles, alternative_tiles) local side_tiles_name = "" if side_tiles then side_tiles_name = "utility_"..identifier.."_door_side.png" elseif alternative_tiles then side_tiles_name = alternative_tiles end return { { backface_culling = true, name = "[combine:48x32:0,0=utility_"..identifier.."_door_top.png:".. "0,16=utility_"..identifier.."_door_bottom.png:16,0="..side_tiles_name.. ":16,16="..side_tiles_name..":32,0="..side_tiles_name } } end local function set_images(identifier, definitions) local image_name = "" if not identifier:find("waxed") then image_name = "utility_"..identifier.."_door.png" else image_name = ("utility_"..identifier.."_door.png"):gsub("waxed_", "") end definitions.inventory_image = image_name definitions.wield_image = image_name end local doors = { ["acacia"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("acacia", false, "building_acacia_planks.png") }, ["bamboo"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("bamboo", false, "building_bamboo_planks.png") }, ["birch"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("birch", true, nil), }, ["cherry"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("cherry", false, "building_cherry_planks.png"), }, ["copper"] = { sounds = mcl_sounds.node_sound_metal_defaults(), tiles = set_door_tiles("copper", false, "building_cut_copper.png") }, ["crimson"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("crimson", false, "building_crimson_planks.png") }, ["dark_oak"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("dark_oak", false, "building_dark_oak_planks.png") }, ["exposed_copper"] = { sounds = mcl_sounds.node_sound_metal_defaults(), tiles = set_door_tiles("exposed_copper", false, "building_exposed_cut_copper.png") }, ["iron"] = { sounds = mcl_sounds.node_sound_metal_defaults(), tiles = set_door_tiles("iron", false, "building_iron_block.png") }, ["jungle"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("jungle", true, nil) }, ["mangrove"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("mangrove", false, "building_mangrove_planks.png") }, ["oak"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("oak", false, "building_oak_planks.png") }, ["oxidized_copper"] = { sounds = mcl_sounds.node_sound_metal_defaults(), tiles = set_door_tiles("oxidized_copper", false, "building_oxidized_cut_copper.png") }, ["spruce"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("spruce", false, "building_spruce_planks.png") }, ["warped"] = { sounds = mcl_sounds.node_sound_wood_defaults(), tiles = set_door_tiles("warped", false, "building_warped_planks.png") }, ["waxed_copper"] = { sounds = mcl_sounds.node_sound_metal_defaults(), tiles = set_door_tiles("copper", false, "building_cut_copper.png") }, ["waxed_exposed_copper"] = { sounds = mcl_sounds.node_sound_metal_defaults(), tiles = set_door_tiles("exposed_copper", false, "building_exposed_cut_copper.png") }, ["waxed_oxidized_copper"] = { sounds = mcl_sounds.node_sound_metal_defaults(), tiles = set_door_tiles("oxidized_copper", false, "building_oxidized_cut_copper.png") }, ["waxed_weathered_copper"] = { sounds = mcl_sounds.node_sound_metal_defaults(), tiles = set_door_tiles("weathered_copper", false, "building_weathered_cut_copper.png") }, ["weathered_copper"] = { sounds = mcl_sounds.node_sound_metal_defaults(), tiles = set_door_tiles("weathered_copper", false, "building_weathered_cut_copper.png") } } for identifier, definitions in pairs(doors) do set_images(identifier, definitions) voxelibre.register_block(identifier.."_door", table.merge(common_defs.doors, definitions)) end for identifier, definitions in pairs(doors) do definitions.mesh = "utility_door_left.obj" set_images(identifier, definitions) voxelibre.register_block(identifier.."_door_left", table.merge(common_defs.doors, definitions)) end