From da9579846cc856c8f2818e880c411c03460d7e14 Mon Sep 17 00:00:00 2001 From: PenguinDad Date: Wed, 16 Apr 2014 16:31:30 +0200 Subject: [PATCH] Added Glass and Obsidian Glass door (doors mod) --- mods/doors/README.txt | 27 ++- mods/doors/init.lua | 216 +++++++++++++++--- mods/doors/sounds/door_close.ogg | Bin 0 -> 20157 bytes mods/doors/sounds/door_open.ogg | Bin 0 -> 11915 bytes mods/doors/textures/door_brown.png | Bin 109 -> 109 bytes mods/doors/textures/door_glass.png | Bin 0 -> 172 bytes mods/doors/textures/door_glass_a.png | Bin 0 -> 978 bytes mods/doors/textures/door_glass_b.png | Bin 0 -> 978 bytes mods/doors/textures/door_glass_side.png | Bin 0 -> 90 bytes mods/doors/textures/door_grey.png | Bin 109 -> 109 bytes mods/doors/textures/door_obsidian_glass.png | Bin 0 -> 207 bytes mods/doors/textures/door_obsidian_glass_a.png | Bin 0 -> 293 bytes mods/doors/textures/door_obsidian_glass_b.png | Bin 0 -> 293 bytes .../textures/door_obsidian_glass_side.png | Bin 0 -> 90 bytes mods/doors/textures/door_steel.png | Bin 185 -> 230 bytes mods/doors/textures/door_steel_a.png | Bin 178 -> 223 bytes mods/doors/textures/door_steel_b.png | Bin 181 -> 206 bytes mods/doors/textures/door_trapdoor.png | Bin 0 -> 390 bytes mods/doors/textures/door_trapdoor_side.png | Bin 0 -> 276 bytes mods/doors/textures/door_wood.png | Bin 132 -> 166 bytes mods/doors/textures/door_wood_a.png | Bin 190 -> 245 bytes mods/doors/textures/door_wood_b.png | Bin 184 -> 216 bytes 22 files changed, 212 insertions(+), 31 deletions(-) create mode 100644 mods/doors/sounds/door_close.ogg create mode 100644 mods/doors/sounds/door_open.ogg create mode 100644 mods/doors/textures/door_glass.png create mode 100644 mods/doors/textures/door_glass_a.png create mode 100644 mods/doors/textures/door_glass_b.png create mode 100644 mods/doors/textures/door_glass_side.png create mode 100644 mods/doors/textures/door_obsidian_glass.png create mode 100644 mods/doors/textures/door_obsidian_glass_a.png create mode 100644 mods/doors/textures/door_obsidian_glass_b.png create mode 100644 mods/doors/textures/door_obsidian_glass_side.png create mode 100644 mods/doors/textures/door_trapdoor.png create mode 100644 mods/doors/textures/door_trapdoor_side.png diff --git a/mods/doors/README.txt b/mods/doors/README.txt index f1d6ab24..146af8ed 100644 --- a/mods/doors/README.txt +++ b/mods/doors/README.txt @@ -1,9 +1,11 @@ Minetest 0.4 mod: doors ======================= +version: 1.3 License of source code: ----------------------- Copyright (C) 2012 PilzAdam +modified by BlockMen (added sounds, glassdoors[glass, obsidian glass], trapdoor) This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it @@ -11,13 +13,34 @@ and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See http://sam.zoy.org/wtfpl/COPYING for more details. -License of media (textures and sounds) +License of textures -------------------------------------- -Textures created by Fernando Zapata (CC BY-SA 3.0): +following Textures created by Fernando Zapata (CC BY-SA 3.0): door_wood.png door_wood_a.png door_wood_a_r.png door_wood_b.png door_wood_b_r.png +following Textures created by BlockMen (WTFPL): + door_trapdoor.png + door_obsidian_glass_side.png + +following textures created by celeron55 (CC BY-SA 3.0): + door_trapdoor_side.png + door_glass_a.png + door_glass_b.png + +following Textures created by PenguinDad (CC BY-SA 4.0): + door_glass.png + door_obsidian_glass.png + All other textures (created by PilzAdam): WTFPL + + +License of sounds +-------------------------------------- +Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen + door_open.ogg +Closing-Sound created by bennstir (CC BY 3.0) + door_close.ogg diff --git a/mods/doors/init.lua b/mods/doors/init.lua index e18da8eb..44e2aa44 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -15,10 +15,23 @@ doors = {} -- selection_box_top -- only_placer_can_open: if true only the player who placed the door can -- open it + +local function is_right(pos) + local r1 = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z}) + local r2 = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1}) + if string.find(r1.name, "door_") or string.find(r2.name, "door_") then + if string.find(r1.name, "_1") or string.find(r2.name, "_1") then + return true + else + return false + end + end +end + function doors:register_door(name, def) def.groups.not_in_creative_inventory = 1 - local box = {{-0.5, -0.5, -0.5, 0.5, 0.5, -0.5+1.5/16}} + local box = {{-0.5, -0.5, -0.5, 0.5, 0.5, -0.5+1.5/16}} if not def.node_box_bottom then def.node_box_bottom = box @@ -104,10 +117,11 @@ function doors:register_door(name, def) local tt = def.tiles_top local tb = def.tiles_bottom - - local function after_dig_node(pos, name) - if minetest.get_node(pos).name == name then - minetest.remove_node(pos) + + local function after_dig_node(pos, name, digger) + local node = minetest.get_node(pos) + if node.name == name then + minetest.node_dig(pos, node, digger) end end @@ -118,11 +132,24 @@ function doors:register_door(name, def) end local p2 = minetest.get_node(pos).param2 p2 = params[p2+1] - + minetest.swap_node(pos, {name=replace_dir, param2=p2}) - + pos.y = pos.y-dir minetest.swap_node(pos, {name=replace, param2=p2}) + + local snd_1 = "_close" + local snd_2 = "_open" + if params[1] == 3 then + snd_1 = "_open" + snd_2 = "_close" + end + + if is_right(pos) then + minetest.sound_play("door"..snd_1, {pos = pos, gain = 0.3, max_hear_distance = 10}) + else + minetest.sound_play("door"..snd_2, {pos = pos, gain = 0.3, max_hear_distance = 10}) + end end local function check_player_priv(pos, player) @@ -149,26 +176,28 @@ function doors:register_door(name, def) fixed = def.selection_box_bottom }, groups = def.groups, - + after_dig_node = function(pos, oldnode, oldmetadata, digger) pos.y = pos.y+1 - after_dig_node(pos, name.."_t_1") + after_dig_node(pos, name.."_t_1", digger) end, - + on_rightclick = function(pos, node, clicker) if check_player_priv(pos, clicker) then on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0}) end end, - + can_dig = check_player_priv, + sounds = def.sounds, + sunlight_propagates = def.sunlight }) minetest.register_node(name.."_t_1", { tiles = {tt[2], tt[2], tt[2], tt[2], tt[1], tt[1].."^[transformfx"}, paramtype = "light", paramtype2 = "facedir", - drop = name, + drop = "", drawtype = "nodebox", node_box = { type = "fixed", @@ -179,19 +208,21 @@ function doors:register_door(name, def) fixed = def.selection_box_top }, groups = def.groups, - + after_dig_node = function(pos, oldnode, oldmetadata, digger) pos.y = pos.y-1 - after_dig_node(pos, name.."_b_1") + after_dig_node(pos, name.."_b_1", digger) end, - + on_rightclick = function(pos, node, clicker) if check_player_priv(pos, clicker) then on_rightclick(pos, -1, name.."_b_1", name.."_t_2", name.."_b_2", {1,2,3,0}) end end, - + can_dig = check_player_priv, + sounds = def.sounds, + sunlight_propagates = def.sunlight, }) minetest.register_node(name.."_b_2", { @@ -209,26 +240,28 @@ function doors:register_door(name, def) fixed = def.selection_box_bottom }, groups = def.groups, - + after_dig_node = function(pos, oldnode, oldmetadata, digger) pos.y = pos.y+1 - after_dig_node(pos, name.."_t_2") + after_dig_node(pos, name.."_t_2", digger) end, - + on_rightclick = function(pos, node, clicker) if check_player_priv(pos, clicker) then on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2}) end end, - + can_dig = check_player_priv, + sounds = def.sounds, + sunlight_propagates = def.sunlight }) minetest.register_node(name.."_t_2", { tiles = {tt[2], tt[2], tt[2], tt[2], tt[1].."^[transformfx", tt[1]}, paramtype = "light", paramtype2 = "facedir", - drop = name, + drop = "", drawtype = "nodebox", node_box = { type = "fixed", @@ -239,20 +272,23 @@ function doors:register_door(name, def) fixed = def.selection_box_top }, groups = def.groups, - + after_dig_node = function(pos, oldnode, oldmetadata, digger) pos.y = pos.y-1 - after_dig_node(pos, name.."_b_2") + after_dig_node(pos, name.."_b_2", digger) end, - + on_rightclick = function(pos, node, clicker) if check_player_priv(pos, clicker) then on_rightclick(pos, -1, name.."_b_2", name.."_t_1", name.."_b_1", {3,0,1,2}) end end, - + can_dig = check_player_priv, + sounds = def.sounds, + sunlight_propagates = def.sunlight }) + end doors:register_door("doors:door_wood", { @@ -261,6 +297,8 @@ doors:register_door("doors:door_wood", { groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,door=1}, tiles_bottom = {"door_wood_b.png", "door_brown.png"}, tiles_top = {"door_wood_a.png", "door_brown.png"}, + sounds = default.node_sound_wood_defaults(), + sunlight = false, }) minetest.register_craft({ @@ -279,6 +317,8 @@ doors:register_door("doors:door_steel", { tiles_bottom = {"door_steel_b.png", "door_grey.png"}, tiles_top = {"door_steel_a.png", "door_grey.png"}, only_placer_can_open = true, + sounds = default.node_sound_wood_defaults(), + sunlight = false, }) minetest.register_craft({ @@ -290,7 +330,125 @@ minetest.register_craft({ } }) -minetest.register_alias("doors:door_wood_a_c", "doors:door_wood_t_1") -minetest.register_alias("doors:door_wood_a_o", "doors:door_wood_t_1") -minetest.register_alias("doors:door_wood_b_c", "doors:door_wood_b_1") -minetest.register_alias("doors:door_wood_b_o", "doors:door_wood_b_1") +doors:register_door("doors:door_glass", { + description = "Glass Door", + inventory_image = "door_glass.png", + groups = {snappy=1,cracky=1,oddly_breakable_by_hand=3,door=1}, + tiles_bottom = {"door_glass_b.png", "door_glass_side.png"}, + tiles_top = {"door_glass_a.png", "door_glass_side.png"}, + sounds = default.node_sound_glass_defaults(), + sunlight = true, +}) + +minetest.register_craft({ + output = "doors:door_glass", + recipe = { + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"} + } +}) + +doors:register_door("doors:door_obsidian_glass", { + description = "Obsidian Glass Door", + inventory_image = "door_obsidian_glass.png", + groups = {snappy=1,cracky=1,oddly_breakable_by_hand=3,door=1}, + tiles_bottom = {"door_obsidian_glass_b.png", "door_obsidian_glass_side.png"}, + tiles_top = {"door_obsidian_glass_b.png", "door_obsidian_glass_side.png"}, + sounds = default.node_sound_glass_defaults(), + sunlight = true, +}) + +minetest.register_craft({ + output = "doors:door_obsidian_glass", + recipe = { + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"} + } +}) + + +----trapdoor---- + +local function update_door(pos, node) + minetest.set_node(pos, node) +end + +local function punch(pos) + local meta = minetest.get_meta(pos) + local state = meta:get_int("state") + local me = minetest.get_node(pos) + local tmp_node + local tmp_node2 + oben = {x=pos.x, y=pos.y+1, z=pos.z} + if state == 1 then + state = 0 + minetest.sound_play("door_close", {pos = pos, gain = 0.3, max_hear_distance = 10}) + tmp_node = {name="doors:trapdoor", param1=me.param1, param2=me.param2} + else + state = 1 + minetest.sound_play("door_open", {pos = pos, gain = 0.3, max_hear_distance = 10}) + tmp_node = {name="doors:trapdoor_open", param1=me.param1, param2=me.param2} + end + update_door(pos, tmp_node) + meta:set_int("state", state) +end + +minetest.register_node("doors:trapdoor", { + description = "Trapdoor", + inventory_image = "door_trapdoor.png", + drawtype = "nodebox", + tiles = {"door_trapdoor.png", "door_trapdoor.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,door=1}, + sounds = default.node_sound_wood_defaults(), + drop = "doors:trapdoor", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + on_creation = function(pos) + state = 0 + end, + on_rightclick = function(pos, node, clicker) + punch(pos) + end, +}) + +minetest.register_node("doors:trapdoor_open", { + drawtype = "nodebox", + tiles = {"door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor_side.png", "door_trapdoor.png", "door_trapdoor.png"}, + paramtype = "light", + paramtype2 = "facedir", + pointable = true, + stack_max = 0, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,door=1}, + sounds = default.node_sound_wood_defaults(), + drop = "doors:trapdoor", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0.4, 0.5, 0.5, 0.5} + }, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, 0.4, 0.5, 0.5, 0.5} + }, + on_rightclick = function(pos, node, clicker) + punch(pos) + end, +}) + +minetest.register_craft({ + output = 'doors:trapdoor 2', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + {'', '', ''}, + } +}) diff --git a/mods/doors/sounds/door_close.ogg b/mods/doors/sounds/door_close.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a39452ba1ed1faad5e07082cb7eb8f7d3b1a6ab3 GIT binary patch literal 20157 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 MxXFH#S>7n00Lo=D*8l(j literal 0 HcmV?d00001 diff --git a/mods/doors/sounds/door_open.ogg b/mods/doors/sounds/door_open.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7ec7f48093f64422e4af9cf2806888fd8d72b707 GIT binary patch literal 11915 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 diff --git a/mods/doors/textures/door_glass.png b/mods/doors/textures/door_glass.png new file mode 100644 index 0000000000000000000000000000000000000000..6e3816181be37a00492507f840e30ee2a97d5fbe GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0pkSP* zi(`nz>Eu8E|JyV3$k_Z~Ie3uq&D&Ioi9dB(L=>2F#0(y8etU7TKTB-Obp}gIJ2$5` z1Hnx*Cn)+HxuK(e{J6&^@s2{fz(j`=3}Q)(x>T6mE;CNO%ow@RAB|mLR^7@ z%a)v6w&dK(WhYlGJF{xV*~N>mELwDR$>J+(*WTK?_3n-x_jc{Nf8fC5BS#(|JNER< znHLu?zPf(>&7C{%?%)6L@Zra&Pd~kW{q^I=pI^WJ{{H>fj~{=2{rdao&%b~F{sRpk z1*0J_m_r~WI*bSCKE{$DzhDN3XE)M7oFs2|7lsa2Sq~tGv%n*=n1O*?2!t6g-L3lr z6l5>)^mS#w&CM^YBGzz7?t<8 literal 0 HcmV?d00001 diff --git a/mods/doors/textures/door_glass_b.png b/mods/doors/textures/door_glass_b.png new file mode 100644 index 0000000000000000000000000000000000000000..ade0196fe64e00c80496c9bfc914645d5b472bd2 GIT binary patch literal 978 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GA|hzm>B|mLR^7@ z%a)v6w&dK(WhYlGJF{xV*~N>mELwDR$>J+(*WTK?_3n-x_jc{Nf8fC5BS#(|JNER< znHLu?zPf(>&7C{%?%)6L@Zra&Pd~kW{q^I=pI^WJ{{H>fj~{=2{rdao&%b~F{sRpk z1*0J_m_r~WI*bSCKE{$DzhDN3XE)M7oFs2|7lsa2Sq~tGv%n*=n1O*?2!t6g-L3lr z6l5>)^mS#w&CM^YBGzz7?t<8 literal 0 HcmV?d00001 diff --git a/mods/doors/textures/door_glass_side.png b/mods/doors/textures/door_glass_side.png new file mode 100644 index 0000000000000000000000000000000000000000..871ad9d007c797f2242a5dc8c34756643c820535 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryoCO|{#S9GGLLkg|>2BR0pdgQ@ ii(?4K^<;~J2ZjtR%b8O8+CBP!;tZayelF{r5}E+=;1ntV literal 0 HcmV?d00001 diff --git a/mods/doors/textures/door_grey.png b/mods/doors/textures/door_grey.png index 7d95c2269de1760ce4155cc234b77debe2481c86..aa01458c3718fac08003a3042338fc9a85f60118 100644 GIT binary patch delta 32 mcmd1Joe(5_Jvm}ah9Cp;1;*#hE1nfH0D-5gpUXO@geCyQlM6-w delta 32 mcmd1Joe(4~n;fwvLy&>_0^@Usb(2~dfWXt$&t;ucLK6V7iwchb diff --git a/mods/doors/textures/door_obsidian_glass.png b/mods/doors/textures/door_obsidian_glass.png new file mode 100644 index 0000000000000000000000000000000000000000..d21c0126697fc1eeec762cf3d9f7ddc686082fd8 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0pkSk? zi(`nz>7&7hd<_abHa*rGc4&2<`}KeSj@<(B1%3i+G!&0jaB?p7y?jr$OC=~Gd!;oy z!;S5t3=6Eq-!nYe8*ZpjX?0BE)b`~y&C_?7a6G>6_-wVh$IcUG6Iicm?|HU><)q_m zZK-9gE7=caMK&!x_t)b8o96SOKkj*K)i@RLOPM{=xpwzT^^b8t$1r%h`njxgN@xNA Dy;M!_ literal 0 HcmV?d00001 diff --git a/mods/doors/textures/door_obsidian_glass_a.png b/mods/doors/textures/door_obsidian_glass_a.png new file mode 100644 index 0000000000000000000000000000000000000000..42311be89b2882885b43b9e590793f66255c6a99 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkEEK0Nzbz!|#ylkDIiKJekUFDye(@Y{iE*l(w hvGm{EBfIy1W;AKr6QH}HBNpg-22WQ%mvv4FO#o}hXyO0> literal 0 HcmV?d00001 diff --git a/mods/doors/textures/door_obsidian_glass_b.png b/mods/doors/textures/door_obsidian_glass_b.png new file mode 100644 index 0000000000000000000000000000000000000000..42311be89b2882885b43b9e590793f66255c6a99 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkEEK0Nzbz!|#ylkDIiKJekUFDye(@Y{iE*l(w hvGm{EBfIy1W;AKr6QH}HBNpg-22WQ%mvv4FO#o}hXyO0> literal 0 HcmV?d00001 diff --git a/mods/doors/textures/door_obsidian_glass_side.png b/mods/doors/textures/door_obsidian_glass_side.png new file mode 100644 index 0000000000000000000000000000000000000000..d355a8ac7ec625c7ec261d4e3b92697ed98f5b45 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryoCO|{#S9GG!XV7ZFl&wkP>{#d h#W95Ada{6k0Fal$VEA)k+zTL!!PC{xWt~$(69A175kUX| literal 0 HcmV?d00001 diff --git a/mods/doors/textures/door_steel.png b/mods/doors/textures/door_steel.png index fed1794c4c745c1e51847d3ade54cc8ba17e1bff..27e40302ab24e0fbae9f447e5cad0722ee20a247 100644 GIT binary patch delta 144 zcmV;B0B`@f0ppj#iDJApXOI6pBA6P_JL5$G=ppEr|lX7_%%zy18>rKNw<53nb6eMnry)9_JTH|mT0beUY< z18paZ7(4tYik~oQc$C4yDx+tUbzp))Lx7))IRnF;$kH=!{&`Ge00K`}KbLh*2~7a8 C&?dG3 diff --git a/mods/doors/textures/door_steel_a.png b/mods/doors/textures/door_steel_a.png index 77e3bc70a8b7c2f4ed87a494677918cd7c70178a..49604ce27f5d6beb61946575d7e7419ee88d9812 100644 GIT binary patch delta 137 zcmV;40CxYf0p9_TUVm&!L_t(I%VRux^yq&E3IGcO0|Ud|yLZXb{Nlw6hygGTDL_I( z0^tG}C@U*tMCKnodi4L%qerod!(7e8Kp_}-16a`ghD{N^s75z{0fzyju|SttkdTnT rnyGM!V;B$@7Y7$yv}h60UH|~$b3;4u_C~z`0000T!_7=i(`mIZ?Z+zmlyS32Fx81TQUSAcdTB`oygGP%yle_fmw>-V{1bJQ^mR%1|aZs^>bP0l+XkKB?cfW diff --git a/mods/doors/textures/door_steel_b.png b/mods/doors/textures/door_steel_b.png index 450f35fbc57864c683325b875a5ba91b84483ba1..98b0d90b348819ee0be69e2246bd152608a548a1 100644 GIT binary patch delta 119 zcmV--0Eqv!0nP!CUT|AUL_t(I%k9r9AlMA6l`BFML|D~?_$gPblj(&02vG`$xx z!;fGwv(4Snd&fal@kT_TRhO<>u2qQ07|6pXB;oD=fE7Q@zzp0jk>vM)h@9tH4pbj0 Z+X0>98TWTzN2&k-002ovPDHLkV1gDeHgEs{ delta 94 zcmV-k0HOcR0kr{;UROd%L_t(I%VRit^yvRZix&N7U|@h_5T6*_)z$T%0cHR>7{ve( zhZKy}0Ag)M)-!6rr~%YB0K_I1Q#Uh_nvsw(05wqGvL6-NuK)l507*qoM6N<$f?dTW AbN~PV diff --git a/mods/doors/textures/door_trapdoor.png b/mods/doors/textures/door_trapdoor.png new file mode 100644 index 0000000000000000000000000000000000000000..8baac7a3edaacb6e2802e3b4cfff0aa5cbaa1b4b GIT binary patch literal 390 zcmV;10eSw3P)0U>L>sX?$`El94es2)F3(TV1#$Xav5obf|-@ zFf~k~GFF6)lJHygb-FrT)K+sN+PXM5?|ILU=ixlUw5#Jk5~f`pqgo-A?!LqseFIE` zU>XE_SA=O04!0z5M&OJRy%=C`h4A*C69V0|RP-$go+HEA79-y9Si@)*z*#=>>9MV0 z+$_R(6`Yl&hnm3ng9R* literal 0 HcmV?d00001 diff --git a/mods/doors/textures/door_trapdoor_side.png b/mods/doors/textures/door_trapdoor_side.png new file mode 100644 index 0000000000000000000000000000000000000000..f81ff3d6ad0535b65687f9471ae49fb8203edd49 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sBugD~Uq{1qucLG}_)Usv`!%rbmN;uESQ_5+2cc)B=-Xq<1I zWXsiHz|(ral%-r>!D7eGT|2C*IS-y(UE!px`%>9cyT&==Uwl{YyQ!tGShoFCZ7i0b z@;pkU)0>T*v*GzJs^swjfmq6w;b>)WZ44PAyUz((t!P2U&So2jR za_5GLb2OE&>P0cT{cGEo$?~K0_Gty1f*EtHe>^T;A@PTMKi~dnDciWN=jPw$Ja@|g Px{txr)z4*}Q$iB}=rCg7 literal 0 HcmV?d00001 diff --git a/mods/doors/textures/door_wood.png b/mods/doors/textures/door_wood.png index 2b2136cbcf71d000f0fa7a4fc87ef88f1bce8229..120fc982f7aeb151b2c014678b205072b2b20907 100644 GIT binary patch delta 124 zcmV-?0E7R80j2?vF?C=`L_t(I%VT6f1Eqmd{~7Rr!&lxjoVfj+5yof1rHEL-giGSY z?eB~yZhvRA)e%Ht6Kw#ofCZO?g(~NNn0H`oioHOR0mK4EnndHH_bil01FG= uHH;b_W$=_wINa&ZDi12;HC2+p#E01E&B07*qoM6N<$f}ZI< ATmS$7 delta 90 zcmey$xQ}r{cCekNi(`mIZ?XpOlwbawX$*o7`HE5!xkLS07!~+5B~~-?WH6|-d)Mrc tYS5ik(Aj_N(1IS;E@R;fsRce=j0|5(Z2uatocO~41fH&bF6*2UngE12AFBWW diff --git a/mods/doors/textures/door_wood_b.png b/mods/doors/textures/door_wood_b.png index c2716efa5520da8b0945c1c243447636b5f3e9a7..80d43151ca5e7f2c859354372348a5f24ed55387 100644 GIT binary patch delta 116 zcmdnNc!P05c5Z~Hi(`n!`D7j5DOF$Qr9N$R=K+I0+)K4WA1cEf3oF-!nD<0>cR$Zl*kZygDZeJ)77nGXp)&2rq4%F@>F-;b4tupS+n+ Q4g(N)y85}Sb4q9e0Q+(%_y7O^ delta 84 zcmcb?xPx&*wy%Y!i(`n!`D6{=DO}|fk{cKmr1>`mJWXlHP!LiyVTfcA+{N}M?eNsz oEQwE24LpB3nvS^poN88P=xSZDZ~Y9Vy9_|!>FVdQ&MBb@01mMqS^xk5