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 82a500baf..8235deace 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 ca3a31862..6a074e137 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 2583c18f9..000000000 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 000000000..beeedfa5e 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 000000000..9e1600a99 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 e21c2faa2..000000000 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 000000000..dbeb42b96 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 000000000..f1977bf83 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 dc325a00f..52a123d4c 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 8da6915f2..77da720ff 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 000000000..31a1afe29 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 000000000..934abe3c1 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 c55f28ec7..f6bc75687 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 000000000..e941e8844 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 000000000..ac3e1dff4 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 66639b4c2..2359fc69c 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 942eff928..c8715f548 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 000000000..867cd39e5 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 000000000..30bc9859d 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 9ad9e2c60..8066ab6b5 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 000000000..732afaf8b 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 000000000..35a48ab9a 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 efbae0711..05e3f44d6 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 11657784d..f671d9baa 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 510c04728..3bf3bc676 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 000000000..63820d54c 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 000000000..65db1e658 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 4dbbf38c4..000000000 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 f1c04b99e..000000000 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 3fa7b30d1..f982c611e 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 000000000..25edc1f1d 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 000000000..ab01973ad 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 58af89e58..bcc111422 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 cb09fef6b..4b189095c 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 000000000..b83344bdf 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 000000000..e30be5b0b 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 cae115020..000000000 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 a6805e4f6..000000000 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 3de49d6ab..b04b0336e 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 000000000..fd46bdf3f 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 000000000..1555938e6 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 b7a6a8777..000000000 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 bb042109b..000000000 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 7b827cc46..9fccbd44d 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 7c04fd880..56c5c936c 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 000000000..3d28d876f 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 000000000..74e7dccff 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 3cf5b4fee..000000000 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 528358fe3..000000000 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 d3ccecf4f..e826eabdd 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 000000000..4dab51cf5 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 000000000..b06778288 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 6d0e36862..5eb6e2e07 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 000000000..f029e14fe 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 000000000..e005c24b2 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 6d0e36862..000000000 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 a30b93003..000000000 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 093d91ce3..867839641 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 000000000..ee43be6ca 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 000000000..045f8c1a1 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 29032482c..b5672cb1b 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 dde5be774..c44e6f8f8 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 000000000..9aadfb31a 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 000000000..fdf996ad6 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 5ba2aee57..000000000 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 9f01843a6..000000000 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 c69c15717..401ae3f58 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 000000000..a0b4cf919 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 000000000..d0ab14854 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 9a217e1ae..000000000 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 2b27f4aeb..000000000 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 3806a845f..1b005b9b8 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 dc17e2125..fdbca4167 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 000000000..a28a2d69f 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 000000000..b65e82b1c 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 df63467a5..000000000 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 45b4f664d..000000000 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 ee6c4a763..3ef5c4c81 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 000000000..f52beb437 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 000000000..f1a8bd73e 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 b93dc629e..000000000 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 7ba0bcff6..000000000 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 e0bfa8581..000000000 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 e70bfb055..000000000 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 e69244b56..81cc12056 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 000000000..22274cabd 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 000000000..f73f7a3e1 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 95ef79d81..000000000 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 bc74c5de3..000000000 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 4e75538c2..8265e48ee 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 000000000..efecb1bb4 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 000000000..7ae6fc712 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 91c2df8b8..a6b9182d7 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 000000000..508be22a8 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 000000000..d5de6fbd1 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 8691b0f93..d7068ba18 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 000000000..df586adf6 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 000000000..95a9d1f0c 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 1f495d997..d23a74ab1 100644 Binary files a/textures/mcl_mangrove_doors.png and b/textures/mcl_mangrove_doors.png differ