diff --git a/mods/ITEMS/mcl_bamboo/bamboo_items.lua b/mods/ITEMS/mcl_bamboo/bamboo_items.lua index 63f07f8964..dbc8e6946a 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 03d0a7caaf..740f74a5b6 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 e6eef4e0dd..ac9708b4f0 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 c998f65387..142bfa52e7 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 dd2b653c48..3698ce54f4 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 82a500baf8..8235deace6 100644 Binary files a/textures/doors_item_steel.png and b/textures/doors_item_steel.png differ diff --git a/textures/doors_item_wood.png b/textures/doors_item_wood.png index ca3a31862e..6a074e1371 100644 Binary files a/textures/doors_item_wood.png and b/textures/doors_item_wood.png differ diff --git a/textures/mcl_bamboo_door_bottom_alt.png b/textures/mcl_bamboo_door_bottom_alt.png deleted file mode 100644 index 2583c18f9f..0000000000 Binary files a/textures/mcl_bamboo_door_bottom_alt.png and /dev/null differ diff --git a/textures/mcl_bamboo_door_bottom_bottompart.png b/textures/mcl_bamboo_door_bottom_bottompart.png new file mode 100644 index 0000000000..beeedfa5ea Binary files /dev/null and b/textures/mcl_bamboo_door_bottom_bottompart.png differ diff --git a/textures/mcl_bamboo_door_bottom_side.png b/textures/mcl_bamboo_door_bottom_side.png new file mode 100644 index 0000000000..9e1600a99e Binary files /dev/null and b/textures/mcl_bamboo_door_bottom_side.png differ diff --git a/textures/mcl_bamboo_door_top_alt.png b/textures/mcl_bamboo_door_top_alt.png deleted file mode 100644 index e21c2faa2e..0000000000 Binary files a/textures/mcl_bamboo_door_top_alt.png and /dev/null differ diff --git a/textures/mcl_bamboo_door_top_side.png b/textures/mcl_bamboo_door_top_side.png new file mode 100644 index 0000000000..dbeb42b965 Binary files /dev/null and b/textures/mcl_bamboo_door_top_side.png differ diff --git a/textures/mcl_bamboo_door_top_toppart.png b/textures/mcl_bamboo_door_top_toppart.png new file mode 100644 index 0000000000..f1977bf83f Binary files /dev/null and b/textures/mcl_bamboo_door_top_toppart.png differ diff --git a/textures/mcl_crimson_crimson_door.png b/textures/mcl_crimson_crimson_door.png index dc325a00fe..52a123d4cb 100644 Binary files a/textures/mcl_crimson_crimson_door.png and b/textures/mcl_crimson_crimson_door.png differ diff --git a/textures/mcl_crimson_crimson_door_bottom.png b/textures/mcl_crimson_crimson_door_bottom.png index 8da6915f2e..77da720ff0 100644 Binary files a/textures/mcl_crimson_crimson_door_bottom.png and b/textures/mcl_crimson_crimson_door_bottom.png differ diff --git a/textures/mcl_crimson_crimson_door_bottom_bottompart.png b/textures/mcl_crimson_crimson_door_bottom_bottompart.png new file mode 100644 index 0000000000..31a1afe29d Binary files /dev/null and b/textures/mcl_crimson_crimson_door_bottom_bottompart.png differ diff --git a/textures/mcl_crimson_crimson_door_bottom_side.png b/textures/mcl_crimson_crimson_door_bottom_side.png new file mode 100644 index 0000000000..934abe3c16 Binary files /dev/null and b/textures/mcl_crimson_crimson_door_bottom_side.png differ diff --git a/textures/mcl_crimson_crimson_door_top.png b/textures/mcl_crimson_crimson_door_top.png index c55f28ec70..f6bc756874 100644 Binary files a/textures/mcl_crimson_crimson_door_top.png and b/textures/mcl_crimson_crimson_door_top.png differ diff --git a/textures/mcl_crimson_crimson_door_top_side.png b/textures/mcl_crimson_crimson_door_top_side.png new file mode 100644 index 0000000000..e941e88443 Binary files /dev/null and b/textures/mcl_crimson_crimson_door_top_side.png differ 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 0000000000..ac3e1dff43 Binary files /dev/null and b/textures/mcl_crimson_crimson_door_top_toppart.png differ diff --git a/textures/mcl_crimson_warped_door.png b/textures/mcl_crimson_warped_door.png index 66639b4c2f..2359fc69cc 100644 Binary files a/textures/mcl_crimson_warped_door.png and b/textures/mcl_crimson_warped_door.png differ diff --git a/textures/mcl_crimson_warped_door_bottom.png b/textures/mcl_crimson_warped_door_bottom.png index 942eff9286..c8715f5484 100644 Binary files a/textures/mcl_crimson_warped_door_bottom.png and b/textures/mcl_crimson_warped_door_bottom.png differ 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 0000000000..867cd39e5a Binary files /dev/null and b/textures/mcl_crimson_warped_door_bottom_bottompart.png differ diff --git a/textures/mcl_crimson_warped_door_bottom_side.png b/textures/mcl_crimson_warped_door_bottom_side.png new file mode 100644 index 0000000000..30bc9859dd Binary files /dev/null and b/textures/mcl_crimson_warped_door_bottom_side.png differ diff --git a/textures/mcl_crimson_warped_door_top.png b/textures/mcl_crimson_warped_door_top.png index 9ad9e2c603..8066ab6b54 100644 Binary files a/textures/mcl_crimson_warped_door_top.png and b/textures/mcl_crimson_warped_door_top.png differ diff --git a/textures/mcl_crimson_warped_door_top_side.png b/textures/mcl_crimson_warped_door_top_side.png new file mode 100644 index 0000000000..732afaf8b6 Binary files /dev/null and b/textures/mcl_crimson_warped_door_top_side.png differ 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 0000000000..35a48ab9a0 Binary files /dev/null and b/textures/mcl_crimson_warped_door_top_toppart.png differ diff --git a/textures/mcl_crimson_warped_trapdoor.png b/textures/mcl_crimson_warped_trapdoor.png index efbae07114..05e3f44d6e 100644 Binary files a/textures/mcl_crimson_warped_trapdoor.png and b/textures/mcl_crimson_warped_trapdoor.png differ diff --git a/textures/mcl_doors_door_acacia.png b/textures/mcl_doors_door_acacia.png index 11657784df..f671d9baac 100644 Binary files a/textures/mcl_doors_door_acacia.png and b/textures/mcl_doors_door_acacia.png differ diff --git a/textures/mcl_doors_door_acacia_lower.png b/textures/mcl_doors_door_acacia_lower.png index 510c047285..3bf3bc676b 100644 Binary files a/textures/mcl_doors_door_acacia_lower.png and b/textures/mcl_doors_door_acacia_lower.png differ diff --git a/textures/mcl_doors_door_acacia_lower_bottompart.png b/textures/mcl_doors_door_acacia_lower_bottompart.png new file mode 100644 index 0000000000..63820d54c4 Binary files /dev/null and b/textures/mcl_doors_door_acacia_lower_bottompart.png differ 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 0000000000..65db1e658e Binary files /dev/null and b/textures/mcl_doors_door_acacia_lower_side.png differ 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 4dbbf38c4c..0000000000 Binary files a/textures/mcl_doors_door_acacia_side_lower.png and /dev/null differ diff --git a/textures/mcl_doors_door_acacia_side_upper.png b/textures/mcl_doors_door_acacia_side_upper.png deleted file mode 100644 index f1c04b99ec..0000000000 Binary files a/textures/mcl_doors_door_acacia_side_upper.png and /dev/null differ diff --git a/textures/mcl_doors_door_acacia_upper.png b/textures/mcl_doors_door_acacia_upper.png index 3fa7b30d1a..f982c611ec 100644 Binary files a/textures/mcl_doors_door_acacia_upper.png and b/textures/mcl_doors_door_acacia_upper.png differ 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 0000000000..25edc1f1d0 Binary files /dev/null and b/textures/mcl_doors_door_acacia_upper_side.png differ 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 0000000000..ab01973adf Binary files /dev/null and b/textures/mcl_doors_door_acacia_upper_toppart.png differ diff --git a/textures/mcl_doors_door_birch.png b/textures/mcl_doors_door_birch.png index 58af89e580..bcc1114224 100644 Binary files a/textures/mcl_doors_door_birch.png and b/textures/mcl_doors_door_birch.png differ diff --git a/textures/mcl_doors_door_birch_lower.png b/textures/mcl_doors_door_birch_lower.png index cb09fef6bb..4b189095c9 100644 Binary files a/textures/mcl_doors_door_birch_lower.png and b/textures/mcl_doors_door_birch_lower.png differ 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 0000000000..b83344bdf0 Binary files /dev/null and b/textures/mcl_doors_door_birch_lower_bottompart.png differ 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 0000000000..e30be5b0bf Binary files /dev/null and b/textures/mcl_doors_door_birch_lower_side.png differ diff --git a/textures/mcl_doors_door_birch_side_lower.png b/textures/mcl_doors_door_birch_side_lower.png deleted file mode 100644 index cae1150208..0000000000 Binary files a/textures/mcl_doors_door_birch_side_lower.png and /dev/null differ diff --git a/textures/mcl_doors_door_birch_side_upper.png b/textures/mcl_doors_door_birch_side_upper.png deleted file mode 100644 index a6805e4f69..0000000000 Binary files a/textures/mcl_doors_door_birch_side_upper.png and /dev/null differ diff --git a/textures/mcl_doors_door_birch_upper.png b/textures/mcl_doors_door_birch_upper.png index 3de49d6aba..b04b0336e8 100644 Binary files a/textures/mcl_doors_door_birch_upper.png and b/textures/mcl_doors_door_birch_upper.png differ 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 0000000000..fd46bdf3f9 Binary files /dev/null and b/textures/mcl_doors_door_birch_upper_side.png differ diff --git a/textures/mcl_doors_door_birch_upper_toppart.png b/textures/mcl_doors_door_birch_upper_toppart.png new file mode 100644 index 0000000000..1555938e6d Binary files /dev/null and b/textures/mcl_doors_door_birch_upper_toppart.png differ 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 b7a6a87771..0000000000 Binary files a/textures/mcl_doors_door_crimson_side_lower.png and /dev/null differ diff --git a/textures/mcl_doors_door_crimson_side_upper.png b/textures/mcl_doors_door_crimson_side_upper.png deleted file mode 100644 index bb042109b6..0000000000 Binary files a/textures/mcl_doors_door_crimson_side_upper.png and /dev/null differ diff --git a/textures/mcl_doors_door_dark_oak.png b/textures/mcl_doors_door_dark_oak.png index 7b827cc468..9fccbd44dd 100644 Binary files a/textures/mcl_doors_door_dark_oak.png and b/textures/mcl_doors_door_dark_oak.png differ diff --git a/textures/mcl_doors_door_dark_oak_lower.png b/textures/mcl_doors_door_dark_oak_lower.png index 7c04fd880d..56c5c936c3 100644 Binary files a/textures/mcl_doors_door_dark_oak_lower.png and b/textures/mcl_doors_door_dark_oak_lower.png differ 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 0000000000..3d28d876fa Binary files /dev/null and b/textures/mcl_doors_door_dark_oak_lower_bottompart.png differ 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 0000000000..74e7dccffb Binary files /dev/null and b/textures/mcl_doors_door_dark_oak_lower_side.png differ 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 3cf5b4fee8..0000000000 Binary files a/textures/mcl_doors_door_dark_oak_side_lower.png and /dev/null differ 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 528358fe3d..0000000000 Binary files a/textures/mcl_doors_door_dark_oak_side_upper.png and /dev/null differ diff --git a/textures/mcl_doors_door_dark_oak_upper.png b/textures/mcl_doors_door_dark_oak_upper.png index d3ccecf4f1..e826eabddf 100644 Binary files a/textures/mcl_doors_door_dark_oak_upper.png and b/textures/mcl_doors_door_dark_oak_upper.png differ 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 0000000000..4dab51cf56 Binary files /dev/null and b/textures/mcl_doors_door_dark_oak_upper_side.png differ diff --git a/textures/mcl_doors_door_dark_oak_upper_toppart.png b/textures/mcl_doors_door_dark_oak_upper_toppart.png new file mode 100644 index 0000000000..b067782888 Binary files /dev/null and b/textures/mcl_doors_door_dark_oak_upper_toppart.png differ diff --git a/textures/mcl_doors_door_iron_lower.png b/textures/mcl_doors_door_iron_lower.png index 6d0e368623..5eb6e2e073 100644 Binary files a/textures/mcl_doors_door_iron_lower.png and b/textures/mcl_doors_door_iron_lower.png differ diff --git a/textures/mcl_doors_door_iron_lower_bottompart.png b/textures/mcl_doors_door_iron_lower_bottompart.png new file mode 100644 index 0000000000..f029e14fe3 Binary files /dev/null and b/textures/mcl_doors_door_iron_lower_bottompart.png differ diff --git a/textures/mcl_doors_door_iron_lower_side.png b/textures/mcl_doors_door_iron_lower_side.png new file mode 100644 index 0000000000..e005c24b20 Binary files /dev/null and b/textures/mcl_doors_door_iron_lower_side.png differ diff --git a/textures/mcl_doors_door_iron_side_lower.png b/textures/mcl_doors_door_iron_side_lower.png deleted file mode 100644 index 6d0e368623..0000000000 Binary files a/textures/mcl_doors_door_iron_side_lower.png and /dev/null differ diff --git a/textures/mcl_doors_door_iron_side_upper.png b/textures/mcl_doors_door_iron_side_upper.png deleted file mode 100644 index a30b93003b..0000000000 Binary files a/textures/mcl_doors_door_iron_side_upper.png and /dev/null differ diff --git a/textures/mcl_doors_door_iron_upper.png b/textures/mcl_doors_door_iron_upper.png index 093d91ce37..8678396413 100644 Binary files a/textures/mcl_doors_door_iron_upper.png and b/textures/mcl_doors_door_iron_upper.png differ 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 0000000000..ee43be6caf Binary files /dev/null and b/textures/mcl_doors_door_iron_upper_side.png differ diff --git a/textures/mcl_doors_door_iron_upper_toppart.png b/textures/mcl_doors_door_iron_upper_toppart.png new file mode 100644 index 0000000000..045f8c1a1b Binary files /dev/null and b/textures/mcl_doors_door_iron_upper_toppart.png differ diff --git a/textures/mcl_doors_door_jungle.png b/textures/mcl_doors_door_jungle.png index 29032482c2..b5672cb1b5 100644 Binary files a/textures/mcl_doors_door_jungle.png and b/textures/mcl_doors_door_jungle.png differ diff --git a/textures/mcl_doors_door_jungle_lower.png b/textures/mcl_doors_door_jungle_lower.png index dde5be774b..c44e6f8f80 100644 Binary files a/textures/mcl_doors_door_jungle_lower.png and b/textures/mcl_doors_door_jungle_lower.png differ diff --git a/textures/mcl_doors_door_jungle_lower_bottompart.png b/textures/mcl_doors_door_jungle_lower_bottompart.png new file mode 100644 index 0000000000..9aadfb31a2 Binary files /dev/null and b/textures/mcl_doors_door_jungle_lower_bottompart.png differ 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 0000000000..fdf996ad61 Binary files /dev/null and b/textures/mcl_doors_door_jungle_lower_side.png differ 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 5ba2aee57e..0000000000 Binary files a/textures/mcl_doors_door_jungle_side_lower.png and /dev/null differ 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 9f01843a6c..0000000000 Binary files a/textures/mcl_doors_door_jungle_side_upper.png and /dev/null differ diff --git a/textures/mcl_doors_door_jungle_upper.png b/textures/mcl_doors_door_jungle_upper.png index c69c15717c..401ae3f58b 100644 Binary files a/textures/mcl_doors_door_jungle_upper.png and b/textures/mcl_doors_door_jungle_upper.png differ 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 0000000000..a0b4cf9195 Binary files /dev/null and b/textures/mcl_doors_door_jungle_upper_side.png differ diff --git a/textures/mcl_doors_door_jungle_upper_toppart.png b/textures/mcl_doors_door_jungle_upper_toppart.png new file mode 100644 index 0000000000..d0ab14854e Binary files /dev/null and b/textures/mcl_doors_door_jungle_upper_toppart.png differ 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 9a217e1aea..0000000000 Binary files a/textures/mcl_doors_door_mangrove_side_lower.png and /dev/null differ diff --git a/textures/mcl_doors_door_mangrove_side_upper.png b/textures/mcl_doors_door_mangrove_side_upper.png deleted file mode 100644 index 2b27f4aebb..0000000000 Binary files a/textures/mcl_doors_door_mangrove_side_upper.png and /dev/null differ diff --git a/textures/mcl_doors_door_spruce.png b/textures/mcl_doors_door_spruce.png index 3806a845f0..1b005b9b86 100644 Binary files a/textures/mcl_doors_door_spruce.png and b/textures/mcl_doors_door_spruce.png differ diff --git a/textures/mcl_doors_door_spruce_lower.png b/textures/mcl_doors_door_spruce_lower.png index dc17e21258..fdbca4167a 100644 Binary files a/textures/mcl_doors_door_spruce_lower.png and b/textures/mcl_doors_door_spruce_lower.png differ diff --git a/textures/mcl_doors_door_spruce_lower_bottompart.png b/textures/mcl_doors_door_spruce_lower_bottompart.png new file mode 100644 index 0000000000..a28a2d69f5 Binary files /dev/null and b/textures/mcl_doors_door_spruce_lower_bottompart.png differ 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 0000000000..b65e82b1cb Binary files /dev/null and b/textures/mcl_doors_door_spruce_lower_side.png differ 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 df63467a58..0000000000 Binary files a/textures/mcl_doors_door_spruce_side_lower.png and /dev/null differ 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 45b4f664d3..0000000000 Binary files a/textures/mcl_doors_door_spruce_side_upper.png and /dev/null differ diff --git a/textures/mcl_doors_door_spruce_upper.png b/textures/mcl_doors_door_spruce_upper.png index ee6c4a763b..3ef5c4c818 100644 Binary files a/textures/mcl_doors_door_spruce_upper.png and b/textures/mcl_doors_door_spruce_upper.png differ 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 0000000000..f52beb4376 Binary files /dev/null and b/textures/mcl_doors_door_spruce_upper_side.png differ diff --git a/textures/mcl_doors_door_spruce_upper_toppart.png b/textures/mcl_doors_door_spruce_upper_toppart.png new file mode 100644 index 0000000000..f1a8bd73e6 Binary files /dev/null and b/textures/mcl_doors_door_spruce_upper_toppart.png differ diff --git a/textures/mcl_doors_door_warped_side_lower.png b/textures/mcl_doors_door_warped_side_lower.png deleted file mode 100644 index b93dc629e0..0000000000 Binary files a/textures/mcl_doors_door_warped_side_lower.png and /dev/null differ diff --git a/textures/mcl_doors_door_warped_side_lower_alt.png b/textures/mcl_doors_door_warped_side_lower_alt.png deleted file mode 100644 index 7ba0bcff64..0000000000 Binary files a/textures/mcl_doors_door_warped_side_lower_alt.png and /dev/null differ diff --git a/textures/mcl_doors_door_warped_side_upper.png b/textures/mcl_doors_door_warped_side_upper.png deleted file mode 100644 index e0bfa85818..0000000000 Binary files a/textures/mcl_doors_door_warped_side_upper.png and /dev/null differ 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 e70bfb0552..0000000000 Binary files a/textures/mcl_doors_door_warped_side_upper_alt.png and /dev/null differ diff --git a/textures/mcl_doors_door_wood_lower.png b/textures/mcl_doors_door_wood_lower.png index e69244b567..81cc120562 100644 Binary files a/textures/mcl_doors_door_wood_lower.png and b/textures/mcl_doors_door_wood_lower.png differ diff --git a/textures/mcl_doors_door_wood_lower_bottompart.png b/textures/mcl_doors_door_wood_lower_bottompart.png new file mode 100644 index 0000000000..22274cabd1 Binary files /dev/null and b/textures/mcl_doors_door_wood_lower_bottompart.png differ diff --git a/textures/mcl_doors_door_wood_lower_side.png b/textures/mcl_doors_door_wood_lower_side.png new file mode 100644 index 0000000000..f73f7a3e1e Binary files /dev/null and b/textures/mcl_doors_door_wood_lower_side.png differ 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 95ef79d81d..0000000000 Binary files a/textures/mcl_doors_door_wood_side_lower.png and /dev/null differ 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 bc74c5de33..0000000000 Binary files a/textures/mcl_doors_door_wood_side_upper.png and /dev/null differ diff --git a/textures/mcl_doors_door_wood_upper.png b/textures/mcl_doors_door_wood_upper.png index 4e75538c27..8265e48ee0 100644 Binary files a/textures/mcl_doors_door_wood_upper.png and b/textures/mcl_doors_door_wood_upper.png differ diff --git a/textures/mcl_doors_door_wood_upper_side.png b/textures/mcl_doors_door_wood_upper_side.png new file mode 100644 index 0000000000..efecb1bb42 Binary files /dev/null and b/textures/mcl_doors_door_wood_upper_side.png differ diff --git a/textures/mcl_doors_door_wood_upper_toppart.png b/textures/mcl_doors_door_wood_upper_toppart.png new file mode 100644 index 0000000000..7ae6fc712f Binary files /dev/null and b/textures/mcl_doors_door_wood_upper_toppart.png differ diff --git a/textures/mcl_mangrove_door_bottom.png b/textures/mcl_mangrove_door_bottom.png index 91c2df8b86..a6b9182d77 100644 Binary files a/textures/mcl_mangrove_door_bottom.png and b/textures/mcl_mangrove_door_bottom.png differ diff --git a/textures/mcl_mangrove_door_bottom_bottompart.png b/textures/mcl_mangrove_door_bottom_bottompart.png new file mode 100644 index 0000000000..508be22a8d Binary files /dev/null and b/textures/mcl_mangrove_door_bottom_bottompart.png differ diff --git a/textures/mcl_mangrove_door_bottom_side.png b/textures/mcl_mangrove_door_bottom_side.png new file mode 100644 index 0000000000..d5de6fbd1d Binary files /dev/null and b/textures/mcl_mangrove_door_bottom_side.png differ diff --git a/textures/mcl_mangrove_door_top.png b/textures/mcl_mangrove_door_top.png index 8691b0f93f..d7068ba18a 100644 Binary files a/textures/mcl_mangrove_door_top.png and b/textures/mcl_mangrove_door_top.png differ diff --git a/textures/mcl_mangrove_door_top_side.png b/textures/mcl_mangrove_door_top_side.png new file mode 100644 index 0000000000..df586adf69 Binary files /dev/null and b/textures/mcl_mangrove_door_top_side.png differ diff --git a/textures/mcl_mangrove_door_top_toppart.png b/textures/mcl_mangrove_door_top_toppart.png new file mode 100644 index 0000000000..95a9d1f0c6 Binary files /dev/null and b/textures/mcl_mangrove_door_top_toppart.png differ diff --git a/textures/mcl_mangrove_doors.png b/textures/mcl_mangrove_doors.png index 1f495d9976..d23a74ab1c 100644 Binary files a/textures/mcl_mangrove_doors.png and b/textures/mcl_mangrove_doors.png differ