summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>2019-05-28 07:13:12 -0400
committerVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>2019-05-28 07:13:12 -0400
commita3edf1047aae66c17e09d01b9233f68321c27247 (patch)
treea07acdb7c5eab4a59c3b58a948b1ab5e94f17eb4
parent65fce91b5c5cd26c945bec2b4073df8664b9a8e4 (diff)
downloaddreambuilder_modpack-a3edf1047aae66c17e09d01b9233f68321c27247.tar
dreambuilder_modpack-a3edf1047aae66c17e09d01b9233f68321c27247.tar.gz
dreambuilder_modpack-a3edf1047aae66c17e09d01b9233f68321c27247.tar.bz2
dreambuilder_modpack-a3edf1047aae66c17e09d01b9233f68321c27247.tar.xz
dreambuilder_modpack-a3edf1047aae66c17e09d01b9233f68321c27247.zip
update homedecor and digistuff
-rw-r--r--digistuff/README14
-rw-r--r--digistuff/button.lua67
-rw-r--r--digistuff/conductors.lua455
-rw-r--r--digistuff/depends.txt1
-rw-r--r--digistuff/init.lua3
-rw-r--r--digistuff/internal.lua44
-rw-r--r--digistuff/textures/digistuff_digiline_full.pngbin0 -> 1927 bytes
-rw-r--r--digistuff/textures/digistuff_insulated_edge.pngbin0 -> 1210 bytes
-rw-r--r--digistuff/textures/digistuff_insulated_full.pngbin0 -> 1185 bytes
-rw-r--r--homedecor_3d_extras/depends.txt2
-rw-r--r--homedecor_3d_extras/init.lua91
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_bookshelf.obj (renamed from homedecor_3d_extras/models/3dbookshelf.obj)0
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_door_steel_a.obj152
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_door_steel_b.obj152
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_door_wood_a.obj248
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_door_wood_b.obj248
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_trapdoor.obj318
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_trapdoor_open.obj318
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_trapdoor_steel.obj392
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_trapdoor_steel_open.obj392
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_vessels_bottle.obj (renamed from homedecor_3d_extras/models/3dvessels_bottle.obj)0
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_vessels_bottle_steel.obj (renamed from homedecor_3d_extras/models/3dvessels_bottle_steel.obj)0
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_vessels_drink.obj (renamed from homedecor_3d_extras/models/3dvessels_drink.obj)0
-rw-r--r--homedecor_3d_extras/models/homedecor_3d_vessels_shelf.obj (renamed from homedecor_3d_extras/models/3dvessels_shelf.obj)0
-rw-r--r--homedecor_3d_extras/textures/homedecor_3d_bookshelf_books.png (renamed from homedecor_3d_extras/textures/3dbookshelf_books.png)bin776 -> 776 bytes
-rw-r--r--homedecor_3d_extras/textures/homedecor_3d_bookshelf_inside_back.png (renamed from homedecor_3d_extras/textures/3dbookshelf_inside_back.png)bin181 -> 181 bytes
-rw-r--r--homedecor_3d_extras/textures/homedecor_3d_bottle_metal_bright.png (renamed from homedecor_3d_extras/textures/bottle_metal_bright.png)bin200 -> 200 bytes
-rw-r--r--homedecor_3d_extras/textures/homedecor_3d_vessels_drinking_glass_inv.png (renamed from homedecor_3d_extras/textures/3dvessels_drinking_glass_inv.png)bin1580 -> 1580 bytes
-rw-r--r--homedecor_3d_extras/textures/homedecor_3d_vessels_glass_bottle_inv.png (renamed from homedecor_3d_extras/textures/3dvessels_glass_bottle_inv.png)bin1838 -> 1838 bytes
-rw-r--r--homedecor_3d_extras/textures/homedecor_3d_vessels_shelf_glass.png (renamed from homedecor_3d_extras/textures/3dvessels_shelf_glass.png)bin195 -> 195 bytes
-rw-r--r--homedecor_3d_extras/textures/homedecor_3d_vessels_steel_bottle_inv.png (renamed from homedecor_3d_extras/textures/3dvessels_steel_bottle_inv.png)bin1909 -> 1909 bytes
31 files changed, 2838 insertions, 59 deletions
diff --git a/digistuff/README b/digistuff/README
index 8247ce7..0212160 100644
--- a/digistuff/README
+++ b/digistuff/README
@@ -23,6 +23,12 @@ How to use digimese:
It conducts digilines signals (like digilines) in all directions (like mese). That's about it, really.
+How to use vertical/insulated digilines:
+These work exactly like the mesecons equivalents, that is:
+Vertical digilines will automatically connect to other vertical digilines directly above or below them, and form "plates" on each end of the stack. Signals can only be conducted into or out of the stack at these "plates".
+Insulated digilines conduct like regular digilines, but only into/out of the ends of the "wire".
+
+
How to use the digilines player detector:
Set a channel and radius (radius must be a number >0 and <10 - anything invalid will be ignored and "6" used instead).
Every second while a player is within the radius, a table listing the players in range will be sent via digilines on the chosen channel.
@@ -39,3 +45,11 @@ Send a digilines signal with the URL you want to download. The HTTPRequestResult
How to use the camera:
Set the channel, distance, and radius. The camera will search for a node "distance" meters away and up to 10m down.
Every second while a player is within "radius" meters of that point, a table listing the players in range will be sent via digilines on the chosen channel.
+
+
+How to use the dimmable lights:
+After setting the channel, send a number from 0 to 14 to set the light level.
+
+How to use the junction box:
+These are just plain digilines conductors (like digimese) but can skip over one node to another junction box or certain other nodes.
+As in, [digiline][junction box][dirt][junction box][digiline] will work to transmit signals "through" the dirt.
diff --git a/digistuff/button.lua b/digistuff/button.lua
index 76022f6..dc2cf3b 100644
--- a/digistuff/button.lua
+++ b/digistuff/button.lua
@@ -1,9 +1,22 @@
digistuff.button_turnoff = function (pos)
local node = minetest.get_node(pos)
- if node.name=="digistuff:button_on" then --has not been dug
- minetest.swap_node(pos, {name = "digistuff:button_off", param2=node.param2})
- if minetest.get_modpath("mesecons") then minetest.sound_play("mesecons_button_pop", {pos=pos}) end
- end
+ minetest.swap_node(pos, {name = "digistuff:button_off", param2=node.param2})
+ if minetest.get_modpath("mesecons") then minetest.sound_play("mesecons_button_pop", {pos=pos}) end
+end
+
+digistuff.button_get_rules = function(node)
+ local rules = {
+ {x = 1,y = 0,z = 0},
+ {x = -1,y = 0,z = 0},
+ {x = 0,y = 1,z = 0},
+ {x = 0,y = -1,z = 0},
+ {x = 0,y = 0,z = 1},
+ {x = 0,y = 0,z = -1},
+ {x = 0,y = 0,z = 2},
+ }
+ local dir = minetest.facedir_to_dir(node.param2)
+ rules = digistuff.rotate_rules(rules,dir)
+ return rules
end
minetest.register_node("digistuff:button", {
@@ -34,23 +47,28 @@ minetest.register_node("digistuff:button", {
},
digiline =
{
- receptor = {}
+ receptor = {},
+ wire = {
+ rules = digistuff.button_get_rules,
+ },
},
- groups = {dig_immediate=2},
+ groups = {dig_immediate = 2,digiline_receiver = 1,},
description = "Digilines Button",
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec","size[8,4;]field[1,1;6,2;channel;Channel;${channel}]field[1,2;6,2;msg;Message;${msg}]button_exit[2.25,3;3,1;submit;Save]")
end,
+ after_place_node = digistuff.place_receiver,
+ after_destruct = digistuff.remove_receiver,
on_receive_fields = function(pos, formname, fields, sender)
local meta = minetest.get_meta(pos)
- if fields.channel and fields.msg and fields.channel ~= "" and fields.msg ~= "" then
+ if fields.channel and fields.channel ~= "" then
meta:set_string("channel",fields.channel)
meta:set_string("msg",fields.msg)
meta:set_string("formspec","")
minetest.swap_node(pos, {name = "digistuff:button_off", param2=minetest.get_node(pos).param2})
else
- minetest.chat_send_player(sender:get_player_name(),"Channel and message must both be set!")
+ minetest.chat_send_player(sender:get_player_name(),"Please set a channel!")
end
end,
sounds = default and default.node_sound_stone_defaults(),
@@ -84,17 +102,21 @@ minetest.register_node("digistuff:button_off", {
},
digiline =
{
- receptor = {}
+ receptor = {},
+ wire = {
+ rules = digistuff.button_get_rules,
+ },
},
- groups = {dig_immediate=2, not_in_creative_inventory=1},
+ groups = {dig_immediate = 2,not_in_creative_inventory = 1,digiline_receiver = 1,},
drop = "digistuff:button",
+ after_destruct = digistuff.remove_receiver,
description = "Digilines Button (off state - you hacker you!)",
on_rightclick = function (pos, node, clicker)
local meta = minetest.get_meta(pos)
- digiline:receptor_send(pos, digiline.rules.default, meta:get_string("channel"), meta:get_string("msg"))
+ digiline:receptor_send(pos, digistuff.button_get_rules(node), meta:get_string("channel"), meta:get_string("msg"))
minetest.swap_node(pos, {name = "digistuff:button_on", param2=node.param2})
if minetest.get_modpath("mesecons") then minetest.sound_play("mesecons_button_push", {pos=pos}) end
- minetest.after(0.5, digistuff.button_turnoff, pos)
+ minetest.get_node_timer(pos):start(0.25)
end,
sounds = default and default.node_sound_stone_defaults(),
})
@@ -128,29 +150,26 @@ minetest.register_node("digistuff:button_on", {
},
digiline =
{
- receptor = {}
+ receptor = {},
+ wire = {
+ rules = digistuff.button_get_rules,
+ },
},
- groups = {dig_immediate=2, not_in_creative_inventory=1},
+ on_timer = digistuff.button_turnoff,
+ groups = {dig_immediate = 2,not_in_creative_inventory = 1,digiline_receiver = 1,},
drop = 'digistuff:button',
+ after_destruct = digistuff.remove_receiver,
on_rightclick = function (pos, node, clicker)
local meta = minetest.get_meta(pos)
- digiline:receptor_send(pos, digiline.rules.default, meta:get_string("channel"), meta:get_string("msg"))
+ digiline:receptor_send(pos, digistuff.button_get_rules(node), meta:get_string("channel"), meta:get_string("msg"))
if minetest.get_modpath("mesecons") then minetest.sound_play("mesecons_button_push", {pos=pos}) end
+ minetest.get_node_timer(pos):start(0.25)
end,
description = "Digilines Button (on state - you hacker you!)",
sounds = default and default.node_sound_stone_defaults(),
})
minetest.register_craft({
- output = "digistuff:digimese",
- recipe = {
- {"digilines:wire_std_00000000","digilines:wire_std_00000000","digilines:wire_std_00000000"},
- {"digilines:wire_std_00000000","default:mese","digilines:wire_std_00000000"},
- {"digilines:wire_std_00000000","digilines:wire_std_00000000","digilines:wire_std_00000000"}
- }
-})
-
-minetest.register_craft({
output = "digistuff:button",
recipe = {
{"mesecons_button:button_off"},
diff --git a/digistuff/conductors.lua b/digistuff/conductors.lua
index 77229e2..dfc8793 100644
--- a/digistuff/conductors.lua
+++ b/digistuff/conductors.lua
@@ -1,3 +1,59 @@
+digistuff.remove_receiver = function(pos,node)
+ local dir = minetest.facedir_to_dir(node.param2)
+ local rpos = vector.add(pos,vector.multiply(dir,2))
+ local rnode = minetest.get_node(rpos)
+ if rnode.name == "digistuff:receiver" then
+ rnode.name = "digilines:wire_std_00000000"
+ minetest.remove_node(rpos)
+ minetest.place_node(rpos,rnode)
+ end
+end
+
+digistuff.place_receiver = function(pos)
+ local node = minetest.get_node(pos)
+ local dir = minetest.facedir_to_dir(node.param2)
+ if dir.y == 0 then
+ local nodebehind = minetest.get_node(vector.add(pos,dir))
+ if nodebehind.name == "digistuff:digimese" then return end
+ local rpos = vector.add(pos,vector.multiply(dir,2))
+ local rnode = minetest.get_node(rpos)
+ if string.find(rnode.name,"^digilines:wire_std_") then
+ minetest.remove_node(rpos)
+ local newrnode = {pos = rpos,name = "digistuff:receiver",param2 = node.param2,}
+ minetest.set_node(rpos,newrnode)
+ digilines.update_autoconnect(rpos)
+ end
+ end
+end
+
+local old_update_autoconnect = digilines.update_autoconnect
+
+digilines.update_autoconnect = function(pos,secondcall)
+ if not secondcall then
+ local node = minetest.get_node(pos)
+ if string.find(node.name,"^digilines:wire_std_") then
+ local checkdirs = {
+ {x = 1,y = 0,z = 0},
+ {x = -1,y = 0,z = 0},
+ {x = 0,y = 0,z = 1},
+ {x = 0,y = 0,z = -1},
+ }
+ local found = false
+ for _,i in ipairs(checkdirs) do
+ if not found then
+ local checkpos = vector.add(pos,vector.multiply(i,2))
+ local group = minetest.get_item_group(minetest.get_node(checkpos).name,"digiline_receiver")
+ if group and group > 0 then
+ digistuff.place_receiver(checkpos)
+ if minetest.get_node(pos).name == "digistuff:receiver" then found = true end
+ end
+ end
+ end
+ end
+ end
+ old_update_autoconnect(pos,secondcall)
+end
+
minetest.register_node("digistuff:digimese", {
description = "Digimese",
tiles = {"digistuff_digimese.png"},
@@ -22,14 +78,14 @@ minetest.register_node("digistuff:junctionbox", {
paramtype2 = "facedir",
groups = {cracky = 3},
is_ground_content = false,
- paramtype = "light",
- drawtype = "nodebox",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.1,-0.15,0.35,0.1,0.15,0.5},
- }
- },
+ paramtype = "light",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.1,-0.15,0.35,0.1,0.15,0.5},
+ }
+ },
sounds = default and default.node_sound_stone_defaults(),
digiline = {
receptor = {},
@@ -52,6 +108,330 @@ minetest.register_node("digistuff:junctionbox", {
},
})
+digistuff.receiver_get_rules = function(node)
+ local rules = {
+ {x = 0,y = 0,z = -2},
+ {x = 0,y = 0,z = 1},
+ }
+ return digistuff.rotate_rules(rules,minetest.facedir_to_dir(node.param2))
+end
+
+minetest.register_node("digistuff:receiver", {
+ description = "Digilines Receiver (you hacker you!)",
+ tiles = {"digistuff_digiline_full.png"},
+ paramtype = "light",
+ groups = {dig_immediate = 3,not_in_creative_inventory = 1,},
+ drop = "digilines:wire_std_00000000",
+ is_ground_content = false,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.05,-0.05,-1.49,0.05,0.05,-0.5},
+ {-0.2,-0.2,-0.5,0.2,0.2,-0.4},
+ {-0.0625,-0.5,-0.5,0.0625,-0.2,-0.4},
+ {-0.0625,-0.5,-0.4,0.0625,-0.4375,0.5},
+ },
+ },
+ digiline = {
+ receptor = {},
+ wire = {
+ rules = digistuff.receiver_get_rules,
+ },
+ },
+})
+
+digistuff.vertical_autoconnect = function(pos)
+ local node = minetest.get_node(pos)
+ if minetest.get_item_group(node.name,"vertical_digiline") == 0 then return end
+ local uppos = vector.add(pos,vector.new(0,1,0))
+ local dnpos = vector.add(pos,vector.new(0,-1,0))
+ local upnode = minetest.get_node(uppos)
+ local dnnode = minetest.get_node(dnpos)
+ local shouldbe = "digistuff:vertical_bottom"
+ if minetest.get_item_group(dnnode.name,"vertical_digiline") > 0 then
+ if minetest.get_item_group(upnode.name,"vertical_digiline") > 0 then
+ shouldbe = "digistuff:vertical_middle"
+ else
+ shouldbe = "digistuff:vertical_top"
+ end
+ end
+ if shouldbe ~= node.name or upnode.name == "digistuff:vertical_bottom" or dnnode.name == "digistuff:vertical_top" then
+ node.name = shouldbe
+ minetest.set_node(pos,node)
+ digilines.update_autoconnect(pos)
+ digistuff.vertical_autoconnect(uppos)
+ digistuff.vertical_autoconnect(dnpos)
+ end
+end
+
+digistuff.vertical_remove = function(pos)
+ local uppos = vector.add(pos,vector.new(0,1,0))
+ local dnpos = vector.add(pos,vector.new(0,-1,0))
+ digistuff.vertical_autoconnect(uppos)
+ digistuff.vertical_autoconnect(dnpos)
+end
+
+minetest.register_node("digistuff:vertical_bottom", {
+ description = "Vertical Digiline",
+ tiles = {"digistuff_digiline_full.png"},
+ paramtype = "light",
+ groups = {dig_immediate = 3,vertical_digiline = 1,},
+ is_ground_content = false,
+ paramtype = "light",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5,-0.5,-0.5,0.5,-0.4375,0.5},
+ {-0.05,-0.4375,-0.05,0.05,0.5,0.05},
+ },
+ },
+ after_place_node = digistuff.vertical_autoconnect,
+ after_destruct = digistuff.vertical_remove,
+ digiline = {
+ receptor = {},
+ wire = {
+ rules = {
+ {x = 1,y = 0,z = 0},
+ {x = -1,y = 0,z = 0},
+ {x = 0,y = 0,z = 1},
+ {x = 0,y = 0,z = -1},
+ {x = 0,y = 1,z = 0},
+ {x = 0,y = 2,z = 0},
+ },
+ },
+ },
+})
+
+minetest.register_node("digistuff:vertical_middle", {
+ description = "Vertical Digiline (middle - you hacker you!)",
+ tiles = {"digistuff_digiline_full.png"},
+ paramtype = "light",
+ groups = {dig_immediate = 3,not_in_creative_inventory = 1,vertical_digiline = 1,},
+ drop = "digistuff:vertical_bottom",
+ is_ground_content = false,
+ paramtype = "light",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.05,-0.5,-0.05,0.05,0.5,0.05},
+ },
+ },
+ after_place_node = digistuff.vertical_autoconnect,
+ after_destruct = digistuff.vertical_remove,
+ digiline = {
+ receptor = {},
+ wire = {
+ rules = {
+ {x = 0,y = 1,z = 0},
+ {x = 0,y = -1,z = 0},
+ },
+ },
+ },
+})
+
+minetest.register_node("digistuff:vertical_top", {
+ description = "Vertical Digiline (top - you hacker you!)",
+ tiles = {"digistuff_digiline_full.png"},
+ paramtype = "light",
+ groups = {dig_immediate = 3,not_in_creative_inventory = 1,vertical_digiline = 1,},
+ drop = "digistuff:vertical_bottom",
+ is_ground_content = false,
+ paramtype = "light",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5,-0.5,-0.5,0.5,-0.4375,0.5},
+ },
+ },
+ after_place_node = digistuff.vertical_autoconnect,
+ after_destruct = digistuff.vertical_remove,
+ digiline = {
+ receptor = {},
+ wire = {
+ rules = {
+ {x = 1,y = 0,z = 0},
+ {x = -1,y = 0,z = 0},
+ {x = 0,y = 0,z = 1},
+ {x = 0,y = 0,z = -1},
+ {x = 0,y = -1,z = 0},
+ },
+ },
+ },
+})
+
+minetest.register_node("digistuff:insulated_straight", {
+ description = "Insulated Digiline (straight)",
+ tiles = {
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_edge.png",
+ "digistuff_insulated_edge.png",
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_full.png",
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple,
+ groups = {dig_immediate = 3,},
+ is_ground_content = false,
+ paramtype = "light",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5,-0.5,-0.1,0.5,-0.4,0.1},
+ },
+ },
+ after_place_node = digilines.update_autoconnect,
+ after_destruct = digilines.update_autoconnect,
+ digiline = {
+ receptor = {},
+ wire = {
+ rules = function(node)
+ local rules = {
+ {x = 1,y = 0,z = 0},
+ {x = -1,y = 0,z = 0},
+ }
+ return digistuff.rotate_rules(rules,minetest.facedir_to_dir(node.param2))
+ end,
+ },
+ },
+})
+
+minetest.register_node("digistuff:insulated_tjunction", {
+ description = "Insulated Digiline (T junction)",
+ tiles = {
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_edge.png",
+ "digistuff_insulated_edge.png",
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_edge.png",
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple,
+ groups = {dig_immediate = 3,},
+ is_ground_content = false,
+ paramtype = "light",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5,-0.5,-0.1,0.5,-0.4,0.1},
+ {-0.1,-0.5,-0.5,0.1,-0.4,-0.1},
+ },
+ },
+ after_place_node = digilines.update_autoconnect,
+ after_destruct = digilines.update_autoconnect,
+ digiline = {
+ receptor = {},
+ wire = {
+ rules = function(node)
+ local rules = {
+ {x = 1,y = 0,z = 0},
+ {x = -1,y = 0,z = 0},
+ {x = 0,y = 0,z = -1},
+ }
+ return digistuff.rotate_rules(rules,minetest.facedir_to_dir(node.param2))
+ end,
+ },
+ },
+})
+
+minetest.register_node("digistuff:insulated_corner", {
+ description = "Insulated Digiline (corner)",
+ tiles = {
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_edge.png",
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_edge.png",
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ on_rotate = minetest.get_modpath("screwdriver") and screwdriver.rotate_simple,
+ groups = {dig_immediate = 3,},
+ is_ground_content = false,
+ paramtype = "light",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.1,-0.5,-0.5,0.1,-0.4,0.1},
+ {-0.5,-0.5,-0.1,0.1,-0.4,0.1},
+ },
+ },
+ after_place_node = digilines.update_autoconnect,
+ after_destruct = digilines.update_autoconnect,
+ digiline = {
+ receptor = {},
+ wire = {
+ rules = function(node)
+ local rules = {
+ {x = -1,y = 0,z = 0},
+ {x = 0,y = 0,z = -1},
+ }
+ return digistuff.rotate_rules(rules,minetest.facedir_to_dir(node.param2))
+ end,
+ },
+ },
+})
+
+minetest.register_node("digistuff:insulated_fourway", {
+ description = "Insulated Digiline (four-way junction)",
+ tiles = {
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_full.png",
+ "digistuff_insulated_edge.png",
+ "digistuff_insulated_edge.png",
+ "digistuff_insulated_edge.png",
+ "digistuff_insulated_edge.png",
+ },
+ paramtype = "light",
+ groups = {dig_immediate = 3,},
+ is_ground_content = false,
+ paramtype = "light",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5,-0.5,-0.1,0.5,-0.4,0.1},
+ {-0.1,-0.5,-0.5,0.1,-0.4,-0.1},
+ {-0.1,-0.5,0.1,0.1,-0.4,0.5},
+ },
+ },
+ after_place_node = digilines.update_autoconnect,
+ after_destruct = digilines.update_autoconnect,
+ digiline = {
+ receptor = {},
+ wire = {
+ rules = {
+ {x = 1,y = 0,z = 0},
+ {x = -1,y = 0,z = 0},
+ {x = 0,y = 0,z = -1},
+ {x = 0,y = 0,z = 1},
+ },
+ },
+ },
+})
+
+minetest.register_craft({
+ output = "digistuff:digimese",
+ recipe = {
+ {"digilines:wire_std_00000000","digilines:wire_std_00000000","digilines:wire_std_00000000"},
+ {"digilines:wire_std_00000000","default:mese","digilines:wire_std_00000000"},
+ {"digilines:wire_std_00000000","digilines:wire_std_00000000","digilines:wire_std_00000000"}
+ }
+})
+
minetest.register_craft({
output = "digistuff:junctionbox",
recipe = {
@@ -60,3 +440,62 @@ minetest.register_craft({
{"homedecor:plastic_sheeting","digilines:wire_std_00000000","homedecor:plastic_sheeting",},
}
})
+
+if minetest.get_modpath("mesecons_materials") then
+ minetest.register_craft({
+ output = "digistuff:insulated_straight 3",
+ recipe = {
+ {"mesecons_materials:fiber","mesecons_materials:fiber","mesecons_materials:fiber",},
+ {"digilines:wire_std_00000000","digilines:wire_std_00000000","digilines:wire_std_00000000",},
+ {"mesecons_materials:fiber","mesecons_materials:fiber","mesecons_materials:fiber",},
+ }
+ })
+end
+
+minetest.register_craft({
+ output = "digistuff:vertical_bottom 3",
+ recipe = {
+ {"digilines:wire_std_00000000",},
+ {"digilines:wire_std_00000000",},
+ {"digilines:wire_std_00000000",},
+ }
+})
+
+minetest.register_craft({
+ output = "digistuff:insulated_corner 3",
+ recipe = {
+ {"digistuff:insulated_straight","digistuff:insulated_straight",},
+ {"","digistuff:insulated_straight",},
+ }
+})
+
+minetest.register_craft({
+ output = "digistuff:insulated_tjunction 4",
+ recipe = {
+ {"digistuff:insulated_straight","digistuff:insulated_straight","digistuff:insulated_straight",},
+ {"","digistuff:insulated_straight","",},
+ }
+})
+
+minetest.register_craft({
+ output = "digistuff:insulated_fourway 5",
+ recipe = {
+ {"","digistuff:insulated_straight","",},
+ {"digistuff:insulated_straight","digistuff:insulated_straight","digistuff:insulated_straight",},
+ {"","digistuff:insulated_straight","",},
+ }
+})
+
+for _,item in ipairs({"digistuff:insulated_corner","digistuff:insulated_tjunction","digistuff:insulated_fourway",}) do
+ minetest.register_craft({
+ output = "digistuff:insulated_straight",
+ type = "shapeless",
+ recipe = {item},
+ })
+end
+
+minetest.register_craft({
+ output = "digilines:wire_std_00000000",
+ type = "shapeless",
+ recipe = {"digistuff:vertical_bottom"},
+})
diff --git a/digistuff/depends.txt b/digistuff/depends.txt
index cfb8465..a3bfdda 100644
--- a/digistuff/depends.txt
+++ b/digistuff/depends.txt
@@ -2,3 +2,4 @@ default?
digilines
mesecons?
mesecons_mvps?
+screwdriver?
diff --git a/digistuff/init.lua b/digistuff/init.lua
index 1deefe1..dcf5e29 100644
--- a/digistuff/init.lua
+++ b/digistuff/init.lua
@@ -1,6 +1,8 @@
digistuff = {}
local components = {
+ "internal",
+ "conductors",
"touchscreen",
"light",
"noteblock",
@@ -9,7 +11,6 @@ local components = {
"panel",
"piezo",
"detector",
- "conductors",
"piston",
}
for _,name in ipairs(components) do
diff --git a/digistuff/internal.lua b/digistuff/internal.lua
new file mode 100644
index 0000000..494a206
--- /dev/null
+++ b/digistuff/internal.lua
@@ -0,0 +1,44 @@
+digistuff.rotate_rules = function(rulesin,dir)
+ local rules = {}
+ for k,v in ipairs(rulesin) do rules[k] = v end
+ if dir.z > 0 then
+ return rules
+ elseif dir.z < 0 then
+ for _,i in ipairs(rules) do
+ i.x = -i.x
+ i.z = -i.z
+ end
+ return rules
+ elseif dir.x > 0 then
+ for _,i in ipairs(rules) do
+ local z = i.x
+ i.x = i.z
+ i.z = -z
+ end
+ return rules
+ elseif dir.x < 0 then
+ for _,i in ipairs(rules) do
+ local z = i.x
+ i.x = -i.z
+ i.z = z
+ end
+ return rules
+ elseif dir.y > 0 then
+ for _,i in ipairs(rules) do
+ local z = i.y
+ i.y = i.z
+ i.z = z
+ end
+ return rules
+ elseif dir.y < 0 then
+ for _,i in ipairs(rules) do
+ local z = i.y
+ i.y = -i.z
+ i.z = -z
+ end
+ return rules
+ else
+ minetest.log("warning",string.format("digistuff.rotate_rules() called with invalid direction %s,%s,%s",dir.x,dir.y,dir.z))
+ return {}
+ end
+end
diff --git a/digistuff/textures/digistuff_digiline_full.png b/digistuff/textures/digistuff_digiline_full.png
new file mode 100644
index 0000000..cf5ce21
--- /dev/null
+++ b/digistuff/textures/digistuff_digiline_full.png
Binary files differ
diff --git a/digistuff/textures/digistuff_insulated_edge.png b/digistuff/textures/digistuff_insulated_edge.png
new file mode 100644
index 0000000..e1d77a6
--- /dev/null
+++ b/digistuff/textures/digistuff_insulated_edge.png
Binary files differ
diff --git a/digistuff/textures/digistuff_insulated_full.png b/digistuff/textures/digistuff_insulated_full.png
new file mode 100644
index 0000000..69cef5f
--- /dev/null
+++ b/digistuff/textures/digistuff_insulated_full.png
Binary files differ
diff --git a/homedecor_3d_extras/depends.txt b/homedecor_3d_extras/depends.txt
index a3c1901..18f4f61 100644
--- a/homedecor_3d_extras/depends.txt
+++ b/homedecor_3d_extras/depends.txt
@@ -1,4 +1,4 @@
-homedecor_common
default
vessels?
moreblocks?
+doors?
diff --git a/homedecor_3d_extras/init.lua b/homedecor_3d_extras/init.lua
index 498e09c..01132df 100644
--- a/homedecor_3d_extras/init.lua
+++ b/homedecor_3d_extras/init.lua
@@ -1,27 +1,23 @@
minetest.override_item("default:bookshelf", {
drawtype = "mesh",
- mesh = "3dbookshelf.obj",
+ mesh = "homedecor_3d_bookshelf.obj",
tiles = {
"default_wood.png",
- "default_wood.png^3dbookshelf_inside_back.png",
- "3dbookshelf_books.png",
+ "default_wood.png^homedecor_3d_bookshelf_inside_back.png",
+ "homedecor_3d_bookshelf_books.png",
},
paramtype = "light",
paramtype2 = "facedir",
})
-if minetest.get_modpath("vessels")
- and minetest.registered_nodes["vessels:shelf"]
- and minetest.registered_nodes["vessels:glass_bottle"]
- and minetest.registered_nodes["vessels:drinking_glass"] then
-
+if minetest.get_modpath("vessels") then
minetest.override_item("vessels:shelf", {
drawtype = "mesh",
- mesh = "3dvessels_shelf.obj",
+ mesh = "homedecor_3d_vessels_shelf.obj",
tiles = {
"default_wood.png",
- "default_wood.png^3dbookshelf_inside_back.png",
- "3dvessels_shelf_glass.png",
+ "default_wood.png^homedecor_3d_bookshelf_inside_back.png",
+ "homedecor_3d_vessels_shelf_glass.png",
},
paramtype = "light",
paramtype2 = "facedir",
@@ -35,29 +31,29 @@ if minetest.get_modpath("vessels")
minetest.override_item("vessels:glass_bottle", {
drawtype = "mesh",
- mesh = "3dvessels_bottle.obj",
- tiles = {"3dvessels_shelf_glass.png"},
- inventory_image = "3dvessels_glass_bottle_inv.png",
- wield_image = "3dvessels_glass_bottle_inv.png",
+ mesh = "homedecor_3d_vessels_bottle.obj",
+ tiles = {"homedecor_3d_vessels_shelf_glass.png"},
+ inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png",
+ wield_image = "homedecor_3d_vessels_glass_bottle_inv.png",
use_texture_alpha = true,
selection_box = sbox
})
minetest.override_item("vessels:steel_bottle", {
drawtype = "mesh",
- mesh = "3dvessels_bottle_steel.obj",
- tiles = {"bottle_metal_bright.png"},
- inventory_image = "3dvessels_steel_bottle_inv.png",
- wield_image = "3dvessels_steel_bottle_inv.png",
+ mesh = "homedecor_3d_vessels_bottle_steel.obj",
+ tiles = {"homedecor_3d_bottle_metal_bright.png"},
+ inventory_image = "homedecor_3d_vessels_steel_bottle_inv.png",
+ wield_image = "homedecor_3d_vessels_steel_bottle_inv.png",
selection_box = sbox
})
minetest.override_item("vessels:drinking_glass", {
drawtype = "mesh",
- mesh = "3dvessels_drink.obj",
- tiles = {"3dvessels_shelf_glass.png"},
- inventory_image = "3dvessels_drinking_glass_inv.png",
- wield_image = "3dvessels_drinking_glass_inv.png",
+ mesh = "homedecor_3d_vessels_drink.obj",
+ tiles = {"homedecor_3d_vessels_shelf_glass.png"},
+ inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png",
+ wield_image = "homedecor_3d_vessels_drinking_glass_inv.png",
use_texture_alpha = true,
selection_box = sbox
})
@@ -71,8 +67,8 @@ if minetest.get_modpath("moreblocks") then
"default_wood.png",
"default_wood.png^[transformR90",
"default_wood.png^[transformR270",
- "default_wood.png^3dbookshelf_inside_back.png",
- "default_wood.png^3dbookshelf_inside_back.png"
+ "default_wood.png^homedecor_3d_bookshelf_inside_back.png",
+ "default_wood.png^homedecor_3d_bookshelf_inside_back.png"
},
paramtype = "light",
paramtype2 = "facedir",
@@ -89,3 +85,48 @@ if minetest.get_modpath("moreblocks") then
}
})
end
+
+-- 3d-ify default mtg wood and steel doors and trap doors
+
+if minetest.get_modpath("doors") then
+ local function clone_node(name)
+ local node2 = {}
+ local node = minetest.registered_nodes[name]
+ for k,v in pairs(node) do
+ node2[k]=v
+ end
+ return node2
+ end
+
+ local def
+ for _,mat in ipairs({"wood", "steel"}) do
+ def = clone_node("doors:door_"..mat.."_a")
+ def.mesh = "homedecor_3d_door_"..mat.."_a.obj"
+ minetest.register_node(":doors:door_"..mat.."_a", def)
+
+ def = clone_node("doors:door_"..mat.."_b")
+ def.mesh = "homedecor_3d_door_"..mat.."_b.obj"
+ minetest.register_node(":doors:door_"..mat.."_b", def)
+ end
+
+ for _,mat in ipairs({"", "_steel"}) do
+ def = clone_node("doors:trapdoor"..mat)
+ def.drawtype = "mesh"
+ def.mesh = "homedecor_3d_trapdoor"..mat..".obj"
+ def.tiles = {
+ "doors_trapdoor"..mat..".png",
+ "doors_trapdoor"..mat.."_side.png"
+ }
+ minetest.register_node(":doors:trapdoor"..mat, def)
+
+ def = clone_node("doors:trapdoor"..mat.."_open")
+ def.mesh = "homedecor_3d_trapdoor"..mat.."_open.obj"
+ def.drawtype = "mesh"
+ def.tiles = {
+ "doors_trapdoor"..mat..".png",
+ "doors_trapdoor"..mat.."_side.png"
+ }
+ minetest.register_node(":doors:trapdoor"..mat.."_open", def)
+ end
+
+end
diff --git a/homedecor_3d_extras/models/3dbookshelf.obj b/homedecor_3d_extras/models/homedecor_3d_bookshelf.obj
index 29308a0..29308a0 100644
--- a/homedecor_3d_extras/models/3dbookshelf.obj
+++ b/homedecor_3d_extras/models/homedecor_3d_bookshelf.obj
diff --git a/homedecor_3d_extras/models/homedecor_3d_door_steel_a.obj b/homedecor_3d_extras/models/homedecor_3d_door_steel_a.obj
new file mode 100644
index 0000000..ba2d827
--- /dev/null
+++ b/homedecor_3d_extras/models/homedecor_3d_door_steel_a.obj
@@ -0,0 +1,152 @@
+# Blender v2.79 (sub 0) OBJ File: 'default door steel 3d.blend'
+# www.blender.org
+o Cylinder_Cylinder_door
+v 0.375000 1.375000 -0.375000
+v -0.500000 -0.500000 -0.375000
+v 0.500000 -0.500000 -0.375000
+v 0.375000 0.625000 -0.375000
+v 0.500000 1.500000 -0.375000
+v -0.500000 1.500000 -0.375000
+v 0.500000 -0.500000 -0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 1.500000 -0.500000
+v 0.500000 1.500000 -0.500000
+v -0.375000 0.625000 -0.500000
+v 0.312500 0.687500 -0.453125
+v -0.312500 1.312500 -0.453125
+v -0.375000 1.375000 -0.375000
+v -0.375000 1.375000 -0.500000
+v 0.375000 1.375000 -0.500000
+v 0.312500 1.312500 -0.421875
+v 0.312500 1.312500 -0.453125
+v -0.375000 0.625000 -0.375000
+v -0.312500 0.687500 -0.453125
+v -0.312500 0.687500 -0.421875
+v 0.375000 0.625000 -0.500000
+v 0.312500 0.687500 -0.421875
+v -0.312500 1.312500 -0.421875
+v -0.312500 0.687500 -0.436500
+v 0.312500 1.312500 -0.436500
+v -0.312500 1.312500 -0.436500
+v 0.312500 0.687500 -0.436500
+v -0.312500 0.687500 -0.437500
+v 0.312500 1.312500 -0.437500
+v -0.312500 1.312500 -0.437500
+v 0.312500 0.687500 -0.437500
+vt 0.789474 0.562500
+vt 0.473684 0.562500
+vt 0.421053 0.000000
+vt 0.842105 0.000000
+vt 0.368421 0.562500
+vt 0.052632 0.562500
+vt 0.000000 0.000000
+vt 0.421053 0.000000
+vt 0.052632 0.937500
+vt 0.000000 1.000000
+vt 0.421053 1.000000
+vt 0.368421 0.937500
+vt 0.789474 0.937500
+vt 0.842105 1.000000
+vt 0.421053 1.000000
+vt 0.473684 0.937500
+vt 1.000000 1.000000
+vt 0.947368 1.000000
+vt 0.947368 0.500000
+vt 1.000000 0.500000
+vt 1.000000 -0.000000
+vt 1.000000 0.500000
+vt 0.947368 0.500000
+vt 0.947368 -0.000000
+vt 0.842105 1.000000
+vt 0.842105 0.000000
+vt 0.894737 0.000000
+vt 0.894737 1.000000
+vt 0.947368 0.000000
+vt 0.947368 1.000000
+vt 0.894737 1.000000
+vt 0.894737 0.000000
+vt 1.000000 0.906250
+vt 0.973684 0.906250
+vt 0.973684 0.593750
+vt 1.000000 0.593750
+vt 0.763158 0.906250
+vt 0.500000 0.906250
+vt 0.868421 0.906250
+vt 0.868421 0.593750
+vt 0.894737 0.593750
+vt 0.894737 0.906250
+vt 0.500000 0.593750
+vt 0.763158 0.593750
+vt 0.947368 0.937500
+vt 0.947368 0.937500
+vt 0.894737 0.937500
+vt 0.894737 0.937500
+vt 0.947368 0.937500
+vt 0.947368 0.937500
+vt 0.894737 0.937500
+vt 0.894737 0.937500
+vt 1.000000 0.406250
+vt 0.973684 0.406250
+vt 0.973684 0.093750
+vt 1.000000 0.093750
+vt 0.078947 0.593750
+vt 0.078947 0.906250
+vt 0.342105 0.593750
+vt 0.342105 0.906250
+vt 0.078947 0.906250
+vt 0.078947 0.593750
+vt 0.342105 0.593750
+vt 0.342105 0.906250
+vt 0.500000 0.906250
+vt 0.500000 0.593750
+vt 0.763158 0.593750
+vt 0.763158 0.906250
+vt 0.947368 0.906250
+vt 0.921053 0.906250
+vt 0.921053 0.593750
+vt 0.947368 0.593750
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 0.0000 1.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 1.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn -1.0000 0.0000 0.0000
+vn -0.0000 -0.6000 -0.8000
+vn 0.0000 0.6000 -0.8000
+vn 0.7071 0.7071 0.0000
+vn 0.6000 0.0000 -0.8000
+vn -0.7071 0.7071 0.0000
+vn 0.6000 0.0000 0.8000
+vn 0.0000 0.6000 0.8000
+vn -0.6000 -0.0000 -0.8000
+vn -0.6000 0.0000 0.8000
+vn 0.0000 -0.6000 0.8000
+s off
+f 11/1/1 22/2/1 7/3/1 8/4/1
+f 4/5/2 19/6/2 2/7/2 3/8/2
+f 2/7/2 19/6/2 14/9/2 6/10/2
+f 3/8/2 5/11/2 1/12/2 4/5/2
+f 5/11/2 6/10/2 14/9/2 1/12/2
+f 15/13/1 11/1/1 8/4/1 9/14/1
+f 10/15/1 16/16/1 15/13/1 9/14/1
+f 16/16/1 10/15/1 7/3/1 22/2/1
+f 2/17/3 8/18/3 7/19/3 3/20/3
+f 6/21/4 5/22/4 10/23/4 9/24/4
+f 5/25/5 3/26/5 7/27/5 10/28/5
+f 2/29/6 6/30/6 9/31/6 8/32/6
+f 24/33/3 13/34/3 18/35/3 17/36/3
+f 13/37/7 15/13/7 16/16/7 18/38/7
+f 24/39/5 21/40/5 20/41/5 13/42/5
+f 12/43/8 22/2/8 11/1/8 20/44/8
+f 14/45/9 24/46/9 13/47/9 15/48/9
+f 20/44/10 11/1/10 15/13/10 13/37/10
+f 17/49/11 1/50/11 16/51/11 18/52/11
+f 23/53/4 12/54/4 20/55/4 21/56/4
+f 14/9/12 19/6/12 21/57/12 24/58/12
+f 21/57/13 19/6/13 4/5/13 23/59/13
+f 16/16/14 22/2/14 12/43/14 18/38/14
+f 23/59/15 4/5/15 1/12/15 17/60/15
+f 14/9/16 24/58/16 17/60/16 1/12/16
+f 27/61/2 25/62/2 28/63/2 26/64/2
+f 30/65/1 32/66/1 29/67/1 31/68/1
+f 17/69/6 18/70/6 12/71/6 23/72/6
diff --git a/homedecor_3d_extras/models/homedecor_3d_door_steel_b.obj b/homedecor_3d_extras/models/homedecor_3d_door_steel_b.obj
new file mode 100644
index 0000000..33bac1f
--- /dev/null
+++ b/homedecor_3d_extras/models/homedecor_3d_door_steel_b.obj
@@ -0,0 +1,152 @@
+# Blender v2.79 (sub 0) OBJ File: 'default door steel 3d.blend'
+# www.blender.org
+o Cylinder_Cylinder_door
+v -0.375000 1.375000 -0.500000
+v 0.500000 -0.500000 -0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.375000 0.625000 -0.500000
+v -0.500000 1.500000 -0.500000
+v 0.500000 1.500000 -0.500000
+v -0.500000 -0.500000 -0.375000
+v 0.500000 -0.500000 -0.375000
+v 0.500000 1.500000 -0.375000
+v -0.500000 1.500000 -0.375000
+v 0.375000 0.625000 -0.375000
+v -0.312500 0.687500 -0.421875
+v 0.312500 1.312500 -0.421875
+v 0.375000 1.375000 -0.500000
+v 0.375000 1.375000 -0.375000
+v -0.375000 1.375000 -0.375000
+v -0.312500 1.312500 -0.453125
+v -0.312500 1.312500 -0.421875
+v 0.375000 0.625000 -0.500000
+v 0.312500 0.687500 -0.421875
+v 0.312500 0.687500 -0.453125
+v -0.375000 0.625000 -0.375000
+v -0.312500 0.687500 -0.453125
+v 0.312500 1.312500 -0.453125
+v 0.312500 0.687500 -0.438500
+v -0.312500 1.312500 -0.438500
+v 0.312500 1.312500 -0.438500
+v -0.312500 0.687500 -0.438500
+v 0.312500 0.687500 -0.437500
+v -0.312500 1.312500 -0.437500
+v 0.312500 1.312500 -0.437500
+v -0.312500 0.687500 -0.437500
+vt 0.789474 0.562500
+vt 0.473684 0.562500
+vt 0.421053 0.000000
+vt 0.842105 0.000000
+vt 0.368421 0.562500
+vt 0.052632 0.562500
+vt 0.000000 0.000000
+vt 0.421053 0.000000
+vt 0.052632 0.937500
+vt 0.000000 1.000000
+vt 0.421053 1.000000
+vt 0.368421 0.937500
+vt 0.789474 0.937500
+vt 0.842105 1.000000
+vt 0.421053 1.000000
+vt 0.473684 0.937500
+vt 1.000000 1.000000
+vt 0.947368 1.000000
+vt 0.947368 0.500000
+vt 1.000000 0.500000
+vt 1.000000 -0.000000
+vt 1.000000 0.500000
+vt 0.947368 0.500000
+vt 0.947368 -0.000000
+vt 0.842105 1.000000
+vt 0.842105 0.000000
+vt 0.894737 0.000000
+vt 0.894737 1.000000
+vt 0.947368 0.000000
+vt 0.947368 1.000000
+vt 0.894737 1.000000
+vt 0.894737 0.000000
+vt 1.000000 0.906250
+vt 0.973684 0.906250
+vt 0.973684 0.593750
+vt 1.000000 0.593750
+vt 0.763158 0.906250
+vt 0.500000 0.906250
+vt 0.868421 0.906250
+vt 0.868421 0.593750
+vt 0.894737 0.593750
+vt 0.894737 0.906250
+vt 0.500000 0.593750
+vt 0.763158 0.593750
+vt 0.947368 0.937500
+vt 0.947368 0.937500
+vt 0.894737 0.937500
+vt 0.894737 0.937500
+vt 0.947368 0.937500
+vt 0.947368 0.937500
+vt 0.894737 0.937500
+vt 0.894737 0.937500
+vt 1.000000 0.406250
+vt 0.973684 0.406250
+vt 0.973684 0.093750
+vt 1.000000 0.093750
+vt 0.078947 0.593750
+vt 0.078947 0.906250
+vt 0.342105 0.593750
+vt 0.342105 0.906250
+vt 0.078947 0.906250
+vt 0.078947 0.593750
+vt 0.342105 0.593750
+vt 0.342105 0.906250
+vt 0.500000 0.906250
+vt 0.500000 0.593750
+vt 0.763158 0.593750
+vt 0.763158 0.906250
+vt 0.947368 0.906250
+vt 0.921053 0.906250
+vt 0.921053 0.593750
+vt 0.947368 0.593750
+vn 0.0000 0.0000 1.0000
+vn -0.0000 -0.0000 -1.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 1.0000 0.0000
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 -0.6000 0.8000
+vn 0.0000 0.6000 0.8000
+vn -0.7071 0.7071 0.0000
+vn -0.6000 -0.0000 0.8000
+vn 0.7071 0.7071 0.0000
+vn -0.6000 0.0000 -0.8000
+vn -0.0000 0.6000 -0.8000
+vn 0.6000 -0.0000 0.8000
+vn 0.6000 0.0000 -0.8000
+vn -0.0000 -0.6000 -0.8000
+s off
+f 11/1/1 22/2/1 7/3/1 8/4/1
+f 4/5/2 19/6/2 2/7/2 3/8/2
+f 2/7/2 19/6/2 14/9/2 6/10/2
+f 3/8/2 5/11/2 1/12/2 4/5/2
+f 5/11/2 6/10/2 14/9/2 1/12/2
+f 15/13/1 11/1/1 8/4/1 9/14/1
+f 10/15/1 16/16/1 15/13/1 9/14/1
+f 16/16/1 10/15/1 7/3/1 22/2/1
+f 2/17/3 8/18/3 7/19/3 3/20/3
+f 6/21/4 5/22/4 10/23/4 9/24/4
+f 5/25/5 3/26/5 7/27/5 10/28/5
+f 2/29/6 6/30/6 9/31/6 8/32/6
+f 24/33/3 13/34/3 18/35/3 17/36/3
+f 13/37/7 15/13/7 16/16/7 18/38/7
+f 24/39/5 21/40/5 20/41/5 13/42/5
+f 12/43/8 22/2/8 11/1/8 20/44/8
+f 14/45/9 24/46/9 13/47/9 15/48/9
+f 20/44/10 11/1/10 15/13/10 13/37/10
+f 17/49/11 1/50/11 16/51/11 18/52/11
+f 23/53/4 12/54/4 20/55/4 21/56/4
+f 14/9/12 19/6/12 21/57/12 24/58/12
+f 21/57/13 19/6/13 4/5/13 23/59/13
+f 16/16/14 22/2/14 12/43/14 18/38/14
+f 23/59/15 4/5/15 1/12/15 17/60/15
+f 14/9/16 24/58/16 17/60/16 1/12/16
+f 27/61/2 25/62/2 28/63/2 26/64/2
+f 30/65/1 32/66/1 29/67/1 31/68/1
+f 17/69/6 18/70/6 12/71/6 23/72/6
diff --git a/homedecor_3d_extras/models/homedecor_3d_door_wood_a.obj b/homedecor_3d_extras/models/homedecor_3d_door_wood_a.obj
new file mode 100644
index 0000000..2c99928
--- /dev/null
+++ b/homedecor_3d_extras/models/homedecor_3d_door_wood_a.obj
@@ -0,0 +1,248 @@
+# Blender v2.79 (sub 0) OBJ File: 'default door wood 3d.blend'
+# www.blender.org
+o Cylinder_Cylinder_door
+v 0.375000 1.375000 -0.375000
+v -0.500000 -0.500000 -0.375000
+v 0.500000 -0.500000 -0.375000
+v 0.375000 0.625000 -0.375000
+v 0.500000 1.500000 -0.375000
+v -0.500000 1.500000 -0.375000
+v 0.500000 -0.500000 -0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 1.500000 -0.500000
+v 0.500000 1.500000 -0.500000
+v -0.375000 0.625000 -0.500000
+v -0.062500 0.687500 -0.421875
+v -0.062500 1.312500 -0.453125
+v 0.062500 0.937500 -0.453125
+v 0.312500 0.937500 -0.453125
+v 0.312500 1.062500 -0.453125
+v -0.062500 0.937500 -0.453125
+v -0.062500 1.062500 -0.453125
+v -0.312500 1.062500 -0.453125
+v -0.312500 1.312500 -0.453125
+v -0.312500 1.312500 -0.421875
+v 0.062500 1.062500 -0.421875
+v 0.062500 1.062500 -0.453125
+v -0.375000 1.375000 -0.375000
+v -0.375000 1.375000 -0.500000
+v 0.375000 1.375000 -0.500000
+v 0.312500 0.687500 -0.453125
+v 0.312500 1.312500 -0.421875
+v 0.312500 1.312500 -0.453125
+v -0.375000 0.625000 -0.375000
+v -0.062500 1.062500 -0.421875
+v -0.062500 0.937500 -0.421875
+v 0.062500 0.937500 -0.421875
+v -0.312500 0.687500 -0.453125
+v -0.312500 0.687500 -0.421875
+v 0.375000 0.625000 -0.500000
+v 0.312500 0.687500 -0.421875
+v -0.062500 1.312500 -0.421875
+v 0.062500 1.312500 -0.421875
+v 0.062500 1.312500 -0.453125
+v 0.062500 0.687500 -0.421875
+v 0.062500 0.687500 -0.453125
+v -0.062500 0.687500 -0.453125
+v -0.312500 1.062500 -0.421875
+v -0.312500 0.937500 -0.453125
+v -0.312500 0.937500 -0.421875
+v 0.312500 1.062500 -0.421875
+v 0.312500 0.937500 -0.421875
+vt 0.789474 0.562500
+vt 0.473684 0.562500
+vt 0.421053 0.000000
+vt 0.842105 0.000000
+vt 0.368421 0.562500
+vt 0.052632 0.562500
+vt 0.000000 0.000000
+vt 0.421053 0.000000
+vt 0.052632 0.937500
+vt 0.000000 1.000000
+vt 0.421053 1.000000
+vt 0.368421 0.937500
+vt 0.789474 0.937500
+vt 0.842105 1.000000
+vt 0.421053 1.000000
+vt 0.473684 0.937500
+vt 1.000000 1.000000
+vt 0.947368 1.000000
+vt 0.947368 0.500000
+vt 1.000000 0.500000
+vt 1.000000 0.000000
+vt 1.000000 0.500000
+vt 0.947368 0.500000
+vt 0.947368 0.000000
+vt 0.842105 1.000000
+vt 0.842105 0.000000
+vt 0.894737 0.000000
+vt 0.894737 1.000000
+vt 0.947368 0.000000
+vt 0.947368 1.000000
+vt 0.894737 1.000000
+vt 0.894737 0.000000
+vt 0.868421 0.718750
+vt 0.868421 0.593750
+vt 0.894737 0.593750
+vt 0.894737 0.718750
+vt 0.947368 0.718750
+vt 0.921053 0.718750
+vt 0.921053 0.593750
+vt 0.947368 0.593750
+vt 1.000000 0.718750
+vt 0.973684 0.718750
+vt 0.973684 0.593750
+vt 1.000000 0.593750
+vt 1.000000 0.718750
+vt 0.973684 0.718750
+vt 0.973684 0.593750
+vt 1.000000 0.593750
+vt 1.000000 0.281250
+vt 1.000000 0.406250
+vt 0.973684 0.406250
+vt 0.973684 0.281250
+vt 0.763158 0.906250
+vt 0.500000 0.906250
+vt 0.605263 0.906250
+vt 0.657895 0.906250
+vt 0.763158 0.781250
+vt 0.657895 0.781250
+vt 0.605263 0.781250
+vt 0.500000 0.781250
+vt 0.500000 0.718750
+vt 0.605263 0.718750
+vt 0.657895 0.718750
+vt 0.763158 0.718750
+vt 1.000000 0.906250
+vt 0.973684 0.906250
+vt 0.973684 0.781250
+vt 1.000000 0.781250
+vt 1.000000 0.093750
+vt 1.000000 0.218750
+vt 0.973684 0.218750
+vt 0.973684 0.093750
+vt 0.078947 0.906250
+vt 0.184211 0.906250
+vt 0.236842 0.906250
+vt 0.342105 0.906250
+vt 0.868421 0.718750
+vt 0.868421 0.593750
+vt 0.894737 0.593750
+vt 0.894737 0.718750
+vt 0.500000 0.593750
+vt 0.763158 0.593750
+vt 0.657895 0.593750
+vt 0.605263 0.593750
+vt 0.947368 0.937500
+vt 0.947368 0.937500
+vt 0.894737 0.937500
+vt 0.894737 0.937500
+vt 0.868421 0.906250
+vt 0.868421 0.781250
+vt 0.894737 0.781250
+vt 0.894737 0.906250
+vt 0.342105 0.593750
+vt 0.342105 0.781250
+vt 0.342105 0.718750
+vt 0.947368 0.718750
+vt 0.921053 0.718750
+vt 0.921053 0.593750
+vt 0.947368 0.593750
+vt 0.947368 0.906250
+vt 0.921053 0.906250
+vt 0.921053 0.781250
+vt 0.947368 0.781250
+vt 0.947368 0.937500
+vt 0.947368 0.937500
+vt 0.894737 0.937500
+vt 0.894737 0.937500
+vt 1.000000 0.218750
+vt 0.973684 0.218750
+vt 0.973684 0.093750
+vt 1.000000 0.093750
+vt 0.078947 0.593750
+vt 0.078947 0.718750
+vt 0.078947 0.781250
+vt 0.236842 0.593750
+vt 0.184211 0.593750
+vt 0.236842 0.781250
+vt 0.184211 0.781250
+vt 0.184211 0.718750
+vt 0.236842 0.718750
+vt 1.000000 0.906250
+vt 0.973684 0.906250
+vt 0.973684 0.781250
+vt 1.000000 0.781250
+vt 1.000000 0.406250
+vt 0.973684 0.406250
+vt 0.973684 0.281250
+vt 1.000000 0.281250
+vt 0.868421 0.906250
+vt 0.868421 0.781250
+vt 0.894737 0.781250
+vt 0.894737 0.906250
+vt 0.947368 0.906250
+vt 0.921053 0.906250
+vt 0.921053 0.781250
+vt 0.947368 0.781250
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 0.0000 1.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 1.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn -1.0000 0.0000 0.0000
+vn -0.0000 -0.6000 -0.8000
+vn 0.0000 -0.6000 0.8000
+vn 0.0000 0.6000 -0.8000
+vn 0.7071 0.7071 0.0000
+vn -0.6000 0.0000 0.8000
+vn 0.6000 0.0000 -0.8000
+vn -0.7071 0.7071 0.0000
+vn 0.6000 0.0000 0.8000
+vn 0.0000 0.6000 0.8000
+vn -0.6000 -0.0000 -0.8000
+s off
+f 11/1/1 36/2/1 7/3/1 8/4/1
+f 4/5/2 30/6/2 2/7/2 3/8/2
+f 2/7/2 30/6/2 24/9/2 6/10/2
+f 3/8/2 5/11/2 1/12/2 4/5/2
+f 5/11/2 6/10/2 24/9/2 1/12/2
+f 25/13/1 11/1/1 8/4/1 9/14/1
+f 10/15/1 26/16/1 25/13/1 9/14/1
+f 26/16/1 10/15/1 7/3/1 36/2/1
+f 2/17/3 8/18/3 7/19/3 3/20/3
+f 6/21/4 5/22/4 10/23/4 9/24/4
+f 5/25/5 3/26/5 7/27/5 10/28/5
+f 2/29/6 6/30/6 9/31/6 8/32/6
+f 33/33/5 41/34/5 42/35/5 14/36/5
+f 32/37/6 17/38/6 43/39/6 12/40/6
+f 39/41/3 40/42/3 29/43/3 28/44/3
+f 33/45/3 14/46/3 15/47/3 48/48/3
+f 22/49/4 47/50/4 16/51/4 23/52/4
+f 20/53/7 25/13/7 26/16/7 29/54/7 40/55/7 13/56/7
+f 19/57/1 18/58/1 23/59/1 16/60/1 15/61/1 14/62/1 17/63/1 45/64/1
+f 46/65/3 45/66/3 17/67/3 32/68/3
+f 44/69/4 31/70/4 18/71/4 19/72/4
+f 24/9/8 21/73/8 38/74/8 39/75/8 28/76/8 1/12/8
+f 46/77/5 35/78/5 34/79/5 45/80/5
+f 27/81/9 36/2/9 11/1/9 34/82/9 43/83/9 42/84/9
+f 24/85/10 21/86/10 20/87/10 25/88/10
+f 39/89/5 22/90/5 23/91/5 40/92/5
+f 37/93/11 4/5/11 1/12/11 28/76/11 47/94/11 48/95/11
+f 48/96/6 15/97/6 27/98/6 37/99/6
+f 34/82/12 11/1/12 25/13/12 20/53/12 19/57/12 45/64/12
+f 38/100/6 13/101/6 18/102/6 31/103/6
+f 28/104/13 1/105/13 26/106/13 29/107/13
+f 12/108/4 43/109/4 34/110/4 35/111/4
+f 24/9/14 30/6/14 35/112/14 46/113/14 44/114/14 21/73/14
+f 35/112/15 30/6/15 4/5/15 37/93/15 41/115/15 12/116/15
+f 26/16/16 36/2/16 27/81/16 15/61/16 16/60/16 29/54/16
+f 40/55/1 23/59/1 18/58/1 13/56/1
+f 22/117/2 31/118/2 44/114/2 46/113/2 32/119/2 33/120/2 48/95/2 47/94/2
+f 14/62/1 42/84/1 43/83/1 17/63/1
+f 41/115/2 33/120/2 32/119/2 12/116/2
+f 22/117/2 39/75/2 38/74/2 31/118/2
+f 21/121/3 20/122/3 13/123/3 38/124/3
+f 37/125/4 27/126/4 42/127/4 41/128/4
+f 21/129/5 44/130/5 19/131/5 20/132/5
+f 28/133/6 29/134/6 16/135/6 47/136/6
diff --git a/homedecor_3d_extras/models/homedecor_3d_door_wood_b.obj b/homedecor_3d_extras/models/homedecor_3d_door_wood_b.obj
new file mode 100644
index 0000000..48049de
--- /dev/null
+++ b/homedecor_3d_extras/models/homedecor_3d_door_wood_b.obj
@@ -0,0 +1,248 @@
+# Blender v2.79 (sub 0) OBJ File: 'default door wood 3d.blend'
+# www.blender.org
+o Cylinder_Cylinder_door
+v -0.375000 1.375000 -0.500000
+v 0.500000 -0.500000 -0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.375000 0.625000 -0.500000
+v -0.500000 1.500000 -0.500000
+v 0.500000 1.500000 -0.500000
+v -0.500000 -0.500000 -0.375000
+v 0.500000 -0.500000 -0.375000
+v 0.500000 1.500000 -0.375000
+v -0.500000 1.500000 -0.375000
+v 0.375000 0.625000 -0.375000
+v 0.062500 0.687500 -0.453125
+v 0.062500 1.312500 -0.421875
+v -0.062500 0.937500 -0.421875
+v -0.312500 0.937500 -0.421875
+v -0.312500 1.062500 -0.421875
+v 0.062500 0.937500 -0.421875
+v 0.062500 1.062500 -0.421875
+v 0.312500 1.062500 -0.421875
+v 0.312500 1.312500 -0.421875
+v 0.312500 1.312500 -0.453125
+v -0.062500 1.062500 -0.453125
+v -0.062500 1.062500 -0.421875
+v 0.375000 1.375000 -0.500000
+v 0.375000 1.375000 -0.375000
+v -0.375000 1.375000 -0.375000
+v -0.312500 0.687500 -0.421875
+v -0.312500 1.312500 -0.453125
+v -0.312500 1.312500 -0.421875
+v 0.375000 0.625000 -0.500000
+v 0.062500 1.062500 -0.453125
+v 0.062500 0.937500 -0.453125
+v -0.062500 0.937500 -0.453125
+v 0.312500 0.687500 -0.421875
+v 0.312500 0.687500 -0.453125
+v -0.375000 0.625000 -0.375000
+v -0.312500 0.687500 -0.453125
+v 0.062500 1.312500 -0.453125
+v -0.062500 1.312500 -0.453125
+v -0.062500 1.312500 -0.421875
+v -0.062500 0.687500 -0.453125
+v -0.062500 0.687500 -0.421875
+v 0.062500 0.687500 -0.421875
+v 0.312500 1.062500 -0.453125
+v 0.312500 0.937500 -0.421875
+v 0.312500 0.937500 -0.453125
+v -0.312500 1.062500 -0.453125
+v -0.312500 0.937500 -0.453125
+vt 0.789474 0.562500
+vt 0.473684 0.562500
+vt 0.421053 0.000000
+vt 0.842105 0.000000
+vt 0.368421 0.562500
+vt 0.052632 0.562500
+vt 0.000000 0.000000
+vt 0.421053 0.000000
+vt 0.052632 0.937500
+vt 0.000000 1.000000
+vt 0.421053 1.000000
+vt 0.368421 0.937500
+vt 0.789474 0.937500
+vt 0.842105 1.000000
+vt 0.421053 1.000000
+vt 0.473684 0.937500
+vt 1.000000 1.000000
+vt 0.947368 1.000000
+vt 0.947368 0.500000
+vt 1.000000 0.500000
+vt 1.000000 0.000000
+vt 1.000000 0.500000
+vt 0.947368 0.500000
+vt 0.947368 0.000000
+vt 0.842105 1.000000
+vt 0.842105 0.000000
+vt 0.894737 0.000000
+vt 0.894737 1.000000
+vt 0.947368 0.000000
+vt 0.947368 1.000000
+vt 0.894737 1.000000
+vt 0.894737 0.000000
+vt 0.868421 0.718750
+vt 0.868421 0.593750
+vt 0.894737 0.593750
+vt 0.894737 0.718750
+vt 0.947368 0.718750
+vt 0.921053 0.718750
+vt 0.921053 0.593750
+vt 0.947368 0.593750
+vt 1.000000 0.718750
+vt 0.973684 0.718750
+vt 0.973684 0.593750
+vt 1.000000 0.593750
+vt 1.000000 0.718750
+vt 0.973684 0.718750
+vt 0.973684 0.593750
+vt 1.000000 0.593750
+vt 1.000000 0.281250
+vt 1.000000 0.406250
+vt 0.973684 0.406250
+vt 0.973684 0.281250
+vt 0.763158 0.906250
+vt 0.500000 0.906250
+vt 0.605263 0.906250
+vt 0.657895 0.906250
+vt 0.763158 0.781250
+vt 0.657895 0.781250
+vt 0.605263 0.781250
+vt 0.500000 0.781250
+vt 0.500000 0.718750
+vt 0.605263 0.718750
+vt 0.657895 0.718750
+vt 0.763158 0.718750
+vt 1.000000 0.906250
+vt 0.973684 0.906250
+vt 0.973684 0.781250
+vt 1.000000 0.781250
+vt 1.000000 0.093750
+vt 1.000000 0.218750
+vt 0.973684 0.218750
+vt 0.973684 0.093750
+vt 0.078947 0.906250
+vt 0.184211 0.906250
+vt 0.236842 0.906250
+vt 0.342105 0.906250
+vt 0.868421 0.718750
+vt 0.868421 0.593750
+vt 0.894737 0.593750
+vt 0.894737 0.718750
+vt 0.500000 0.593750
+vt 0.763158 0.593750
+vt 0.657895 0.593750
+vt 0.605263 0.593750
+vt 0.947368 0.937500
+vt 0.947368 0.937500
+vt 0.894737 0.937500
+vt 0.894737 0.937500
+vt 0.868421 0.906250
+vt 0.868421 0.781250
+vt 0.894737 0.781250
+vt 0.894737 0.906250
+vt 0.342105 0.593750
+vt 0.342105 0.781250
+vt 0.342105 0.718750
+vt 0.947368 0.718750
+vt 0.921053 0.718750
+vt 0.921053 0.593750
+vt 0.947368 0.593750
+vt 0.947368 0.906250
+vt 0.921053 0.906250
+vt 0.921053 0.781250
+vt 0.947368 0.781250
+vt 0.947368 0.937500
+vt 0.947368 0.937500
+vt 0.894737 0.937500
+vt 0.894737 0.937500
+vt 1.000000 0.218750
+vt 0.973684 0.218750
+vt 0.973684 0.093750
+vt 1.000000 0.093750
+vt 0.078947 0.593750
+vt 0.078947 0.718750
+vt 0.078947 0.781250
+vt 0.236842 0.593750
+vt 0.184211 0.593750
+vt 0.236842 0.781250
+vt 0.184211 0.781250
+vt 0.184211 0.718750
+vt 0.236842 0.718750
+vt 1.000000 0.906250
+vt 0.973684 0.906250
+vt 0.973684 0.781250
+vt 1.000000 0.781250
+vt 1.000000 0.406250
+vt 0.973684 0.406250
+vt 0.973684 0.281250
+vt 1.000000 0.281250
+vt 0.868421 0.906250
+vt 0.868421 0.781250
+vt 0.894737 0.781250
+vt 0.894737 0.906250
+vt 0.947368 0.906250
+vt 0.921053 0.906250
+vt 0.921053 0.781250
+vt 0.947368 0.781250
+vn 0.0000 0.0000 1.0000
+vn -0.0000 -0.0000 -1.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 1.0000 0.0000
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 -0.6000 0.8000
+vn -0.0000 -0.6000 -0.8000
+vn 0.0000 0.6000 0.8000
+vn -0.7071 0.7071 0.0000
+vn 0.6000 0.0000 -0.8000
+vn -0.6000 -0.0000 0.8000
+vn 0.7071 0.7071 0.0000
+vn -0.6000 0.0000 -0.8000
+vn -0.0000 0.6000 -0.8000
+vn 0.6000 -0.0000 0.8000
+s off
+f 11/1/1 36/2/1 7/3/1 8/4/1
+f 4/5/2 30/6/2 2/7/2 3/8/2
+f 2/7/2 30/6/2 24/9/2 6/10/2
+f 3/8/2 5/11/2 1/12/2 4/5/2
+f 5/11/2 6/10/2 24/9/2 1/12/2
+f 25/13/1 11/1/1 8/4/1 9/14/1
+f 10/15/1 26/16/1 25/13/1 9/14/1
+f 26/16/1 10/15/1 7/3/1 36/2/1
+f 2/17/3 8/18/3 7/19/3 3/20/3
+f 6/21/4 5/22/4 10/23/4 9/24/4
+f 5/25/5 3/26/5 7/27/5 10/28/5
+f 2/29/6 6/30/6 9/31/6 8/32/6
+f 33/33/5 41/34/5 42/35/5 14/36/5
+f 32/37/6 17/38/6 43/39/6 12/40/6
+f 39/41/3 40/42/3 29/43/3 28/44/3
+f 33/45/3 14/46/3 15/47/3 48/48/3
+f 22/49/4 47/50/4 16/51/4 23/52/4
+f 20/53/7 25/13/7 26/16/7 29/54/7 40/55/7 13/56/7
+f 19/57/1 18/58/1 23/59/1 16/60/1 15/61/1 14/62/1 17/63/1 45/64/1
+f 46/65/3 45/66/3 17/67/3 32/68/3
+f 44/69/4 31/70/4 18/71/4 19/72/4
+f 24/9/8 21/73/8 38/74/8 39/75/8 28/76/8 1/12/8
+f 46/77/5 35/78/5 34/79/5 45/80/5
+f 27/81/9 36/2/9 11/1/9 34/82/9 43/83/9 42/84/9
+f 24/85/10 21/86/10 20/87/10 25/88/10
+f 39/89/5 22/90/5 23/91/5 40/92/5
+f 37/93/11 4/5/11 1/12/11 28/76/11 47/94/11 48/95/11
+f 48/96/6 15/97/6 27/98/6 37/99/6
+f 34/82/12 11/1/12 25/13/12 20/53/12 19/57/12 45/64/12
+f 38/100/6 13/101/6 18/102/6 31/103/6
+f 28/104/13 1/105/13 26/106/13 29/107/13
+f 12/108/4 43/109/4 34/110/4 35/111/4
+f 24/9/14 30/6/14 35/112/14 46/113/14 44/114/14 21/73/14
+f 35/112/15 30/6/15 4/5/15 37/93/15 41/115/15 12/116/15
+f 26/16/16 36/2/16 27/81/16 15/61/16 16/60/16 29/54/16
+f 40/55/1 23/59/1 18/58/1 13/56/1
+f 22/117/2 31/118/2 44/114/2 46/113/2 32/119/2 33/120/2 48/95/2 47/94/2
+f 14/62/1 42/84/1 43/83/1 17/63/1
+f 41/115/2 33/120/2 32/119/2 12/116/2
+f 22/117/2 39/75/2 38/74/2 31/118/2
+f 21/121/3 20/122/3 13/123/3 38/124/3
+f 37/125/4 27/126/4 42/127/4 41/128/4
+f 21/129/5 44/130/5 19/131/5 20/132/5
+f 28/133/6 29/134/6 16/135/6 47/136/6
diff --git a/homedecor_3d_extras/models/homedecor_3d_trapdoor.obj b/homedecor_3d_extras/models/homedecor_3d_trapdoor.obj
new file mode 100644
index 0000000..60008e9
--- /dev/null
+++ b/homedecor_3d_extras/models/homedecor_3d_trapdoor.obj
@@ -0,0 +1,318 @@
+# Blender v2.79 (sub 0) OBJ File: 'default trapdoor wood 3d.blend'
+# www.blender.org
+o Cube.001
+v 0.500000 -0.500000 -0.500000
+v 0.500000 -0.375000 -0.500000
+v 0.500000 -0.500000 0.500000
+v 0.500000 -0.375000 0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 -0.375000 -0.500000
+v -0.500000 -0.500000 0.500000
+v -0.500000 -0.375000 0.500000
+v 0.500000 -0.500000 -0.375000
+v 0.500000 -0.375000 0.375000
+v -0.500000 -0.500000 0.375000
+v -0.500000 -0.375000 -0.375000
+v 0.500000 -0.500000 0.375000
+v 0.500000 -0.375000 -0.375000
+v -0.500000 -0.500000 -0.375000
+v -0.500000 -0.375000 0.375000
+v -0.125000 -0.468750 -0.125000
+v 0.125000 -0.406250 -0.125000
+v -0.125000 -0.406250 -0.125000
+v -0.375000 -0.375000 -0.375000
+v -0.375000 -0.375000 0.375000
+v 0.375000 -0.375000 0.375000
+v 0.125000 -0.406250 0.125000
+v 0.125000 -0.468750 -0.125000
+v 0.375000 -0.500000 -0.375000
+v 0.375000 -0.500000 0.375000
+v -0.375000 -0.500000 0.375000
+v -0.125000 -0.468750 0.125000
+v 0.125000 -0.468750 0.125000
+v -0.125000 -0.406250 0.125000
+v 0.375000 -0.375000 -0.375000
+v -0.375000 -0.500000 -0.375000
+v 0.500000 -0.500000 0.062500
+v 0.500000 -0.375000 -0.062500
+v -0.500000 -0.500000 -0.062500
+v -0.500000 -0.375000 0.062500
+v 0.500000 -0.500000 -0.062500
+v 0.500000 -0.375000 0.062500
+v -0.500000 -0.500000 0.062500
+v -0.500000 -0.375000 -0.062500
+v -0.375000 -0.500000 -0.062500
+v -0.312500 -0.468750 -0.125000
+v -0.125000 -0.468750 -0.312500
+v -0.062500 -0.500000 -0.375000
+v 0.375000 -0.375000 -0.062500
+v 0.312500 -0.406250 -0.125000
+v 0.125000 -0.406250 -0.312500
+v 0.062500 -0.375000 -0.375000
+v -0.375000 -0.375000 -0.062500
+v -0.312500 -0.406250 -0.125000
+v -0.125000 -0.406250 0.312500
+v -0.062500 -0.375000 0.375000
+v -0.375000 -0.375000 0.062500
+v -0.312500 -0.406250 0.125000
+v 0.125000 -0.406250 0.312500
+v 0.062500 -0.375000 0.375000
+v 0.375000 -0.500000 -0.062500
+v 0.312500 -0.468750 -0.125000
+v 0.125000 -0.468750 0.312500
+v 0.062500 -0.500000 0.375000
+v 0.375000 -0.500000 0.062500
+v 0.312500 -0.468750 0.125000
+v -0.125000 -0.468750 0.312500
+v -0.062500 -0.500000 0.375000
+v -0.375000 -0.500000 0.062500
+v -0.312500 -0.468750 0.125000
+v 0.125000 -0.468750 -0.312500
+v 0.062500 -0.500000 -0.375000
+v 0.375000 -0.375000 0.062500
+v 0.312500 -0.406250 0.125000
+v -0.125000 -0.406250 -0.312500
+v -0.062500 -0.375000 -0.375000
+v -0.312500 -0.468750 -0.312500
+v 0.312500 -0.406250 -0.312500
+v -0.062500 -0.500000 0.062500
+v -0.312500 -0.468750 0.312500
+v 0.312500 -0.468750 -0.312500
+v 0.062500 -0.500000 -0.062500
+v 0.062500 -0.375000 0.062500
+v 0.312500 -0.406250 0.312500
+v -0.312500 -0.406250 -0.312500
+v -0.062500 -0.375000 -0.062500
+v 0.062500 -0.375000 -0.062500
+v -0.062500 -0.500000 -0.062500
+v -0.312500 -0.406250 0.312500
+v 0.312500 -0.468750 0.312500
+v 0.062500 -0.500000 0.062500
+v -0.062500 -0.375000 0.062500
+vt 0.000000 0.000000
+vt 0.000000 0.125000
+vt 0.125000 0.125000
+vt 0.437500 0.125000
+vt 0.562500 0.125000
+vt 0.875000 0.125000
+vt 1.000000 0.125000
+vt 1.000000 0.000000
+vt 0.562500 0.437500
+vt 0.875000 0.437500
+vt 0.812500 0.375000
+vt 0.625000 0.375000
+vt 0.375000 0.375000
+vt 0.375000 0.187500
+vt 0.437500 0.125000
+vt 0.437500 0.437500
+vt 0.562500 0.437500
+vt 0.625000 0.375000
+vt 0.812500 0.375000
+vt 0.875000 0.437500
+vt 0.125000 0.437500
+vt 0.000000 0.437500
+vt 0.000000 0.125000
+vt 0.125000 0.125000
+vt 0.125000 0.437500
+vt 0.437500 0.437500
+vt 0.375000 0.375000
+vt 0.187500 0.375000
+vt 0.875000 0.562500
+vt 0.812500 0.625000
+vt 0.812500 0.812500
+vt 0.875000 0.875000
+vt 0.625000 0.625000
+vt 0.562500 0.562500
+vt 0.562500 0.875000
+vt 0.625000 0.812500
+vt 1.000000 0.562500
+vt 1.000000 0.437500
+vt 0.000000 0.437500
+vt 0.000000 0.562500
+vt 0.125000 0.562500
+vt 0.437500 0.562500
+vt 0.812500 0.187500
+vt 0.875000 0.125000
+vt 0.375000 0.187500
+vt 0.187500 0.187500
+vt 0.187500 0.187500
+vt 0.187500 0.375000
+vt 0.562500 0.875000
+vt 0.562500 0.562500
+vt 0.625000 0.625000
+vt 0.625000 0.812500
+vt 0.875000 0.562500
+vt 0.812500 0.625000
+vt 0.375000 0.625000
+vt 0.187500 0.625000
+vt 0.125000 0.562500
+vt 0.437500 0.562500
+vt 0.375000 0.625000
+vt 0.375000 0.812500
+vt 0.437500 0.875000
+vt 0.625000 0.187500
+vt 0.562500 0.125000
+vt 0.187500 0.625000
+vt 0.125000 0.875000
+vt 0.187500 0.812500
+vt 0.875000 0.875000
+vt 0.812500 0.812500
+vt 0.000000 0.875000
+vt 0.812500 0.187500
+vt 0.625000 0.187500
+vt 0.375000 0.812500
+vt 0.437500 0.875000
+vt 0.125000 0.875000
+vt 1.000000 0.875000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.875000
+vt 1.000000 0.437500
+vt 1.000000 0.125000
+vt 0.000000 0.562500
+vt 1.000000 0.562500
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+vt 1.000000 0.875000
+vt 1.000000 0.000000
+vt 0.000000 0.000000
+vt 0.187500 0.812500
+vt 1.000000 0.125000
+vt 1.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.125000
+vt 1.000000 0.125000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.125000
+vt 1.000000 0.125000
+vt 1.000000 0.125000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.187500 0.125000
+vt 0.187500 0.062500
+vt 0.187500 0.062500
+vt 0.187500 0.125000
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.625000 0.125000
+vt 0.625000 0.062500
+vt 0.625000 0.125000
+vt 0.625000 0.062500
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.625000 0.062500
+vt 0.625000 0.062500
+vt 0.625000 0.125000
+vt 0.625000 0.125000
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.187500 0.125000
+vt 0.187500 0.062500
+vt 0.187500 0.062500
+vt 0.187500 0.125000
+vt 0.375000 0.062500
+vt 0.375000 0.125000
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 -0.8944 -0.4472
+vn 0.4472 0.8944 0.0000
+vn 0.0000 0.8944 -0.4472
+vn 0.0000 1.0000 0.0000
+vn 0.4472 -0.8944 0.0000
+vn -0.4472 -0.8944 0.0000
+vn 0.0000 -0.8944 0.4472
+vn -0.4472 0.8944 0.0000
+vn 0.0000 0.8944 0.4472
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 1.0000 -0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+g Cube.001_Cube.001_top-bottom
+s off
+f 1/1/1 9/2/1 25/3/1 68/4/1 44/5/1 32/6/1 15/7/1 5/8/1
+f 84/9/2 41/10/2 42/11/2 17/12/2
+f 18/13/3 47/14/3 48/15/3 83/16/3
+f 82/17/4 19/18/4 50/19/4 49/20/4
+f 45/21/5 34/22/5 14/23/5 31/24/5
+f 57/25/2 78/26/2 24/27/2 58/28/2
+f 65/29/6 66/30/6 76/31/6 27/32/6
+f 28/33/7 75/34/7 64/35/7 63/36/7
+f 65/29/1 39/37/1 35/38/1 41/10/1 84/9/1 78/26/1 57/25/1 37/39/1 33/40/1 61/41/1 87/42/1 75/34/1
+f 81/43/3 20/44/3 49/20/3 50/19/3
+f 67/45/8 68/4/8 25/3/8 77/46/8
+f 45/21/9 31/24/9 74/47/9 46/48/9
+f 47/14/10 74/47/10 31/24/10 48/15/10
+f 52/49/9 88/50/9 30/51/9 51/52/9
+f 30/51/10 88/50/10 53/53/10 54/54/10
+f 23/55/10 70/56/10 69/57/10 79/58/10
+f 87/42/6 29/59/6 59/60/6 60/61/6
+f 75/34/8 28/33/8 66/30/8 65/29/8
+f 81/43/10 71/62/10 72/63/10 20/44/10
+f 62/64/7 61/41/7 26/65/7 86/66/7
+f 29/59/8 87/42/8 61/41/8 62/64/8
+f 54/54/3 53/53/3 21/67/3 85/68/3
+f 60/61/1 64/35/1 75/34/1 87/42/1
+f 52/49/4 51/52/4 85/68/4 21/67/4
+f 33/40/1 13/69/1 26/65/1 61/41/1
+f 26/65/2 60/61/2 59/60/2 86/66/2
+f 73/70/8 32/6/8 44/5/8 43/71/8
+f 77/46/7 25/3/7 57/25/7 58/28/7
+f 55/72/3 23/55/3 79/58/3 56/73/3
+f 22/74/5 56/73/5 52/49/5 21/67/5 16/75/5 8/76/5 4/77/5 10/78/5
+f 40/79/5 49/20/5 20/44/5 12/80/5
+f 10/78/5 38/81/5 69/57/5 22/74/5
+f 48/15/5 72/63/5 82/17/5 83/16/5
+f 83/16/5 82/17/5 49/20/5 40/79/5 36/82/5 53/53/5 88/50/5 79/58/5 69/57/5 38/81/5 34/22/5 45/21/5
+f 17/12/7 43/71/7 44/5/7 84/9/7
+f 88/50/5 52/49/5 56/73/5 79/58/5
+f 15/7/1 32/6/1 41/10/1 35/38/1
+f 83/16/4 45/21/4 46/48/4 18/13/4
+f 64/35/2 27/32/2 76/31/2 63/36/2
+f 26/65/1 13/69/1 3/83/1 7/84/1 11/85/1 27/32/1 64/35/1 60/61/1
+f 44/5/1 68/4/1 78/26/1 84/9/1
+f 57/25/1 25/3/1 9/2/1 37/39/1
+f 39/37/1 65/29/1 27/32/1 11/85/1
+f 6/86/5 12/80/5 20/44/5 72/63/5 48/15/5 31/24/5 14/23/5 2/87/5
+f 53/53/5 36/82/5 16/75/5 21/67/5
+f 56/73/4 22/74/4 80/88/4 55/72/4
+f 72/63/9 71/62/9 19/18/9 82/17/9
+f 22/74/9 69/57/9 70/56/9 80/88/9
+f 41/10/6 32/6/6 73/70/6 42/11/6
+f 68/4/6 67/45/6 24/27/6 78/26/6
+g Cube.001_Cube.001_sides
+f 8/89/11 7/90/11 3/91/11 4/92/11
+f 6/93/12 5/8/12 15/94/12 35/95/12 39/96/12 11/97/12 7/90/12 8/89/12 16/98/12 36/99/12 40/100/12 12/80/12
+f 3/91/13 13/101/13 33/102/13 37/103/13 9/104/13 1/1/13 2/105/13 14/23/13 34/106/13 38/107/13 10/108/13 4/92/13
+f 1/1/14 5/8/14 6/93/14 2/105/14
+f 70/109/12 62/110/12 86/111/12 80/112/12
+f 23/113/11 29/114/11 62/110/11 70/109/11
+f 55/115/13 59/116/13 29/114/13 23/113/13
+f 59/116/14 55/115/14 80/112/14 86/111/14
+f 76/117/14 85/118/14 51/119/14 63/120/14
+f 51/119/12 30/121/12 28/122/12 63/120/12
+f 66/123/13 54/124/13 85/118/13 76/117/13
+f 28/122/11 30/121/11 54/124/11 66/123/11
+f 43/125/12 17/126/12 19/127/12 71/128/12
+f 42/129/14 50/130/14 19/127/14 17/126/14
+f 73/131/13 81/132/13 50/130/13 42/129/13
+f 73/131/11 43/125/11 71/128/11 81/132/11
+f 74/133/12 77/134/12 58/135/12 46/136/12
+f 46/136/14 58/135/14 24/137/14 18/138/14
+f 47/139/13 18/138/13 24/137/13 67/140/13
+f 74/133/11 47/139/11 67/140/11 77/134/11
diff --git a/homedecor_3d_extras/models/homedecor_3d_trapdoor_open.obj b/homedecor_3d_extras/models/homedecor_3d_trapdoor_open.obj
new file mode 100644
index 0000000..85274b5
--- /dev/null
+++ b/homedecor_3d_extras/models/homedecor_3d_trapdoor_open.obj
@@ -0,0 +1,318 @@
+# Blender v2.79 (sub 0) OBJ File: 'default trapdoor wood 3d.blend'
+# www.blender.org
+o Cube.001
+v 0.500000 0.500000 0.375000
+v 0.500000 0.500000 0.500000
+v 0.500000 -0.500000 0.375000
+v 0.500000 -0.500000 0.500000
+v -0.500000 0.500000 0.375000
+v -0.500000 0.500000 0.500000
+v -0.500000 -0.500000 0.375000
+v -0.500000 -0.500000 0.500000
+v 0.500000 0.375000 0.375000
+v 0.500000 -0.375000 0.500000
+v -0.500000 -0.375000 0.375000
+v -0.500000 0.375000 0.500000
+v 0.500000 -0.375000 0.375000
+v 0.500000 0.375000 0.500000
+v -0.500000 0.375000 0.375000
+v -0.500000 -0.375000 0.500000
+v -0.125000 0.125000 0.406250
+v 0.125000 0.125000 0.468750
+v -0.125000 0.125000 0.468750
+v -0.375000 0.375000 0.500000
+v -0.375000 -0.375000 0.500000
+v 0.375000 -0.375000 0.500000
+v 0.125000 -0.125000 0.468750
+v 0.125000 0.125000 0.406250
+v 0.375000 0.375000 0.375000
+v 0.375000 -0.375000 0.375000
+v -0.375000 -0.375000 0.375000
+v -0.125000 -0.125000 0.406250
+v 0.125000 -0.125000 0.406250
+v -0.125000 -0.125000 0.468750
+v 0.375000 0.375000 0.500000
+v -0.375000 0.375000 0.375000
+v 0.500000 -0.062500 0.375000
+v 0.500000 0.062500 0.500000
+v -0.500000 0.062500 0.375000
+v -0.500000 -0.062500 0.500000
+v 0.500000 0.062500 0.375000
+v 0.500000 -0.062500 0.500000
+v -0.500000 -0.062500 0.375000
+v -0.500000 0.062500 0.500000
+v -0.375000 0.062500 0.375000
+v -0.312500 0.125000 0.406250
+v -0.125000 0.312500 0.406250
+v -0.062500 0.375000 0.375000
+v 0.375000 0.062500 0.500000
+v 0.312500 0.125000 0.468750
+v 0.125000 0.312500 0.468750
+v 0.062500 0.375000 0.500000
+v -0.375000 0.062500 0.500000
+v -0.312500 0.125000 0.468750
+v -0.125000 -0.312500 0.468750
+v -0.062500 -0.375000 0.500000
+v -0.375000 -0.062500 0.500000
+v -0.312500 -0.125000 0.468750
+v 0.125000 -0.312500 0.468750
+v 0.062500 -0.375000 0.500000
+v 0.375000 0.062500 0.375000
+v 0.312500 0.125000 0.406250
+v 0.125000 -0.312500 0.406250
+v 0.062500 -0.375000 0.375000
+v 0.375000 -0.062500 0.375000
+v 0.312500 -0.125000 0.406250
+v -0.125000 -0.312500 0.406250
+v -0.062500 -0.375000 0.375000
+v -0.375000 -0.062500 0.375000
+v -0.312500 -0.125000 0.406250
+v 0.125000 0.312500 0.406250
+v 0.062500 0.375000 0.375000
+v 0.375000 -0.062500 0.500000
+v 0.312500 -0.125000 0.468750
+v -0.125000 0.312500 0.468750
+v -0.062500 0.375000 0.500000
+v -0.312500 0.312500 0.406250
+v 0.312500 0.312500 0.468750
+v -0.062500 -0.062500 0.375000
+v -0.312500 -0.312500 0.406250
+v 0.312500 0.312500 0.406250
+v 0.062500 0.062500 0.375000
+v 0.062500 -0.062500 0.500000
+v 0.312500 -0.312500 0.468750
+v -0.312500 0.312500 0.468750
+v -0.062500 0.062500 0.500000
+v 0.062500 0.062500 0.500000
+v -0.062500 0.062500 0.375000
+v -0.312500 -0.312500 0.468750
+v 0.312500 -0.312500 0.406250
+v 0.062500 -0.062500 0.375000
+v -0.062500 -0.062500 0.500000
+vt 0.000000 0.000000
+vt 0.000000 0.125000
+vt 0.125000 0.125000
+vt 0.437500 0.125000
+vt 0.562500 0.125000
+vt 0.875000 0.125000
+vt 1.000000 0.125000
+vt 1.000000 0.000000
+vt 0.562500 0.437500
+vt 0.875000 0.437500
+vt 0.812500 0.375000
+vt 0.625000 0.375000
+vt 0.375000 0.375000
+vt 0.375000 0.187500
+vt 0.437500 0.125000
+vt 0.437500 0.437500
+vt 0.562500 0.437500
+vt 0.625000 0.375000
+vt 0.812500 0.375000
+vt 0.875000 0.437500
+vt 0.125000 0.437500
+vt 0.000000 0.437500
+vt 0.000000 0.125000
+vt 0.125000 0.125000
+vt 0.125000 0.437500
+vt 0.437500 0.437500
+vt 0.375000 0.375000
+vt 0.187500 0.375000
+vt 0.875000 0.562500
+vt 0.812500 0.625000
+vt 0.812500 0.812500
+vt 0.875000 0.875000
+vt 0.625000 0.625000
+vt 0.562500 0.562500
+vt 0.562500 0.875000
+vt 0.625000 0.812500
+vt 1.000000 0.562500
+vt 1.000000 0.437500
+vt 0.000000 0.437500
+vt 0.000000 0.562500
+vt 0.125000 0.562500
+vt 0.437500 0.562500
+vt 0.812500 0.187500
+vt 0.875000 0.125000
+vt 0.375000 0.187500
+vt 0.187500 0.187500
+vt 0.187500 0.187500
+vt 0.187500 0.375000
+vt 0.562500 0.875000
+vt 0.562500 0.562500
+vt 0.625000 0.625000
+vt 0.625000 0.812500
+vt 0.875000 0.562500
+vt 0.812500 0.625000
+vt 0.375000 0.625000
+vt 0.187500 0.625000
+vt 0.125000 0.562500
+vt 0.437500 0.562500
+vt 0.375000 0.625000
+vt 0.375000 0.812500
+vt 0.437500 0.875000
+vt 0.625000 0.187500
+vt 0.562500 0.125000
+vt 0.187500 0.625000
+vt 0.125000 0.875000
+vt 0.187500 0.812500
+vt 0.875000 0.875000
+vt 0.812500 0.812500
+vt 0.000000 0.875000
+vt 0.812500 0.187500
+vt 0.625000 0.187500
+vt 0.375000 0.812500
+vt 0.437500 0.875000
+vt 0.125000 0.875000
+vt 1.000000 0.875000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.875000
+vt 1.000000 0.437500
+vt 1.000000 0.125000
+vt 0.000000 0.562500
+vt 1.000000 0.562500
+vt 0.000000 1.000000
+vt 1.000000 1.000000
+vt 1.000000 0.875000
+vt 1.000000 0.000000
+vt 0.000000 0.000000
+vt 0.187500 0.812500
+vt 1.000000 0.125000
+vt 1.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.125000
+vt 1.000000 0.125000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.125000
+vt 1.000000 0.125000
+vt 1.000000 0.125000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.187500 0.125000
+vt 0.187500 0.062500
+vt 0.187500 0.062500
+vt 0.187500 0.125000
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.625000 0.125000
+vt 0.625000 0.062500
+vt 0.625000 0.125000
+vt 0.625000 0.062500
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.625000 0.062500
+vt 0.625000 0.062500
+vt 0.625000 0.125000
+vt 0.625000 0.125000
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.187500 0.125000
+vt 0.187500 0.062500
+vt 0.187500 0.062500
+vt 0.187500 0.125000
+vt 0.375000 0.062500
+vt 0.375000 0.125000
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vn 0.0000 -0.0000 -1.0000
+vn 0.0000 0.4472 -0.8944
+vn 0.4472 0.0000 0.8944
+vn 0.0000 0.4472 0.8944
+vn 0.0000 0.0000 1.0000
+vn 0.4472 -0.0000 -0.8944
+vn -0.4472 -0.0000 -0.8944
+vn 0.0000 -0.4472 -0.8944
+vn -0.4472 0.0000 0.8944
+vn 0.0000 -0.4472 0.8944
+vn 0.0000 -1.0000 0.0000
+vn -1.0000 -0.0000 0.0000
+vn 1.0000 -0.0000 0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_top-bottom
+s off
+f 1/1/1 9/2/1 25/3/1 68/4/1 44/5/1 32/6/1 15/7/1 5/8/1
+f 84/9/2 41/10/2 42/11/2 17/12/2
+f 18/13/3 47/14/3 48/15/3 83/16/3
+f 82/17/4 19/18/4 50/19/4 49/20/4
+f 45/21/5 34/22/5 14/23/5 31/24/5
+f 57/25/2 78/26/2 24/27/2 58/28/2
+f 65/29/6 66/30/6 76/31/6 27/32/6
+f 28/33/7 75/34/7 64/35/7 63/36/7
+f 65/29/1 39/37/1 35/38/1 41/10/1 84/9/1 78/26/1 57/25/1 37/39/1 33/40/1 61/41/1 87/42/1 75/34/1
+f 81/43/3 20/44/3 49/20/3 50/19/3
+f 67/45/8 68/4/8 25/3/8 77/46/8
+f 45/21/9 31/24/9 74/47/9 46/48/9
+f 47/14/10 74/47/10 31/24/10 48/15/10
+f 52/49/9 88/50/9 30/51/9 51/52/9
+f 30/51/10 88/50/10 53/53/10 54/54/10
+f 23/55/10 70/56/10 69/57/10 79/58/10
+f 87/42/6 29/59/6 59/60/6 60/61/6
+f 75/34/8 28/33/8 66/30/8 65/29/8
+f 81/43/10 71/62/10 72/63/10 20/44/10
+f 62/64/7 61/41/7 26/65/7 86/66/7
+f 29/59/8 87/42/8 61/41/8 62/64/8
+f 54/54/3 53/53/3 21/67/3 85/68/3
+f 60/61/1 64/35/1 75/34/1 87/42/1
+f 52/49/4 51/52/4 85/68/4 21/67/4
+f 33/40/1 13/69/1 26/65/1 61/41/1
+f 26/65/2 60/61/2 59/60/2 86/66/2
+f 73/70/8 32/6/8 44/5/8 43/71/8
+f 77/46/7 25/3/7 57/25/7 58/28/7
+f 55/72/3 23/55/3 79/58/3 56/73/3
+f 22/74/5 56/73/5 52/49/5 21/67/5 16/75/5 8/76/5 4/77/5 10/78/5
+f 40/79/5 49/20/5 20/44/5 12/80/5
+f 10/78/5 38/81/5 69/57/5 22/74/5
+f 48/15/5 72/63/5 82/17/5 83/16/5
+f 83/16/5 82/17/5 49/20/5 40/79/5 36/82/5 53/53/5 88/50/5 79/58/5 69/57/5 38/81/5 34/22/5 45/21/5
+f 17/12/7 43/71/7 44/5/7 84/9/7
+f 88/50/5 52/49/5 56/73/5 79/58/5
+f 15/7/1 32/6/1 41/10/1 35/38/1
+f 83/16/4 45/21/4 46/48/4 18/13/4
+f 64/35/2 27/32/2 76/31/2 63/36/2
+f 26/65/1 13/69/1 3/83/1 7/84/1 11/85/1 27/32/1 64/35/1 60/61/1
+f 44/5/1 68/4/1 78/26/1 84/9/1
+f 57/25/1 25/3/1 9/2/1 37/39/1
+f 39/37/1 65/29/1 27/32/1 11/85/1
+f 6/86/5 12/80/5 20/44/5 72/63/5 48/15/5 31/24/5 14/23/5 2/87/5
+f 53/53/5 36/82/5 16/75/5 21/67/5
+f 56/73/4 22/74/4 80/88/4 55/72/4
+f 72/63/9 71/62/9 19/18/9 82/17/9
+f 22/74/9 69/57/9 70/56/9 80/88/9
+f 41/10/6 32/6/6 73/70/6 42/11/6
+f 68/4/6 67/45/6 24/27/6 78/26/6
+g Cube.001_Cube.001_sides
+f 8/89/11 7/90/11 3/91/11 4/92/11
+f 6/93/12 5/8/12 15/94/12 35/95/12 39/96/12 11/97/12 7/90/12 8/89/12 16/98/12 36/99/12 40/100/12 12/80/12
+f 3/91/13 13/101/13 33/102/13 37/103/13 9/104/13 1/1/13 2/105/13 14/23/13 34/106/13 38/107/13 10/108/13 4/92/13
+f 1/1/14 5/8/14 6/93/14 2/105/14
+f 70/109/12 62/110/12 86/111/12 80/112/12
+f 23/113/11 29/114/11 62/110/11 70/109/11
+f 55/115/13 59/116/13 29/114/13 23/113/13
+f 59/116/14 55/115/14 80/112/14 86/111/14
+f 76/117/14 85/118/14 51/119/14 63/120/14
+f 51/119/12 30/121/12 28/122/12 63/120/12
+f 66/123/13 54/124/13 85/118/13 76/117/13
+f 28/122/11 30/121/11 54/124/11 66/123/11
+f 43/125/12 17/126/12 19/127/12 71/128/12
+f 42/129/14 50/130/14 19/127/14 17/126/14
+f 73/131/13 81/132/13 50/130/13 42/129/13
+f 73/131/11 43/125/11 71/128/11 81/132/11
+f 74/133/12 77/134/12 58/135/12 46/136/12
+f 46/136/14 58/135/14 24/137/14 18/138/14
+f 47/139/13 18/138/13 24/137/13 67/140/13
+f 74/133/11 47/139/11 67/140/11 77/134/11
diff --git a/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel.obj b/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel.obj
new file mode 100644
index 0000000..5051676
--- /dev/null
+++ b/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel.obj
@@ -0,0 +1,392 @@
+# Blender v2.79 (sub 0) OBJ File: 'default trapdoor steel 3d.blend'
+# www.blender.org
+o Cube.001
+v 0.500000 -0.500000 -0.500000
+v 0.500000 -0.375000 -0.500000
+v 0.500000 -0.500000 0.500000
+v 0.500000 -0.375000 0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 -0.375000 -0.500000
+v -0.500000 -0.500000 0.500000
+v -0.500000 -0.375000 0.500000
+v 0.500000 -0.500000 -0.375000
+v 0.500000 -0.375000 0.375000
+v -0.500000 -0.500000 0.375000
+v -0.500000 -0.375000 -0.375000
+v 0.500000 -0.500000 0.375000
+v 0.500000 -0.375000 -0.375000
+v -0.500000 -0.500000 -0.375000
+v -0.500000 -0.375000 0.375000
+v -0.125000 -0.453125 -0.125000
+v 0.125000 -0.421875 -0.125000
+v -0.125000 -0.421875 -0.125000
+v -0.375000 -0.375000 -0.375000
+v -0.375000 -0.375000 0.375000
+v 0.375000 -0.375000 0.375000
+v 0.125000 -0.421875 0.125000
+v 0.125000 -0.453125 -0.125000
+v 0.375000 -0.500000 -0.375000
+v 0.375000 -0.500000 0.375000
+v -0.375000 -0.500000 0.375000
+v -0.125000 -0.453125 0.125000
+v 0.125000 -0.453125 0.125000
+v -0.125000 -0.421875 0.125000
+v 0.375000 -0.375000 -0.375000
+v -0.375000 -0.500000 -0.375000
+v 0.500000 -0.500000 0.062500
+v 0.500000 -0.375000 -0.062500
+v -0.500000 -0.500000 -0.062500
+v -0.500000 -0.375000 0.062500
+v 0.500000 -0.500000 -0.062500
+v 0.500000 -0.375000 0.062500
+v -0.500000 -0.500000 0.062500
+v -0.500000 -0.375000 -0.062500
+v -0.375000 -0.500000 -0.062500
+v -0.312500 -0.453125 -0.125000
+v -0.125000 -0.453125 -0.312500
+v -0.062500 -0.500000 -0.375000
+v 0.375000 -0.375000 -0.062500
+v 0.312500 -0.421875 -0.125000
+v 0.125000 -0.421875 -0.312500
+v 0.062500 -0.375000 -0.375000
+v -0.375000 -0.375000 -0.062500
+v -0.312500 -0.421875 -0.125000
+v -0.125000 -0.421875 0.312500
+v -0.062500 -0.375000 0.375000
+v -0.375000 -0.375000 0.062500
+v -0.312500 -0.421875 0.125000
+v 0.125000 -0.421875 0.312500
+v 0.062500 -0.375000 0.375000
+v 0.375000 -0.500000 -0.062500
+v 0.312500 -0.453125 -0.125000
+v 0.125000 -0.453125 0.312500
+v 0.062500 -0.500000 0.375000
+v 0.375000 -0.500000 0.062500
+v 0.312500 -0.453125 0.125000
+v -0.125000 -0.453125 0.312500
+v -0.062500 -0.500000 0.375000
+v -0.375000 -0.500000 0.062500
+v -0.312500 -0.453125 0.125000
+v 0.125000 -0.453125 -0.312500
+v 0.062500 -0.500000 -0.375000
+v 0.375000 -0.375000 0.062500
+v 0.312500 -0.421875 0.125000
+v -0.125000 -0.421875 -0.312500
+v -0.062500 -0.375000 -0.375000
+v -0.312500 -0.453125 -0.312500
+v 0.312500 -0.421875 -0.312500
+v -0.062500 -0.500000 0.062500
+v -0.312500 -0.453125 0.312500
+v 0.312500 -0.453125 -0.312500
+v 0.062500 -0.500000 -0.062500
+v 0.062500 -0.375000 0.062500
+v 0.312500 -0.421875 0.312500
+v -0.312500 -0.421875 -0.312500
+v -0.062500 -0.375000 -0.062500
+v 0.062500 -0.375000 -0.062500
+v -0.062500 -0.500000 -0.062500
+v -0.312500 -0.421875 0.312500
+v 0.312500 -0.453125 0.312500
+v 0.062500 -0.500000 0.062500
+v -0.062500 -0.375000 0.062500
+v -0.125000 -0.437500 -0.125000
+v 0.125000 -0.437500 -0.125000
+v -0.125000 -0.437500 0.125000
+v 0.125000 -0.437500 0.125000
+v -0.312500 -0.437500 -0.125000
+v -0.125000 -0.437500 -0.312500
+v 0.312500 -0.437500 -0.125000
+v 0.125000 -0.437500 0.312500
+v 0.312500 -0.437500 0.125000
+v -0.125000 -0.437500 0.312500
+v -0.312500 -0.437500 0.125000
+v 0.125000 -0.437500 -0.312500
+v -0.312500 -0.437500 -0.312500
+v -0.312500 -0.437500 0.312500
+v 0.312500 -0.437500 -0.312500
+v 0.312500 -0.437500 0.312500
+v 0.125000 -0.438500 -0.125000
+v -0.125000 -0.438500 -0.125000
+v 0.125000 -0.438500 0.125000
+v -0.125000 -0.438500 0.125000
+v 0.312500 -0.438500 -0.125000
+v 0.125000 -0.438500 -0.312500
+v -0.312500 -0.438500 -0.125000
+v -0.125000 -0.438500 0.312500
+v -0.312500 -0.438500 0.125000
+v 0.125000 -0.438500 0.312500
+v 0.312500 -0.438500 0.125000
+v -0.125000 -0.438500 -0.312500
+v 0.312500 -0.438500 -0.312500
+v 0.312500 -0.438500 0.312500
+v -0.312500 -0.438500 -0.312500
+v -0.312500 -0.438500 0.312500
+vt 1.000000 0.000000
+vt 1.000000 0.125000
+vt 0.875000 0.125000
+vt 0.562500 0.125000
+vt 0.437500 0.125000
+vt 0.125000 0.125000
+vt -0.000000 0.125000
+vt -0.000000 0.000000
+vt 0.437500 0.437500
+vt 0.125000 0.437500
+vt 0.187500 0.375000
+vt 0.375000 0.375000
+vt 0.375000 0.375000
+vt 0.375000 0.187500
+vt 0.437500 0.125000
+vt 0.437500 0.437500
+vt 0.562500 0.437500
+vt 0.625000 0.375000
+vt 0.812500 0.375000
+vt 0.875000 0.437500
+vt 0.125000 0.437500
+vt 0.000000 0.437500
+vt 0.000000 0.125000
+vt 0.125000 0.125000
+vt 0.875000 0.437500
+vt 0.562500 0.437500
+vt 0.625000 0.375000
+vt 0.812500 0.375000
+vt 0.125000 0.562500
+vt 0.187500 0.625000
+vt 0.187500 0.812500
+vt 0.125000 0.875000
+vt 0.375000 0.625000
+vt 0.437500 0.562500
+vt 0.437500 0.875000
+vt 0.375000 0.812500
+vt -0.000000 0.562500
+vt -0.000000 0.437500
+vt 1.000000 0.437500
+vt 1.000000 0.562500
+vt 0.875000 0.562500
+vt 0.562500 0.562500
+vt 0.812500 0.187500
+vt 0.875000 0.125000
+vt 0.625000 0.187500
+vt 0.812500 0.187500
+vt 0.187500 0.187500
+vt 0.187500 0.375000
+vt 0.562500 0.875000
+vt 0.562500 0.562500
+vt 0.625000 0.625000
+vt 0.625000 0.812500
+vt 0.875000 0.562500
+vt 0.812500 0.625000
+vt 0.375000 0.625000
+vt 0.187500 0.625000
+vt 0.125000 0.562500
+vt 0.437500 0.562500
+vt 0.625000 0.625000
+vt 0.625000 0.812500
+vt 0.562500 0.875000
+vt 0.625000 0.187500
+vt 0.562500 0.125000
+vt 0.812500 0.625000
+vt 0.875000 0.875000
+vt 0.812500 0.812500
+vt 0.875000 0.875000
+vt 0.812500 0.812500
+vt 1.000000 0.875000
+vt 0.187500 0.187500
+vt 0.375000 0.187500
+vt 0.375000 0.812500
+vt 0.437500 0.875000
+vt 0.125000 0.875000
+vt 1.000000 0.875000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.875000
+vt 1.000000 0.437500
+vt 1.000000 0.125000
+vt 0.000000 0.562500
+vt 1.000000 0.562500
+vt 1.000000 1.000000
+vt -0.000000 1.000000
+vt -0.000000 0.875000
+vt 1.000000 0.000000
+vt 0.000000 0.000000
+vt 0.187500 0.812500
+vt 0.625000 0.375000
+vt 0.625000 0.187500
+vt 0.812500 0.187500
+vt 0.812500 0.375000
+vt 0.625000 0.625000
+vt 0.812500 0.625000
+vt 0.812500 0.812500
+vt 0.625000 0.812500
+vt 0.187500 0.625000
+vt 0.375000 0.625000
+vt 0.375000 0.812500
+vt 0.187500 0.812500
+vt 0.187500 0.375000
+vt 0.187500 0.187500
+vt 0.375000 0.187500
+vt 0.375000 0.375000
+vt 0.375000 0.625000
+vt 0.375000 0.812500
+vt 0.187500 0.812500
+vt 0.187500 0.625000
+vt 0.375000 0.375000
+vt 0.187500 0.375000
+vt 0.187500 0.187500
+vt 0.375000 0.187500
+vt 0.812500 0.375000
+vt 0.625000 0.375000
+vt 0.625000 0.187500
+vt 0.812500 0.187500
+vt 0.812500 0.625000
+vt 0.812500 0.812500
+vt 0.625000 0.812500
+vt 0.625000 0.625000
+vt 1.000000 0.125000
+vt 1.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.125000
+vt 1.000000 0.125000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.125000
+vt 1.000000 0.125000
+vt 1.000000 0.125000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.187500 0.125000
+vt 0.187500 0.062500
+vt 0.187500 0.062500
+vt 0.187500 0.125000
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.625000 0.125000
+vt 0.625000 0.062500
+vt 0.625000 0.125000
+vt 0.625000 0.062500
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.625000 0.062500
+vt 0.625000 0.062500
+vt 0.625000 0.125000
+vt 0.625000 0.125000
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.187500 0.125000
+vt 0.187500 0.062500
+vt 0.187500 0.062500
+vt 0.187500 0.125000
+vt 0.375000 0.062500
+vt 0.375000 0.125000
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 -0.8000 -0.6000
+vn 0.6000 0.8000 0.0000
+vn 0.0000 0.8000 -0.6000
+vn 0.0000 1.0000 0.0000
+vn 0.6000 -0.8000 0.0000
+vn -0.6000 -0.8000 0.0000
+vn 0.0000 -0.8000 0.6000
+vn -0.6000 0.8000 0.0000
+vn 0.0000 0.8000 0.6000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 1.0000 -0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+g Cube.001_Cube.001_top-bottom
+s off
+f 1/1/1 9/2/1 25/3/1 68/4/1 44/5/1 32/6/1 15/7/1 5/8/1
+f 84/9/2 41/10/2 42/11/2 17/12/2
+f 18/13/3 47/14/3 48/15/3 83/16/3
+f 82/17/4 19/18/4 50/19/4 49/20/4
+f 45/21/5 34/22/5 14/23/5 31/24/5
+f 57/25/2 78/26/2 24/27/2 58/28/2
+f 65/29/6 66/30/6 76/31/6 27/32/6
+f 28/33/7 75/34/7 64/35/7 63/36/7
+f 65/29/1 39/37/1 35/38/1 41/10/1 84/9/1 78/26/1 57/25/1 37/39/1 33/40/1 61/41/1 87/42/1 75/34/1
+f 81/43/3 20/44/3 49/20/3 50/19/3
+f 67/45/8 68/4/8 25/3/8 77/46/8
+f 45/21/9 31/24/9 74/47/9 46/48/9
+f 47/14/10 74/47/10 31/24/10 48/15/10
+f 52/49/9 88/50/9 30/51/9 51/52/9
+f 30/51/10 88/50/10 53/53/10 54/54/10
+f 23/55/10 70/56/10 69/57/10 79/58/10
+f 87/42/6 29/59/6 59/60/6 60/61/6
+f 75/34/8 28/33/8 66/30/8 65/29/8
+f 81/43/10 71/62/10 72/63/10 20/44/10
+f 62/64/7 61/41/7 26/65/7 86/66/7
+f 29/59/8 87/42/8 61/41/8 62/64/8
+f 54/54/3 53/53/3 21/67/3 85/68/3
+f 60/61/1 64/35/1 75/34/1 87/42/1
+f 52/49/4 51/52/4 85/68/4 21/67/4
+f 33/40/1 13/69/1 26/65/1 61/41/1
+f 26/65/2 60/61/2 59/60/2 86/66/2
+f 73/70/8 32/6/8 44/5/8 43/71/8
+f 77/46/7 25/3/7 57/25/7 58/28/7
+f 55/72/3 23/55/3 79/58/3 56/73/3
+f 22/74/5 56/73/5 52/49/5 21/67/5 16/75/5 8/76/5 4/77/5 10/78/5
+f 40/79/5 49/20/5 20/44/5 12/80/5
+f 10/78/5 38/81/5 69/57/5 22/74/5
+f 48/15/5 72/63/5 82/17/5 83/16/5
+f 83/16/5 82/17/5 49/20/5 40/79/5 36/82/5 53/53/5 88/50/5 79/58/5 69/57/5 38/81/5 34/22/5 45/21/5
+f 17/12/7 43/71/7 44/5/7 84/9/7
+f 88/50/5 52/49/5 56/73/5 79/58/5
+f 15/7/1 32/6/1 41/10/1 35/38/1
+f 83/16/4 45/21/4 46/48/4 18/13/4
+f 64/35/2 27/32/2 76/31/2 63/36/2
+f 26/65/1 13/69/1 3/83/1 7/84/1 11/85/1 27/32/1 64/35/1 60/61/1
+f 44/5/1 68/4/1 78/26/1 84/9/1
+f 57/25/1 25/3/1 9/2/1 37/39/1
+f 39/37/1 65/29/1 27/32/1 11/85/1
+f 6/86/5 12/80/5 20/44/5 72/63/5 48/15/5 31/24/5 14/23/5 2/87/5
+f 53/53/5 36/82/5 16/75/5 21/67/5
+f 56/73/4 22/74/4 80/88/4 55/72/4
+f 72/63/9 71/62/9 19/18/9 82/17/9
+f 22/74/9 69/57/9 70/56/9 80/88/9
+f 41/10/6 32/6/6 73/70/6 42/11/6
+f 68/4/6 67/45/6 24/27/6 78/26/6
+f 89/89/5 94/90/5 101/91/5 93/92/5
+f 91/93/5 99/94/5 102/95/5 98/96/5
+f 97/97/5 92/98/5 96/99/5 104/100/5
+f 95/101/5 103/102/5 100/103/5 90/104/5
+f 105/105/1 110/106/1 117/107/1 109/108/1
+f 107/109/1 115/110/1 118/111/1 114/112/1
+f 113/113/1 108/114/1 112/115/1 120/116/1
+f 111/117/1 119/118/1 116/119/1 106/120/1
+g Cube.001_Cube.001_sides
+f 8/121/11 7/122/11 3/123/11 4/124/11
+f 6/125/12 5/126/12 15/127/12 35/128/12 39/129/12 11/130/12 7/122/12 8/121/12 16/131/12 36/132/12 40/133/12 12/80/12
+f 3/123/13 13/134/13 33/135/13 37/136/13 9/137/13 1/138/13 2/139/13 14/23/13 34/140/13 38/141/13 10/142/13 4/124/13
+f 1/138/14 5/126/14 6/125/14 2/139/14
+f 70/143/12 62/144/12 86/145/12 80/146/12
+f 23/147/11 29/148/11 62/144/11 70/143/11
+f 55/149/13 59/150/13 29/148/13 23/147/13
+f 59/150/14 55/149/14 80/146/14 86/145/14
+f 76/151/14 85/152/14 51/153/14 63/154/14
+f 51/153/12 30/155/12 28/156/12 63/154/12
+f 66/157/13 54/158/13 85/152/13 76/151/13
+f 28/156/11 30/155/11 54/158/11 66/157/11
+f 43/159/12 17/160/12 19/161/12 71/162/12
+f 42/163/14 50/164/14 19/161/14 17/160/14
+f 73/165/13 81/166/13 50/164/13 42/163/13
+f 73/165/11 43/159/11 71/162/11 81/166/11
+f 74/167/12 77/168/12 58/169/12 46/170/12
+f 46/170/14 58/169/14 24/171/14 18/172/14
+f 47/173/13 18/172/13 24/171/13 67/174/13
+f 74/167/11 47/173/11 67/174/11 77/168/11
diff --git a/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel_open.obj b/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel_open.obj
new file mode 100644
index 0000000..ffce970
--- /dev/null
+++ b/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel_open.obj
@@ -0,0 +1,392 @@
+# Blender v2.79 (sub 0) OBJ File: 'default trapdoor steel 3d.blend'
+# www.blender.org
+o Cube.001
+v 0.500000 0.500000 0.375000
+v 0.500000 0.500000 0.500000
+v 0.500000 -0.500000 0.375000
+v 0.500000 -0.500000 0.500000
+v -0.500000 0.500000 0.375000
+v -0.500000 0.500000 0.500000
+v -0.500000 -0.500000 0.375000
+v -0.500000 -0.500000 0.500000
+v 0.500000 0.375000 0.375000
+v 0.500000 -0.375000 0.500000
+v -0.500000 -0.375000 0.375000
+v -0.500000 0.375000 0.500000
+v 0.500000 -0.375000 0.375000
+v 0.500000 0.375000 0.500000
+v -0.500000 0.375000 0.375000
+v -0.500000 -0.375000 0.500000
+v -0.125000 0.125000 0.421875
+v 0.125000 0.125000 0.453125
+v -0.125000 0.125000 0.453125
+v -0.375000 0.375000 0.500000
+v -0.375000 -0.375000 0.500000
+v 0.375000 -0.375000 0.500000
+v 0.125000 -0.125000 0.453125
+v 0.125000 0.125000 0.421875
+v 0.375000 0.375000 0.375000
+v 0.375000 -0.375000 0.375000
+v -0.375000 -0.375000 0.375000
+v -0.125000 -0.125000 0.421875
+v 0.125000 -0.125000 0.421875
+v -0.125000 -0.125000 0.453125
+v 0.375000 0.375000 0.500000
+v -0.375000 0.375000 0.375000
+v 0.500000 -0.062500 0.375000
+v 0.500000 0.062500 0.500000
+v -0.500000 0.062500 0.375000
+v -0.500000 -0.062500 0.500000
+v 0.500000 0.062500 0.375000
+v 0.500000 -0.062500 0.500000
+v -0.500000 -0.062500 0.375000
+v -0.500000 0.062500 0.500000
+v -0.375000 0.062500 0.375000
+v -0.312500 0.125000 0.421875
+v -0.125000 0.312500 0.421875
+v -0.062500 0.375000 0.375000
+v 0.375000 0.062500 0.500000
+v 0.312500 0.125000 0.453125
+v 0.125000 0.312500 0.453125
+v 0.062500 0.375000 0.500000
+v -0.375000 0.062500 0.500000
+v -0.312500 0.125000 0.453125
+v -0.125000 -0.312500 0.453125
+v -0.062500 -0.375000 0.500000
+v -0.375000 -0.062500 0.500000
+v -0.312500 -0.125000 0.453125
+v 0.125000 -0.312500 0.453125
+v 0.062500 -0.375000 0.500000
+v 0.375000 0.062500 0.375000
+v 0.312500 0.125000 0.421875
+v 0.125000 -0.312500 0.421875
+v 0.062500 -0.375000 0.375000
+v 0.375000 -0.062500 0.375000
+v 0.312500 -0.125000 0.421875
+v -0.125000 -0.312500 0.421875
+v -0.062500 -0.375000 0.375000
+v -0.375000 -0.062500 0.375000
+v -0.312500 -0.125000 0.421875
+v 0.125000 0.312500 0.421875
+v 0.062500 0.375000 0.375000
+v 0.375000 -0.062500 0.500000
+v 0.312500 -0.125000 0.453125
+v -0.125000 0.312500 0.453125
+v -0.062500 0.375000 0.500000
+v -0.312500 0.312500 0.421875
+v 0.312500 0.312500 0.453125
+v -0.062500 -0.062500 0.375000
+v -0.312500 -0.312500 0.421875
+v 0.312500 0.312500 0.421875
+v 0.062500 0.062500 0.375000
+v 0.062500 -0.062500 0.500000
+v 0.312500 -0.312500 0.453125
+v -0.312500 0.312500 0.453125
+v -0.062500 0.062500 0.500000
+v 0.062500 0.062500 0.500000
+v -0.062500 0.062500 0.375000
+v -0.312500 -0.312500 0.453125
+v 0.312500 -0.312500 0.421875
+v 0.062500 -0.062500 0.375000
+v -0.062500 -0.062500 0.500000
+v -0.125000 0.125000 0.437500
+v 0.125000 0.125000 0.437500
+v -0.125000 -0.125000 0.437500
+v 0.125000 -0.125000 0.437500
+v -0.312500 0.125000 0.437500
+v -0.125000 0.312500 0.437500
+v 0.312500 0.125000 0.437500
+v 0.125000 -0.312500 0.437500
+v 0.312500 -0.125000 0.437500
+v -0.125000 -0.312500 0.437500
+v -0.312500 -0.125000 0.437500
+v 0.125000 0.312500 0.437500
+v -0.312500 0.312500 0.437500
+v -0.312500 -0.312500 0.437500
+v 0.312500 0.312500 0.437500
+v 0.312500 -0.312500 0.437500
+v 0.125000 0.125000 0.436500
+v -0.125000 0.125000 0.436500
+v 0.125000 -0.125000 0.436500
+v -0.125000 -0.125000 0.436500
+v 0.312500 0.125000 0.436500
+v 0.125000 0.312500 0.436500
+v -0.312500 0.125000 0.436500
+v -0.125000 -0.312500 0.436500
+v -0.312500 -0.125000 0.436500
+v 0.125000 -0.312500 0.436500
+v 0.312500 -0.125000 0.436500
+v -0.125000 0.312500 0.436500
+v 0.312500 0.312500 0.436500
+v 0.312500 -0.312500 0.436500
+v -0.312500 0.312500 0.436500
+v -0.312500 -0.312500 0.436500
+vt 1.000000 0.000000
+vt 1.000000 0.125000
+vt 0.875000 0.125000
+vt 0.562500 0.125000
+vt 0.437500 0.125000
+vt 0.125000 0.125000
+vt -0.000000 0.125000
+vt -0.000000 0.000000
+vt 0.437500 0.437500
+vt 0.125000 0.437500
+vt 0.187500 0.375000
+vt 0.375000 0.375000
+vt 0.375000 0.375000
+vt 0.375000 0.187500
+vt 0.437500 0.125000
+vt 0.437500 0.437500
+vt 0.562500 0.437500
+vt 0.625000 0.375000
+vt 0.812500 0.375000
+vt 0.875000 0.437500
+vt 0.125000 0.437500
+vt 0.000000 0.437500
+vt 0.000000 0.125000
+vt 0.125000 0.125000
+vt 0.875000 0.437500
+vt 0.562500 0.437500
+vt 0.625000 0.375000
+vt 0.812500 0.375000
+vt 0.125000 0.562500
+vt 0.187500 0.625000
+vt 0.187500 0.812500
+vt 0.125000 0.875000
+vt 0.375000 0.625000
+vt 0.437500 0.562500
+vt 0.437500 0.875000
+vt 0.375000 0.812500
+vt -0.000000 0.562500
+vt -0.000000 0.437500
+vt 1.000000 0.437500
+vt 1.000000 0.562500
+vt 0.875000 0.562500
+vt 0.562500 0.562500
+vt 0.812500 0.187500
+vt 0.875000 0.125000
+vt 0.625000 0.187500
+vt 0.812500 0.187500
+vt 0.187500 0.187500
+vt 0.187500 0.375000
+vt 0.562500 0.875000
+vt 0.562500 0.562500
+vt 0.625000 0.625000
+vt 0.625000 0.812500
+vt 0.875000 0.562500
+vt 0.812500 0.625000
+vt 0.375000 0.625000
+vt 0.187500 0.625000
+vt 0.125000 0.562500
+vt 0.437500 0.562500
+vt 0.625000 0.625000
+vt 0.625000 0.812500
+vt 0.562500 0.875000
+vt 0.625000 0.187500
+vt 0.562500 0.125000
+vt 0.812500 0.625000
+vt 0.875000 0.875000
+vt 0.812500 0.812500
+vt 0.875000 0.875000
+vt 0.812500 0.812500
+vt 1.000000 0.875000
+vt 0.187500 0.187500
+vt 0.375000 0.187500
+vt 0.375000 0.812500
+vt 0.437500 0.875000
+vt 0.125000 0.875000
+vt 1.000000 0.875000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.875000
+vt 1.000000 0.437500
+vt 1.000000 0.125000
+vt 0.000000 0.562500
+vt 1.000000 0.562500
+vt 1.000000 1.000000
+vt -0.000000 1.000000
+vt -0.000000 0.875000
+vt 1.000000 0.000000
+vt 0.000000 0.000000
+vt 0.187500 0.812500
+vt 0.625000 0.375000
+vt 0.625000 0.187500
+vt 0.812500 0.187500
+vt 0.812500 0.375000
+vt 0.625000 0.625000
+vt 0.812500 0.625000
+vt 0.812500 0.812500
+vt 0.625000 0.812500
+vt 0.187500 0.625000
+vt 0.375000 0.625000
+vt 0.375000 0.812500
+vt 0.187500 0.812500
+vt 0.187500 0.375000
+vt 0.187500 0.187500
+vt 0.375000 0.187500
+vt 0.375000 0.375000
+vt 0.375000 0.625000
+vt 0.375000 0.812500
+vt 0.187500 0.812500
+vt 0.187500 0.625000
+vt 0.375000 0.375000
+vt 0.187500 0.375000
+vt 0.187500 0.187500
+vt 0.375000 0.187500
+vt 0.812500 0.375000
+vt 0.625000 0.375000
+vt 0.625000 0.187500
+vt 0.812500 0.187500
+vt 0.812500 0.625000
+vt 0.812500 0.812500
+vt 0.625000 0.812500
+vt 0.625000 0.625000
+vt 1.000000 0.125000
+vt 1.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.125000
+vt 1.000000 0.125000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 0.125000
+vt 1.000000 0.125000
+vt 1.000000 0.125000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.000000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.000000 0.125000
+vt 0.187500 0.125000
+vt 0.187500 0.062500
+vt 0.187500 0.062500
+vt 0.187500 0.125000
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.625000 0.125000
+vt 0.625000 0.062500
+vt 0.625000 0.125000
+vt 0.625000 0.062500
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.625000 0.062500
+vt 0.625000 0.062500
+vt 0.625000 0.125000
+vt 0.625000 0.125000
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.812500 0.062500
+vt 0.812500 0.125000
+vt 0.187500 0.125000
+vt 0.187500 0.062500
+vt 0.187500 0.062500
+vt 0.187500 0.125000
+vt 0.375000 0.062500
+vt 0.375000 0.125000
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vn 0.0000 -0.0000 -1.0000
+vn 0.0000 0.6000 -0.8000
+vn 0.6000 0.0000 0.8000
+vn 0.0000 0.6000 0.8000
+vn 0.0000 0.0000 1.0000
+vn 0.6000 -0.0000 -0.8000
+vn -0.6000 -0.0000 -0.8000
+vn 0.0000 -0.6000 -0.8000
+vn -0.6000 0.0000 0.8000
+vn 0.0000 -0.6000 0.8000
+vn 0.0000 -1.0000 0.0000
+vn -1.0000 -0.0000 0.0000
+vn 1.0000 -0.0000 0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_top-bottom
+s off
+f 1/1/1 9/2/1 25/3/1 68/4/1 44/5/1 32/6/1 15/7/1 5/8/1
+f 84/9/2 41/10/2 42/11/2 17/12/2
+f 18/13/3 47/14/3 48/15/3 83/16/3
+f 82/17/4 19/18/4 50/19/4 49/20/4
+f 45/21/5 34/22/5 14/23/5 31/24/5
+f 57/25/2 78/26/2 24/27/2 58/28/2
+f 65/29/6 66/30/6 76/31/6 27/32/6
+f 28/33/7 75/34/7 64/35/7 63/36/7
+f 65/29/1 39/37/1 35/38/1 41/10/1 84/9/1 78/26/1 57/25/1 37/39/1 33/40/1 61/41/1 87/42/1 75/34/1
+f 81/43/3 20/44/3 49/20/3 50/19/3
+f 67/45/8 68/4/8 25/3/8 77/46/8
+f 45/21/9 31/24/9 74/47/9 46/48/9
+f 47/14/10 74/47/10 31/24/10 48/15/10
+f 52/49/9 88/50/9 30/51/9 51/52/9
+f 30/51/10 88/50/10 53/53/10 54/54/10
+f 23/55/10 70/56/10 69/57/10 79/58/10
+f 87/42/6 29/59/6 59/60/6 60/61/6
+f 75/34/8 28/33/8 66/30/8 65/29/8
+f 81/43/10 71/62/10 72/63/10 20/44/10
+f 62/64/7 61/41/7 26/65/7 86/66/7
+f 29/59/8 87/42/8 61/41/8 62/64/8
+f 54/54/3 53/53/3 21/67/3 85/68/3
+f 60/61/1 64/35/1 75/34/1 87/42/1
+f 52/49/4 51/52/4 85/68/4 21/67/4
+f 33/40/1 13/69/1 26/65/1 61/41/1
+f 26/65/2 60/61/2 59/60/2 86/66/2
+f 73/70/8 32/6/8 44/5/8 43/71/8
+f 77/46/7 25/3/7 57/25/7 58/28/7
+f 55/72/3 23/55/3 79/58/3 56/73/3
+f 22/74/5 56/73/5 52/49/5 21/67/5 16/75/5 8/76/5 4/77/5 10/78/5
+f 40/79/5 49/20/5 20/44/5 12/80/5
+f 10/78/5 38/81/5 69/57/5 22/74/5
+f 48/15/5 72/63/5 82/17/5 83/16/5
+f 83/16/5 82/17/5 49/20/5 40/79/5 36/82/5 53/53/5 88/50/5 79/58/5 69/57/5 38/81/5 34/22/5 45/21/5
+f 17/12/7 43/71/7 44/5/7 84/9/7
+f 88/50/5 52/49/5 56/73/5 79/58/5
+f 15/7/1 32/6/1 41/10/1 35/38/1
+f 83/16/4 45/21/4 46/48/4 18/13/4
+f 64/35/2 27/32/2 76/31/2 63/36/2
+f 26/65/1 13/69/1 3/83/1 7/84/1 11/85/1 27/32/1 64/35/1 60/61/1
+f 44/5/1 68/4/1 78/26/1 84/9/1
+f 57/25/1 25/3/1 9/2/1 37/39/1
+f 39/37/1 65/29/1 27/32/1 11/85/1
+f 6/86/5 12/80/5 20/44/5 72/63/5 48/15/5 31/24/5 14/23/5 2/87/5
+f 53/53/5 36/82/5 16/75/5 21/67/5
+f 56/73/4 22/74/4 80/88/4 55/72/4
+f 72/63/9 71/62/9 19/18/9 82/17/9
+f 22/74/9 69/57/9 70/56/9 80/88/9
+f 41/10/6 32/6/6 73/70/6 42/11/6
+f 68/4/6 67/45/6 24/27/6 78/26/6
+f 89/89/5 94/90/5 101/91/5 93/92/5
+f 91/93/5 99/94/5 102/95/5 98/96/5
+f 97/97/5 92/98/5 96/99/5 104/100/5
+f 95/101/5 103/102/5 100/103/5 90/104/5
+f 105/105/1 110/106/1 117/107/1 109/108/1
+f 107/109/1 115/110/1 118/111/1 114/112/1
+f 113/113/1 108/114/1 112/115/1 120/116/1
+f 111/117/1 119/118/1 116/119/1 106/120/1
+g Cube.001_Cube.001_sides
+f 8/121/11 7/122/11 3/123/11 4/124/11
+f 6/125/12 5/126/12 15/127/12 35/128/12 39/129/12 11/130/12 7/122/12 8/121/12 16/131/12 36/132/12 40/133/12 12/80/12
+f 3/123/13 13/134/13 33/135/13 37/136/13 9/137/13 1/138/13 2/139/13 14/23/13 34/140/13 38/141/13 10/142/13 4/124/13
+f 1/138/14 5/126/14 6/125/14 2/139/14
+f 70/143/12 62/144/12 86/145/12 80/146/12
+f 23/147/11 29/148/11 62/144/11 70/143/11
+f 55/149/13 59/150/13 29/148/13 23/147/13
+f 59/150/14 55/149/14 80/146/14 86/145/14
+f 76/151/14 85/152/14 51/153/14 63/154/14
+f 51/153/12 30/155/12 28/156/12 63/154/12
+f 66/157/13 54/158/13 85/152/13 76/151/13
+f 28/156/11 30/155/11 54/158/11 66/157/11
+f 43/159/12 17/160/12 19/161/12 71/162/12
+f 42/163/14 50/164/14 19/161/14 17/160/14
+f 73/165/13 81/166/13 50/164/13 42/163/13
+f 73/165/11 43/159/11 71/162/11 81/166/11
+f 74/167/12 77/168/12 58/169/12 46/170/12
+f 46/170/14 58/169/14 24/171/14 18/172/14
+f 47/173/13 18/172/13 24/171/13 67/174/13
+f 74/167/11 47/173/11 67/174/11 77/168/11
diff --git a/homedecor_3d_extras/models/3dvessels_bottle.obj b/homedecor_3d_extras/models/homedecor_3d_vessels_bottle.obj
index 03e780b..03e780b 100644
--- a/homedecor_3d_extras/models/3dvessels_bottle.obj
+++ b/homedecor_3d_extras/models/homedecor_3d_vessels_bottle.obj
diff --git a/homedecor_3d_extras/models/3dvessels_bottle_steel.obj b/homedecor_3d_extras/models/homedecor_3d_vessels_bottle_steel.obj
index a82ec17..a82ec17 100644
--- a/homedecor_3d_extras/models/3dvessels_bottle_steel.obj
+++ b/homedecor_3d_extras/models/homedecor_3d_vessels_bottle_steel.obj
diff --git a/homedecor_3d_extras/models/3dvessels_drink.obj b/homedecor_3d_extras/models/homedecor_3d_vessels_drink.obj
index f6cefac..f6cefac 100644
--- a/homedecor_3d_extras/models/3dvessels_drink.obj
+++ b/homedecor_3d_extras/models/homedecor_3d_vessels_drink.obj
diff --git a/homedecor_3d_extras/models/3dvessels_shelf.obj b/homedecor_3d_extras/models/homedecor_3d_vessels_shelf.obj
index 979864c..979864c 100644
--- a/homedecor_3d_extras/models/3dvessels_shelf.obj
+++ b/homedecor_3d_extras/models/homedecor_3d_vessels_shelf.obj
diff --git a/homedecor_3d_extras/textures/3dbookshelf_books.png b/homedecor_3d_extras/textures/homedecor_3d_bookshelf_books.png
index 6f2be28..6f2be28 100644
--- a/homedecor_3d_extras/textures/3dbookshelf_books.png
+++ b/homedecor_3d_extras/textures/homedecor_3d_bookshelf_books.png
Binary files differ
diff --git a/homedecor_3d_extras/textures/3dbookshelf_inside_back.png b/homedecor_3d_extras/textures/homedecor_3d_bookshelf_inside_back.png
index 3fb49da..3fb49da 100644
--- a/homedecor_3d_extras/textures/3dbookshelf_inside_back.png
+++ b/homedecor_3d_extras/textures/homedecor_3d_bookshelf_inside_back.png
Binary files differ
diff --git a/homedecor_3d_extras/textures/bottle_metal_bright.png b/homedecor_3d_extras/textures/homedecor_3d_bottle_metal_bright.png
index c0d9c2e..c0d9c2e 100644
--- a/homedecor_3d_extras/textures/bottle_metal_bright.png
+++ b/homedecor_3d_extras/textures/homedecor_3d_bottle_metal_bright.png
Binary files differ
diff --git a/homedecor_3d_extras/textures/3dvessels_drinking_glass_inv.png b/homedecor_3d_extras/textures/homedecor_3d_vessels_drinking_glass_inv.png
index 13f3f88..13f3f88 100644
--- a/homedecor_3d_extras/textures/3dvessels_drinking_glass_inv.png
+++ b/homedecor_3d_extras/textures/homedecor_3d_vessels_drinking_glass_inv.png
Binary files differ
diff --git a/homedecor_3d_extras/textures/3dvessels_glass_bottle_inv.png b/homedecor_3d_extras/textures/homedecor_3d_vessels_glass_bottle_inv.png
index 20a42d6..20a42d6 100644
--- a/homedecor_3d_extras/textures/3dvessels_glass_bottle_inv.png
+++ b/homedecor_3d_extras/textures/homedecor_3d_vessels_glass_bottle_inv.png
Binary files differ
diff --git a/homedecor_3d_extras/textures/3dvessels_shelf_glass.png b/homedecor_3d_extras/textures/homedecor_3d_vessels_shelf_glass.png
index 101666f..101666f 100644
--- a/homedecor_3d_extras/textures/3dvessels_shelf_glass.png
+++ b/homedecor_3d_extras/textures/homedecor_3d_vessels_shelf_glass.png
Binary files differ
diff --git a/homedecor_3d_extras/textures/3dvessels_steel_bottle_inv.png b/homedecor_3d_extras/textures/homedecor_3d_vessels_steel_bottle_inv.png
index bfecba7..bfecba7 100644
--- a/homedecor_3d_extras/textures/3dvessels_steel_bottle_inv.png
+++ b/homedecor_3d_extras/textures/homedecor_3d_vessels_steel_bottle_inv.png
Binary files differ