From e76396285204cca89d2eb0917fad083a29ee6921 Mon Sep 17 00:00:00 2001 From: NathanSalapat Date: Sat, 2 May 2020 18:10:32 -0500 Subject: [PATCH] new nodes. --- bedroom.lua | 1 + crafts.lua | 26 ++ fences.lua | 79 ++++ init.lua | 3 + library.lua | 26 ++ license.txt | 2 +- lighting.lua | 49 +++ models/furniture_bench_picnic.obj | 352 ++++++++++++++++++ models/furniture_fence_1_a.obj | 304 +++++++++++++++ models/furniture_fence_1_b.obj | 323 ++++++++++++++++ models/furniture_fence_1_c.obj | 323 ++++++++++++++++ models/furniture_fence_1_d.obj | 321 ++++++++++++++++ models/furniture_lantern.obj | 141 +++++++ seating.lua | 49 +++ storage.lua | 207 ++++++++++ tables.lua | 1 + textures/furniture_bench_picnic.png | Bin 0 -> 15180 bytes textures/furniture_fence.png | Bin 0 -> 15524 bytes textures/furniture_lantern.png | Bin 0 -> 9165 bytes textures/furniture_lantern_particle.png | Bin 0 -> 638 bytes .../furniture_lectern_encylopedia_overlay.png | Bin 0 -> 20753 bytes textures/furniture_lectern_overlay.png | Bin 0 -> 20164 bytes 22 files changed, 2206 insertions(+), 1 deletion(-) create mode 100644 crafts.lua create mode 100644 fences.lua create mode 100644 lighting.lua create mode 100644 models/furniture_bench_picnic.obj create mode 100644 models/furniture_fence_1_a.obj create mode 100644 models/furniture_fence_1_b.obj create mode 100644 models/furniture_fence_1_c.obj create mode 100644 models/furniture_fence_1_d.obj create mode 100644 models/furniture_lantern.obj create mode 100644 textures/furniture_bench_picnic.png create mode 100644 textures/furniture_fence.png create mode 100644 textures/furniture_lantern.png create mode 100644 textures/furniture_lantern_particle.png create mode 100644 textures/furniture_lectern_encylopedia_overlay.png create mode 100644 textures/furniture_lectern_overlay.png diff --git a/bedroom.lua b/bedroom.lua index 887eb3b..69ec29a 100644 --- a/bedroom.lua +++ b/bedroom.lua @@ -6,6 +6,7 @@ for i in ipairs(dye_table) do local hex = dye_table[i][3] minetest.register_node('furniture:bed1_'..name, { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Bed with '..desc..' Blankets', drawtype = 'mesh', mesh = 'furniture_bed1.obj', diff --git a/crafts.lua b/crafts.lua new file mode 100644 index 0000000..14847cb --- /dev/null +++ b/crafts.lua @@ -0,0 +1,26 @@ +minetest.register_craft({ + type = 'shapeless', + output = 'furniture:lectern_encyclopedia', + recipe = { + 'doc_encyclopedia:encyclopedia', + 'furniture:lectern' + } +}) + +minetest.register_craft({ + type = 'shapeless', + output = 'furniture:bookshelf_locked', + recipe = { + 'default:bookshelf', + 'furniture:lock' + } +}) + +minetest.register_craft({ + type = 'shapeless', + output = 'furniture:shelf_vessel_locked', + recipe = { + 'vessels:shelf', + 'furniture:lock' + } +}) diff --git a/fences.lua b/fences.lua new file mode 100644 index 0000000..ed4530a --- /dev/null +++ b/fences.lua @@ -0,0 +1,79 @@ +minetest.register_node('furniture:fence_1_a', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', + description = 'Fence', + drawtype = 'mesh', + mesh = 'furniture_fence_1_a.obj', + tiles = {'furniture_fence.png'}, + paramtype = 'light', + paramtype2 = 'colorfacedir', + palette = 'furniture_stain_palette.png', + selection_box = { + type = 'fixed', + fixed = {-.375, -.5, -.375, .375, 0.5, .375}, + }, + collision_box = { + type = 'fixed', + fixed = {-.375, -.5, -.375, .375, 0.5, .375}, + }, + groups = {oddly_breakable_by_hand = 2, choppy=3, stainable=1}, +}) + +minetest.register_node('furniture:fence_1_b', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', + description = 'Fence', + drawtype = 'mesh', + mesh = 'furniture_fence_1_b.obj', + tiles = {'furniture_fence.png'}, + paramtype = 'light', + paramtype2 = 'colorfacedir', + palette = 'furniture_stain_palette.png', + selection_box = { + type = 'fixed', + fixed = {-.375, -.5, -.375, .375, 0.5, .375}, + }, + collision_box = { + type = 'fixed', + fixed = {-.375, -.5, -.375, .375, 0.5, .375}, + }, + groups = {oddly_breakable_by_hand = 2, choppy=3, stainable=1}, +}) + +minetest.register_node('furniture:fence_1_c', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', + description = 'Fence', + drawtype = 'mesh', + mesh = 'furniture_fence_1_c.obj', + tiles = {'furniture_fence.png'}, + paramtype = 'light', + paramtype2 = 'colorfacedir', + palette = 'furniture_stain_palette.png', + selection_box = { + type = 'fixed', + fixed = {-.375, -.5, -.375, .375, 0.5, .375}, + }, + collision_box = { + type = 'fixed', + fixed = {-.375, -.5, -.375, .375, 0.5, .375}, + }, + groups = {oddly_breakable_by_hand = 2, choppy=3, stainable=1}, +}) + +minetest.register_node('furniture:fence_1_d', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', + description = 'Gate', + drawtype = 'mesh', + mesh = 'furniture_fence_1_d.obj', + tiles = {'furniture_fence.png'}, + paramtype = 'light', + paramtype2 = 'colorfacedir', + palette = 'furniture_stain_palette.png', + selection_box = { + type = 'fixed', + fixed = {-.375, -.5, -.375, .375, 0.5, .375}, + }, + collision_box = { + type = 'fixed', + fixed = {-.375, -.5, -.375, .375, 0.5, .375}, + }, + groups = {oddly_breakable_by_hand = 2, choppy=3, stainable=1}, +}) diff --git a/init.lua b/init.lua index 1fa0d31..1ff419c 100644 --- a/init.lua +++ b/init.lua @@ -2,11 +2,14 @@ furniture = {} furniture.players = {} dofile(minetest.get_modpath('furniture')..'/bedroom.lua') --Things you'd find in a bedroom. dofile(minetest.get_modpath('furniture')..'/craftitems.lua') --Items used in recipes. +dofile(minetest.get_modpath('furniture')..'/crafts.lua') dofile(minetest.get_modpath('furniture')..'/decor.lua') dofile(minetest.get_modpath('furniture')..'/fabricandthread.lua') +dofile(minetest.get_modpath('furniture')..'/fences.lua') --Fences are here, duh! dofile(minetest.get_modpath('furniture')..'/formspecs.lua') --Formspecs for the nodes. dofile(minetest.get_modpath('furniture')..'/functions.lua') --Different functions to control stuff. dofile(minetest.get_modpath('furniture')..'/library.lua') --Books things. +dofile(minetest.get_modpath('furniture')..'/lighting.lua') --Things that add light. dofile(minetest.get_modpath('furniture')..'/seating.lua') --chairs, benches, stools dofile(minetest.get_modpath('furniture')..'/stain.lua') --Brushes for coloring furniture dofile(minetest.get_modpath('furniture')..'/storage.lua') --Chests, boxes, etc. diff --git a/library.lua b/library.lua index de8499d..6948105 100644 --- a/library.lua +++ b/library.lua @@ -1,8 +1,10 @@ minetest.register_node('furniture:lectern', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Lectern', drawtype = 'mesh', mesh = 'furniture_lectern.obj', tiles = {'furniture_lectern.png',}, + overlay_tiles = {{name='furniture_lectern_overlay.png', color='white'}}, sounds = default.node_sound_wood_defaults(), paramtype2 = 'colorfacedir', palette = 'furniture_stain_palette.png', @@ -46,3 +48,27 @@ minetest.register_node('furniture:lectern', { end end, }) + +minetest.register_node('furniture:lectern_encyclopedia', { + description = 'Lectern with Encyclopedia', + drawtype = 'mesh', + mesh = 'furniture_lectern.obj', + tiles = {'furniture_lectern.png',}, + overlay_tiles = {{name='furniture_lectern_encylopedia_overlay.png', color='white'}}, + sounds = default.node_sound_wood_defaults(), + paramtype2 = 'colorfacedir', + palette = 'furniture_stain_palette.png', + paramtype = 'light', + selection_box = { + type = 'fixed', + fixed = {-.3, -.5, -.3, .3, .5, .3}, + }, + collision_box = { + type = 'fixed', + fixed = {-.3, -.5, -.3, .3, .5, .3}, + }, + groups = {oddly_breakable_by_hand = 2, choppy=3, stainable=1}, + on_rightclick = function(pos, node, clicker) + doc.show_doc(clicker:get_player_name()) + end, +}) diff --git a/license.txt b/license.txt index 35acb33..2d04f50 100644 --- a/license.txt +++ b/license.txt @@ -1,4 +1,4 @@ -Models within furniture.blend are licensed CC by-SA 4.0 +Models are licensed CC by-SA 4.0 NathanS21 | nathansalapat.com Wood grain textures are derived from https://renderman.pixar.com/pixar-one-twenty-eight licensed CC by 4.0 diff --git a/lighting.lua b/lighting.lua new file mode 100644 index 0000000..82335da --- /dev/null +++ b/lighting.lua @@ -0,0 +1,49 @@ +local function particles_lantern(pos) + minetest.add_particlespawner({ + amount = 48, + time = 4, + minpos = {x=pos.x - 0.25, y=pos.y, z=pos.z - 0.25}, + maxpos = {x=pos.x + 0.25, y=pos.y + 0.25, z=pos.z + 0.25}, + minvel = {x=-.3, y=-.03, z=-.3}, maxvel = {x=.3, y=.05, z=.3}, + minacc = {x=-.1, y=.02, z=-.1}, maxacc = {x=.1, y=.02, z=.1}, + minexptime = 1, maxexptime = 3, + minsize = 1, maxsize = 2, + collisiondetection = false, + texture = 'furniture_lantern_particle.png', + glow = 10, + }) +end + +minetest.register_node('furniture:lantern_ceiling', { + --_doc_items_crafting = 'This is crafted in the Woodworking Station.', + description = 'Ceiling Lantern', + drawtype = 'mesh', + mesh = 'furniture_lantern.obj', + tiles = {'furniture_lantern.png'}, + paramtype = 'light', + light_source = 14, + walkable = false, + paramtype2 = 'facedir', + selection_box = { + type = 'fixed', + fixed = {-.375, 0, -.375, .375, 0.5, .375}, + }, + collision_box = { + type = 'fixed', + fixed = {-.375, 0, -.375, .375, 0.5, .375}, + }, + groups = {oddly_breakable_by_hand = 2, cracky=3}, + on_rightclick = function(pos) + particles_lantern(pos) + end, +}) + +minetest.register_abm({ + label = 'Lanter effects', + nodenames = {'furniture:lantern_ceiling'}, + interval = 13, + chance = 7, + action = function(pos, node) + particles_lantern(pos) + end +}) diff --git a/models/furniture_bench_picnic.obj b/models/furniture_bench_picnic.obj new file mode 100644 index 0000000..f0bee6b --- /dev/null +++ b/models/furniture_bench_picnic.obj @@ -0,0 +1,352 @@ +# Blender v2.82 (sub 7) OBJ File: 'furniture.blend' +# www.blender.org +o Bench_picnic_Cube.013 +v -1.375000 -0.125000 1.375000 +v -1.375000 0.000000 1.375000 +v -1.375000 -0.125000 1.000000 +v -1.375000 0.000000 1.000000 +v 0.375000 -0.125000 1.375000 +v 0.375000 0.000000 1.375000 +v 0.375000 -0.125000 1.000000 +v 0.375000 0.000000 1.000000 +v -1.312500 -0.125000 1.250000 +v -1.312500 -0.125000 1.125000 +v -1.187500 -0.125000 1.250000 +v -1.187500 -0.125000 1.125000 +v -1.312500 -0.500000 1.125000 +v -1.312500 -0.500000 1.250000 +v -1.187500 -0.500000 1.125000 +v -1.187500 -0.500000 1.250000 +v 0.375000 0.500000 -0.062500 +v 0.375000 0.375000 -0.062500 +v 0.375000 0.500000 1.062500 +v 0.375000 0.375000 1.062500 +v -1.375000 0.500000 -0.062500 +v -1.375000 0.375000 -0.062500 +v -1.375000 0.500000 1.062500 +v -1.375000 0.375000 1.062500 +v 0.312500 -0.125000 1.250000 +v 0.187500 -0.125000 1.250000 +v 0.312500 -0.125000 1.125000 +v 0.187500 -0.125000 1.125000 +v 0.187500 -0.500000 1.250000 +v 0.312500 -0.500000 1.250000 +v 0.187500 -0.500000 1.125000 +v 0.312500 -0.500000 1.125000 +v -1.375000 -0.125000 0.000000 +v -1.375000 0.000000 0.000000 +v -1.375000 -0.125000 -0.375000 +v -1.375000 0.000000 -0.375000 +v 0.375000 -0.125000 0.000000 +v 0.375000 0.000000 0.000000 +v 0.375000 -0.125000 -0.375000 +v 0.375000 0.000000 -0.375000 +v -1.312500 -0.125000 -0.125000 +v -1.312500 -0.125000 -0.250000 +v -1.187500 -0.125000 -0.125000 +v -1.187500 -0.125000 -0.250000 +v -1.312500 -0.500000 -0.250000 +v -1.312500 -0.500000 -0.125000 +v -1.187500 -0.500000 -0.250000 +v -1.187500 -0.500000 -0.125000 +v 0.312500 -0.125000 -0.125000 +v 0.187500 -0.125000 -0.125000 +v 0.312500 -0.125000 -0.250000 +v 0.187500 -0.125000 -0.250000 +v 0.187500 -0.500000 -0.125000 +v 0.312500 -0.500000 -0.125000 +v 0.187500 -0.500000 -0.250000 +v 0.312500 -0.500000 -0.250000 +v 0.187500 -0.187500 1.312500 +v 0.125000 -0.187500 1.312500 +v 0.187500 -0.375000 1.312500 +v 0.125000 -0.375000 1.312500 +v 0.187500 -0.187500 -0.312500 +v 0.125000 -0.187500 -0.312500 +v 0.187500 -0.375000 -0.312500 +v 0.125000 -0.375000 -0.312500 +v -1.125000 -0.187500 1.312500 +v -1.187500 -0.187500 1.312500 +v -1.125000 -0.375000 1.312500 +v -1.187500 -0.375000 1.312500 +v -1.125000 -0.187500 -0.312500 +v -1.187500 -0.187500 -0.312500 +v -1.125000 -0.375000 -0.312500 +v -1.187500 -0.375000 -0.312500 +v 0.187500 0.375000 1.000000 +v 0.125000 0.375000 1.000000 +v 0.187500 0.250000 1.000000 +v 0.125000 0.250000 1.000000 +v 0.187500 0.375000 0.000000 +v 0.125000 0.375000 0.000000 +v 0.187500 0.250000 0.000000 +v 0.125000 0.250000 0.000000 +v -1.125000 0.375000 1.000000 +v -1.187500 0.375000 1.000000 +v -1.125000 0.250000 1.000000 +v -1.187500 0.250000 1.000000 +v -1.125000 0.375000 0.000000 +v -1.187500 0.375000 0.000000 +v -1.125000 0.250000 0.000000 +v -1.187500 0.250000 0.000000 +v -1.125000 0.375000 0.562500 +v -1.125000 0.375000 0.437500 +v -1.000000 0.375000 0.562500 +v -1.000000 0.375000 0.437500 +v -1.125000 -0.500000 0.437500 +v -1.125000 -0.500000 0.562500 +v -1.000000 -0.500000 0.437500 +v -1.000000 -0.500000 0.562500 +v 0.000000 0.375000 0.562500 +v 0.000000 0.375000 0.437500 +v 0.125000 0.375000 0.562500 +v 0.125000 0.375000 0.437500 +v 0.000000 -0.500000 0.437500 +v 0.000000 -0.500000 0.562500 +v 0.125000 -0.500000 0.437500 +v 0.125000 -0.500000 0.562500 +vt 1.000000 0.937500 +vt 0.937500 0.937500 +vt 0.937500 0.750000 +vt 1.000000 0.750000 +vt 0.937500 0.687500 +vt 0.062500 0.750000 +vt 0.062500 0.687500 +vt 0.000000 0.750000 +vt 0.062500 0.937500 +vt 0.000000 0.937500 +vt 0.062500 1.000000 +vt 0.937500 1.000000 +vt 0.937500 0.750000 +vt 0.062500 0.750000 +vt 0.062500 0.937500 +vt 0.937500 0.937500 +vt 0.187500 0.062500 +vt 0.187500 0.125000 +vt 0.000000 0.125000 +vt 0.000000 0.062500 +vt 0.187500 0.187500 +vt 0.187500 0.250000 +vt 0.000000 0.250000 +vt 0.000000 0.187500 +vt 0.187500 0.000000 +vt 0.000000 0.000000 +vt 0.062500 0.750000 +vt 0.937500 0.750000 +vt 0.937500 0.937500 +vt 0.062500 0.937500 +vt 0.937500 0.750000 +vt 0.062500 0.750000 +vt 0.062500 0.937500 +vt 0.937500 0.937500 +vt 0.062500 1.000000 +vt 0.937500 1.000000 +vt 0.000000 0.750000 +vt 0.000000 0.937500 +vt 1.000000 0.937500 +vt 1.000000 0.750000 +vt 0.531250 0.250000 +vt 0.531250 0.312500 +vt 0.343750 0.312500 +vt 0.343750 0.250000 +vt 0.531250 0.375000 +vt 0.531250 0.437500 +vt 0.343750 0.437500 +vt 0.343750 0.375000 +vt 0.531250 0.187500 +vt 0.343750 0.187500 +vt 0.062500 0.687500 +vt 0.937500 0.687500 +vt 1.000000 0.937500 +vt 0.937500 0.937500 +vt 0.937500 0.750000 +vt 1.000000 0.750000 +vt 0.937500 0.687500 +vt 0.062500 0.750000 +vt 0.062500 0.687500 +vt 0.000000 0.750000 +vt 0.062500 0.937500 +vt 0.000000 0.937500 +vt 0.062500 1.000000 +vt 0.937500 1.000000 +vt 0.937500 0.750000 +vt 0.062500 0.750000 +vt 0.062500 0.937500 +vt 0.937500 0.937500 +vt 0.187500 0.062500 +vt 0.187500 0.125000 +vt 0.000000 0.125000 +vt 0.000000 0.062500 +vt 0.187500 0.187500 +vt 0.187500 0.250000 +vt 0.000000 0.250000 +vt 0.000000 0.187500 +vt 0.187500 0.000000 +vt 0.000000 0.000000 +vt 0.531250 0.250000 +vt 0.531250 0.312500 +vt 0.343750 0.312500 +vt 0.343750 0.250000 +vt 0.531250 0.375000 +vt 0.531250 0.437500 +vt 0.343750 0.437500 +vt 0.343750 0.375000 +vt 0.531250 0.187500 +vt 0.343750 0.187500 +vt 0.890625 0.218750 +vt 0.859375 0.218750 +vt 0.859375 0.125000 +vt 0.890625 0.125000 +vt 0.859375 0.093750 +vt 0.046875 0.125000 +vt 0.046875 0.093750 +vt 0.015625 0.125000 +vt 0.046875 0.218750 +vt 0.015625 0.218750 +vt 0.046875 0.250000 +vt 0.859375 0.250000 +vt 0.859375 0.125000 +vt 0.046875 0.125000 +vt 0.046875 0.218750 +vt 0.859375 0.218750 +vt 0.953125 0.328125 +vt 0.921875 0.328125 +vt 0.921875 0.234375 +vt 0.953125 0.234375 +vt 0.921875 0.203125 +vt 0.109375 0.234375 +vt 0.109375 0.203125 +vt 0.078125 0.234375 +vt 0.109375 0.328125 +vt 0.078125 0.328125 +vt 0.109375 0.359375 +vt 0.921875 0.359375 +vt 0.921875 0.234375 +vt 0.109375 0.234375 +vt 0.109375 0.328125 +vt 0.921875 0.328125 +vt 0.734375 0.187500 +vt 0.703125 0.187500 +vt 0.703125 0.125000 +vt 0.734375 0.125000 +vt 0.703125 0.093750 +vt 0.046875 0.125000 +vt 0.046875 0.093750 +vt 0.015625 0.125000 +vt 0.046875 0.187500 +vt 0.015625 0.187500 +vt 0.046875 0.218750 +vt 0.703125 0.218750 +vt 0.703125 0.125000 +vt 0.046875 0.125000 +vt 0.046875 0.187500 +vt 0.703125 0.187500 +vt 0.734375 0.187500 +vt 0.703125 0.187500 +vt 0.703125 0.125000 +vt 0.734375 0.125000 +vt 0.703125 0.093750 +vt 0.046875 0.125000 +vt 0.046875 0.093750 +vt 0.015625 0.125000 +vt 0.046875 0.187500 +vt 0.015625 0.187500 +vt 0.046875 0.218750 +vt 0.703125 0.218750 +vt 0.703125 0.125000 +vt 0.046875 0.125000 +vt 0.046875 0.187500 +vt 0.703125 0.187500 +vt 0.437500 0.062500 +vt 0.437500 0.125000 +vt 0.000000 0.125000 +vt 0.000000 0.062500 +vt 0.437500 0.187500 +vt 0.437500 0.250000 +vt 0.000000 0.250000 +vt 0.000000 0.187500 +vt 0.437500 0.000000 +vt 0.000000 0.000000 +vt 0.437500 0.062500 +vt 0.437500 0.125000 +vt 0.000000 0.125000 +vt 0.000000 0.062500 +vt 0.437500 0.187500 +vt 0.437500 0.250000 +vt 0.000000 0.250000 +vt 0.000000 0.187500 +vt 0.437500 0.000000 +vt 0.000000 0.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 3/5/2 4/3/2 8/6/2 7/7/2 +f 7/8/3 8/6/3 6/9/3 5/10/3 +f 5/11/4 6/9/4 2/2/4 1/12/4 +f 3/13/5 7/14/5 5/15/5 1/16/5 +f 8/6/6 4/3/6 2/2/6 6/9/6 +f 11/17/4 9/18/4 14/19/4 16/20/4 +f 10/21/2 12/22/2 15/23/2 13/24/2 +f 12/25/3 11/17/3 16/20/3 15/26/3 +f 9/18/1 10/21/1 13/24/1 14/19/1 +f 17/27/6 21/28/6 23/29/6 19/30/6 +f 22/31/5 18/32/5 20/33/5 24/34/5 +f 20/35/4 19/30/4 23/29/4 24/36/4 +f 18/37/3 17/27/3 19/30/3 20/38/3 +f 24/39/1 23/29/1 21/28/1 22/40/1 +f 27/41/3 25/42/3 30/43/3 32/44/3 +f 26/45/1 28/46/1 31/47/1 29/48/1 +f 28/49/2 27/41/2 32/44/2 31/50/2 +f 25/42/4 26/45/4 29/48/4 30/43/4 +f 18/51/2 22/52/2 21/28/2 17/27/2 +f 33/53/1 34/54/1 36/55/1 35/56/1 +f 35/57/2 36/55/2 40/58/2 39/59/2 +f 39/60/3 40/58/3 38/61/3 37/62/3 +f 37/63/4 38/61/4 34/54/4 33/64/4 +f 35/65/5 39/66/5 37/67/5 33/68/5 +f 40/58/6 36/55/6 34/54/6 38/61/6 +f 43/69/4 41/70/4 46/71/4 48/72/4 +f 42/73/2 44/74/2 47/75/2 45/76/2 +f 44/77/3 43/69/3 48/72/3 47/78/3 +f 41/70/1 42/73/1 45/76/1 46/71/1 +f 51/79/3 49/80/3 54/81/3 56/82/3 +f 50/83/1 52/84/1 55/85/1 53/86/1 +f 52/87/2 51/79/2 56/82/2 55/88/2 +f 49/80/4 50/83/4 53/86/4 54/81/4 +f 57/89/4 58/90/4 60/91/4 59/92/4 +f 59/93/5 60/91/5 64/94/5 63/95/5 +f 63/96/2 64/94/2 62/97/2 61/98/2 +f 61/99/6 62/97/6 58/90/6 57/100/6 +f 59/101/3 63/102/3 61/103/3 57/104/3 +f 64/94/1 60/91/1 58/90/1 62/97/1 +f 65/105/4 66/106/4 68/107/4 67/108/4 +f 67/109/5 68/107/5 72/110/5 71/111/5 +f 71/112/2 72/110/2 70/113/2 69/114/2 +f 69/115/6 70/113/6 66/106/6 65/116/6 +f 67/117/3 71/118/3 69/119/3 65/120/3 +f 72/110/1 68/107/1 66/106/1 70/113/1 +f 73/121/4 74/122/4 76/123/4 75/124/4 +f 75/125/5 76/123/5 80/126/5 79/127/5 +f 79/128/2 80/126/2 78/129/2 77/130/2 +f 77/131/6 78/129/6 74/122/6 73/132/6 +f 75/133/3 79/134/3 77/135/3 73/136/3 +f 80/126/1 76/123/1 74/122/1 78/129/1 +f 81/137/4 82/138/4 84/139/4 83/140/4 +f 83/141/5 84/139/5 88/142/5 87/143/5 +f 87/144/2 88/142/2 86/145/2 85/146/2 +f 85/147/6 86/145/6 82/138/6 81/148/6 +f 83/149/3 87/150/3 85/151/3 81/152/3 +f 88/142/1 84/139/1 82/138/1 86/145/1 +f 91/153/4 89/154/4 94/155/4 96/156/4 +f 90/157/2 92/158/2 95/159/2 93/160/2 +f 92/161/3 91/153/3 96/156/3 95/162/3 +f 89/154/1 90/157/1 93/160/1 94/155/1 +f 99/163/4 97/164/4 102/165/4 104/166/4 +f 98/167/2 100/168/2 103/169/2 101/170/2 +f 100/171/3 99/163/3 104/166/3 103/172/3 +f 97/164/1 98/167/1 101/170/1 102/165/1 diff --git a/models/furniture_fence_1_a.obj b/models/furniture_fence_1_a.obj new file mode 100644 index 0000000..52ef413 --- /dev/null +++ b/models/furniture_fence_1_a.obj @@ -0,0 +1,304 @@ +# Blender v2.82 (sub 7) OBJ File: 'furniture.blend' +# www.blender.org +o Fence_1_straight_Cube.022 +v 0.171875 0.406250 -0.000000 +v 0.109375 0.406250 -0.000000 +v 0.171875 0.406250 -0.062500 +v 0.109375 0.406250 -0.062500 +v 0.171875 -0.468750 -0.000000 +v 0.109375 -0.468750 -0.000000 +v 0.171875 -0.468750 -0.062500 +v 0.109375 -0.468750 -0.062500 +v -0.500000 -0.500000 0.062500 +v -0.500000 0.500000 0.062500 +v -0.500000 -0.500000 -0.062500 +v -0.500000 0.500000 -0.062500 +v -0.375000 -0.500000 0.062500 +v -0.375000 0.500000 0.062500 +v -0.375000 -0.500000 -0.062500 +v -0.375000 0.500000 -0.062500 +v 0.203125 -0.468750 -0.062500 +v 0.265625 -0.468750 -0.062500 +v 0.203125 -0.468750 -0.000000 +v 0.265625 -0.468750 -0.000000 +v 0.203125 0.406250 -0.062500 +v 0.265625 0.406250 -0.062500 +v 0.203125 0.406250 -0.000000 +v 0.265625 0.406250 -0.000000 +v -0.203125 0.406250 0.000000 +v -0.265625 0.406250 0.000000 +v -0.203125 0.406250 -0.062500 +v -0.265625 0.406250 -0.062500 +v -0.203125 -0.468750 0.000000 +v -0.265625 -0.468750 0.000000 +v -0.203125 -0.468750 -0.062500 +v -0.265625 -0.468750 -0.062500 +v 0.375000 0.500000 -0.062500 +v 0.375000 -0.500000 -0.062500 +v 0.500000 0.500000 -0.062500 +v 0.500000 -0.500000 -0.062500 +v 0.375000 0.500000 0.062500 +v 0.375000 -0.500000 0.062500 +v 0.500000 0.500000 0.062500 +v 0.500000 -0.500000 0.062500 +v -0.375000 0.312500 0.031250 +v -0.375000 0.250000 0.031250 +v -0.375000 0.312500 -0.031250 +v -0.375000 0.250000 -0.031250 +v 0.375000 0.312500 0.031250 +v 0.375000 0.250000 0.031250 +v 0.375000 0.312500 -0.031250 +v 0.375000 0.250000 -0.031250 +v -0.359375 -0.468750 -0.062500 +v -0.296875 -0.468750 -0.062500 +v -0.359375 -0.468750 0.000000 +v -0.296875 -0.468750 0.000000 +v -0.359375 0.406250 -0.062500 +v -0.296875 0.406250 -0.062500 +v -0.359375 0.406250 0.000000 +v -0.296875 0.406250 0.000000 +v 0.375000 -0.250000 0.031250 +v 0.375000 -0.312500 0.031250 +v 0.375000 -0.250000 -0.031250 +v 0.375000 -0.312500 -0.031250 +v -0.375000 -0.312500 -0.031250 +v -0.375000 -0.250000 -0.031250 +v -0.375000 -0.312500 0.031250 +v -0.375000 -0.250000 0.031250 +v -0.015625 0.406250 0.000000 +v -0.078125 0.406250 0.000000 +v -0.015625 0.406250 -0.062500 +v -0.078125 0.406250 -0.062500 +v -0.015625 -0.468750 -0.000000 +v -0.078125 -0.468750 -0.000000 +v -0.015625 -0.468750 -0.062500 +v -0.078125 -0.468750 -0.062500 +v 0.078125 0.406250 -0.000000 +v 0.015625 0.406250 -0.000000 +v 0.078125 0.406250 -0.062500 +v 0.015625 0.406250 -0.062500 +v 0.078125 -0.468750 -0.000000 +v 0.015625 -0.468750 -0.000000 +v 0.078125 -0.468750 -0.062500 +v 0.015625 -0.468750 -0.062500 +v -0.171875 -0.468750 -0.062500 +v -0.109375 -0.468750 -0.062500 +v -0.171875 -0.468750 -0.000000 +v -0.109375 -0.468750 0.000000 +v -0.171875 0.406250 -0.062500 +v -0.109375 0.406250 -0.062500 +v -0.171875 0.406250 0.000000 +v -0.109375 0.406250 0.000000 +v 0.296875 -0.468750 -0.062500 +v 0.359375 -0.468750 -0.062500 +v 0.296875 -0.468750 -0.000000 +v 0.359375 -0.468750 -0.000000 +v 0.296875 0.406250 -0.062500 +v 0.359375 0.406250 -0.062500 +v 0.296875 0.406250 -0.000000 +v 0.359375 0.406250 -0.000000 +vt 1.000000 0.515625 +vt 1.000000 0.546875 +vt 0.562500 0.546875 +vt 0.562500 0.515625 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.062500 +vt 0.000000 0.062500 +vt 0.531250 0.031250 +vt 0.531250 0.000000 +vt 0.562500 0.000000 +vt 0.562500 0.031250 +vt 0.000000 0.187500 +vt 0.500000 0.187500 +vt 0.500000 0.250000 +vt 0.000000 0.250000 +vt 0.000000 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.562500 +vt 0.000000 0.562500 +vt 0.562500 0.093750 +vt 1.000000 0.093750 +vt 1.000000 0.125000 +vt 0.562500 0.125000 +vt 0.562500 0.406250 +vt 1.000000 0.406250 +vt 1.000000 0.437500 +vt 0.562500 0.437500 +vt 0.531250 0.343750 +vt 0.531250 0.312500 +vt 0.562500 0.312500 +vt 0.562500 0.343750 +vt 1.000000 0.312500 +vt 1.000000 0.343750 +vt 0.000000 0.312500 +vt 0.500000 0.312500 +vt 0.500000 0.375000 +vt 0.000000 0.375000 +vt 0.000000 0.437500 +vt 0.500000 0.437500 +vt 1.000000 0.375000 +vt 0.562500 0.375000 +vt 1.000000 0.937500 +vt 1.000000 0.968750 +vt 0.562500 0.968750 +vt 0.562500 0.937500 +vt 1.000000 0.234375 +vt 1.000000 0.265625 +vt 0.562500 0.265625 +vt 0.562500 0.234375 +vt 1.000000 0.796875 +vt 1.000000 0.828125 +vt 0.562500 0.828125 +vt 0.562500 0.796875 +vt 0.562500 0.765625 +vt 1.000000 0.765625 +vt 0.562500 0.734375 +vt 1.000000 0.734375 +vt 0.531250 0.765625 +vt 0.531250 0.734375 +vt 1.000000 0.859375 +vt 0.562500 0.859375 +vt 0.500000 0.125000 +vt 0.000000 0.125000 +vt 0.562500 0.000000 +vt 0.562500 0.062500 +vt 0.312500 0.593750 +vt 0.312500 0.625000 +vt 0.000000 0.625000 +vt 0.000000 0.593750 +vt 0.312500 0.718750 +vt 0.000000 0.718750 +vt 0.000000 0.687500 +vt 0.312500 0.687500 +vt 0.000000 0.656250 +vt 0.312500 0.656250 +vt 0.562500 0.312500 +vt 0.562500 0.375000 +vt 0.562500 0.687500 +vt 1.000000 0.687500 +vt 1.000000 0.718750 +vt 0.562500 0.718750 +vt 0.531250 0.625000 +vt 0.531250 0.593750 +vt 0.562500 0.593750 +vt 0.562500 0.625000 +vt 1.000000 0.593750 +vt 1.000000 0.625000 +vt 1.000000 0.656250 +vt 0.562500 0.656250 +vt 0.312500 0.812500 +vt 0.000000 0.812500 +vt 0.000000 0.781250 +vt 0.312500 0.781250 +vt 0.312500 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.718750 +vt 0.312500 0.718750 +vt 0.000000 0.843750 +vt 0.312500 0.843750 +vt 0.562500 0.203125 +vt 1.000000 0.203125 +vt 0.562500 0.171875 +vt 1.000000 0.171875 +vt 0.531250 0.203125 +vt 0.531250 0.171875 +vt 1.000000 0.296875 +vt 0.562500 0.296875 +vt 0.468750 0.937500 +vt 0.468750 0.968750 +vt 0.031250 0.968750 +vt 0.031250 0.937500 +vt 0.031250 0.906250 +vt 0.468750 0.906250 +vt 0.031250 0.875000 +vt 0.468750 0.875000 +vt 0.000000 0.906250 +vt 0.000000 0.875000 +vt 0.468750 1.000000 +vt 0.031250 1.000000 +vt 1.000000 0.578125 +vt 0.562500 0.578125 +vt 0.531250 0.484375 +vt 0.531250 0.453125 +vt 0.562500 0.453125 +vt 0.562500 0.484375 +vt 1.000000 1.000000 +vt 0.562500 1.000000 +vt 0.531250 0.906250 +vt 0.531250 0.875000 +vt 0.562500 0.875000 +vt 0.562500 0.906250 +vt 1.000000 0.875000 +vt 1.000000 0.906250 +vt 1.000000 0.062500 +vt 0.562500 0.062500 +vt 1.000000 0.031250 +vt 1.000000 0.000000 +vt 1.000000 0.484375 +vt 1.000000 0.453125 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn -0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 83/1/1 84/2/1 88/3/1 87/4/1 +f 15/5/2 16/6/2 14/7/2 13/8/2 +f 2/9/3 1/10/3 3/11/3 4/12/3 +f 11/13/4 12/14/4 16/15/4 15/16/4 +f 38/17/5 37/18/5 33/19/5 34/20/5 +f 1/21/2 5/22/2 7/23/2 3/24/2 +f 24/25/2 20/26/2 18/27/2 22/28/2 +f 23/29/3 24/30/3 22/31/3 21/32/3 +f 21/32/4 22/31/4 18/33/4 17/34/4 +f 34/35/4 33/36/4 35/37/4 36/38/4 +f 40/39/1 39/40/1 37/18/1 38/17/1 +f 19/41/5 23/42/5 21/32/5 17/34/5 +f 19/41/1 20/26/1 24/25/1 23/42/1 +f 91/43/1 92/44/1 96/45/1 95/46/1 +f 70/47/1 69/48/1 65/49/1 66/50/1 +f 30/51/1 29/52/1 25/53/1 26/54/1 +f 30/51/5 26/54/5 28/55/5 32/56/5 +f 28/55/4 27/57/4 31/58/4 32/56/4 +f 26/59/3 25/60/3 27/57/3 28/55/3 +f 25/53/2 29/52/2 31/61/2 27/62/2 +f 13/8/1 14/7/1 10/63/1 9/64/1 +f 16/6/3 12/65/3 10/66/3 14/7/3 +f 9/64/5 10/63/5 12/14/5 11/13/5 +f 46/67/1 45/68/1 41/69/1 42/70/1 +f 46/71/6 42/72/6 44/73/6 48/74/6 +f 44/73/4 43/75/4 47/76/4 48/74/4 +f 33/36/3 37/77/3 39/78/3 35/37/3 +f 41/69/3 45/68/3 47/76/3 43/75/3 +f 56/79/2 52/80/2 50/81/2 54/82/2 +f 55/83/3 56/84/3 54/85/3 53/86/3 +f 53/86/4 54/85/4 50/87/4 49/88/4 +f 51/89/5 55/90/5 53/86/5 49/88/5 +f 51/89/1 52/80/1 56/79/1 55/90/1 +f 64/91/3 57/92/3 59/93/3 62/94/3 +f 36/38/2 35/37/2 39/40/2 40/39/2 +f 61/95/4 62/94/4 59/93/4 60/96/4 +f 58/97/6 63/98/6 61/95/6 60/96/6 +f 58/99/1 57/92/1 64/91/1 63/100/1 +f 70/47/5 66/50/5 68/101/5 72/102/5 +f 68/101/4 67/103/4 71/104/4 72/102/4 +f 66/105/3 65/106/3 67/103/3 68/101/3 +f 65/49/2 69/48/2 71/107/2 67/108/2 +f 78/109/1 77/110/1 73/111/1 74/112/1 +f 78/109/5 74/112/5 76/113/5 80/114/5 +f 76/113/4 75/115/4 79/116/4 80/114/4 +f 74/117/3 73/118/3 75/115/3 76/113/3 +f 73/111/2 77/110/2 79/119/2 75/120/2 +f 88/3/2 84/2/2 82/121/2 86/122/2 +f 87/123/3 88/124/3 86/125/3 85/126/3 +f 96/45/2 92/44/2 90/127/2 94/128/2 +f 95/129/3 96/130/3 94/131/3 93/132/3 +f 93/132/4 94/131/4 90/133/4 89/134/4 +f 91/43/5 95/46/5 93/132/5 89/134/5 +f 6/135/1 5/22/1 1/21/1 2/136/1 +f 6/135/5 2/136/5 4/12/5 8/137/5 +f 4/12/4 3/11/4 7/138/4 8/137/4 +f 83/1/5 87/4/5 85/126/5 81/139/5 +f 85/126/4 86/125/4 82/140/4 81/139/4 diff --git a/models/furniture_fence_1_b.obj b/models/furniture_fence_1_b.obj new file mode 100644 index 0000000..e85aaf9 --- /dev/null +++ b/models/furniture_fence_1_b.obj @@ -0,0 +1,323 @@ +# Blender v2.82 (sub 7) OBJ File: 'furniture.blend' +# www.blender.org +o Fence_1_b_Cube +v -0.062500 -0.500000 -0.500000 +v -0.062500 0.500000 -0.500000 +v 0.062500 -0.500000 -0.500000 +v 0.062500 0.500000 -0.500000 +v -0.062500 -0.500000 -0.375000 +v -0.062500 0.500000 -0.375000 +v 0.062500 -0.500000 -0.375000 +v 0.062500 0.500000 -0.375000 +v -0.031250 0.250000 -0.375000 +v -0.031250 0.312500 -0.375000 +v 0.031250 0.250000 -0.375000 +v 0.031250 0.312500 -0.375000 +v -0.031250 0.250000 -0.062500 +v -0.031250 0.312500 -0.062500 +v 0.031250 0.250000 -0.062500 +v 0.031250 0.312500 -0.062500 +v -0.500000 -0.500000 0.062500 +v -0.500000 0.500000 0.062500 +v -0.500000 -0.500000 -0.062500 +v -0.500000 0.500000 -0.062500 +v -0.375000 -0.500000 0.062500 +v -0.375000 0.500000 0.062500 +v -0.375000 -0.500000 -0.062500 +v -0.375000 0.500000 -0.062500 +v 0.031250 -0.250000 -0.375000 +v 0.031250 -0.312500 -0.375000 +v -0.031250 -0.250000 -0.375000 +v -0.031250 -0.312500 -0.375000 +v -0.031250 -0.312500 -0.062500 +v -0.031250 -0.250000 -0.062500 +v 0.031250 -0.312500 -0.062500 +v 0.031250 -0.250000 -0.062500 +v -0.187500 0.406250 0.000000 +v -0.250000 0.406250 0.000000 +v -0.187500 0.406250 -0.062500 +v -0.250000 0.406250 -0.062500 +v -0.187500 -0.468750 -0.000000 +v -0.250000 -0.468750 -0.000000 +v -0.187500 -0.468750 -0.062500 +v -0.250000 -0.468750 -0.062500 +v -0.062500 0.500000 -0.062500 +v -0.062500 -0.500000 -0.062500 +v 0.062500 0.500000 -0.062500 +v 0.062500 -0.500000 -0.062500 +v -0.062500 0.500000 0.062500 +v -0.062500 -0.500000 0.062500 +v 0.062500 0.500000 0.062500 +v 0.062500 -0.500000 0.062500 +v -0.375000 0.312500 0.031250 +v -0.375000 0.250000 0.031250 +v -0.375000 0.312500 -0.031250 +v -0.375000 0.250000 -0.031250 +v -0.062500 0.312500 0.031250 +v -0.062500 0.250000 0.031250 +v -0.062500 0.312500 -0.031250 +v -0.062500 0.250000 -0.031250 +v -0.343750 -0.468750 -0.062500 +v -0.281250 -0.468750 -0.062500 +v -0.343750 -0.468750 -0.000000 +v -0.281250 -0.468750 0.000000 +v -0.343750 0.406250 -0.062500 +v -0.281250 0.406250 -0.062500 +v -0.343750 0.406250 0.000000 +v -0.281250 0.406250 0.000000 +v -0.062500 -0.250000 0.031250 +v -0.062500 -0.312500 0.031250 +v -0.062500 -0.250000 -0.031250 +v -0.062500 -0.312500 -0.031250 +v -0.375000 -0.312500 -0.031250 +v -0.375000 -0.250000 -0.031250 +v -0.375000 -0.312500 0.031250 +v -0.375000 -0.250000 0.031250 +v -0.093750 0.406250 0.000000 +v -0.156250 0.406250 0.000000 +v -0.093750 0.406250 -0.062500 +v -0.156250 0.406250 -0.062500 +v -0.093750 -0.468750 -0.000000 +v -0.156250 -0.468750 -0.000000 +v -0.093750 -0.468750 -0.062500 +v -0.156250 -0.468750 -0.062500 +v -0.062500 0.406250 -0.187500 +v -0.062500 0.406250 -0.250000 +v -0.000000 0.406250 -0.187500 +v -0.000000 0.406250 -0.250000 +v -0.062500 -0.468750 -0.187500 +v -0.062500 -0.468750 -0.250000 +v -0.000000 -0.468750 -0.187500 +v -0.000000 -0.468750 -0.250000 +v -0.000000 -0.468750 -0.343750 +v -0.000000 -0.468750 -0.281250 +v -0.062500 -0.468750 -0.343750 +v -0.062500 -0.468750 -0.281250 +v -0.000000 0.406250 -0.343750 +v -0.000000 0.406250 -0.281250 +v -0.062500 0.406250 -0.343750 +v -0.062500 0.406250 -0.281250 +v -0.062500 0.406250 -0.093750 +v -0.062500 0.406250 -0.156250 +v -0.000000 0.406250 -0.093750 +v -0.000000 0.406250 -0.156250 +v -0.062500 -0.468750 -0.093750 +v -0.062500 -0.468750 -0.156250 +v -0.000000 -0.468750 -0.093750 +v -0.000000 -0.468750 -0.156250 +vt 0.000000 0.875000 +vt 0.500000 0.875000 +vt 0.500000 0.937500 +vt 0.000000 0.937500 +vt 0.500000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.750000 +vt 0.500000 0.750000 +vt 0.500000 0.812500 +vt 0.000000 0.812500 +vt 0.000000 0.453125 +vt 0.500000 0.453125 +vt 0.500000 0.515625 +vt 0.000000 0.515625 +vt 0.562500 0.750000 +vt 0.562500 0.812500 +vt 0.859375 0.093750 +vt 0.703125 0.093750 +vt 0.703125 0.062500 +vt 0.859375 0.062500 +vt 0.000000 0.640625 +vt 0.500000 0.640625 +vt 0.500000 0.703125 +vt 0.000000 0.703125 +vt 0.000000 0.187500 +vt 0.500000 0.187500 +vt 0.500000 0.250000 +vt 0.000000 0.250000 +vt 0.859375 0.031250 +vt 0.703125 0.031250 +vt 0.703125 0.000000 +vt 0.859375 0.000000 +vt 0.703125 0.125000 +vt 0.859375 0.125000 +vt 0.500000 0.390625 +vt 0.343750 0.390625 +vt 0.343750 0.359375 +vt 0.500000 0.359375 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.062500 +vt 0.000000 0.062500 +vt 0.000000 0.125000 +vt 0.500000 0.125000 +vt 0.500000 0.328125 +vt 0.343750 0.328125 +vt 0.343750 0.296875 +vt 0.500000 0.296875 +vt 0.343750 0.421875 +vt 0.500000 0.421875 +vt 1.000000 0.937500 +vt 1.000000 0.968750 +vt 0.562500 0.968750 +vt 0.562500 0.937500 +vt 1.000000 0.781250 +vt 1.000000 0.812500 +vt 0.562500 0.812500 +vt 0.562500 0.781250 +vt 0.562500 0.750000 +vt 1.000000 0.750000 +vt 0.562500 0.718750 +vt 1.000000 0.718750 +vt 0.531250 0.750000 +vt 0.531250 0.718750 +vt 1.000000 0.843750 +vt 0.562500 0.843750 +vt 0.500000 0.578125 +vt 0.000000 0.578125 +vt 0.562500 0.453125 +vt 0.562500 0.515625 +vt 0.156250 0.296875 +vt 0.156250 0.328125 +vt 0.000000 0.328125 +vt 0.000000 0.296875 +vt 0.156250 0.421875 +vt 0.000000 0.421875 +vt 0.000000 0.390625 +vt 0.156250 0.390625 +vt 0.000000 0.359375 +vt 0.156250 0.359375 +vt 0.562500 0.000000 +vt 0.562500 0.062500 +vt 0.562500 0.671875 +vt 1.000000 0.671875 +vt 1.000000 0.703125 +vt 0.562500 0.703125 +vt 0.531250 0.609375 +vt 0.531250 0.578125 +vt 0.562500 0.578125 +vt 0.562500 0.609375 +vt 1.000000 0.578125 +vt 1.000000 0.609375 +vt 1.000000 0.640625 +vt 0.562500 0.640625 +vt 0.328125 0.390625 +vt 0.171875 0.390625 +vt 0.171875 0.359375 +vt 0.328125 0.359375 +vt 0.328125 0.328125 +vt 0.171875 0.328125 +vt 0.171875 0.296875 +vt 0.328125 0.296875 +vt 0.171875 0.421875 +vt 0.328125 0.421875 +vt 0.562500 0.906250 +vt 1.000000 0.906250 +vt 0.562500 0.875000 +vt 1.000000 0.875000 +vt 0.531250 0.906250 +vt 0.531250 0.875000 +vt 1.000000 1.000000 +vt 0.562500 1.000000 +vt 1.000000 0.500000 +vt 1.000000 0.531250 +vt 0.562500 0.531250 +vt 0.562500 0.500000 +vt 1.000000 0.359375 +vt 1.000000 0.390625 +vt 0.562500 0.390625 +vt 0.562500 0.359375 +vt 0.562500 0.328125 +vt 1.000000 0.328125 +vt 0.562500 0.296875 +vt 1.000000 0.296875 +vt 0.531250 0.328125 +vt 0.531250 0.296875 +vt 1.000000 0.421875 +vt 0.562500 0.421875 +vt 0.562500 0.234375 +vt 1.000000 0.234375 +vt 1.000000 0.265625 +vt 0.562500 0.265625 +vt 0.531250 0.171875 +vt 0.531250 0.140625 +vt 0.562500 0.140625 +vt 0.562500 0.171875 +vt 1.000000 0.140625 +vt 1.000000 0.171875 +vt 1.000000 0.203125 +vt 0.562500 0.203125 +vt 0.562500 0.468750 +vt 1.000000 0.468750 +vt 0.562500 0.437500 +vt 1.000000 0.437500 +vt 0.531250 0.468750 +vt 0.531250 0.437500 +vt 1.000000 0.562500 +vt 0.562500 0.562500 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 3/4/2 4/3/2 8/5/2 7/6/2 +f 7/7/3 8/8/3 6/9/3 5/10/3 +f 5/10/4 6/9/4 2/2/4 1/1/4 +f 23/11/2 24/12/2 22/13/2 21/14/2 +f 8/8/5 4/15/5 2/16/5 6/9/5 +f 16/17/5 12/18/5 10/19/5 14/20/5 +f 19/21/1 20/22/1 24/23/1 23/24/1 +f 46/25/4 45/26/4 41/27/4 42/28/4 +f 13/29/4 14/20/4 10/19/4 9/30/4 +f 11/31/6 15/32/6 13/29/6 9/30/6 +f 11/33/2 12/18/2 16/17/2 15/34/2 +f 32/35/5 25/36/5 27/37/5 30/38/5 +f 42/39/1 41/40/1 43/41/1 44/42/1 +f 48/43/3 47/44/3 45/26/3 46/25/3 +f 29/45/4 30/38/4 27/37/4 28/46/4 +f 26/47/6 31/48/6 29/45/6 28/46/6 +f 26/49/2 25/36/2 32/35/2 31/50/2 +f 78/51/3 77/52/3 73/53/3 74/54/3 +f 38/55/3 37/56/3 33/57/3 34/58/3 +f 38/55/4 34/58/4 36/59/4 40/60/4 +f 36/59/1 35/61/1 39/62/1 40/60/1 +f 34/63/5 33/64/5 35/61/5 36/59/5 +f 33/57/2 37/56/2 39/65/2 35/66/2 +f 21/14/3 22/13/3 18/67/3 17/68/3 +f 24/12/5 20/69/5 18/70/5 22/13/5 +f 17/68/4 18/67/4 20/22/4 19/21/4 +f 54/71/3 53/72/3 49/73/3 50/74/3 +f 54/75/6 50/76/6 52/77/6 56/78/6 +f 52/77/1 51/79/1 55/80/1 56/78/1 +f 41/40/5 45/81/5 47/82/5 43/41/5 +f 49/73/5 53/72/5 55/80/5 51/79/5 +f 64/83/2 60/84/2 58/85/2 62/86/2 +f 63/87/5 64/88/5 62/89/5 61/90/5 +f 61/90/1 62/89/1 58/91/1 57/92/1 +f 59/93/4 63/94/4 61/90/4 57/92/4 +f 59/93/3 60/84/3 64/83/3 63/94/3 +f 72/95/5 65/96/5 67/97/5 70/98/5 +f 44/42/2 43/41/2 47/44/2 48/43/2 +f 69/99/1 70/98/1 67/97/1 68/100/1 +f 66/101/6 71/102/6 69/99/6 68/100/6 +f 66/103/3 65/96/3 72/95/3 71/104/3 +f 78/51/4 74/54/4 76/105/4 80/106/4 +f 76/105/1 75/107/1 79/108/1 80/106/1 +f 74/109/5 73/110/5 75/107/5 76/105/5 +f 73/53/2 77/52/2 79/111/2 75/112/2 +f 102/113/4 101/114/4 97/115/4 98/116/4 +f 86/117/4 85/118/4 81/119/4 82/120/4 +f 86/117/1 82/120/1 84/121/1 88/122/1 +f 84/121/2 83/123/2 87/124/2 88/122/2 +f 82/125/5 81/126/5 83/123/5 84/121/5 +f 81/119/3 85/118/3 87/127/3 83/128/3 +f 96/129/3 92/130/3 90/131/3 94/132/3 +f 95/133/5 96/134/5 94/135/5 93/136/5 +f 93/136/2 94/135/2 90/137/2 89/138/2 +f 91/139/1 95/140/1 93/136/1 89/138/1 +f 91/139/4 92/130/4 96/129/4 95/140/4 +f 102/113/1 98/116/1 100/141/1 104/142/1 +f 100/141/2 99/143/2 103/144/2 104/142/2 +f 98/145/5 97/146/5 99/143/5 100/141/5 +f 97/115/3 101/114/3 103/147/3 99/148/3 diff --git a/models/furniture_fence_1_c.obj b/models/furniture_fence_1_c.obj new file mode 100644 index 0000000..f8e59f4 --- /dev/null +++ b/models/furniture_fence_1_c.obj @@ -0,0 +1,323 @@ +# Blender v2.82 (sub 7) OBJ File: 'furniture.blend' +# www.blender.org +o Fence_1_c_Cube.021 +v 0.062500 -0.500000 0.500000 +v 0.062500 0.500000 0.500000 +v -0.062500 -0.500000 0.500000 +v -0.062500 0.500000 0.500000 +v 0.062500 -0.500000 0.375000 +v 0.062500 0.500000 0.375000 +v -0.062500 -0.500000 0.375000 +v -0.062500 0.500000 0.375000 +v 0.031250 0.250000 0.375000 +v 0.031250 0.312500 0.375000 +v -0.031250 0.250000 0.375000 +v -0.031250 0.312500 0.375000 +v 0.031250 0.250000 0.062500 +v 0.031250 0.312500 0.062500 +v -0.031250 0.250000 0.062500 +v -0.031250 0.312500 0.062500 +v 0.500000 -0.500000 -0.062500 +v 0.500000 0.500000 -0.062500 +v 0.500000 -0.500000 0.062500 +v 0.500000 0.500000 0.062500 +v 0.375000 -0.500000 -0.062500 +v 0.375000 0.500000 -0.062500 +v 0.375000 -0.500000 0.062500 +v 0.375000 0.500000 0.062500 +v -0.031250 -0.250000 0.375000 +v -0.031250 -0.312500 0.375000 +v 0.031250 -0.250000 0.375000 +v 0.031250 -0.312500 0.375000 +v 0.031250 -0.312500 0.062500 +v 0.031250 -0.250000 0.062500 +v -0.031250 -0.312500 0.062500 +v -0.031250 -0.250000 0.062500 +v 0.187500 0.406250 -0.062500 +v 0.250000 0.406250 -0.062500 +v 0.187500 0.406250 -0.000000 +v 0.250000 0.406250 0.000000 +v 0.187500 -0.468750 -0.062500 +v 0.250000 -0.468750 -0.062500 +v 0.187500 -0.468750 0.000000 +v 0.250000 -0.468750 0.000000 +v 0.062500 0.500000 0.062500 +v 0.062500 -0.500000 0.062500 +v -0.062500 0.500000 0.062500 +v -0.062500 -0.500000 0.062500 +v 0.062500 0.500000 -0.062500 +v 0.062500 -0.500000 -0.062500 +v -0.062500 0.500000 -0.062500 +v -0.062500 -0.500000 -0.062500 +v 0.375000 0.312500 -0.031250 +v 0.375000 0.250000 -0.031250 +v 0.375000 0.312500 0.031250 +v 0.375000 0.250000 0.031250 +v 0.062500 0.312500 -0.031250 +v 0.062500 0.250000 -0.031250 +v 0.062500 0.312500 0.031250 +v 0.062500 0.250000 0.031250 +v 0.343750 -0.468750 0.000000 +v 0.281250 -0.468750 0.000000 +v 0.343750 -0.468750 -0.062500 +v 0.281250 -0.468750 -0.062500 +v 0.343750 0.406250 0.000000 +v 0.281250 0.406250 -0.000000 +v 0.343750 0.406250 -0.062500 +v 0.281250 0.406250 -0.062500 +v 0.062500 -0.250000 -0.031250 +v 0.062500 -0.312500 -0.031250 +v 0.062500 -0.250000 0.031250 +v 0.062500 -0.312500 0.031250 +v 0.375000 -0.312500 0.031250 +v 0.375000 -0.250000 0.031250 +v 0.375000 -0.312500 -0.031250 +v 0.375000 -0.250000 -0.031250 +v 0.093750 0.406250 -0.062500 +v 0.156250 0.406250 -0.062500 +v 0.093750 0.406250 -0.000000 +v 0.156250 0.406250 0.000000 +v 0.093750 -0.468750 -0.062500 +v 0.156250 -0.468750 -0.062500 +v 0.093750 -0.468750 0.000000 +v 0.156250 -0.468750 0.000000 +v -0.000000 0.406250 0.187500 +v -0.000000 0.406250 0.250000 +v -0.062500 0.406250 0.187500 +v -0.062500 0.406250 0.250000 +v -0.000000 -0.468750 0.187500 +v -0.000000 -0.468750 0.250000 +v -0.062500 -0.468750 0.187500 +v -0.062500 -0.468750 0.250000 +v -0.062500 -0.468750 0.343750 +v -0.062500 -0.468750 0.281250 +v -0.000000 -0.468750 0.343750 +v -0.000000 -0.468750 0.281250 +v -0.062500 0.406250 0.343750 +v -0.062500 0.406250 0.281250 +v -0.000000 0.406250 0.343750 +v -0.000000 0.406250 0.281250 +v 0.000000 0.406250 0.093750 +v -0.000000 0.406250 0.156250 +v -0.062500 0.406250 0.093750 +v -0.062500 0.406250 0.156250 +v -0.000000 -0.468750 0.093750 +v -0.000000 -0.468750 0.156250 +v -0.062500 -0.468750 0.093750 +v -0.062500 -0.468750 0.156250 +vt 0.000000 0.875000 +vt 0.500000 0.875000 +vt 0.500000 0.937500 +vt 0.000000 0.937500 +vt 0.500000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.750000 +vt 0.500000 0.750000 +vt 0.500000 0.812500 +vt 0.000000 0.812500 +vt 0.000000 0.468750 +vt 0.500000 0.468750 +vt 0.500000 0.531250 +vt 0.000000 0.531250 +vt 0.562500 0.750000 +vt 0.562500 0.812500 +vt 0.328125 0.390625 +vt 0.171875 0.390625 +vt 0.171875 0.359375 +vt 0.328125 0.359375 +vt 0.000000 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.000000 0.718750 +vt 0.000000 0.187500 +vt 0.500000 0.187500 +vt 0.500000 0.250000 +vt 0.000000 0.250000 +vt 0.328125 0.328125 +vt 0.171875 0.328125 +vt 0.171875 0.296875 +vt 0.328125 0.296875 +vt 0.171875 0.421875 +vt 0.328125 0.421875 +vt 0.812500 0.093750 +vt 0.656250 0.093750 +vt 0.656250 0.062500 +vt 0.812500 0.062500 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.062500 +vt 0.000000 0.062500 +vt 0.000000 0.125000 +vt 0.500000 0.125000 +vt 0.812500 0.031250 +vt 0.656250 0.031250 +vt 0.656250 0.000000 +vt 0.812500 0.000000 +vt 0.656250 0.125000 +vt 0.812500 0.125000 +vt 1.000000 0.937500 +vt 1.000000 0.968750 +vt 0.562500 0.968750 +vt 0.562500 0.937500 +vt 1.000000 0.781250 +vt 1.000000 0.812500 +vt 0.562500 0.812500 +vt 0.562500 0.781250 +vt 0.562500 0.750000 +vt 1.000000 0.750000 +vt 0.562500 0.718750 +vt 1.000000 0.718750 +vt 0.531250 0.750000 +vt 0.531250 0.718750 +vt 1.000000 0.843750 +vt 0.562500 0.843750 +vt 0.500000 0.593750 +vt 0.000000 0.593750 +vt 0.562500 0.468750 +vt 0.562500 0.531250 +vt 0.156250 0.296875 +vt 0.156250 0.328125 +vt 0.000000 0.328125 +vt 0.000000 0.296875 +vt 0.156250 0.421875 +vt 0.000000 0.421875 +vt 0.000000 0.390625 +vt 0.156250 0.390625 +vt 0.000000 0.359375 +vt 0.156250 0.359375 +vt 0.562500 0.000000 +vt 0.562500 0.062500 +vt 0.562500 0.671875 +vt 1.000000 0.671875 +vt 1.000000 0.703125 +vt 0.562500 0.703125 +vt 0.531250 0.609375 +vt 0.531250 0.578125 +vt 0.562500 0.578125 +vt 0.562500 0.609375 +vt 1.000000 0.578125 +vt 1.000000 0.609375 +vt 1.000000 0.640625 +vt 0.562500 0.640625 +vt 0.500000 0.390625 +vt 0.343750 0.390625 +vt 0.343750 0.359375 +vt 0.500000 0.359375 +vt 0.500000 0.328125 +vt 0.343750 0.328125 +vt 0.343750 0.296875 +vt 0.500000 0.296875 +vt 0.343750 0.421875 +vt 0.500000 0.421875 +vt 0.562500 0.906250 +vt 1.000000 0.906250 +vt 0.562500 0.875000 +vt 1.000000 0.875000 +vt 0.531250 0.906250 +vt 0.531250 0.875000 +vt 1.000000 1.000000 +vt 0.562500 1.000000 +vt 1.000000 0.500000 +vt 1.000000 0.531250 +vt 0.562500 0.531250 +vt 0.562500 0.500000 +vt 1.000000 0.359375 +vt 1.000000 0.390625 +vt 0.562500 0.390625 +vt 0.562500 0.359375 +vt 0.562500 0.328125 +vt 1.000000 0.328125 +vt 0.562500 0.296875 +vt 1.000000 0.296875 +vt 0.531250 0.328125 +vt 0.531250 0.296875 +vt 1.000000 0.421875 +vt 0.562500 0.421875 +vt 0.562500 0.234375 +vt 1.000000 0.234375 +vt 1.000000 0.265625 +vt 0.562500 0.265625 +vt 0.531250 0.171875 +vt 0.531250 0.140625 +vt 0.562500 0.140625 +vt 0.562500 0.171875 +vt 1.000000 0.140625 +vt 1.000000 0.171875 +vt 1.000000 0.203125 +vt 0.562500 0.203125 +vt 0.562500 0.468750 +vt 1.000000 0.468750 +vt 0.562500 0.437500 +vt 1.000000 0.437500 +vt 0.531250 0.468750 +vt 0.531250 0.437500 +vt 1.000000 0.562500 +vt 0.562500 0.562500 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 3/4/2 4/3/2 8/5/2 7/6/2 +f 7/7/3 8/8/3 6/9/3 5/10/3 +f 5/10/4 6/9/4 2/2/4 1/1/4 +f 23/11/2 24/12/2 22/13/2 21/14/2 +f 8/8/5 4/15/5 2/16/5 6/9/5 +f 16/17/5 12/18/5 10/19/5 14/20/5 +f 19/21/1 20/22/1 24/23/1 23/24/1 +f 46/25/4 45/26/4 41/27/4 42/28/4 +f 13/29/4 14/20/4 10/19/4 9/30/4 +f 11/31/6 15/32/6 13/29/6 9/30/6 +f 11/33/2 12/18/2 16/17/2 15/34/2 +f 32/35/5 25/36/5 27/37/5 30/38/5 +f 42/39/1 41/40/1 43/41/1 44/42/1 +f 48/43/3 47/44/3 45/26/3 46/25/3 +f 29/45/4 30/38/4 27/37/4 28/46/4 +f 26/47/6 31/48/6 29/45/6 28/46/6 +f 26/49/2 25/36/2 32/35/2 31/50/2 +f 78/51/3 77/52/3 73/53/3 74/54/3 +f 38/55/3 37/56/3 33/57/3 34/58/3 +f 38/55/4 34/58/4 36/59/4 40/60/4 +f 36/59/1 35/61/1 39/62/1 40/60/1 +f 34/63/5 33/64/5 35/61/5 36/59/5 +f 33/57/2 37/56/2 39/65/2 35/66/2 +f 21/14/3 22/13/3 18/67/3 17/68/3 +f 24/12/5 20/69/5 18/70/5 22/13/5 +f 17/68/4 18/67/4 20/22/4 19/21/4 +f 54/71/3 53/72/3 49/73/3 50/74/3 +f 54/75/6 50/76/6 52/77/6 56/78/6 +f 52/77/1 51/79/1 55/80/1 56/78/1 +f 41/40/5 45/81/5 47/82/5 43/41/5 +f 49/73/5 53/72/5 55/80/5 51/79/5 +f 64/83/2 60/84/2 58/85/2 62/86/2 +f 63/87/5 64/88/5 62/89/5 61/90/5 +f 61/90/1 62/89/1 58/91/1 57/92/1 +f 59/93/4 63/94/4 61/90/4 57/92/4 +f 59/93/3 60/84/3 64/83/3 63/94/3 +f 72/95/5 65/96/5 67/97/5 70/98/5 +f 44/42/2 43/41/2 47/44/2 48/43/2 +f 69/99/1 70/98/1 67/97/1 68/100/1 +f 66/101/6 71/102/6 69/99/6 68/100/6 +f 66/103/3 65/96/3 72/95/3 71/104/3 +f 78/51/4 74/54/4 76/105/4 80/106/4 +f 76/105/1 75/107/1 79/108/1 80/106/1 +f 74/109/5 73/110/5 75/107/5 76/105/5 +f 73/53/2 77/52/2 79/111/2 75/112/2 +f 102/113/4 101/114/4 97/115/4 98/116/4 +f 86/117/4 85/118/4 81/119/4 82/120/4 +f 86/117/1 82/120/1 84/121/1 88/122/1 +f 84/121/2 83/123/2 87/124/2 88/122/2 +f 82/125/5 81/126/5 83/123/5 84/121/5 +f 81/119/3 85/118/3 87/127/3 83/128/3 +f 96/129/3 92/130/3 90/131/3 94/132/3 +f 95/133/5 96/134/5 94/135/5 93/136/5 +f 93/136/2 94/135/2 90/137/2 89/138/2 +f 91/139/1 95/140/1 93/136/1 89/138/1 +f 91/139/4 92/130/4 96/129/4 95/140/4 +f 102/113/1 98/116/1 100/141/1 104/142/1 +f 100/141/2 99/143/2 103/144/2 104/142/2 +f 98/145/5 97/146/5 99/143/5 100/141/5 +f 97/115/3 101/114/3 103/147/3 99/148/3 diff --git a/models/furniture_fence_1_d.obj b/models/furniture_fence_1_d.obj new file mode 100644 index 0000000..078aa32 --- /dev/null +++ b/models/furniture_fence_1_d.obj @@ -0,0 +1,321 @@ +# Blender v2.82 (sub 7) OBJ File: 'furniture.blend' +# www.blender.org +o Fence_1_d_Cube.023 +v 0.343750 0.406250 0.203125 +v 0.343750 0.406250 0.265625 +v 0.281250 0.406250 0.203125 +v 0.281250 0.406250 0.265625 +v 0.343750 -0.468750 0.203125 +v 0.343750 -0.468750 0.265625 +v 0.281250 -0.468750 0.203125 +v 0.281250 -0.468750 0.265625 +v -0.500000 -0.500000 0.062500 +v -0.500000 0.500000 0.062500 +v -0.500000 -0.500000 -0.062500 +v -0.500000 0.500000 -0.062500 +v -0.375000 -0.500000 0.062500 +v -0.375000 0.500000 0.062500 +v -0.375000 -0.500000 -0.062500 +v -0.375000 0.500000 -0.062500 +v 0.281250 -0.468750 0.171875 +v 0.281250 -0.468750 0.109375 +v 0.343750 -0.468750 0.171875 +v 0.343750 -0.468750 0.109375 +v 0.281250 0.406250 0.171875 +v 0.281250 0.406250 0.109375 +v 0.343750 0.406250 0.171875 +v 0.343750 0.406250 0.109375 +v 0.343750 0.406250 0.578125 +v 0.343750 0.406250 0.640625 +v 0.281250 0.406250 0.578125 +v 0.281250 0.406250 0.640625 +v 0.343750 -0.468750 0.578125 +v 0.343750 -0.468750 0.640625 +v 0.281250 -0.468750 0.578125 +v 0.281250 -0.468750 0.640625 +v 0.375000 0.500000 -0.062500 +v 0.375000 -0.500000 -0.062500 +v 0.500000 0.500000 -0.062500 +v 0.500000 -0.500000 -0.062500 +v 0.375000 0.500000 0.062500 +v 0.375000 -0.500000 0.062500 +v 0.500000 0.500000 0.062500 +v 0.500000 -0.500000 0.062500 +v 0.375000 0.312500 0.750000 +v 0.375000 0.250000 0.750000 +v 0.312500 0.312500 0.750000 +v 0.312500 0.250000 0.750000 +v 0.375000 0.312500 -0.000000 +v 0.375000 0.250000 -0.000000 +v 0.312500 0.312500 -0.000000 +v 0.312500 0.250000 -0.000000 +v 0.281250 -0.468750 0.734375 +v 0.281250 -0.468750 0.671875 +v 0.343750 -0.468750 0.734375 +v 0.343750 -0.468750 0.671875 +v 0.281250 0.406250 0.734375 +v 0.281250 0.406250 0.671875 +v 0.343750 0.406250 0.734375 +v 0.343750 0.406250 0.671875 +v 0.375000 -0.250000 -0.000000 +v 0.375000 -0.312500 -0.000000 +v 0.312500 -0.250000 -0.000000 +v 0.312500 -0.312500 -0.000000 +v 0.312500 -0.312500 0.750000 +v 0.312500 -0.250000 0.750000 +v 0.375000 -0.312500 0.750000 +v 0.375000 -0.250000 0.750000 +v 0.343750 0.406250 0.390625 +v 0.343750 0.406250 0.453125 +v 0.281250 0.406250 0.390625 +v 0.281250 0.406250 0.453125 +v 0.343750 -0.468750 0.390625 +v 0.343750 -0.468750 0.453125 +v 0.281250 -0.468750 0.390625 +v 0.281250 -0.468750 0.453125 +v 0.343750 0.406250 0.296875 +v 0.343750 0.406250 0.359375 +v 0.281250 0.406250 0.296875 +v 0.281250 0.406250 0.359375 +v 0.343750 -0.468750 0.296875 +v 0.343750 -0.468750 0.359375 +v 0.281250 -0.468750 0.296875 +v 0.281250 -0.468750 0.359375 +v 0.281250 -0.468750 0.546875 +v 0.281250 -0.468750 0.484375 +v 0.343750 -0.468750 0.546875 +v 0.343750 -0.468750 0.484375 +v 0.281250 0.406250 0.546875 +v 0.281250 0.406250 0.484375 +v 0.343750 0.406250 0.546875 +v 0.343750 0.406250 0.484375 +v 0.281250 -0.468750 0.078125 +v 0.281250 -0.468750 0.015625 +v 0.343750 -0.468750 0.078125 +v 0.343750 -0.468750 0.015625 +v 0.281250 0.406250 0.078125 +v 0.281250 0.406250 0.015625 +v 0.343750 0.406250 0.078125 +v 0.343750 0.406250 0.015625 +vt 1.000000 0.515625 +vt 1.000000 0.546875 +vt 0.562500 0.546875 +vt 0.562500 0.515625 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.062500 +vt 0.000000 0.062500 +vt 0.531250 0.031250 +vt 0.531250 0.000000 +vt 0.562500 0.000000 +vt 0.562500 0.031250 +vt 0.000000 0.187500 +vt 0.500000 0.187500 +vt 0.500000 0.250000 +vt 0.000000 0.250000 +vt 0.000000 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.562500 +vt 0.000000 0.562500 +vt 0.562500 0.093750 +vt 1.000000 0.093750 +vt 1.000000 0.125000 +vt 0.562500 0.125000 +vt 0.562500 0.406250 +vt 1.000000 0.406250 +vt 1.000000 0.437500 +vt 0.562500 0.437500 +vt 0.531250 0.343750 +vt 0.531250 0.312500 +vt 0.562500 0.312500 +vt 0.562500 0.343750 +vt 1.000000 0.312500 +vt 1.000000 0.343750 +vt 0.000000 0.312500 +vt 0.500000 0.312500 +vt 0.500000 0.375000 +vt 0.000000 0.375000 +vt 0.000000 0.437500 +vt 0.500000 0.437500 +vt 1.000000 0.375000 +vt 0.562500 0.375000 +vt 1.000000 0.937500 +vt 1.000000 0.968750 +vt 0.562500 0.968750 +vt 0.562500 0.937500 +vt 1.000000 0.234375 +vt 1.000000 0.265625 +vt 0.562500 0.265625 +vt 0.562500 0.234375 +vt 1.000000 0.796875 +vt 1.000000 0.828125 +vt 0.562500 0.828125 +vt 0.562500 0.796875 +vt 0.562500 0.765625 +vt 1.000000 0.765625 +vt 0.562500 0.734375 +vt 1.000000 0.734375 +vt 0.531250 0.765625 +vt 0.531250 0.734375 +vt 1.000000 0.859375 +vt 0.562500 0.859375 +vt 0.500000 0.125000 +vt 0.000000 0.125000 +vt 0.562500 0.000000 +vt 0.562500 0.062500 +vt 0.312500 0.593750 +vt 0.312500 0.625000 +vt 0.000000 0.625000 +vt 0.000000 0.593750 +vt 0.312500 0.718750 +vt 0.000000 0.718750 +vt 0.000000 0.687500 +vt 0.312500 0.687500 +vt 0.000000 0.656250 +vt 0.312500 0.656250 +vt 0.562500 0.312500 +vt 0.562500 0.375000 +vt 0.562500 0.687500 +vt 1.000000 0.687500 +vt 1.000000 0.718750 +vt 0.562500 0.718750 +vt 0.531250 0.625000 +vt 0.531250 0.593750 +vt 0.562500 0.593750 +vt 0.562500 0.625000 +vt 1.000000 0.593750 +vt 1.000000 0.625000 +vt 1.000000 0.656250 +vt 0.562500 0.656250 +vt 0.312500 0.812500 +vt 0.000000 0.812500 +vt 0.000000 0.781250 +vt 0.312500 0.781250 +vt 0.312500 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.718750 +vt 0.312500 0.718750 +vt 0.000000 0.843750 +vt 0.312500 0.843750 +vt 0.562500 0.203125 +vt 1.000000 0.203125 +vt 0.562500 0.171875 +vt 1.000000 0.171875 +vt 0.531250 0.203125 +vt 0.531250 0.171875 +vt 1.000000 0.296875 +vt 0.562500 0.296875 +vt 0.468750 0.937500 +vt 0.468750 0.968750 +vt 0.031250 0.968750 +vt 0.031250 0.937500 +vt 0.031250 0.906250 +vt 0.468750 0.906250 +vt 0.031250 0.875000 +vt 0.468750 0.875000 +vt 0.000000 0.906250 +vt 0.000000 0.875000 +vt 0.468750 1.000000 +vt 0.031250 1.000000 +vt 1.000000 0.578125 +vt 0.562500 0.578125 +vt 0.531250 0.484375 +vt 0.531250 0.453125 +vt 0.562500 0.453125 +vt 0.562500 0.484375 +vt 1.000000 1.000000 +vt 0.562500 1.000000 +vt 0.531250 0.906250 +vt 0.531250 0.875000 +vt 0.562500 0.875000 +vt 0.562500 0.906250 +vt 1.000000 0.875000 +vt 1.000000 0.906250 +vt 1.000000 0.062500 +vt 0.562500 0.062500 +vt 1.000000 0.031250 +vt 1.000000 0.000000 +vt 1.000000 0.484375 +vt 1.000000 0.453125 +vt 0.281250 0.687500 +vt 0.312500 0.687500 +vt 0.281250 0.718750 +vt 0.000000 0.812500 +vt 0.031250 0.812500 +vt 0.031250 0.843750 +vt 0.031250 0.687500 +vt 0.000000 0.687500 +vt 0.000000 0.656250 +vt 0.031250 0.656250 +vt 0.281250 0.781250 +vt 0.281250 0.750000 +vt 0.312500 0.781250 +vn 1.0000 0.0000 -0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 83/1/1 84/2/1 88/3/1 87/4/1 +f 15/5/1 16/6/1 14/7/1 13/8/1 +f 2/9/2 1/10/2 3/11/2 4/12/2 +f 11/13/3 12/14/3 16/15/3 15/16/3 +f 38/17/4 37/18/4 33/19/4 34/20/4 +f 1/21/3 5/22/3 7/23/3 3/24/3 +f 24/25/3 20/26/3 18/27/3 22/28/3 +f 23/29/2 24/30/2 22/31/2 21/32/2 +f 21/32/4 22/31/4 18/33/4 17/34/4 +f 34/35/3 33/36/3 35/37/3 36/38/3 +f 40/39/5 39/40/5 37/18/5 38/17/5 +f 19/41/5 23/42/5 21/32/5 17/34/5 +f 19/41/1 20/26/1 24/25/1 23/42/1 +f 91/43/1 92/44/1 96/45/1 95/46/1 +f 70/47/1 69/48/1 65/49/1 66/50/1 +f 30/51/1 29/52/1 25/53/1 26/54/1 +f 30/51/5 26/54/5 28/55/5 32/56/5 +f 28/55/4 27/57/4 31/58/4 32/56/4 +f 26/59/2 25/60/2 27/57/2 28/55/2 +f 25/53/3 29/52/3 31/61/3 27/62/3 +f 13/8/5 14/7/5 10/63/5 9/64/5 +f 16/6/2 12/65/2 10/66/2 14/7/2 +f 9/64/4 10/63/4 12/14/4 11/13/4 +f 46/67/1 45/68/1 41/69/1 42/70/1 +f 46/71/6 42/72/6 44/73/6 48/74/6 +f 44/73/4 43/75/4 47/76/4 48/74/4 +f 33/36/2 37/77/2 39/78/2 35/37/2 +f 41/69/2 45/68/2 47/76/2 43/75/2 +f 56/79/3 52/80/3 50/81/3 54/82/3 +f 55/83/2 56/84/2 54/85/2 53/86/2 +f 53/86/4 54/85/4 50/87/4 49/88/4 +f 51/89/5 55/90/5 53/86/5 49/88/5 +f 51/89/1 52/80/1 56/79/1 55/90/1 +f 64/91/2 57/92/2 59/93/2 62/94/2 +f 36/38/1 35/37/1 39/40/1 40/39/1 +f 61/95/4 62/94/4 59/93/4 60/96/4 +f 58/97/6 63/98/6 61/95/6 60/96/6 +f 58/99/1 57/92/1 64/91/1 63/100/1 +f 70/47/5 66/50/5 68/101/5 72/102/5 +f 68/101/4 67/103/4 71/104/4 72/102/4 +f 66/105/2 65/106/2 67/103/2 68/101/2 +f 65/49/3 69/48/3 71/107/3 67/108/3 +f 78/109/1 77/110/1 73/111/1 74/112/1 +f 78/109/5 74/112/5 76/113/5 80/114/5 +f 76/113/4 75/115/4 79/116/4 80/114/4 +f 74/117/2 73/118/2 75/115/2 76/113/2 +f 73/111/3 77/110/3 79/119/3 75/120/3 +f 88/3/3 84/2/3 82/121/3 86/122/3 +f 87/123/2 88/124/2 86/125/2 85/126/2 +f 96/45/3 92/44/3 90/127/3 94/128/3 +f 95/129/2 96/130/2 94/131/2 93/132/2 +f 93/132/4 94/131/4 90/133/4 89/134/4 +f 91/43/5 95/46/5 93/132/5 89/134/5 +f 6/135/1 5/22/1 1/21/1 2/136/1 +f 6/135/5 2/136/5 4/12/5 8/137/5 +f 4/12/4 3/11/4 7/138/4 8/137/4 +f 83/1/5 87/4/5 85/126/5 81/139/5 +f 85/126/4 86/125/4 82/140/4 81/139/4 +f 47/141/3 45/142/3 46/71/3 48/143/3 +f 58/99/3 60/144/3 59/145/3 57/146/3 +f 44/147/5 42/148/5 41/149/5 43/150/5 +f 64/151/5 62/152/5 61/95/5 63/153/5 diff --git a/models/furniture_lantern.obj b/models/furniture_lantern.obj new file mode 100644 index 0000000..c9e69c4 --- /dev/null +++ b/models/furniture_lantern.obj @@ -0,0 +1,141 @@ +# Blender v2.82 (sub 7) OBJ File: 'furniture.blend' +# www.blender.org +o Lantern_Cube.024 +v -0.250000 0.000000 0.250000 +v -0.250000 0.062500 0.250000 +v -0.250000 0.000000 -0.250000 +v -0.250000 0.062500 -0.250000 +v 0.250000 0.000000 0.250000 +v 0.250000 0.062500 0.250000 +v 0.250000 0.000000 -0.250000 +v 0.250000 0.062500 -0.250000 +v -0.250000 0.437500 0.250000 +v -0.250000 0.500000 0.250000 +v -0.250000 0.437500 -0.250000 +v -0.250000 0.500000 -0.250000 +v 0.250000 0.437500 0.250000 +v 0.250000 0.500000 0.250000 +v 0.250000 0.437500 -0.250000 +v 0.250000 0.500000 -0.250000 +v -0.187500 0.437500 -0.125000 +v -0.187500 0.437500 0.125000 +v 0.187500 0.062500 -0.125000 +v 0.187500 0.062500 0.125000 +v 0.187500 0.437500 0.125000 +v 0.187500 0.437500 -0.125000 +v 0.187500 0.437500 -0.187500 +v 0.187500 0.062500 -0.187500 +v 0.187500 0.437500 0.187500 +v 0.187500 0.062500 0.187500 +v -0.187500 0.437500 -0.187500 +v -0.187500 0.062500 -0.187500 +v -0.187500 0.437500 0.187500 +v -0.187500 0.062500 0.125000 +v -0.187500 0.062500 0.187500 +v -0.187500 0.062500 -0.125000 +v 0.125000 0.437500 0.187500 +v -0.125000 0.437500 0.187500 +v -0.125000 0.062500 0.187500 +v 0.125000 0.062500 0.187500 +v -0.125000 0.437500 -0.187500 +v 0.125000 0.437500 -0.187500 +v 0.125000 0.062500 -0.187500 +v -0.125000 0.062500 -0.187500 +v -0.125000 0.062500 0.125000 +v -0.125000 0.437500 0.125000 +v -0.125000 0.062500 -0.125000 +v -0.125000 0.437500 -0.125000 +v 0.125000 0.062500 0.125000 +v 0.125000 0.437500 0.125000 +v 0.125000 0.062500 -0.125000 +v 0.125000 0.437500 -0.125000 +vt 0.968750 0.437500 +vt 0.968750 0.468750 +vt 0.718750 0.468750 +vt 0.718750 0.437500 +vt 0.687500 0.468750 +vt 0.718750 0.718750 +vt 0.687500 0.718750 +vt 0.718750 0.750000 +vt 0.968750 0.718750 +vt 0.968750 0.750000 +vt 1.000000 0.718750 +vt 1.000000 0.468750 +vt 0.718750 1.000000 +vt 0.968750 1.000000 +vt 0.968750 0.031250 +vt 1.000000 0.031250 +vt 1.000000 0.281250 +vt 0.968750 0.281250 +vt 0.968750 0.312500 +vt 0.718750 0.312500 +vt 0.718750 0.281250 +vt 0.687500 0.281250 +vt 0.687500 0.031250 +vt 0.718750 0.031250 +vt 0.718750 0.000000 +vt 0.968750 0.000000 +vt 0.000000 0.937500 +vt 0.187500 0.937500 +vt 0.187500 0.968750 +vt 0.000000 0.968750 +vt 0.000000 0.859375 +vt 0.187500 0.859375 +vt 0.187500 0.890625 +vt 0.000000 0.890625 +vt 0.000000 0.781250 +vt 0.187500 0.781250 +vt 0.187500 0.812500 +vt 0.000000 0.812500 +vt 0.000000 0.703125 +vt 0.187500 0.703125 +vt 0.187500 0.734375 +vt 0.000000 0.734375 +vt 0.187500 1.000000 +vt 0.000000 1.000000 +vt 0.187500 0.921875 +vt 0.000000 0.921875 +vt 0.187500 0.765625 +vt 0.000000 0.765625 +vt 0.187500 0.843750 +vt 0.000000 0.843750 +vt 0.500000 -0.000000 +vt 0.500000 0.187500 +vt 0.375000 0.187500 +vt 0.375000 0.000000 +vt 0.250000 0.187500 +vt 0.250000 0.000000 +vt 0.125000 0.187500 +vt 0.125000 0.000000 +vt 0.000000 0.187500 +vt 0.000000 0.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 3/5/2 4/3/2 8/6/2 7/7/2 +f 7/8/3 8/6/3 6/9/3 5/10/3 +f 5/11/4 6/9/4 2/2/4 1/12/4 +f 3/13/5 7/8/5 5/10/5 1/14/5 +f 8/6/6 4/3/6 2/2/6 6/9/6 +f 9/15/1 10/16/1 12/17/1 11/18/1 +f 11/18/2 12/19/2 16/20/2 15/21/2 +f 15/21/3 16/22/3 14/23/3 13/24/3 +f 13/24/4 14/25/4 10/26/4 9/15/4 +f 11/18/5 15/21/5 13/24/5 9/15/5 +f 35/27/4 34/28/4 29/29/4 31/30/4 +f 39/31/2 38/32/2 23/33/2 24/34/2 +f 20/35/3 21/36/3 25/37/3 26/38/3 +f 32/39/1 17/40/1 27/41/1 28/42/1 +f 31/30/1 29/29/1 18/43/1 30/44/1 +f 24/34/3 23/33/3 22/45/3 19/46/3 +f 28/42/2 27/41/2 37/47/2 40/48/2 +f 26/38/4 25/37/4 33/49/4 36/50/4 +f 41/51/1 42/52/1 44/53/1 43/54/1 +f 43/54/2 44/53/2 48/55/2 47/56/2 +f 47/56/3 48/55/3 46/57/3 45/58/3 +f 45/58/4 46/57/4 42/59/4 41/60/4 diff --git a/seating.lua b/seating.lua index 0f18847..f878b51 100644 --- a/seating.lua +++ b/seating.lua @@ -1,4 +1,5 @@ minetest.register_node('furniture:stool_short', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Short stool', drawtype = 'mesh', mesh = 'furniture_stool_short.obj', @@ -23,6 +24,7 @@ minetest.register_node('furniture:stool_short', { }) minetest.register_node('furniture:stool_tall', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Tall stool', drawtype = 'mesh', mesh = 'furniture_stool_tall.obj', @@ -47,6 +49,7 @@ minetest.register_node('furniture:stool_tall', { }) minetest.register_node('furniture:chair', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Chair', drawtype = 'mesh', mesh = 'furniture_chair.obj', @@ -71,6 +74,7 @@ minetest.register_node('furniture:chair', { }) minetest.register_node('furniture:bench', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Bench', drawtype = 'mesh', mesh = 'furniture_bench.obj', @@ -107,6 +111,7 @@ minetest.register_node('furniture:bench', { }) minetest.register_node('furniture:bench_with_back', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Bench with Back', drawtype = 'mesh', mesh = 'furniture_bench_with_back.obj', @@ -144,6 +149,45 @@ minetest.register_node('furniture:bench_with_back', { end, }) +minetest.register_node('furniture:bench_picnic', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', + description = 'Picnic Table', + drawtype = 'mesh', + mesh = 'furniture_bench_picnic.obj', + tiles = {'furniture_bench_picnic.png'}, + paramtype = 'light', + paramtype2 = 'colorfacedir', + palette = 'furniture_stain_palette.png', + selection_box = { + type = 'fixed', + fixed = {{-.375, -.5, -.375, 1.375, 0, .45}, + {-.375, 0, .275, 1.375, .5, .375}} + }, + collision_box = { + type = 'fixed', + fixed = {{-.375, -.5, -.375, 1.375, 0, .45}, + {-.375, 0, .275, 1.375, .5, .375}} + }, + groups = {oddly_breakable_by_hand = 2, choppy=3, stainable=1}, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + pos.y = pos.y + 0 + furniture.sit(pos, node, clicker, pointed_thing, true) + return itemstack + end, + after_place_node = function(pos, placer, itemstack) + if not epic.space_to_side(pos) then + minetest.remove_node(pos) + return itemstack + end + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + epic.remove_side_node(pos, oldnode) + end, + on_rotate = function(pos, node) + return false + end, +}) + ---Cushioned items. Yay. :P local dye_table = dye.dyes @@ -153,6 +197,7 @@ for i in ipairs(dye_table) do local hex = dye_table[i][3] minetest.register_node('furniture:stool_short_'..name, { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Short Stool with '..desc..' Cushion', drawtype = 'mesh', mesh = 'furniture_stool_short_cushion.obj', @@ -178,6 +223,7 @@ for i in ipairs(dye_table) do }) minetest.register_node('furniture:stool_tall_'..name, { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Tall Stool with '..desc..' Cushion', drawtype = 'mesh', mesh = 'furniture_stool_tall_cushion.obj', @@ -203,6 +249,7 @@ for i in ipairs(dye_table) do }) minetest.register_node('furniture:chair_'..name, { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Chair with '..desc..' Cushion', drawtype = 'mesh', mesh = 'furniture_chair_cushion.obj', @@ -228,6 +275,7 @@ for i in ipairs(dye_table) do }) minetest.register_node('furniture:cushion_half_'..name, { + _doc_items_crafting = 'This is crafted in the Sewing Station.', description = desc..' Half Cushion', drawtype = 'nodebox', tiles = {'furniture_cushion.png^[multiply:'..hex}, @@ -245,6 +293,7 @@ for i in ipairs(dye_table) do }) minetest.register_node('furniture:cushion_full_'..name, { + _doc_items_crafting = 'This is crafted in the Sewing Station.', description = desc..' Full Cushion', tiles = {'furniture_cushion.png^[multiply:'..hex}, groups = {oddly_breakable_by_hand = 2, snappy=3, bouncy=50}, diff --git a/storage.lua b/storage.lua index 3610cf4..a1d4449 100644 --- a/storage.lua +++ b/storage.lua @@ -1,4 +1,5 @@ minetest.register_node('furniture:chest_small', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Small Chest', drawtype = 'mesh', mesh = 'furniture_chest_small.obj', @@ -46,6 +47,7 @@ minetest.register_node('furniture:chest_small', { }) minetest.register_node('furniture:chest', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Chest', drawtype = 'mesh', mesh = 'furniture_chest.obj', @@ -93,6 +95,7 @@ minetest.register_node('furniture:chest', { }) minetest.register_node('furniture:chest_large', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Large Chest', drawtype = 'mesh', mesh = 'furniture_chest_large.obj', @@ -154,6 +157,7 @@ minetest.register_node('furniture:chest_large', { minetest.register_node('furniture:cabinet_wall', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Wall Mounted Cabinet', drawtype = 'mesh', mesh = 'furniture_cabinet_wall.obj', @@ -200,6 +204,7 @@ minetest.register_node('furniture:cabinet_wall', { }) minetest.register_node('furniture:cabinet_counter', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Cabinet with Countertop', drawtype = 'mesh', mesh = 'furniture_cabinet_counter.obj', @@ -244,3 +249,205 @@ minetest.register_node('furniture:cabinet_counter', { allow_metadata_inventory_take = furniture.inv_take_put, allow_metadata_inventory_move = furniture.inv_manipulate, }) + +local bookshelf_formspec = + "size[8,7;]" .. + "list[context;books;0,0.3;8,2;]" .. + "list[current_player;main;0,2.85;8,1;]" .. + "list[current_player;main;0,4.08;8,3;8]" .. + "listring[context;books]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,2.85) + +local function update_bookshelf(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local invlist = inv:get_list("books") + + local formspec = bookshelf_formspec + -- Inventory slots overlay + local bx, by = 0, 0.3 + local n_written, n_empty = 0, 0 + for i = 1, 16 do + if i == 9 then + bx = 0 + by = by + 1 + end + local stack = invlist[i] + if stack:is_empty() then + formspec = formspec .. + "image[" .. bx .. "," .. by .. ";1,1;default_bookshelf_slot.png]" + else + local metatable = stack:get_meta():to_table() or {} + if metatable.fields and metatable.fields.text then + n_written = n_written + stack:get_count() + else + n_empty = n_empty + stack:get_count() + end + end + bx = bx + 1 + end + meta:set_string("formspec", formspec) + if n_written + n_empty == 0 then + meta:set_string("infotext", "Empty Locked Bookshelf") + else + meta:set_string("infotext", "Locked Bookshelf ("..n_written.." written, "..n_empty.." empty books)") + end +end + +minetest.register_node("furniture:bookshelf_locked", { + description = 'Locked Bookshelf', + tiles = {"default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "default_bookshelf.png", "default_bookshelf.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size("books", 8 * 2) + update_bookshelf(pos) + end, + can_dig = function(pos,player) + local inv = minetest.get_meta(pos):get_inventory() + return inv:is_empty("books") + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local player_name = player:get_player_name() + if minetest.is_protected(pos, player_name) and not minetest.check_player_privs(player, 'protection_bypass') then + return 0 + else + if minetest.get_item_group(stack:get_name(), "book") ~= 0 then + return stack:get_count() + else + return 0 + end + end + end, + allow_metadata_inventory_take = furniture.inv_take_put, + allow_metadata_inventory_move = furniture.inv_manipulate, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name() .. + " moves stuff in bookshelf at " .. minetest.pos_to_string(pos)) + update_bookshelf(pos) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " puts stuff to bookshelf at " .. minetest.pos_to_string(pos)) + update_bookshelf(pos) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " takes stuff from bookshelf at " .. minetest.pos_to_string(pos)) + update_bookshelf(pos) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "books", drops) + drops[#drops+1] = "furniture:bookshelf_locked" + minetest.remove_node(pos) + return drops + end, +}) + + +local vessels_shelf_formspec = + "size[8,7;]" .. + "list[context;vessels;0,0.3;8,2;]" .. + "list[current_player;main;0,2.85;8,1;]" .. + "list[current_player;main;0,4.08;8,3;8]" .. + "listring[context;vessels]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0, 2.85) + +local function update_vessels_shelf(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local invlist = inv:get_list("vessels") + + local formspec = vessels_shelf_formspec + -- Inventory slots overlay + local vx, vy = 0, 0.3 + local n_items = 0 + for i = 1, 16 do + if i == 9 then + vx = 0 + vy = vy + 1 + end + if not invlist or invlist[i]:is_empty() then + formspec = formspec .. + "image[" .. vx .. "," .. vy .. ";1,1;vessels_shelf_slot.png]" + else + local stack = invlist[i] + if not stack:is_empty() then + n_items = n_items + stack:get_count() + end + end + vx = vx + 1 + end + meta:set_string("formspec", formspec) + if n_items == 0 then + meta:set_string("infotext", "Empty Locked Vessels Shelf") + else + meta:set_string("infotext", "Locked Vessels Shelf ("..n_items.." items)") + end +end + +minetest.register_node("furniture:shelf_vessel_locked", { + description = "Locked Vessels Shelf", + tiles = {"default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "vessels_shelf.png", "vessels_shelf.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + update_vessels_shelf(pos) + local inv = meta:get_inventory() + inv:set_size("vessels", 8 * 2) + end, + can_dig = function(pos,player) + local inv = minetest.get_meta(pos):get_inventory() + return inv:is_empty("vessels") + end, + allow_metadata_inventory_take = furniture.inv_take_put, + allow_metadata_inventory_move = furniture.inv_manipulate, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local player_name = player:get_player_name() + if minetest.is_protected(pos, player_name) and not minetest.check_player_privs(player, 'protection_bypass') then + return 0 + else + if minetest.get_item_group(stack:get_name(), "vessel") ~= 0 then + return stack:get_count() + else + return 0 + end + end + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name() .. + " moves stuff in vessels shelf at ".. minetest.pos_to_string(pos)) + update_vessels_shelf(pos) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " moves stuff to vessels shelf at ".. minetest.pos_to_string(pos)) + update_vessels_shelf(pos) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " takes stuff from vessels shelf at ".. minetest.pos_to_string(pos)) + update_vessels_shelf(pos) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "vessels", drops) + drops[#drops + 1] = "vessels:shelf" + minetest.remove_node(pos) + return drops + end, +}) diff --git a/tables.lua b/tables.lua index b00ec79..36886a9 100644 --- a/tables.lua +++ b/tables.lua @@ -1,4 +1,5 @@ minetest.register_node('furniture:table_basic', { + _doc_items_crafting = 'This is crafted in the Woodworking Station.', description = 'Basic Table', drawtype = 'mesh', mesh = 'furniture_table_basic.obj', diff --git a/textures/furniture_bench_picnic.png b/textures/furniture_bench_picnic.png new file mode 100644 index 0000000000000000000000000000000000000000..ffa6fb8197f0cf1c1014ec0401cf550463806c1e GIT binary patch literal 15180 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 X;BXf0c}Hv300000NkvXXu0mjf^L5-L literal 0 HcmV?d00001 diff --git a/textures/furniture_lantern_particle.png b/textures/furniture_lantern_particle.png new file mode 100644 index 0000000000000000000000000000000000000000..2f270c169de1c7db8abcbe356dc093572f513bb7 GIT binary patch literal 638 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