From ac31642ec969d20b76bd74f5aab4cdc5b3de74de Mon Sep 17 00:00:00 2001 From: FossFanatic Date: Tue, 13 Jun 2023 15:43:52 +0000 Subject: [PATCH] Door Fixes & Improvements (#3479) This pull request fixes the issue where people had to mirror their door textures because the game used a different method to texture the doors. Speaking of mirrored, this pull request also fixes mirrored doors and improves those greatly. Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/3479 Reviewed-by: ancientmarinerdev Co-authored-by: FossFanatic Co-committed-by: FossFanatic --- mods/ITEMS/mcl_bamboo/bamboo_items.lua | 19 +- mods/ITEMS/mcl_crimson/init.lua | 8 +- mods/ITEMS/mcl_doors/api_doors.lua | 608 +++++++++++------- mods/ITEMS/mcl_doors/register.lua | 28 +- mods/ITEMS/mcl_mangrove/init.lua | 4 +- textures/doors_item_steel.png | Bin 220 -> 182 bytes textures/doors_item_wood.png | Bin 205 -> 190 bytes textures/mcl_bamboo_door_bottom_alt.png | Bin 501 -> 0 bytes .../mcl_bamboo_door_bottom_bottompart.png | Bin 0 -> 209 bytes textures/mcl_bamboo_door_bottom_side.png | Bin 0 -> 258 bytes textures/mcl_bamboo_door_top_alt.png | Bin 495 -> 0 bytes textures/mcl_bamboo_door_top_side.png | Bin 0 -> 407 bytes textures/mcl_bamboo_door_top_toppart.png | Bin 0 -> 331 bytes textures/mcl_crimson_crimson_door.png | Bin 224 -> 224 bytes textures/mcl_crimson_crimson_door_bottom.png | Bin 234 -> 239 bytes ...crimson_crimson_door_bottom_bottompart.png | Bin 0 -> 141 bytes .../mcl_crimson_crimson_door_bottom_side.png | Bin 0 -> 187 bytes textures/mcl_crimson_crimson_door_top.png | Bin 234 -> 241 bytes .../mcl_crimson_crimson_door_top_side.png | Bin 0 -> 201 bytes .../mcl_crimson_crimson_door_top_toppart.png | Bin 0 -> 143 bytes textures/mcl_crimson_warped_door.png | Bin 214 -> 205 bytes textures/mcl_crimson_warped_door_bottom.png | Bin 287 -> 249 bytes ..._crimson_warped_door_bottom_bottompart.png | Bin 0 -> 156 bytes .../mcl_crimson_warped_door_bottom_side.png | Bin 0 -> 213 bytes textures/mcl_crimson_warped_door_top.png | Bin 281 -> 246 bytes textures/mcl_crimson_warped_door_top_side.png | Bin 0 -> 210 bytes .../mcl_crimson_warped_door_top_toppart.png | Bin 0 -> 151 bytes textures/mcl_crimson_warped_trapdoor.png | Bin 261 -> 261 bytes textures/mcl_doors_door_acacia.png | Bin 170 -> 185 bytes textures/mcl_doors_door_acacia_lower.png | Bin 207 -> 198 bytes ...mcl_doors_door_acacia_lower_bottompart.png | Bin 0 -> 138 bytes textures/mcl_doors_door_acacia_lower_side.png | Bin 0 -> 190 bytes textures/mcl_doors_door_acacia_side_lower.png | Bin 131 -> 0 bytes textures/mcl_doors_door_acacia_side_upper.png | Bin 134 -> 0 bytes textures/mcl_doors_door_acacia_upper.png | Bin 199 -> 202 bytes textures/mcl_doors_door_acacia_upper_side.png | Bin 0 -> 190 bytes .../mcl_doors_door_acacia_upper_toppart.png | Bin 0 -> 140 bytes textures/mcl_doors_door_birch.png | Bin 218 -> 226 bytes textures/mcl_doors_door_birch_lower.png | Bin 231 -> 232 bytes .../mcl_doors_door_birch_lower_bottompart.png | Bin 0 -> 145 bytes textures/mcl_doors_door_birch_lower_side.png | Bin 0 -> 195 bytes textures/mcl_doors_door_birch_side_lower.png | Bin 131 -> 0 bytes textures/mcl_doors_door_birch_side_upper.png | Bin 134 -> 0 bytes textures/mcl_doors_door_birch_upper.png | Bin 226 -> 227 bytes textures/mcl_doors_door_birch_upper_side.png | Bin 0 -> 172 bytes .../mcl_doors_door_birch_upper_toppart.png | Bin 0 -> 146 bytes .../mcl_doors_door_crimson_side_lower.png | Bin 156 -> 0 bytes .../mcl_doors_door_crimson_side_upper.png | Bin 158 -> 0 bytes textures/mcl_doors_door_dark_oak.png | Bin 185 -> 199 bytes textures/mcl_doors_door_dark_oak_lower.png | Bin 182 -> 214 bytes ...l_doors_door_dark_oak_lower_bottompart.png | Bin 0 -> 140 bytes .../mcl_doors_door_dark_oak_lower_side.png | Bin 0 -> 177 bytes .../mcl_doors_door_dark_oak_side_lower.png | Bin 139 -> 0 bytes .../mcl_doors_door_dark_oak_side_upper.png | Bin 134 -> 0 bytes textures/mcl_doors_door_dark_oak_upper.png | Bin 185 -> 202 bytes .../mcl_doors_door_dark_oak_upper_side.png | Bin 0 -> 191 bytes .../mcl_doors_door_dark_oak_upper_toppart.png | Bin 0 -> 137 bytes textures/mcl_doors_door_iron_lower.png | Bin 265 -> 213 bytes .../mcl_doors_door_iron_lower_bottompart.png | Bin 0 -> 117 bytes textures/mcl_doors_door_iron_lower_side.png | Bin 0 -> 222 bytes textures/mcl_doors_door_iron_side_lower.png | Bin 265 -> 0 bytes textures/mcl_doors_door_iron_side_upper.png | Bin 285 -> 0 bytes textures/mcl_doors_door_iron_upper.png | Bin 285 -> 254 bytes textures/mcl_doors_door_iron_upper_side.png | Bin 0 -> 240 bytes .../mcl_doors_door_iron_upper_toppart.png | Bin 0 -> 215 bytes textures/mcl_doors_door_jungle.png | Bin 206 -> 219 bytes textures/mcl_doors_door_jungle_lower.png | Bin 247 -> 237 bytes ...mcl_doors_door_jungle_lower_bottompart.png | Bin 0 -> 152 bytes textures/mcl_doors_door_jungle_lower_side.png | Bin 0 -> 188 bytes textures/mcl_doors_door_jungle_side_lower.png | Bin 131 -> 0 bytes textures/mcl_doors_door_jungle_side_upper.png | Bin 133 -> 0 bytes textures/mcl_doors_door_jungle_upper.png | Bin 245 -> 238 bytes textures/mcl_doors_door_jungle_upper_side.png | Bin 0 -> 177 bytes .../mcl_doors_door_jungle_upper_toppart.png | Bin 0 -> 155 bytes .../mcl_doors_door_mangrove_side_lower.png | Bin 135 -> 0 bytes .../mcl_doors_door_mangrove_side_upper.png | Bin 140 -> 0 bytes textures/mcl_doors_door_spruce.png | Bin 235 -> 217 bytes textures/mcl_doors_door_spruce_lower.png | Bin 264 -> 248 bytes ...mcl_doors_door_spruce_lower_bottompart.png | Bin 0 -> 144 bytes textures/mcl_doors_door_spruce_lower_side.png | Bin 0 -> 210 bytes textures/mcl_doors_door_spruce_side_lower.png | Bin 158 -> 0 bytes textures/mcl_doors_door_spruce_side_upper.png | Bin 160 -> 0 bytes textures/mcl_doors_door_spruce_upper.png | Bin 255 -> 242 bytes textures/mcl_doors_door_spruce_upper_side.png | Bin 0 -> 196 bytes .../mcl_doors_door_spruce_upper_toppart.png | Bin 0 -> 148 bytes textures/mcl_doors_door_warped_side_lower.png | Bin 152 -> 0 bytes .../mcl_doors_door_warped_side_lower_alt.png | Bin 152 -> 0 bytes textures/mcl_doors_door_warped_side_upper.png | Bin 151 -> 0 bytes .../mcl_doors_door_warped_side_upper_alt.png | Bin 151 -> 0 bytes textures/mcl_doors_door_wood_lower.png | Bin 199 -> 211 bytes .../mcl_doors_door_wood_lower_bottompart.png | Bin 0 -> 134 bytes textures/mcl_doors_door_wood_lower_side.png | Bin 0 -> 185 bytes textures/mcl_doors_door_wood_side_lower.png | Bin 127 -> 0 bytes textures/mcl_doors_door_wood_side_upper.png | Bin 127 -> 0 bytes textures/mcl_doors_door_wood_upper.png | Bin 217 -> 210 bytes textures/mcl_doors_door_wood_upper_side.png | Bin 0 -> 150 bytes .../mcl_doors_door_wood_upper_toppart.png | Bin 0 -> 140 bytes textures/mcl_mangrove_door_bottom.png | Bin 214 -> 214 bytes .../mcl_mangrove_door_bottom_bottompart.png | Bin 0 -> 146 bytes textures/mcl_mangrove_door_bottom_side.png | Bin 0 -> 173 bytes textures/mcl_mangrove_door_top.png | Bin 214 -> 214 bytes textures/mcl_mangrove_door_top_side.png | Bin 0 -> 184 bytes textures/mcl_mangrove_door_top_toppart.png | Bin 0 -> 146 bytes textures/mcl_mangrove_doors.png | Bin 198 -> 195 bytes 104 files changed, 401 insertions(+), 266 deletions(-) delete mode 100644 textures/mcl_bamboo_door_bottom_alt.png create mode 100644 textures/mcl_bamboo_door_bottom_bottompart.png create mode 100644 textures/mcl_bamboo_door_bottom_side.png delete mode 100644 textures/mcl_bamboo_door_top_alt.png create mode 100644 textures/mcl_bamboo_door_top_side.png create mode 100644 textures/mcl_bamboo_door_top_toppart.png create mode 100644 textures/mcl_crimson_crimson_door_bottom_bottompart.png create mode 100644 textures/mcl_crimson_crimson_door_bottom_side.png create mode 100644 textures/mcl_crimson_crimson_door_top_side.png create mode 100644 textures/mcl_crimson_crimson_door_top_toppart.png create mode 100644 textures/mcl_crimson_warped_door_bottom_bottompart.png create mode 100644 textures/mcl_crimson_warped_door_bottom_side.png create mode 100644 textures/mcl_crimson_warped_door_top_side.png create mode 100644 textures/mcl_crimson_warped_door_top_toppart.png create mode 100644 textures/mcl_doors_door_acacia_lower_bottompart.png create mode 100644 textures/mcl_doors_door_acacia_lower_side.png delete mode 100644 textures/mcl_doors_door_acacia_side_lower.png delete mode 100644 textures/mcl_doors_door_acacia_side_upper.png create mode 100644 textures/mcl_doors_door_acacia_upper_side.png create mode 100644 textures/mcl_doors_door_acacia_upper_toppart.png create mode 100644 textures/mcl_doors_door_birch_lower_bottompart.png create mode 100644 textures/mcl_doors_door_birch_lower_side.png delete mode 100644 textures/mcl_doors_door_birch_side_lower.png delete mode 100644 textures/mcl_doors_door_birch_side_upper.png create mode 100644 textures/mcl_doors_door_birch_upper_side.png create mode 100644 textures/mcl_doors_door_birch_upper_toppart.png delete mode 100644 textures/mcl_doors_door_crimson_side_lower.png delete mode 100644 textures/mcl_doors_door_crimson_side_upper.png create mode 100644 textures/mcl_doors_door_dark_oak_lower_bottompart.png create mode 100644 textures/mcl_doors_door_dark_oak_lower_side.png delete mode 100644 textures/mcl_doors_door_dark_oak_side_lower.png delete mode 100644 textures/mcl_doors_door_dark_oak_side_upper.png create mode 100644 textures/mcl_doors_door_dark_oak_upper_side.png create mode 100644 textures/mcl_doors_door_dark_oak_upper_toppart.png create mode 100644 textures/mcl_doors_door_iron_lower_bottompart.png create mode 100644 textures/mcl_doors_door_iron_lower_side.png delete mode 100644 textures/mcl_doors_door_iron_side_lower.png delete mode 100644 textures/mcl_doors_door_iron_side_upper.png create mode 100644 textures/mcl_doors_door_iron_upper_side.png create mode 100644 textures/mcl_doors_door_iron_upper_toppart.png create mode 100644 textures/mcl_doors_door_jungle_lower_bottompart.png create mode 100644 textures/mcl_doors_door_jungle_lower_side.png delete mode 100644 textures/mcl_doors_door_jungle_side_lower.png delete mode 100644 textures/mcl_doors_door_jungle_side_upper.png create mode 100644 textures/mcl_doors_door_jungle_upper_side.png create mode 100644 textures/mcl_doors_door_jungle_upper_toppart.png delete mode 100644 textures/mcl_doors_door_mangrove_side_lower.png delete mode 100644 textures/mcl_doors_door_mangrove_side_upper.png create mode 100644 textures/mcl_doors_door_spruce_lower_bottompart.png create mode 100644 textures/mcl_doors_door_spruce_lower_side.png delete mode 100644 textures/mcl_doors_door_spruce_side_lower.png delete mode 100644 textures/mcl_doors_door_spruce_side_upper.png create mode 100644 textures/mcl_doors_door_spruce_upper_side.png create mode 100644 textures/mcl_doors_door_spruce_upper_toppart.png delete mode 100644 textures/mcl_doors_door_warped_side_lower.png delete mode 100644 textures/mcl_doors_door_warped_side_lower_alt.png delete mode 100644 textures/mcl_doors_door_warped_side_upper.png delete mode 100644 textures/mcl_doors_door_warped_side_upper_alt.png create mode 100644 textures/mcl_doors_door_wood_lower_bottompart.png create mode 100644 textures/mcl_doors_door_wood_lower_side.png delete mode 100644 textures/mcl_doors_door_wood_side_lower.png delete mode 100644 textures/mcl_doors_door_wood_side_upper.png create mode 100644 textures/mcl_doors_door_wood_upper_side.png create mode 100644 textures/mcl_doors_door_wood_upper_toppart.png create mode 100644 textures/mcl_mangrove_door_bottom_bottompart.png create mode 100644 textures/mcl_mangrove_door_bottom_side.png create mode 100644 textures/mcl_mangrove_door_top_side.png create mode 100644 textures/mcl_mangrove_door_top_toppart.png diff --git a/mods/ITEMS/mcl_bamboo/bamboo_items.lua b/mods/ITEMS/mcl_bamboo/bamboo_items.lua index 63f07f896..dbc8e6946 100644 --- a/mods/ITEMS/mcl_bamboo/bamboo_items.lua +++ b/mods/ITEMS/mcl_bamboo/bamboo_items.lua @@ -4,10 +4,6 @@ --- DateTime: 12/29/22 12:38 PM -- Restructure Date --- Copyright (C) 2022 - 2023, Michieal. See License.txt --- CONSTS --- Due to door fix #2736, doors are displayed backwards. When this is fixed, set this variable to false. -local BROKEN_DOORS = true - -- FUTURE USE VARIABLE. MUST REMAIN FALSE UNTIL IT HAS BEEN FULLY IMPLEMENTED. DO NOT ENABLE. local SIDE_SCAFFOLDING = false local SIDE_SCAFFOLD_NAME = "mcl_bamboo:scaffolding_horizontal" @@ -49,17 +45,6 @@ end if minetest.get_modpath("mcl_doors") then if mcl_doors then - local top_door_tiles = {} - local bot_door_tiles = {} - - if BROKEN_DOORS then - top_door_tiles = { "mcl_bamboo_door_top_alt.png", "mcl_bamboo_door_top.png" } - bot_door_tiles = { "mcl_bamboo_door_bottom_alt.png", "mcl_bamboo_door_bottom.png" } - else - top_door_tiles = { "mcl_bamboo_door_top.png", "mcl_bamboo_door_top.png" } - bot_door_tiles = { "mcl_bamboo_door_bottom.png", "mcl_bamboo_door_bottom.png" } - end - local name = "mcl_bamboo:bamboo_door" local def = { description = S("Bamboo Door"), @@ -70,8 +55,8 @@ if minetest.get_modpath("mcl_doors") then groups = { handy = 1, axey = 1, material_wood = 1, flammable = -1 }, _mcl_hardness = 3, _mcl_blast_resistance = 3, - tiles_bottom = bot_door_tiles, - tiles_top = top_door_tiles, + tiles_bottom = "mcl_bamboo_door_bottom.png", + tiles_top = "mcl_bamboo_door_top.png", sounds = mcl_sounds.node_sound_wood_defaults(), } diff --git a/mods/ITEMS/mcl_crimson/init.lua b/mods/ITEMS/mcl_crimson/init.lua index 03d0a7caa..740f74a5b 100644 --- a/mods/ITEMS/mcl_crimson/init.lua +++ b/mods/ITEMS/mcl_crimson/init.lua @@ -671,8 +671,8 @@ mcl_doors:register_door("mcl_crimson:crimson_door", { groups = {handy=1,axey=1, material_wood=1, flammable=-1}, _mcl_hardness = 3, _mcl_blast_resistance = 3, - tiles_bottom = {"mcl_crimson_crimson_door_bottom.png", "mcl_doors_door_crimson_side_lower.png"}, - tiles_top = {"mcl_crimson_crimson_door_top.png", "mcl_doors_door_crimson_side_upper.png"}, + tiles_bottom = "mcl_crimson_crimson_door_bottom.png", + tiles_top = "mcl_crimson_crimson_door_top.png", sounds = mcl_sounds.node_sound_wood_defaults(), }) @@ -709,8 +709,8 @@ mcl_doors:register_door("mcl_crimson:warped_door", { groups = {handy=1,axey=1, material_wood=1, flammable=-1}, _mcl_hardness = 3, _mcl_blast_resistance = 3, - tiles_bottom = {"mcl_crimson_warped_door_bottom.png", "mcl_doors_door_warped_side_lower.png"}, - tiles_top = {"mcl_crimson_warped_door_top.png", "mcl_doors_door_warped_side_upper.png"}, + tiles_bottom = "mcl_crimson_warped_door_bottom.png", + tiles_top = "mcl_crimson_warped_door_top.png", sounds = mcl_sounds.node_sound_wood_defaults(), }) diff --git a/mods/ITEMS/mcl_doors/api_doors.lua b/mods/ITEMS/mcl_doors/api_doors.lua index e6eef4e0d..ac9708b4f 100644 --- a/mods/ITEMS/mcl_doors/api_doors.lua +++ b/mods/ITEMS/mcl_doors/api_doors.lua @@ -54,19 +54,11 @@ function mcl_doors:register_door(name, def) def.sound_close = "doors_door_close" end - local box = {{-8/16, -8/16, -8/16, 8/16, 8/16, -5/16}} - - if not def.node_box_bottom then - def.node_box_bottom = box + if not def.node_box then + def.node_box = {{-8/16, -8/16, -8/16, 8/16, 8/16, -5/16}} end - if not def.node_box_top then - def.node_box_top = box - end - if not def.selection_box_bottom then - def.selection_box_bottom= box - end - if not def.selection_box_top then - def.selection_box_top = box + if not def.selection_box then + def.selection_box = {{-8/16, -8/16, -8/16, 8/16, 8/16, -5/16}} end local longdesc, usagehelp, tt_help @@ -159,7 +151,7 @@ function mcl_doors:register_door(name, def) local door_dir = 1 if left_node.name:sub(1, #name) == name then mirrored = true - door_dir = 2 + door_dir = 3 p2 = left_node.param2 end @@ -202,8 +194,22 @@ function mcl_doors:register_door(name, def) end, }) - local tt = def.tiles_top - local tb = def.tiles_bottom + local top_door_texture = def.tiles_top:match("(.+)%..+$") -- This removes the filename extension from the images. + local bottom_door_texture = def.tiles_bottom:match("(.+)%..+$") -- This removes the filename extension from the images. + + local texture_top = top_door_texture .. ".png" + local texture_bottom = bottom_door_texture .. ".png" + local texture_top_toppart = top_door_texture .. "_toppart.png" -- Special texture to make the top of opened doors not look weird. + local texture_bottom_bottompart = bottom_door_texture .. "_bottompart.png" -- Special texture to make the bottom of opened doors not look weird. + local texture_top_side = top_door_texture .. "_side.png" -- Special texture to make the side of opened doors not look weird. + local texture_bottom_side = bottom_door_texture .. "_side.png" -- Special texture to make the side of opened doors not look weird. + + local texture_top_mirrored = texture_top .. "^[transformFX" + local texture_bottom_mirrored = texture_bottom .. "^[transformFX" + local texture_top_toppart_mirrored = texture_top_toppart .. "^[transformFX" + local texture_bottom_bottompart_mirrored = texture_bottom_bottompart .. "^[transformFX" + local texture_top_side_mirrored = texture_top_side .. "^[transformFX" + local texture_bottom_side_mirrored = texture_bottom_side .. "^[transformFX" local function on_open_close(pos, dir, check_name, replace, replace_dir) local meta1 = minetest_get_meta(pos) @@ -242,16 +248,29 @@ function mcl_doors:register_door(name, def) end local function on_mesecons_signal_open(pos, node) - on_open_close(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2") - end - local function on_mesecons_signal_close(pos, node) - if not mesecon.is_powered({x=pos.x,y=pos.y+1,z=pos.z}) then - on_open_close(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1") + local meta2 = minetest_get_meta(pos) + if meta2:get_int("is_mirrored") ~= 1 then + on_open_close(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2") + else + on_open_close(pos, 1, name.."_t_3", name.."_b_4", name.."_t_4") end end + + local function on_mesecons_signal_close(pos, node) + if not mesecon.is_powered({x=pos.x,y=pos.y+1,z=pos.z}) then + local meta2 = minetest_get_meta(pos) + if meta2:get_int("is_mirrored") ~= 1 then + on_open_close(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1") + else + on_open_close(pos, 1, name.."_t_4", name.."_b_3", name.."_t_3") + end + end + end + local function on_mesecons_signal_open_top(pos, node) on_mesecons_signal_open({x=pos.x, y=pos.y-1, z=pos.z}, node) end + local function on_mesecons_signal_close_top(pos, node) if not mesecon.is_powered({x=pos.x,y=pos.y-1,z=pos.z}) then on_mesecons_signal_close({x=pos.x, y=pos.y-1, z=pos.z}, node) @@ -277,8 +296,8 @@ function mcl_doors:register_door(name, def) end end - minetest.register_node(name.."_b_1", { - tiles = {"blank.png", tt[2].."^[transformFXR90", tb[2], tb[2].."^[transformFX", tb[1], tb[1].."^[transformFX"}, + local template_def = { + tiles = nil, use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "clip" or true, paramtype = "light", paramtype2 = "facedir", @@ -288,56 +307,65 @@ function mcl_doors:register_door(name, def) drawtype = "nodebox", node_box = { type = "fixed", - fixed = def.node_box_bottom + fixed = def.node_box }, selection_box = { type = "fixed", - fixed = def.selection_box_bottom + fixed = def.selection_box }, groups = def.groups, _mcl_hardness = def._mcl_hardness, _mcl_blast_resistance = def._mcl_blast_resistance, sounds = def.sounds, - after_destruct = function(bottom, oldnode) - local meta_bottom = minetest_get_meta(bottom) - if meta_bottom:get_int("rotation") == 1 then - meta_bottom:set_int("rotation", 0) - else - minetest.add_item(bottom, name) - local top = { x = bottom.x, y = bottom.y + 1, z = bottom.z } - if minetest.get_node(bottom).name ~= name.."_b_2" and minetest.get_node(top).name == name.."_t_1" then - minetest.remove_node(top) - end - end - end, + after_destruct = nil, - on_rightclick = on_rightclick, + on_rightclick = nil, - mesecons = { effector = { - action_on = on_mesecons_signal_open, - }}, + mesecons = nil, - on_rotate = function(bottom, node, user, mode, param2) - if mode == screwdriver.ROTATE_FACE then - local meta_bottom = minetest_get_meta(bottom) - meta_bottom:set_int("rotation", 1) - node.param2 = screwdriver.rotate.facedir(bottom, node, mode) - minetest.swap_node(bottom, node) - - local top = {x=bottom.x,y=bottom.y+1,z=bottom.z} - local meta_top = minetest_get_meta(top) - meta_top:set_int("rotation", 1) - node.name = name .."_t_1" - minetest.swap_node(top, node) - - return true - end - return false - end, + on_rotate = nil, can_dig = check_player_priv, - }) + } + + local _b_1_def = table.copy(template_def) + _b_1_def.tiles = {"blank.png", texture_bottom_bottompart .. "^[transformFY", texture_bottom_side, texture_bottom_side_mirrored, texture_bottom_mirrored, texture_bottom} + _b_1_def.after_destruct = function(bottom, oldnode) + local meta_bottom = minetest_get_meta(bottom) + if meta_bottom:get_int("rotation") == 1 then + meta_bottom:set_int("rotation", 0) + else + minetest.add_item(bottom, name) + local top = { x = bottom.x, y = bottom.y + 1, z = bottom.z } + if minetest.get_node(bottom).name ~= name.."_b_2" and minetest.get_node(top).name == name.."_t_1" then + minetest.remove_node(top) + end + end + end + _b_1_def.on_rightclick = on_rightclick + _b_1_def.mesecons = { effector = { + action_on = on_mesecons_signal_open, + }} + _b_1_def.on_rotate = function(bottom, node, user, mode, param2) + if mode == screwdriver.ROTATE_FACE then + local meta_bottom = minetest_get_meta(bottom) + meta_bottom:set_int("rotation", 1) + node.param2 = screwdriver.rotate.facedir(bottom, node, mode) + minetest.swap_node(bottom, node) + + local top = {x=bottom.x,y=bottom.y+1,z=bottom.z} + local meta_top = minetest_get_meta(top) + meta_top:set_int("rotation", 1) + node.name = name .."_t_1" + minetest.swap_node(top, node) + + return true + end + return false + end + + minetest.register_node(name.."_b_1", _b_1_def) if def.only_redstone_can_open then on_rightclick = nil @@ -349,67 +377,43 @@ function mcl_doors:register_door(name, def) end end - minetest.register_node(name.."_t_1", { - tiles = {tt[2].."^[transformR90", "blank.png", tt[2], tt[2].."^[transformFX", tt[1], tt[1].."^[transformFX"}, - use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "clip" or true, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - is_ground_content = false, - drop = "", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = def.node_box_top - }, - selection_box = { - type = "fixed", - fixed = def.selection_box_top - }, - groups = def.groups, - _mcl_hardness = def._mcl_hardness, - _mcl_blast_resistance = def._mcl_blast_resistance, - sounds = def.sounds, - - after_destruct = function(top, oldnode) + local _t_1_def = table.copy(template_def) + _t_1_def.tiles = {texture_top_toppart .. "^[transformFY", "blank.png", texture_top_side, texture_top_side_mirrored, texture_top_mirrored, texture_top} + _t_1_def.after_destruct = function(top, oldnode) + local meta_top = minetest_get_meta(top) + if meta_top:get_int("rotation") == 1 then + meta_top:set_int("rotation", 0) + else + local bottom = { x = top.x, y = top.y - 1, z = top.z } + if minetest.get_node(top).name ~= name.."_t_2" and minetest.get_node(bottom).name == name.."_b_1" and oldnode.name == name.."_t_1" then + minetest.dig_node(bottom) + end + end + end + _t_1_def.on_rightclick = on_rightclick + _t_1_def.mesecons = { effector = { + action_on = on_mesecons_signal_open_top, + rules = mesecon.rules.flat, + }} + _t_1_def.on_rotate = function(top, node, user, mode, param2) + if mode == screwdriver.ROTATE_FACE then local meta_top = minetest_get_meta(top) - if meta_top:get_int("rotation") == 1 then - meta_top:set_int("rotation", 0) - else - local bottom = { x = top.x, y = top.y - 1, z = top.z } - if minetest.get_node(top).name ~= name.."_t_2" and minetest.get_node(bottom).name == name.."_b_1" and oldnode.name == name.."_t_1" then - minetest.dig_node(bottom) - end - end - end, + meta_top:set_int("rotation", 1) + node.param2 = screwdriver.rotate.facedir(top, node, mode) + minetest.swap_node(top, node) - on_rightclick = on_rightclick, + local bottom = {x=top.x,y=top.y-1,z=top.z} + local meta_bottom = minetest_get_meta(bottom) + meta_bottom:set_int("rotation", 1) + node.name = name .."_b_1" + minetest.swap_node(bottom, node) - mesecons = { effector = { - action_on = on_mesecons_signal_open_top, - rules = mesecon.rules.flat, - }}, + return true + end + return false + end - on_rotate = function(top, node, user, mode, param2) - if mode == screwdriver.ROTATE_FACE then - local meta_top = minetest_get_meta(top) - meta_top:set_int("rotation", 1) - node.param2 = screwdriver.rotate.facedir(top, node, mode) - minetest.swap_node(top, node) - - local bottom = {x=top.x,y=top.y-1,z=top.z} - local meta_bottom = minetest_get_meta(bottom) - meta_bottom:set_int("rotation", 1) - node.name = name .."_b_1" - minetest.swap_node(bottom, node) - - return true - end - return false - end, - - can_dig = check_player_priv, - }) + minetest.register_node(name.."_t_1", _t_1_def) if def.only_redstone_can_open then on_rightclick = nil @@ -421,67 +425,43 @@ function mcl_doors:register_door(name, def) end end - minetest.register_node(name.."_b_2", { - tiles = {"blank.png", tt[2].."^[transformFXR90", tb[2].."^[transformI", tb[2].."^[transformFX", tb[1].."^[transformFX", tb[1]}, - use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "clip" or true, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - is_ground_content = false, - drop = "", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = def.node_box_bottom - }, - selection_box = { - type = "fixed", - fixed = def.selection_box_bottom - }, - groups = def.groups, - _mcl_hardness = def._mcl_hardness, - _mcl_blast_resistance = def._mcl_blast_resistance, - sounds = def.sounds, - - after_destruct = function(bottom, oldnode) + local _b_2_def = table.copy(template_def) + _b_2_def.tiles = {"blank.png", texture_bottom_bottompart_mirrored, texture_bottom_side, texture_bottom_side, texture_bottom, texture_bottom_mirrored} + _b_2_def.after_destruct = function(bottom, oldnode) + local meta_bottom = minetest_get_meta(bottom) + if meta_bottom:get_int("rotation") == 1 then + meta_bottom:set_int("rotation", 0) + else + local top = { x = bottom.x, y = bottom.y + 1, z = bottom.z } + minetest.add_item(bottom, name) + if minetest.get_node(bottom).name ~= name.."_b_1" and minetest.get_node(top).name == name.."_t_2" then + minetest.remove_node(top) + end + end + end + _b_2_def.on_rightclick = on_rightclick + _b_2_def.mesecons = { effector = { + action_off = on_mesecons_signal_close, + }} + _b_2_def.on_rotate = function(bottom, node, user, mode, param2) + if mode == screwdriver.ROTATE_FACE then local meta_bottom = minetest_get_meta(bottom) - if meta_bottom:get_int("rotation") == 1 then - meta_bottom:set_int("rotation", 0) - else - local top = { x = bottom.x, y = bottom.y + 1, z = bottom.z } - minetest.add_item(bottom, name) - if minetest.get_node(bottom).name ~= name.."_b_1" and minetest.get_node(top).name == name.."_t_2" then - minetest.remove_node(top) - end - end - end, + meta_bottom:set_int("rotation", 1) + node.param2 = screwdriver.rotate.facedir(bottom, node, mode) + minetest.swap_node(bottom, node) - on_rightclick = on_rightclick, + local top = {x=bottom.x,y=bottom.y+1,z=bottom.z} + local meta_top = minetest_get_meta(top) + meta_top:set_int("rotation", 1) + node.name = name .."_t_2" + minetest.swap_node(top, node) - mesecons = { effector = { - action_off = on_mesecons_signal_close, - }}, + return true + end + return false + end - on_rotate = function(bottom, node, user, mode, param2) - if mode == screwdriver.ROTATE_FACE then - local meta_bottom = minetest_get_meta(bottom) - meta_bottom:set_int("rotation", 1) - node.param2 = screwdriver.rotate.facedir(bottom, node, mode) - minetest.swap_node(bottom, node) - - local top = {x=bottom.x,y=bottom.y+1,z=bottom.z} - local meta_top = minetest_get_meta(top) - meta_top:set_int("rotation", 1) - node.name = name .."_t_2" - minetest.swap_node(top, node) - - return true - end - return false - end, - - can_dig = check_player_priv, - }) + minetest.register_node(name.."_b_2", _b_2_def) if def.only_redstone_can_open then on_rightclick = nil @@ -493,74 +473,244 @@ function mcl_doors:register_door(name, def) end end - minetest.register_node(name.."_t_2", { - tiles = {tt[2].."^[transformR90", "blank.png", tt[2].."^[transformI", tt[2].."^[transformFX", tt[1].."^[transformFX", tt[1]}, - use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "clip" or true, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - is_ground_content = false, - drop = "", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = def.node_box_top - }, - selection_box = { - type = "fixed", - fixed = def.selection_box_top - }, - groups = def.groups, - _mcl_hardness = def._mcl_hardness, - _mcl_blast_resistance = def._mcl_blast_resistance, - sounds = def.sounds, - - after_destruct = function(top, oldnode) + local _t_2_def = table.copy(template_def) + _t_2_def.tiles = {texture_top_toppart_mirrored, "blank.png", texture_top_side, texture_top_side, texture_top, texture_top_mirrored} + _t_2_def.after_destruct = function(top, oldnode) + local meta_top = minetest_get_meta(top) + if meta_top:get_int("rotation") == 1 then + meta_top:set_int("rotation", 0) + else + local bottom = { x = top.x, y = top.y - 1, z = top.z } + if minetest.get_node(top).name ~= name.."_t_1" and minetest.get_node(bottom).name == name.."_b_2" and oldnode.name == name.."_t_2" then + minetest.dig_node(bottom) + end + end + end + _t_2_def.on_rightclick = on_rightclick + _t_2_def.mesecons = { effector = { + action_off = on_mesecons_signal_close_top, + rules = mesecon.rules.flat, + }} + _t_2_def.on_rotate = function(top, node, user, mode, param2) + if mode == screwdriver.ROTATE_FACE then local meta_top = minetest_get_meta(top) - if meta_top:get_int("rotation") == 1 then - meta_top:set_int("rotation", 0) - else - local bottom = { x = top.x, y = top.y - 1, z = top.z } - if minetest.get_node(top).name ~= name.."_t_1" and minetest.get_node(bottom).name == name.."_b_2" and oldnode.name == name.."_t_2" then - minetest.dig_node(bottom) - end + meta_top:set_int("rotation", 1) + node.param2 = screwdriver.rotate.facedir(top, node, mode) + minetest.swap_node(top, node) + + local bottom = {x=top.x,y=top.y-1,z=top.z} + local meta_bottom = minetest_get_meta(bottom) + meta_bottom:set_int("rotation", 1) + node.name = name .."_b_2" + minetest.swap_node(bottom, node) + + return true + end + return false + end + + minetest.register_node(name.."_t_2", _t_2_def) + + if not def.only_redstone_can_open then + on_rightclick = function(pos, node, clicker) + if check_player_priv(pos, clicker) then + on_open_close(pos, 1, name.."_t_3", name.."_b_4", name.."_t_4") end - end, + end + end - on_rightclick = on_rightclick, - - mesecons = { effector = { - action_off = on_mesecons_signal_close_top, - rules = mesecon.rules.flat, - }}, - - on_rotate = function(top, node, user, mode, param2) - if mode == screwdriver.ROTATE_FACE then - local meta_top = minetest_get_meta(top) - meta_top:set_int("rotation", 1) - node.param2 = screwdriver.rotate.facedir(top, node, mode) - minetest.swap_node(top, node) - - local bottom = {x=top.x,y=top.y-1,z=top.z} - local meta_bottom = minetest_get_meta(bottom) - meta_bottom:set_int("rotation", 1) - node.name = name .."_b_2" - minetest.swap_node(bottom, node) - - return true + local _b_3_def = table.copy(template_def) + _b_3_def.tiles = {"blank.png", texture_bottom_mirrored .. "^[transformFY", texture_bottom_side, texture_bottom_side_mirrored, texture_bottom, texture_bottom_mirrored} + _b_3_def.after_destruct = function(bottom, oldnode) + local meta_bottom = minetest_get_meta(bottom) + if meta_bottom:get_int("rotation") == 1 then + meta_bottom:set_int("rotation", 0) + else + minetest.add_item(bottom, name) + local top = { x = bottom.x, y = bottom.y + 1, z = bottom.z } + if minetest.get_node(bottom).name ~= name.."_b_4" and minetest.get_node(top).name == name.."_t_3" then + minetest.remove_node(top) end - return false - end, + end + end + _b_3_def.on_rightclick = on_rightclick + _b_3_def.mesecons = { effector = { + action_on = on_mesecons_signal_open, + }} + _b_3_def.on_rotate = function(bottom, node, user, mode, param2) + if mode == screwdriver.ROTATE_FACE then + local meta_bottom = minetest_get_meta(bottom) + meta_bottom:set_int("rotation", 1) + node.param2 = screwdriver.rotate.facedir(bottom, node, mode) + minetest.swap_node(bottom, node) + + local top = {x=bottom.x,y=bottom.y+1,z=bottom.z} + local meta_top = minetest_get_meta(top) + meta_top:set_int("rotation", 1) + node.name = name .."_t_3" + minetest.swap_node(top, node) + + return true + end + return false + end + + minetest.register_node(name.."_b_3", _b_3_def) + + if def.only_redstone_can_open then + on_rightclick = nil + else + on_rightclick = function(pos, node, clicker) + if check_player_priv(pos, clicker) then + on_open_close(pos, -1, name.."_b_3", name.."_t_4", name.."_b_4") + end + end + end + + local _t_3_def = table.copy(template_def) + _t_3_def.tiles = {texture_top_toppart_mirrored .. "^[transformFY", "blank.png", texture_top_side, texture_top_side_mirrored, texture_top, texture_top_mirrored} + _t_3_def.after_destruct = function(top, oldnode) + local meta_top = minetest_get_meta(top) + if meta_top:get_int("rotation") == 1 then + meta_top:set_int("rotation", 0) + else + local bottom = { x = top.x, y = top.y - 1, z = top.z } + if minetest.get_node(top).name ~= name.."_t_4" and minetest.get_node(bottom).name == name.."_b_3" and oldnode.name == name.."_t_3" then + minetest.dig_node(bottom) + end + end + end + _t_3_def.on_rightclick = on_rightclick + _t_3_def.mesecons = { effector = { + action_on = on_mesecons_signal_open_top, + rules = mesecon.rules.flat, + }} + _t_3_def.on_rotate = function(top, node, user, mode, param2) + if mode == screwdriver.ROTATE_FACE then + local meta_top = minetest_get_meta(top) + meta_top:set_int("rotation", 1) + node.param2 = screwdriver.rotate.facedir(top, node, mode) + minetest.swap_node(top, node) + + local bottom = {x=top.x,y=top.y-1,z=top.z} + local meta_bottom = minetest_get_meta(bottom) + meta_bottom:set_int("rotation", 1) + node.name = name .."_b_3" + minetest.swap_node(bottom, node) + + return true + end + return false + end + + minetest.register_node(name.."_t_3", _t_3_def) + + if def.only_redstone_can_open then + on_rightclick = nil + else + on_rightclick = function(pos, node, clicker) + if check_player_priv(pos, clicker) then + on_open_close(pos, 1, name.."_t_4", name.."_b_3", name.."_t_3") + end + end + end + + local _b_4_def = table.copy(template_def) + _b_4_def.tiles = {"blank.png", texture_bottom_bottompart, texture_bottom_side_mirrored, texture_bottom_side_mirrored, texture_bottom_mirrored, texture_bottom} + _b_4_def.after_destruct = function(bottom, oldnode) + local meta_bottom = minetest_get_meta(bottom) + if meta_bottom:get_int("rotation") == 1 then + meta_bottom:set_int("rotation", 0) + else + local top = { x = bottom.x, y = bottom.y + 1, z = bottom.z } + minetest.add_item(bottom, name) + if minetest.get_node(bottom).name ~= name.."_b_3" and minetest.get_node(top).name == name.."_t_4" then + minetest.remove_node(top) + end + end + end + _b_4_def.on_rightclick = on_rightclick + _b_4_def.mesecons = { effector = { + action_off = on_mesecons_signal_close, + }} + _b_4_def.on_rotate = function(bottom, node, user, mode, param2) + if mode == screwdriver.ROTATE_FACE then + local meta_bottom = minetest_get_meta(bottom) + meta_bottom:set_int("rotation", 1) + node.param2 = screwdriver.rotate.facedir(bottom, node, mode) + minetest.swap_node(bottom, node) + + local top = {x=bottom.x,y=bottom.y+1,z=bottom.z} + local meta_top = minetest_get_meta(top) + meta_top:set_int("rotation", 1) + node.name = name .."_t_4" + minetest.swap_node(top, node) + + return true + end + return false + end + + minetest.register_node(name.."_b_4", _b_4_def) + + if def.only_redstone_can_open then + on_rightclick = nil + else + on_rightclick = function(pos, node, clicker) + if check_player_priv(pos, clicker) then + on_open_close(pos, -1, name.."_b_4", name.."_t_3", name.."_b_3") + end + end + end + + local _t_4_def = table.copy(template_def) + _t_4_def.tiles = {texture_top_toppart, "blank.png", texture_top_side_mirrored, texture_top_side_mirrored, texture_top_mirrored, texture_top} + _t_4_def.after_destruct = function(top, oldnode) + local meta_top = minetest_get_meta(top) + if meta_top:get_int("rotation") == 1 then + meta_top:set_int("rotation", 0) + else + local bottom = { x = top.x, y = top.y - 1, z = top.z } + if minetest.get_node(top).name ~= name.."_t_3" and minetest.get_node(bottom).name == name.."_b_4" and oldnode.name == name.."_t_4" then + minetest.dig_node(bottom) + end + end + end + _t_4_def.on_rightclick = on_rightclick + _t_4_def.mesecons = { effector = { + action_off = on_mesecons_signal_close_top, + rules = mesecon.rules.flat, + }} + _t_4_def.on_rotate = function(top, node, user, mode, param2) + if mode == screwdriver.ROTATE_FACE then + local meta_top = minetest_get_meta(top) + meta_top:set_int("rotation", 1) + node.param2 = screwdriver.rotate.facedir(top, node, mode) + minetest.swap_node(top, node) + + local bottom = {x=top.x,y=top.y-1,z=top.z} + local meta_bottom = minetest_get_meta(bottom) + meta_bottom:set_int("rotation", 1) + node.name = name .."_b_4" + minetest.swap_node(bottom, node) + + return true + end + return false + end + + minetest.register_node(name.."_t_4", _t_4_def) - can_dig = check_player_priv, - }) -- Add entry aliases for the Help if minetest.get_modpath("doc") then doc.add_entry_alias("craftitems", name, "nodes", name.."_b_1") doc.add_entry_alias("craftitems", name, "nodes", name.."_b_2") + doc.add_entry_alias("craftitems", name, "nodes", name.."_b_3") + doc.add_entry_alias("craftitems", name, "nodes", name.."_b_4") doc.add_entry_alias("craftitems", name, "nodes", name.."_t_1") doc.add_entry_alias("craftitems", name, "nodes", name.."_t_2") + doc.add_entry_alias("craftitems", name, "nodes", name.."_t_3") + doc.add_entry_alias("craftitems", name, "nodes", name.."_t_4") end - end diff --git a/mods/ITEMS/mcl_doors/register.lua b/mods/ITEMS/mcl_doors/register.lua index c998f6538..142bfa52e 100644 --- a/mods/ITEMS/mcl_doors/register.lua +++ b/mods/ITEMS/mcl_doors/register.lua @@ -14,8 +14,8 @@ mcl_doors:register_door("mcl_doors:wooden_door", { groups = {handy=1,axey=1, material_wood=1, flammable=-1}, _mcl_hardness = 3, _mcl_blast_resistance = 3, - tiles_bottom = {"mcl_doors_door_wood_lower.png", "mcl_doors_door_wood_side_lower.png"}, - tiles_top = {"mcl_doors_door_wood_upper.png", "mcl_doors_door_wood_side_upper.png"}, + tiles_bottom = "mcl_doors_door_wood_lower.png", + tiles_top = "mcl_doors_door_wood_upper.png", sounds = mcl_sounds.node_sound_wood_defaults(), }) @@ -37,8 +37,8 @@ mcl_doors:register_door("mcl_doors:acacia_door", { groups = {handy=1,axey=1, material_wood=1, flammable=-1}, _mcl_hardness = 3, _mcl_blast_resistance = 3, - tiles_bottom = {"mcl_doors_door_acacia_lower.png", "mcl_doors_door_acacia_side_lower.png"}, - tiles_top = {"mcl_doors_door_acacia_upper.png", "mcl_doors_door_acacia_side_upper.png"}, + tiles_bottom = "mcl_doors_door_acacia_lower.png", + tiles_top = "mcl_doors_door_acacia_upper.png", sounds = mcl_sounds.node_sound_wood_defaults(), }) @@ -60,8 +60,8 @@ mcl_doors:register_door("mcl_doors:birch_door", { groups = {handy=1,axey=1, material_wood=1, flammable=-1}, _mcl_hardness = 3, _mcl_blast_resistance = 3, - tiles_bottom = {"mcl_doors_door_birch_lower.png", "mcl_doors_door_birch_side_lower.png"}, - tiles_top = {"mcl_doors_door_birch_upper.png", "mcl_doors_door_birch_side_upper.png"}, + tiles_bottom = "mcl_doors_door_birch_lower.png", + tiles_top = "mcl_doors_door_birch_upper.png", sounds = mcl_sounds.node_sound_wood_defaults(), }) @@ -83,8 +83,8 @@ mcl_doors:register_door("mcl_doors:dark_oak_door", { groups = {handy=1,axey=1, material_wood=1, flammable=-1}, _mcl_hardness = 3, _mcl_blast_resistance = 3, - tiles_bottom = {"mcl_doors_door_dark_oak_lower.png", "mcl_doors_door_dark_oak_side_lower.png"}, - tiles_top = {"mcl_doors_door_dark_oak_upper.png", "mcl_doors_door_dark_oak_side_upper.png"}, + tiles_bottom = "mcl_doors_door_dark_oak_lower.png", + tiles_top = "mcl_doors_door_dark_oak_upper.png", sounds = mcl_sounds.node_sound_wood_defaults(), }) @@ -106,8 +106,8 @@ mcl_doors:register_door("mcl_doors:jungle_door", { groups = {handy=1,axey=1, material_wood=1, flammable=-1}, _mcl_hardness = 3, _mcl_blast_resistance = 3, - tiles_bottom = {"mcl_doors_door_jungle_lower.png", "mcl_doors_door_jungle_side_lower.png"}, - tiles_top = {"mcl_doors_door_jungle_upper.png", "mcl_doors_door_jungle_side_upper.png"}, + tiles_bottom = "mcl_doors_door_jungle_lower.png", + tiles_top = "mcl_doors_door_jungle_upper.png", sounds = mcl_sounds.node_sound_wood_defaults(), }) @@ -129,8 +129,8 @@ mcl_doors:register_door("mcl_doors:spruce_door", { groups = {handy=1,axey=1, material_wood=1, flammable=-1}, _mcl_hardness = 3, _mcl_blast_resistance = 3, - tiles_bottom = {"mcl_doors_door_spruce_lower.png", "mcl_doors_door_spruce_side_lower.png"}, - tiles_top = {"mcl_doors_door_spruce_upper.png", "mcl_doors_door_spruce_side_upper.png"}, + tiles_bottom = "mcl_doors_door_spruce_lower.png", + tiles_top = "mcl_doors_door_spruce_upper.png", sounds = mcl_sounds.node_sound_wood_defaults(), }) @@ -183,8 +183,8 @@ mcl_doors:register_door("mcl_doors:iron_door", { groups = {pickaxey=1, mesecon_effector_on=1}, _mcl_hardness = 5, _mcl_blast_resistance = 5, - tiles_bottom = {"mcl_doors_door_iron_lower.png^[transformFX", "mcl_doors_door_iron_side_lower.png"}, - tiles_top = {"mcl_doors_door_iron_upper.png^[transformFX", "mcl_doors_door_iron_side_upper.png"}, + tiles_bottom = "mcl_doors_door_iron_lower.png", + tiles_top = "mcl_doors_door_iron_upper.png", sounds = mcl_sounds.node_sound_metal_defaults(), sound_open = "doors_steel_door_open", sound_close = "doors_steel_door_close", diff --git a/mods/ITEMS/mcl_mangrove/init.lua b/mods/ITEMS/mcl_mangrove/init.lua index dd2b653c4..3698ce54f 100644 --- a/mods/ITEMS/mcl_mangrove/init.lua +++ b/mods/ITEMS/mcl_mangrove/init.lua @@ -416,8 +416,8 @@ mcl_doors:register_door("mcl_mangrove:mangrove_door", { groups = {handy=1,axey=1, material_wood=1, flammable=-1}, _mcl_hardness = 3, _mcl_blast_resistance = 3, - tiles_bottom = {"mcl_mangrove_door_bottom.png", "mcl_doors_door_mangrove_side_lower.png"}, - tiles_top = {"mcl_mangrove_door_top.png", "mcl_doors_door_mangrove_side_upper.png"}, + tiles_bottom = "mcl_mangrove_door_bottom.png", + tiles_top = "mcl_mangrove_door_top.png", sounds = mcl_sounds.node_sound_wood_defaults(), }) diff --git a/textures/doors_item_steel.png b/textures/doors_item_steel.png index 82a500baf86094a54b130d264bc9554495d982a8..8235deace65433f225b8fc991291e93092e67a28 100644 GIT binary patch delta 154 zcmV;L0A>H&0k#2tvqDS&msO@^xh+73};1X2S42@@(9kVoQq!vFvP07*qo IM6N<$f^VZaMgRZ+ delta 192 zcmV;x06+h>0o(zQB!4GROjJex|No7OiEn9UmXnjLsj0E9u9J|EoSB)XqoRg`f~29K zo0pfLoSb@}SV{l@00DGTPE!Ct=GbNc003i2L_t(|0b^ib5K>YSQeXfA6VntE0}#Wo zkg*WVu#lW61!hzxFeHK*CW(S6U`D9`Lk2{#q@*O6QDWf=)j4kJy0HMPxYTPGSVVKC u;7o`WB`!yyYL=da>RPb{tXK&M6c_+|gBB)^HQo6D0000aL_m6b19?AwKzv$tY%2C5rQ{p1*4J052ufB} fAetEv_Pi`Kl1*SL1qxOdmRjo7$&*tvMx zxp~^UdD^;r+Piz*!*$-ocHqX5;m4BV$dls8l;g>j=+SlZ(}D8Tf%4RX^3;R#)Pw)% zf&b`&|LTMP>V&};?=%1a0MbcBK~xwS1;NcugFqC3(eJ{YA?0V9plKhWabe?{hdN9~zaOcOGLBn20fH#xFSxrU`NfQMhMNxSJH& zA4C-tWPwr0z$&}`SYB*7v%J05!(Jb-)!LZYVh$gLNt(7M4X3`#wkB=-&qc33bb=ig z9}Y$&sfY!{%~&_r!6@WY&WgwiBPiUeMVQp}08vE*pjxg>DjTC9(+*p$B2~p_tu1yR royHbZuZ@0ba(Np3_$*BxN8h`DdE8djIAcDv00000NkvXXu0mjfj}7`< diff --git a/textures/mcl_bamboo_door_bottom_bottompart.png b/textures/mcl_bamboo_door_bottom_bottompart.png new file mode 100644 index 0000000000000000000000000000000000000000..beeedfa5ea152fb5f094688634b66b0c23cbe5e5 GIT binary patch literal 209 zcmV;?051QDP)eWp)PnNV zgY(pb|LTMP>V$QzZ8ZP@00DGTPE!Ct=GbNc002EnL_t&-SJltK0e~1wNWYo z_FvT*e0m$4T-(Um6xm1Ki$YFwua0sf>p;og6g2W#6=4zbAK!B?ehmb>Hq`U900000 LNkvXXu0mjfVu@E; literal 0 HcmV?d00001 diff --git a/textures/mcl_bamboo_door_bottom_side.png b/textures/mcl_bamboo_door_bottom_side.png new file mode 100644 index 0000000000000000000000000000000000000000..9e1600a99e4f831b183fb36b03da6c119ffae7cd GIT binary patch literal 258 zcmV+d0sa1oP)S#am222$gpbKx_QyQaMHhW-o$qD)Pj?4VpsqG00DGTPE!Ct=GbNc z0034=L_t&-SC!An7CRwo7^K6xut%&rGLGjWWAqdzMo~jpk}_HXuhFnzoBTqq+!6MVZfzh!KGutrewmVZN#W_ z#Hw|~s&>S#am222$gpbBzHrjNa@D(w*1U_?xOUgLch|j**tmGuxp>;SdD^;p+PZt% zyL;Wkb>75w;Kq^Q#**R3lH$md;>eWa$(88Qb@J1J^3;Ly)PnNVgY(pb|LB4L=z{<1 zga7J;J9tBQ00001bW%=J06^y0W&i*H#Ysd#R2UgW!Ld%lP#A{c_xsx(3Y0=Tr!>_I zaP<~kyltIXjEhDlS0@vowe2B96Vv!Sst%z^ccI?ws-}Ajb$X6*7(g+OeK|uWK&d9j*Pv72JCo_V;W zeYm84xTSu%rGB}kf4!e%y`N>ipJl$FX1<_kzM*Kpp=iIPVZfwez@=lsrDMUSWWuIx z#He({s&&MwcEql6#IAD4uxio1aMHhW)w_$oz-o$p`#*yI0lHtda;>eTY$du#BmFUrR^3#Fx)PeHUg7VaZ^VEa?=z;&} zg8%A+|LTNb1U8cZ0004WQchCt= zK(ShMU5a@B6WQ4~3C!aEh^$>E{~@-nA|Q7Cf!KQuDcn#K5N^md#CG7uk>JLX;m4BV$dls8l;g>jIs&+W00001bW%=J06^y0W&i*H zIY~r8R2Wxd(3fD*HJ9VG2hvt%vYg@!1`^!XAdZ0qi$0JRW-yXqu>o>)jZ|3-fC3^6 dLkE!VIRH>X3(b(J6XE~>002ovPDHLkV1nhcng##> literal 0 HcmV?d00001 diff --git a/textures/mcl_crimson_crimson_door.png b/textures/mcl_crimson_crimson_door.png index dc325a00fe32aaf7fdec97477030dc436c8e69fa..52a123d4cbf66a998ff89cded3cfbd8275ed9ce7 100644 GIT binary patch delta 179 zcmV;k08Ibj0pJ0UHGe`TEKMjcR4OuEC^9uQHD)L>aw#%;CohC4Fy_%B$p8QV0d!JM zQvg8b*k%9#0B1==K~xCWV_;zL@$z$gqyi2>>yYv!i3c zYMd<1GkgMEOK#g3a;tis}H1L@Y*TC4(86ndwHTR%B** hrh}!tBE38V7y!=d7>LMdh6?}y002ovPDHLkV1j_7Mp6I( delta 179 zcmV;k08Ibj0pJ0UHGefVH9{sVO(-u^Dl%OtGG-_;aw#%;CohC4FxYN6y8r+H0d!JM zQvg8b*k%9#0B1==K~xA^V_;y2iHeR0U;u)e>dJ}&5JN;oMMVI_D6!72NdPg5tFv>! zYJw~yvcQa(tSBY0R7_5^6PS?`6Daw#%;CohC4FrAy(I{*LxhDk(0 zR0!84&9M=}AOHo>FHLG`Y)KW}BqM}#01b3Bsl6l<03N9&g|@;SIGq@~*FA8XCuyld zw;`b*jlD^Cv^MEWbK3AwJ6f>jQ2S~{>pwxvB%<@Lx0q=J_dZUG+cBb2`=LHG3`C(} zWMB~Csik%XeaJ@Y>jWOlH7@3lX|Xu}V4VE|g+n`vUwI;h00000NkvXXu0mjfY7|b( delta 192 zcmV;x06+il0qOyeGJiESH9{sVO(-u^Dl%OtGG-_;aw#%;CohC4Fry^GNdN!xj%^;MAl^|1Ew)C*x%sSzY;p<90LObgQu&X%Q~loCIEmrH9r6V literal 0 HcmV?d00001 diff --git a/textures/mcl_crimson_crimson_door_top.png b/textures/mcl_crimson_crimson_door_top.png index c55f28ec70e5d1368a1944ce8b5b4ff461fec3ee..f6bc75687430fd6b46907ed0d12efb38c62f6b40 100644 GIT binary patch delta 199 zcmV;&0672Z0r3HlGJirQEKMjcR4OuEC^9uQHD)L>aw#%;CohC4FrAy(I{*Lxh)G02 zR0tgf!7&a2Q51&J@BPzE=Z+Ov0z1%AicTj{kc?)QF!4(5>_PXmDhtrqfv6?sl@f{T z9Id)bth-Yu2f%{B{pX+z<~bn1Gy-9v0tPY<@N`o;Y&YfcT0rZ&@E83V?Z##MiER|O z#)1ps2KLVClRe;`#d4m=6H}fx1%bVW#cYjv^#@t6EEe`_9d!Tz002ovPDHLkV1gdV BRUQBU delta 192 zcmV;x06+in0qOyeGJiESH9{sVO(-u^Dl%OtGG-_;aw#%;CohC4Fry^GNdN!~a6A+eKU@VISpD^7H%lY#%tQ8iO>N#k?9i94|v$*aog%Dw2 uUstVmhqsHaulUsD$5}&SqpmqGuxS5h^(;9%j)yz|0000xj%^;bP0l+XkK;C(fv literal 0 HcmV?d00001 diff --git a/textures/mcl_crimson_crimson_door_top_toppart.png b/textures/mcl_crimson_crimson_door_top_toppart.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3e1dff43b1cbec00feab10e19bad4af102ffce GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdr%jd_r6m85o?@bbK}RL$r)y zHH^|UjEXdks?_ycG!5467n{Vuz`$4%z2L9(ulM r2CT+W!3{mv9JZ?{G?y`KU&_GtMDTs?^chwR3=9mOu6{1-oD!M<4n!sV literal 0 HcmV?d00001 diff --git a/textures/mcl_crimson_warped_door.png b/textures/mcl_crimson_warped_door.png index 66639b4c2f81e798c4ae322d9224a00700f105b2..2359fc69cc266dc036ecf67e43f047f9f69fea65 100644 GIT binary patch delta 177 zcmV;i08anb0nGuBB!3}LOjJbx000>o86zVjEG#TLFi$l#H9$34L^obaJ!VQhXi-9M z2RPBn00001bW%=J06^y0W&i*HT1iAfR0!8y&9M=HKnO%pS}?EyXAG=>(a4O2&~Ks8xJH(p9TW=cJ1 zQ9^H(d}(I@0059lL_t&t9Rh&+<*%Z3I1Hbj!a+-O*2Ci zY1>u7jJ92{H?VxVImh#;d$?{Ehgx4T0OwS7LhzoW1TI*F09L04sMtkSAXaG^@mvR| zY-XWshQ9lE-teGbI=@{itG5a)3mu`>^pXsHVrrjUl#`nnWB07-^ccZlg4El-@Ofz2mbrv{me>FQX4c(BvAtRZT03s2+)O&=PmH=p$nACZMh=wk|L7zrMt(gD-002ov JPDHLkV1h!GW6A&k diff --git a/textures/mcl_crimson_warped_door_bottom_bottompart.png b/textures/mcl_crimson_warped_door_bottom_bottompart.png new file mode 100644 index 0000000000000000000000000000000000000000..867cd39e5a4824920133a57e9e3dd4e2f1bccb35 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdmu-d_r6q7#Nh5m34GurB!47OOjJb~85tuZBP=W|H7rUyFi$l#H9s>~Ks8xJH(p9TW=cJ1 zQ9^H(d}(I@0050iL_t&t*A>k%3WG2h2GH*crY&?0Sg=Pa-NYYCPM|laIwnZxCTLu( zi0v#Pxn1M-wuiE_s_txuvJa~5{Q%0ntWCt@?KKr)K$iHANK+%uOW2xYSa8Z2ah5qS zVi!&k*V*c(SRDktq)68pVj6XR_{|{x)vdM$)fP;vp9+_74>OVMtfG{wNS^NvbVlvHaGuUhfi!khl1zEaq>xN<0`F16XyPeO&q_B5e*n*Ao zdFEav-!~oFHUf1l@gwhmE^W|tVkifthT;SLWwAfEYtU;rOd%Z1cdKPMg5#^0%AqD^ z6MR2U@RtIcZ7uAdPy&@uQ$(3j#7clnnS=oVTC#@|VuF`OUz_!>`14ELhi(?4K^<)n31O}#S zCT$y-43y^{Jj!?^p)j$4xqHJB;}x6@5mdK II;Vst0GCca7ytkO literal 0 HcmV?d00001 diff --git a/textures/mcl_crimson_warped_door_top_toppart.png b/textures/mcl_crimson_warped_door_top_toppart.png new file mode 100644 index 0000000000000000000000000000000000000000..35a48ab9a0655695c42dca66361abb77471757a5 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdu3Nd_r6q7#MVPbWC-;tPT84 zO-=2M!yQZ`UCiUWY|{dr@?-zcI?2Gmz*rLG7tG-B>_!>`1B1G!i(?4K^<)nHT>Wzz zx%#Ob`Evv3+_c);d+=ysRiK;k1V`(J+d&MDzs3Cj{JL$;z`(%Z>FVdQ&MBb@0KrHs A4gdfE literal 0 HcmV?d00001 diff --git a/textures/mcl_crimson_warped_trapdoor.png b/textures/mcl_crimson_warped_trapdoor.png index efbae07114538a5718b7db17d8114be2e832dce3..05e3f44d6e7a18a683bfceb13f4a99c553ceb1fe 100644 GIT binary patch delta 47 zcmZo=YGsu4P3XcF&ilH_WZ>S~teZl0;^%zS!c;1&Qd CXbrsp delta 47 zcmZo=YGs8~A00001bW%=J z06^y0W&i*HQb|NXR0!8&U|=wDaZ52^00OnNv@``UBY}Yp!eGG004p|wGt$x^+D%+s zoFL|;q?v#fE2p_7Lv*>NKuk7ENpl0MF$PLOv;(CeB1%fi1{MqeIUNwMZgq4*6A`%)J3RWxt6hUQ( wf}}7MqiPog8VJz^v_b$yM9{^>QGfveQbY@uI5;rx00000Ne4wvM6N<$g72;>1poj5 diff --git a/textures/mcl_doors_door_acacia_lower.png b/textures/mcl_doors_door_acacia_lower.png index 510c04728510816c00c745e60be8bcd9978e1fa9..3bf3bc676bad64bc9f171aa023691b63bfc7a9a4 100644 GIT binary patch delta 170 zcmV;b09F6b0mcE4B!3c6OjJd6LMwz!GL~CCnP*0&byBy6VUe6AQvd(}Z%IT!R0tgf z!NC=SAOJ+cH5C{_3J{?HpLh@QZ2;Z=Tgi;DeVxuqQ%K94k=GM)LXI`}_6s8R)BB8A zsO8>JEs^F8^)ep51HD!k+IaMe$9M=VNw)(rs1 YAF31^x??Vl-T(jq07*qoM6N<$f=1p+TmS$7 delta 179 zcmV;k08IbJ0nY)DB!3l9OjJdLOfs2gMgRZ+rFBxbhGCXlJ#|7WKY;;}00003bW%=J z|Nj8j$_+sP003r5L_t(|0WHk60YX6#1klA|ocyGM9ST4;$4PPeFM%1p-n~`pleewZFfe$!`njxgN@xNAwZ13w literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_acacia_lower_side.png b/textures/mcl_doors_door_acacia_lower_side.png new file mode 100644 index 0000000000000000000000000000000000000000..65db1e658e4a862c37c953071f960a08373e76cd GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdoVYd_r9Fi*ieyv|D_PrbXM% zOm|ya8nnGFQB?8IQw9bG#*!evUHTn0tN;K22WQ%mvv4FO#selKPvzL literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_acacia_side_lower.png b/textures/mcl_doors_door_acacia_side_lower.png deleted file mode 100644 index 4dbbf38c4c2684ea471c2794bbf2b996eaa3d13c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdu#id_r6q7#K>Ov|D_PrbXM% zOm{0RJ+*^@fq}6k$S;_|;n|He1_lNtPZ!4!j_70o!Gs2eM4mPyHD^Y3XO?pU2TleY f%-y6kg^}UD0yC?g(%K0O3=9mOu6{1-oD!MyZ`4sXf09i*NsWOBx*T-lL1;N^oW3|}}or5YBpTrsG~VbGFo fk@EOvl55JqaAJlLZyH1TagceQu6{1-oD!M<t$v@ z(wmXknR4M&TYEPtOpg{Q4Z4kp@Hhnzh^GCaBIXZaOj7_~_$Q1aHtAEi3?ZZzk!~S8 c8N$Kg279d=gC;{R@c;k-07*qoM6N<$f>K*Twg3PC delta 171 zcmV;c0960V0mlK5B!3l9OjJdLOfq#sE0$Y5nP)}-005002ovPDHLkV1o6tMOFX+ diff --git a/textures/mcl_doors_door_acacia_upper_side.png b/textures/mcl_doors_door_acacia_upper_side.png new file mode 100644 index 0000000000000000000000000000000000000000..25edc1f1d0b227b2aac48a3b5ee00739e718c160 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdoVYd_r9Fi*ieyv|D_PrbXM% zOm|ya8nnGFQB?8IQw9bG#*!evU`HUZ`h9mdTYm^uz-v?R=El04(cvogUn=O9m}fSZvJ^O`nY o&VvSG46lt+IGAsro5jZPatUv*K*_6V3=9kmp00i_>zopr0RLe++5i9m literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_acacia_upper_toppart.png b/textures/mcl_doors_door_acacia_upper_toppart.png new file mode 100644 index 0000000000000000000000000000000000000000..ab01973adf4e408233eeb49ee62db615996e41fc GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdoVYd_r9Fi*ieyv|D_PrbXM% zOm|ya8nnGFQB?8IQw9bG#*!evUCCXBrd3gfjk*lOj82FfcGMc)I$ztaD0e0s#D$C|Upj literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_birch.png b/textures/mcl_doors_door_birch.png index 58af89e580b8ed689efdde607ea3a39d63de1ad8..bcc1114224b66633130a4a56a024b39e4fbcabad 100644 GIT binary patch delta 198 zcmV;%06G8K0pbCWB!4GROjJbx003Z5MsQqEhi_hzb6b;nWSf0npo3_thG?yiZsOR= z>*Ut(>fd}XtN8!`00DGTPE!Ct=GbNc003!8L_t&t*JEH{aIc&>-GBiIymniy3IH*R zgN=&|z#>trtRRf&-PT|=?&am>4j@LA)v78m!>f9CO#@5{%s;5AT2%#RbXV`H25WCF zHV%d;UKO<)%t%xcR01=?XU?1swp2+_P)UIS08w%u*^kMI$^ZZW07*qoM6N<$g6bSn A5dZ)H delta 190 zcmV;v073ua0onnOB!3}LOjJbx005G6TdIa=v5#(zZdBsf%IoCTn|)sJ>fdWjKzUkB zJaq9m18Y|)aS?$i4lPXs sGb&fjTm@zb85jYa!)Cz^xwcNr1#0}U3NJOEX zC!&(<_&#a(=R^EnM}?Zm6lqo5h`!k7(lP$_iZE*+)xc^}Wkvfzhmc#zHN$DgRUhsX zW({;=;EakkES;<+g8;NJUx>xfm-ouR^I7EX5r~Ut1u_0~AS$eN;Y*4D0000_Nx<_ zpITQvqO}I*GZ6Hj9ii}&IqVo7AK_g9uykLADwCdT{Qk}sF(l%002ovPDHLk FV1m`RTH^o! diff --git a/textures/mcl_doors_door_birch_lower_bottompart.png b/textures/mcl_doors_door_birch_lower_bottompart.png new file mode 100644 index 0000000000000000000000000000000000000000..b83344bdf08ecbefaba86fbcfd7b03e040b0fd53 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdnK1d_r6k3m6jo-3np?s#3$+ z^W!F0rYvaASlgdh(j|S7fq{XsB*-tA!Qt7BGzJC+bx#+^5RU7~1%CSMO-8|N;?o1f tlaqzR*;HK}9UT=_RoQMa-kHY4(DjY`cVk!UCI$uu22WQ%mvv4FO#s0%DU<*J literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_birch_lower_side.png b/textures/mcl_doors_door_birch_lower_side.png new file mode 100644 index 0000000000000000000000000000000000000000..e30be5b0bfb682c5bae1f13669ac074035e8bedc GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdr%jd_r6m85k1$-3np?s#3$+ z^W!F0rYvaAcy!~`>nGPP^+h`|FfcHd1o;IsI6S+N#=yW3=IP=X!Xe9gaHC+8g9z(^ zzx=*)i*p(b4VSW6FA(mdKI;Vst0Ox`w3IG5A diff --git a/textures/mcl_doors_door_birch_upper.png b/textures/mcl_doors_door_birch_upper.png index 3de49d6aba55b3cefef4d7c35459f15fc73a1baa..b04b0336e8bfcee6263b623506dc0a0a45e9608e 100644 GIT binary patch delta 194 zcmV;z06qWW0pkIXDSu#3MsQqEdSzCJZ(fsmWT1m+t&eWv*vjkV*6`}zb6Mqs0001h zNklwlQCG z4m!kfl5~5@ZQ!Vg6=}1{P)(lecq!ZKhEkmrv8H~1NI_U&p*wOf56Wdp^p(3EP{f?? wED1myOU8(Wp`6zz%SdA9?$)Cr=KSXL2mjwG6+WD2zyJUM07*qoM6N<$g7qa?YybcN delta 193 zcmV;y06zcY0pbCWDSwS_RFZRBn|)rYhG=U{KzUkB;@HaT30RO|$ zVz?M~@$bH_y7w5QN{I@x*iwsiip-zI+NaM-EEWO>1POS$k~&yX?9oN#wOM(W?;lQ9y31xr4SvX!4j!b00000NkvXXu0mjfdQ4q? diff --git a/textures/mcl_doors_door_birch_upper_side.png b/textures/mcl_doors_door_birch_upper_side.png new file mode 100644 index 0000000000000000000000000000000000000000..fd46bdf3f9164db0667ce853769a0cd67ad02507 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdoVYd_r9Fi*ghE-3np?s#3$+ z^W!F0raZcFiv4fJUj_yS#*!evUi^~Dnx$R5bmWGD*ciPZiwwT*#+fx*+&&t;ucLK6VZ&?tfc literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_crimson_side_lower.png b/textures/mcl_doors_door_crimson_side_lower.png deleted file mode 100644 index b7a6a87771642d836f1b4d295b9d93b393fab645..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdmu-d_r6$B_(xqbWBZ6eKqt$ zw2WdkjFLmW(lm^UG>xj%^;nQgjjGi3TQm)(qFff>Ux;Tb#L?^%C(Pw9FJ6BS2%!lXL zngWf*(#H&v+|x^TI!mrj=<$H;IGgN;ZSr1gwFMD_ ZgBL195n1LkFsA?j002ovPDHLkV1g$xKAZpm delta 157 zcmV;O0Al~g0l5K?B!3c6OjJbx002ESDp^ZEWL8K{LN;z-Q93~}&;S4c0d!JMQvg8b z*k%9#098puK~#7FHO$csfG`MzVMZv}1&U5!7cd7Cm~{VDOhMkhgySb7nb&Nz(OI4i z*o}ahB2EW>$Xaj0yTwMvIP*(I;{;~OO?3cGSanbxxMzpmy%y02-(L>YlD0aj00000 LNkvXXu0mjfb5A;N diff --git a/textures/mcl_doors_door_dark_oak_lower.png b/textures/mcl_doors_door_dark_oak_lower.png index 7c04fd880dcbfc3759b35d43425cd0d9c367bfae..56c5c936c31f7572c7ad01665e26382f559ee80c 100644 GIT binary patch delta 186 zcmV;r07d_{0oDPKB!3=IOjJb~85tuZBP}j4G&VRtH7`j$Hd949TT4GeP$qGaoS?`;t}`(QP-({0sor6mx>k*! obK0Gp{oJ;o<^t#ReWEP4KM$BPB#{T;G5`Po07*qoM6N<$g5=dm6#xJL delta 154 zcmV;L0A>Hy0k#2(9|HNvS&OA>)w7BSg7`Z$9egJl1opv$$Pgs4*tdu#}mT|q?m-VF8}}l07*qo IM6N<$f+9~qDF6Tf diff --git a/textures/mcl_doors_door_dark_oak_lower_bottompart.png b/textures/mcl_doors_door_dark_oak_lower_bottompart.png new file mode 100644 index 0000000000000000000000000000000000000000..3d28d876fa15e268c41160c78a916dfefe793daa GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdqsCd_r6q@^kD>^*wFPf?chm zz3r0&otds~pUc3&z*rLG7tG-B>_!>`1A~UAi(?4K^<)FyQr^-+&eAjkUQW)!!b0A( o03i{PpdgWuqy@4Eay1zgUT_^gVXe@@z`(%Z>FVdQ&MBb@0Mvvd%m4rY literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_dark_oak_lower_side.png b/textures/mcl_doors_door_dark_oak_lower_side.png new file mode 100644 index 0000000000000000000000000000000000000000..74e7dccffbda4af8b659f4e53d27a9fe06762f5c GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdnK1d_r6k3mA0u3{1={>`nDO zZOwvRt)ji{lLMXCJ}IhXU|?V@3GxeOaCmkjje&u|-P6S}gyVX0fnfpzlURCNfI+kA z3`O2E3EpWQ#SF$l8w^4Y@+=cz3p8jpY*FMnlW=sIg@}^qp$AN98+I79h&Q;N66Bd- a%wS>5@9wfV&w+t~fx*+&&t;ucLK6T{C^0es literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_dark_oak_side_lower.png b/textures/mcl_doors_door_dark_oak_side_lower.png deleted file mode 100644 index 3cf5b4fee8cc6480e38f798d6e308359c6c4e694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdm+fgWR1M)}51i$-uzCAK(+> zYHOn9=VTV?ZJ!e6k(Us7nC0^l1_lN#PZ!4!j_70okwQjhHbn_%iDM1khMOEDeI$4s od5#|1arWRA?mRx`DU1wrTBWV)O70mmFfcH9y85}Sb4q9e0N!0BwEzGB diff --git a/textures/mcl_doors_door_dark_oak_side_upper.png b/textures/mcl_doors_door_dark_oak_side_upper.png deleted file mode 100644 index 528358fe3d7c8d6df81bca282cf5cc5329722794..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdm+fgWR1M)}51i$-uzCAK(+> zYHOn9=VTV?ZJ!e6k(Us7nC0^l1_lOIPZ!4!j_b(@35ATzY-&7g$~}r2OsO1+1`mP? ij-J_ZHc=%6I>sQ6?I&YuRb>Wm1dF z0OzdMx%18@oP8t_(bCbc`phLets=8}4SH^vNOaq%MjoOv~lpz00000 LNkvXXu0mjf^>RQ2 diff --git a/textures/mcl_doors_door_dark_oak_upper_side.png b/textures/mcl_doors_door_dark_oak_upper_side.png new file mode 100644 index 0000000000000000000000000000000000000000..4dab51cf568d2b48c000f12b002d3b8663b450f0 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdnK1d_r6k3mA0u3{1={>`nDO zZOwvRt)ji{lLMXCJ}IhXU|?V@3GxeOaCmkjje&t7)YHW=ghQ6~;6~m<1|qBnJ_|3} z7RkWH=BVTBJ^kYeg}@^m^$a4#)2~aP^HvME8E&zyhc7p!;Tp3*L(PHpK?$ceKPWlN q>!KE*X^_f(+^*wFPf?chm zz3r0&otds~pUc3&z*rLG7tG-B>_!>`1B0rki(?4K_2dFx-onDdLf*szPF7}dHdRMQ l)l^5vRJL1;ccw8hc!_cQU#!^nf`Ng7!PC{xWt~$(698#QBMbll literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_iron_lower.png b/textures/mcl_doors_door_iron_lower.png index 6d0e368623eb7e1d6d83cae96cc9c1609a8840f6..5eb6e2e07335d40f0856cfd1213d3a02cc30fde4 100644 GIT binary patch delta 197 zcmV;$06PDP0@VSK7=Hu<0002(-QrRJ000|MOjJdRii)T7=H)@0000eEe}%w0022qOjJd0X=c5;xU8tA!oR(plaipEnxmke zs;8xce}IdFgp`nuhlGNZk&mC1l&Phofqi?QoSLMdo}HDG&Nl7@0001sNkls5Ct&(N$Q5O;{JDp4e)3hdypbYBC@)>yJX;+^JLx2Mshl_D6P95CPZPb$Bwn> z+nS73_8c1lJ#W6_kS3jmzs=06`;yb@&fJ-azL2Xf^(d&3Vst6)niI}J{dz7IOB>53 zlJwYC(d#YmNk<3TtbKnq8rxuPDk_*5;Fw`=f`#~EWhcn<*{+Ac zf%qyxSpR22QAko?*VqI(3VeBx8o1ONa4i%CR5R2Ufr!9iBTFc1YW{YmPEvf}=Cgbna$8hel;Ng}ekySrrIn)77c z%SJk}D6P95CPZPb$Bwn>+nS73_8c1lJ#W6_kS3jmzs=06`;yb@&fJ-azL2Xf^(d&3 zVst6)niI}J{dz7IOB>53lJwYC(d#YmNk<3TtbKnba9A zEt)rHLPuwNW8>rreLJ>p-mqrX+*vaY?A<+Y%H)mf)-W(I*#5frjDdlHza+>n_&*9@ zxN>L4LIwtg37#&FAr*|t3`~lwY^rQ*X~N={6NJ;5*{+!=aQJ#BteCMe>6_omb8>B6 zw^z^BP5YXcZXvn%kjakMuh`i5I*(?q46~M&*pWZunJxFe>c&Rp>pCVTKeL#fkH&5; ze;*{>*poNG<2@_eyNm@MpUf6Kdbi=qg$KR1JnCspF5kWx%<1Fs_Vs4-dU)@ z(3UnMEv+-ngCVVKMp=1hxd%f_+9YEo%QR1*8l$u{q1*T*(Paq@JNL3BQ zNJ=nZW>W(y7A*}5Rd>u_Xi6ziU}X;jF~S3wO2RxCn$kkc%R_-CPZFEz>Ka+-$uKDm cWNDfw0H$FqUqew;&Hw-a07*qoM6N<$f=VJ?G5`Po delta 257 zcmeyzIG1UHO1*A?Pl#)NX4;Yk^ERwqJ$Le?Mf2uN=;&;3Y@9ryZ^zcn8`i9vJ8Q;) zy}Rd4nY?k`n*aa*+q(St!oa}5UlQaO{2v7{T)8u2Ap--$1Wy;okP60R1|~&THdQvZ zG-2_}3Bu{jY}ZT_IDEYmR?OI#^v!SOIk~p3s@tn)>!y9pOSh2Rd&p$R>sM@Se4R%# zSB6@ywQcUv*=n@^u{(lb>14&PQW6m%k5^ZtTgM;PIZ7?OnzKk56U`9=+Re z<-&trTOReaCYNvD4CeH4c>8*@dd;0?V8&~9x0;c`CDo!j|JkA_1_lNOPgg&ebxsLQ E01Rk&$N&HU diff --git a/textures/mcl_doors_door_iron_upper_side.png b/textures/mcl_doors_door_iron_upper_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ee43be6caf098777faea0ce1f7b5a48fb54b28ad GIT binary patch literal 240 zcmVCqZtros$qO7D2EkAzw>AZWi$#u~_J{Lt4I9 z0YHp02`@p^45(5534wqGbBg#D9v4kf#GFkIVLL1*4YNZ5O$~VqH{&kZN qFX1@+SR9I+E)G3}GYP++r6GUKYa7P)7%5J7tv`{Uf6Hp!AnKc>xW5j>On+ zh#a;hutX_-B1Po%0}%r&z!)2W@B|iIPUvz$I{lvDLf1gYr@bOTMK#)LLYBJ3=_em= zKxNi~S;z;7lAtJMvvMxk&}Goc{;v#AVx+SL*@h!BQv3a z6T(Pq;D9n1GQbRtq>Qu%5JSxcCkiz%I!V5v+X t18i4j%ghWgBe7*hBAAiJFoVs20RWZ99HtFE;Kcv{002ovPDHLkV1iB@K&b!# delta 178 zcmV;j08Rhf0nP!CB!3uCOjJex|Nmn_FoRx2ZcI9MR6adDJ&S5iT{qRKs0DZIC4!p ze^ot+T0E0uKBlVB;Q#;t0d!JMQvg8b*k%9#0DVbBK~xAG1;N1y!cYu=;Xg6bqj?2A zmv#Z^0OBYe!(lwQfh#zGJJ_q2Hh2&o2=V*mQXKMyE$>6AUskzW>jhFKdm_#XI_~;x z$Iqa>$WI386#PgOQR#>|a0LuV4Fob%aX1H|KmcgqDS%dhj+-^}Hmc=hb93G7m&fT3 Xkg+CtAVFZM00000NkvXXu0mjf^ygGb delta 231 zcmVzQP+B^{`(JqFPya|X^@+p)nWqR>NczA^@8CjAzF-~G6gAaTPpW`=3ta-V zB}CE(cE}Gl_yf-|Fw65I6Ezn_81jWWfZ#wrKnEH404WDv&>vu6YI_}67id`1p;Gqd hqJuknV7|{Ds4v_51E&aheBb~8002ovPDHLkV1fWZQlqBijqiiN8+x-!JrNh9$z*rLG7tG-B>_!>`1A~UAi(?4K^<<5#mp<>_ z6oe?^! BE(`zw literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_jungle_lower_side.png b/textures/mcl_doors_door_jungle_lower_side.png new file mode 100644 index 0000000000000000000000000000000000000000..fdf996ad61a0a0593941739c50c862860bf2d69c GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdnK1d_r6k3m9x|ZQ~qFGTbbR ze68z4Z9AiECMVlXFuy;Kfq{XsB*-tA!Qt7BGzJESAWs*^5RT|%4(|j8rfVi_;_L#= zM_U>77A;{&GSD<^k!Wz8BYElo&$kqo#WoCQG+YfX9po`nP-Z-%;cRf|AkQ_UHU|#p m9>qJ1XEYKG*o|j+GxWU@nB6Yquf)K>z~JfX=d#Wzp$PyLhc+Gn literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_jungle_side_lower.png b/textures/mcl_doors_door_jungle_side_lower.png deleted file mode 100644 index 5ba2aee57e1367bf30bbda2434df06d017e4337e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdu#id_r6q7#L!$^zwYH%0ld# z<6Hw@HG_m0OM?7@862M7NMm4NQ1Wzf4B?1Q77$EmU`XU?Gg5PARCi`MCvf0oz`@*2 dN>dma?kg~}>M5^jGAlU!_ diff --git a/textures/mcl_doors_door_jungle_side_upper.png b/textures/mcl_doors_door_jungle_side_upper.png deleted file mode 100644 index 9f01843a6c2752997bcf9de652a46965cc9ec180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFL*h+%@f*HUdZyEbU1_lNz zPZ!6K3dZCUpEoususve%aE|PVT{BgVQ)<@Z7|#m~AyyWq47E;8YzZ2SraW@e4PNXE e*(TZgM)NY5uG7ubPoHNEGS1W0&t;ucLK6UHJ|JcQ diff --git a/textures/mcl_doors_door_jungle_upper.png b/textures/mcl_doors_door_jungle_upper.png index c69c15717cc619dae2a1ac498b41ac2df89d2808..401ae3f58bc719ed9ac74c3c028b5c3149c6cac8 100644 GIT binary patch delta 222 zcmV<403rYN0qy~i7=Hu<0002(-QrRJ0016POjJbx001m3EImCvR5>qRKs0DZIC4!p ze^ot+T0E0uKBlVB;Q#;t0d!JMQvg8b*k%9#0DehCK~xCW9mX*Z!XOj|;D2enibr5{ zD3;L#=R6bogE{keTEG#TNJv|-1mJ=}s z4nrXb15hlbZ1=zL3jRN0qIr-?BK6^rQo&W-YrK00000NkvXXu0mjfI3H9j diff --git a/textures/mcl_doors_door_jungle_upper_side.png b/textures/mcl_doors_door_jungle_upper_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b4cf9195932558cd657e5bf78300d85ba802cf GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdoVYd_r6q7#JAxb28j4ihQl> zLv1^wY$hk$kUfyA$-w$hCfi}5PC3XDPgg&ebxsLQ0IN(dA^-pY literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_mangrove_side_lower.png b/textures/mcl_doors_door_mangrove_side_lower.png deleted file mode 100644 index 9a217e1aeae12767442b0d4a41fc5dfe2a9ebeb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdoVYd_r6kjEs^)y|T>AO06xL z9ISesET(%{t@@sFoPmKs*VDx@gd;lHBT$5exh=s>Ls_z!F`PNQ<$#2nf!hkjDGz(1 jk8oU;nIY;Hz{YTX7cYm@5w}_f1_lOCS3j3^P6AO06xL z9ISesET(%{t@@sFoPmMC$kW9!gd;lHAV`FTxy{5)Lz(ATgLkWxlcb)(#E=;t96l`T pELfJ=N*wbzcD5m#zs-nYp()Rqqpb6785kHCJYD@<);T3K0RUT?CQASS diff --git a/textures/mcl_doors_door_spruce.png b/textures/mcl_doors_door_spruce.png index 3806a845f0865d4cd374662ed2758639a165098b..1b005b9b86b1645b49c4746680c6d4dfa3351a5a 100644 GIT binary patch delta 172 zcmV;d08{_#0oehNB#|)`e>^WHH8nLvH!Dj!E=)o@S41>pOgm#$N~~tLdjJ3c0d!JM zQvg8b*k%9#0ANW(K~xCWHOwIbfFKNo;a$N>)C714E6hN3lH>y9%@gRQ)qyX4<^2GV zg+qmRCwF+~P%)J@L>S8lm9GhU! z2T+1x?cc00005XRby_hR-=}IlCREy|oDl>8pR03<&W`1gs&dS)b?i3dXf$bU=baOZ_vNsNg|sQ#Y2k>n{Fmj9R7SvyL^S~%i0_3*P4Neh WuP;i1bqHku0000nq_ZP+?K`zYGnZ^tr}yl zj(|LUJ|+a==;1;oPsHARQE+P(zIl+{4KMle*%7OII+~?#VKe1}UnU}%{h)1SFmY1G miC$PwzzHGs00ByZsem!CS6aiho sV17MzL$25>b1xm?mds!;h~{FrDa1RUubxGcfq{X+)78&qol`;+03~E2JOBUy literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_spruce_lower_side.png b/textures/mcl_doors_door_spruce_lower_side.png new file mode 100644 index 0000000000000000000000000000000000000000..b65e82b1cb43494f1cc2eac8e73b779624d3266c GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdo_nd_r6q7#JiaC6$$xb#!zr zv{dc&HC&9fd@OWB>IuNJI7u!t-$-;gDD>wW*hQ`h+PnEu%A*YdGzzWY(EAD1_n=8 KKbLh*2~7YjCPfGU literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_spruce_side_lower.png b/textures/mcl_doors_door_spruce_side_lower.png deleted file mode 100644 index df63467a58ab641e4b2de0f66a0f897f6c6b8956..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdm+fgWR1M)}51i$-uxM7vK}( zDk&+cqoZSLpkt%2=3=hxZLR0yWF78elI&xh9O^YQwIZ8=fkDsH#W95AdUC;Yo{8i0(znR|ajZ>Sr7zoX-lMm0{QwVxMnSy1STxfq}u()z4*} HQ$iB}=EyBZ diff --git a/textures/mcl_doors_door_spruce_side_upper.png b/textures/mcl_doors_door_spruce_side_upper.png deleted file mode 100644 index 45b4f664d314f458efb378b1e0988ccab9f12fda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdm+fgWR1M)}51i$-uy%7~m7) zDk&+ctgNh~qho5IW23L;Vy^9Nt>@!p9qwY1>|>oA>NQDMTbzM`LD$p8F@z&J`9n_> zD;rOQMBED=Zi&Mp#}Xzvi8mVSB=Qu`XiSsfF_%#0ImN(WW#ExtF07Knz`(%Z>FVdQ I&MBb@0PWW%2><{9 diff --git a/textures/mcl_doors_door_spruce_upper.png b/textures/mcl_doors_door_spruce_upper.png index ee6c4a763bc7f5beb3aae1dc74f99b14dbe42862..3ef5c4c8185ca4849cbe9d393b3df26584ee0924 100644 GIT binary patch delta 214 zcmV;{04e|f0rCNmB!47OOjJb~85tuZBP=W|I4UJSFDNxNHAFKiOgJr6J}_B9F=I$H zYfLuSA=q62004BG@M=J!#{h>}F=}0s~KXxdZ7}Dc}a?e{0Aowmgnp QU;qFB07*qoM6N<$f*lD~$^ZZW delta 227 zcmV<90384F0sjGzB!2;OQb$4nuFf3k0000aP)t-s85tQPBO@#?sz>#+Oy29T5S8*=6LIf)qOUaP9CCMThn`2QsJs{dn_;lMU=_^Ea@8!9Q3Lq dV3IkwVLu@pCAk8ZT2=r6002ovPDHLkV1k?=Q{(^u diff --git a/textures/mcl_doors_door_spruce_upper_side.png b/textures/mcl_doors_door_spruce_upper_side.png new file mode 100644 index 0000000000000000000000000000000000000000..f52beb43762f3fa1d4e19def3f510058fdb7bf74 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdmu-d_r6q7#JiaC6$$xb#!zr zv{dc&HC&9fd@OWB>-9ba4#fxSkxKUn0osC9Izm w;O{3~>Lu*YWMma0YkfsnGK0M!nv3Dud)|W95jj? zHA|ed%3ZaqJ#-sA^_qPQIwLIR-*@Y>VPIe|@^ou%tn(UH}_I3kK#k1O5^>$(}&I5tL9XN_2PHUV0^Am`v@kL#mf2({o%na2fq{X+)78&qol`;+06YgP AWdHyG diff --git a/textures/mcl_doors_door_warped_side_upper_alt.png b/textures/mcl_doors_door_warped_side_upper_alt.png deleted file mode 100644 index e70bfb05522f6a9119f20f4b644466bebf149a84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdr%jd_r6$B_*YNU6ec>l$DiL zoUK&t&D6{dHLXpOL%p&xjMg$RFqnI~IEHXsPZn77f`OTBIY&vGK#w9vvc@5i!=;=D zw;q=0lQb|jXcO*v$ds&cP=ZS)plvg23nRmhC)RT$6@FSVFfcH9y85}Sb4q9e02yp2 A%m4rY diff --git a/textures/mcl_doors_door_wood_lower.png b/textures/mcl_doors_door_wood_lower.png index e69244b5678e9584754efec9ecbca53eef21cd76..81cc120562a24a09bf1e47a5a2508fdfda7e66f9 100644 GIT binary patch delta 183 zcmV;o07(DG0n-7HB!3l9OjJcoIxJE?Fk3}6WlTD4Qa^N9LwsIH%1?Oi0001aNklVmO)&F00~e{3|5qs;$#`$$2Wi+KrZ6I|A~zBb zSF#$(uceW)6irup@4}Lk=RW2Y&Kfe15$^ zXjTFPw}l%QU)kZA8|I!|{czh+J|SK$hL4Q@E1I&oUYs#s6TfSrR&x8-vuvx3)z(a8 lQ&o#t$@y-l%!5LvkH-WR=GJ*mU|?Wi@O1TaS?83{1OSaBJ`Df> literal 0 HcmV?d00001 diff --git a/textures/mcl_doors_door_wood_side_lower.png b/textures/mcl_doors_door_wood_side_lower.png deleted file mode 100644 index 95ef79d81d09f03f0b096b1093762917449894ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdm+fgWR1M)}51i$-uzCAK(+> zYHFb4Vy>O+V_g;F(UTjtwYkBOfq_BJ)5S4_BRV-CppcQ7&8MxA)2~f2k8PP$(iy`x bBZlp1@|hpcnVe)`U|{fc^>bP0l+XkKO%oxm diff --git a/textures/mcl_doors_door_wood_side_upper.png b/textures/mcl_doors_door_wood_side_upper.png deleted file mode 100644 index bc74c5de33ba0dd0ea2480a6afe3d397f9aaece6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdm+fgWR1M)}51i$-uzCAK(+> zn(Sj;72{!QpyOh$9cXXl^k2D^fq_BJ)5S4_<9c#JLLnnFn;K8s1P&|b860f_no1JW bm>4FqO1t*H`}3B8fq}u()z4*}Q$iB}77QQ= diff --git a/textures/mcl_doors_door_wood_upper.png b/textures/mcl_doors_door_wood_upper.png index 4e75538c27cbdc3e1aee7f8c7cdd63e5ef226666..8265e48ee0ba6910fe6b294d6d8e4224ac460085 100644 GIT binary patch delta 177 zcmV;i08ane0n!1GDSrTOY)m>VQa&(cOge2+KXh0_BEUUJ00001bW%=J06^y0W&i*H zZb?KzR0tgf!NCp0APfM(l@badN&`VI0LkzV3jPC!`)}oD=6y z?7}C^9NuG`!pa*g2&)b_Tv!#L3abE^F!hB{g_SG(f-v(jLMlFmRp`zZrWV`YZ`zeo fdg4v*?rv^>NFo-83RKR400000NkvXXu0mjfVQ)nR delta 184 zcmV;p07w7Q0oehNDSu;3J9=D5H83nhH!D#;GXMYoi>kiG00006bW%=J|NsC0{{XYU zq`v?F0B}h}K~#7F6w6T#!ypU;P=nTgvW@?VUI3K~q*C}F62AXcn&j&#wgC}Il7QUK ztF_UQ&D6{~-pZnUIp#Wc{dat3A=7f)mE01b-|f&q^0FP|iZRdh?7L#V>zXlFLRg}s msR(|^=NRK^&lDJ7?f?LFLKcIUb@$5v0000ae?fCTup|n{G8YKT#S6rz`(%Z>FVdQ&MBb@0MM@_$p8QV literal 0 HcmV?d00001 diff --git a/textures/mcl_mangrove_door_bottom.png b/textures/mcl_mangrove_door_bottom.png index 91c2df8b868b84f3843ddd3a382e58c0a04db3d2..a6b9182d77593f3e007cddc72b876a3c2538d4f1 100644 GIT binary patch delta 35 rcmcb{c#Uy_reu_+W}1#pk)B?ik$#VAwHy&-9=rjcY&O{8& delta 35 rcmcb{c#Uy_rev6|Zi10fmYG?pwMCPIRj-r9bPub@XTMq|I!yrp(P<3x diff --git a/textures/mcl_mangrove_door_bottom_bottompart.png b/textures/mcl_mangrove_door_bottom_bottompart.png new file mode 100644 index 0000000000000000000000000000000000000000..508be22a8d73e86b874a58f45ded865e26ac4137 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdnK1d_r6k3mBp_HPdu-iuCmA zjP!d<4W^svEwR)sp2K6pz`(#*666=m;PC858Uq7^hNp{T2*>qg18#mVO<{ljw18rN uA6;R7?xcV+Lz6WuVz zObw=+=`FF;t@^F3#=yY9SQ6wH%;50sMj8VHgPW&|V+hCfWP#!Y2Bu>oY@r6tnk|fa zN@)yfD#jg75(jx^bWIgKz@yBznMI)4l2nOumP8F^2E8V( WZvl;a_AxLpFnGH9xvX0NYD^5f zER3dF8Z59i)Lm!5#K6G7SQ6wH%;50sMj8VHL!hUNV+hCf zR~dDL4lP*2kS1X`qjBksiA#K#4=63I3=E#GelF{r5}E)xmNpgu literal 0 HcmV?d00001 diff --git a/textures/mcl_mangrove_door_top_toppart.png b/textures/mcl_mangrove_door_top_toppart.png new file mode 100644 index 0000000000000000000000000000000000000000..95a9d1f0c6a6780342dfe89706982e49e259f576 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdnK1d_r6k3m77`v{Ll+3JeTt zOboj$jHX%|EU+~U)(D%xz`(#*666=m;PC858Uq7^hNp{T2*>qggF-`-Lcub_v;ci> u9bI8>{Uif!ZXeBHe(j_MvIlZC8D8u08Ry-$tY=_gVDNPHb6Mw<&;$T}7bIx_ literal 0 HcmV?d00001 diff --git a/textures/mcl_mangrove_doors.png b/textures/mcl_mangrove_doors.png index 1f495d99766416f15f8f070955d0b8e663ee23f7..d23a74ab1c9393afcaec1ce6d9cf23678ba27487 100644 GIT binary patch delta 167 zcmV;Y09gOV0mA{1B!3uCOjJc-Z~$2l>q%v_BLmkX83o2CuGt?5(R25)~q2{DP%yCbH8X#x_v;wAG49tKy0|2p! V6mbPLs>A>Q002ovPDHLkV1kLbH&Orq delta 170 zcmX@ic#Ls^O1*S|Plzi67=-ESCKwrInVFSZTQoUX^*UKh_prLZO#&pzSQ6wH%;50s zMj8VHL!_sRV+codaza8uDOX@=0s~X`qcU!0fx{*iS47TqyjY>Z&tQ1y^6kq9crGsp z=t$~+RK_cDnCVP`f1WYB@tN*ZXL%C37CxKee5O-bqh0C+*A}K_v9f0xESMQI)g?C? Sd}vew+3D%(=d#Wzp$Py{9y;g%