From dd0e26d95b2e373c483be033c09157264d8172be Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Mon, 30 Jan 2017 19:44:44 -0500 Subject: [PATCH] use param2 colorization for homedecor kitchen chairs and armchairs Note that the all-wood kitchen chair cannot be colored. --- homedecor/furniture.lua | 185 ++++++--- homedecor/furniture_recipes.lua | 58 ++- homedecor/init.lua | 8 + homedecor/models/forniture_armchair.obj | 358 +++++++++--------- homedecor/models/homedecor_kitchen_chair.obj | 166 ++++---- homedecor/textures/homedecor_armchair_inv.png | Bin 0 -> 6376 bytes .../textures/homedecor_chair_padded_inv.png | Bin 0 -> 4554 bytes .../textures/homedecor_chair_wood_inv.png | Bin 0 -> 4411 bytes 8 files changed, 430 insertions(+), 345 deletions(-) create mode 100644 homedecor/textures/homedecor_armchair_inv.png create mode 100644 homedecor/textures/homedecor_chair_padded_inv.png create mode 100644 homedecor/textures/homedecor_chair_wood_inv.png diff --git a/homedecor/furniture.lua b/homedecor/furniture.lua index 4a6bf770..8f60c5d8 100644 --- a/homedecor/furniture.lua +++ b/homedecor/furniture.lua @@ -55,64 +55,78 @@ local ac_cbox = { } } -for _, t in ipairs(chaircolors) do - - local woolcolor, colordesc = unpack(t) - local color = woolcolor - local chairtiles - - if woolcolor == "" then - chairtiles = { - homedecor.plain_wood, - homedecor.plain_wood - } - else - color = "_"..woolcolor - chairtiles = { - homedecor.plain_wood, - "wool"..color..".png", - } +homedecor.register("kitchen_chair_wood", { + description = S("Kitchen chair"), + mesh = "homedecor_kitchen_chair.obj", + tiles = { + homedecor.plain_wood, + homedecor.plain_wood + }, + inventory_image = "homedecor_chair_wood_inv.png", + paramtype2 = "wallmounted", + selection_box = kc_cbox, + collision_box = kc_cbox, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + after_place_node = homedecor.fix_rotation_nsew, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + pos.y = pos.y+0 -- where do I put my ass ? + homedecor.sit(pos, node, clicker) + return itemstack end +}) - homedecor.register("chair"..color, { - description = S("Kitchen chair (@1)", colordesc), - mesh = "homedecor_kitchen_chair.obj", - tiles = chairtiles, - selection_box = kc_cbox, - collision_box = kc_cbox, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, - sounds = default.node_sound_wood_defaults(), - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) +homedecor.register("kitchen_chair_padded", { + description = S("Kitchen chair"), + mesh = "homedecor_kitchen_chair.obj", + tiles = { + homedecor.plain_wood, + "wool_white.png", + }, + inventory_image = "homedecor_chair_padded_inv.png", + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + selection_box = kc_cbox, + collision_box = kc_cbox, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + after_place_node = homedecor.fix_rotation_nsew, + after_dig_node = unifieddyes.after_dig_node, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local itemname = itemstack:get_name() + if string.find(itemname, "dye:") or string.find(itemname, "unifieddyes:") then + unifieddyes.on_rightclick(pos, node, clicker, + itemstack, pointed_thing, "homedecor:kitchen_chair_padded", "wallmounted") + else pos.y = pos.y+0 -- where do I put my ass ? homedecor.sit(pos, node, clicker) return itemstack end - }) - - if color ~= "" then - homedecor.register("armchair"..color, { - description = S("Armchair (@1)", colordesc), - mesh = "forniture_armchair.obj", - tiles = { - "wool"..color..".png", - "wool_dark_grey.png", - "default_wood.png" - }, - groups = {snappy=3}, - sounds = default.node_sound_wood_defaults(), - node_box = ac_cbox - }) - - minetest.register_craft({ - output = "homedecor:armchair"..color.." 2", - recipe = { - { "wool:"..woolcolor,""}, - { "group:wood","group:wood" }, - { "wool:"..woolcolor,"wool:"..woolcolor }, - }, - }) end -end +}) + +homedecor.register("armchair", { + description = S("Armchair"), + mesh = "forniture_armchair.obj", + tiles = { + "wool_white.png", + { name = "wool_dark_grey.png", color = 0xffffffff }, + { name = "default_wood.png", color = 0xffffffff } + }, + inventory_image = "homedecor_armchair_inv.png", + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + groups = {snappy=3}, + sounds = default.node_sound_wood_defaults(), + node_box = ac_cbox, + after_place_node = homedecor.fix_rotation_nsew, + after_dig_node = unifieddyes.after_dig_node, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local itemname = itemstack:get_name() + unifieddyes.on_rightclick(pos, node, clicker, + itemstack, pointed_thing, "homedecor:armchair", "wallmounted") + end +}) local ob_cbox = { type = "fixed", @@ -161,3 +175,72 @@ minetest.register_alias("homedecor:armchair", "homedecor:armchair_black") minetest.register_alias('table', 'homedecor:table') minetest.register_alias('chair', 'homedecor:chair') minetest.register_alias('armchair', 'homedecor:armchair') + +-- conversion to param2 colorization + +homedecor.old_static_chairs = {} + +for _, color in ipairs(lrfurn.colors) do + table.insert(homedecor.old_static_chairs, "homedecor:chair_"..color) + table.insert(homedecor.old_static_chairs, "homedecor:armchair_"..color) +end +table.insert(homedecor.old_static_chairs, "homedecor:chair") + +minetest.register_lbm({ + name = "homedecor:convert_chairs", + label = "Convert homedecor chairs to use param2 color", + run_at_every_load = true, + nodenames = homedecor.old_static_chairs, + action = function(pos, node) + local name = node.name + local paletteidx = 0 + local color + local a,b = string.find(name, "_") + + if a then + color = string.sub(name, a+1) + + if color == "blue" then + color = "medium_blue" + elseif color == "violet" then + color = "medium_violet" + elseif color == "red" then + color = "medium_red" + elseif color == "black" then + color = "dark_grey" + end + + paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted") + end + + local old_fdir = math.floor(node.param2 % 32) + local new_fdir = 3 + + if old_fdir == 0 then + new_fdir = 3 + elseif old_fdir == 1 then + new_fdir = 4 + elseif old_fdir == 2 then + new_fdir = 2 + elseif old_fdir == 3 then + new_fdir = 5 + end + + local param2 = paletteidx + new_fdir + local newname = "homedecor:armchair" + + print(name, dump(a), dump(b), dump(color).."("..dump(paletteidx)..")", dump(param2)) + + if node.name == "homedecor:chair" then + newname = "homedecor:kitchen_chair_wood" + elseif string.find(node.name, "homedecor:chair_") then + newname = "homedecor:kitchen_chair_padded" + end + + minetest.set_node(pos, { name = newname, param2 = param2 }) + local meta = minetest.get_meta(pos) + if color then + meta:set_string("dye", "unifieddyes:"..color) + end + end +}) diff --git a/homedecor/furniture_recipes.lua b/homedecor/furniture_recipes.lua index 51aa6f8f..1fb614c7 100644 --- a/homedecor/furniture_recipes.lua +++ b/homedecor/furniture_recipes.lua @@ -1,6 +1,6 @@ minetest.register_craft({ - output = "homedecor:table", "homedecor:chair 2", + output = "homedecor:table", "homedecor:kitchen_chair_wood 2", recipe = { { "group:wood","group:wood", "group:wood" }, { "group:stick", "", "group:stick" }, @@ -53,7 +53,7 @@ minetest.register_craft({ }) minetest.register_craft({ - output = "homedecor:chair 2", + output = "homedecor:kitchen_chair_wood 2", recipe = { { "group:stick",""}, { "group:wood","group:wood" }, @@ -61,41 +61,35 @@ minetest.register_craft({ }, }) +minetest.register_craft({ + output = "homedecor:armchair 2", + recipe = { + { "wool:white",""}, + { "group:wood","group:wood" }, + { "wool:white","wool:white" }, + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "homedecor:kitchen_chair_padded", + recipe = { + "homedecor:kitchen_chair_wood", + "wool:white", + }, +}) + minetest.register_craft({ type = "fuel", - recipe = "homedecor:chair", + recipe = "homedecor:kitchen_chair_wood", burntime = 15, }) -local chaircolors = { "black", "red", "pink", "violet", "blue", "dark_green" } - -for _, color in ipairs(chaircolors) do - - minetest.register_craft({ - type = "shapeless", - output = "homedecor:chair_"..color, - recipe = { - "homedecor:chair", - "wool:white", - "dye:"..color - }, - }) - - minetest.register_craft({ - type = "shapeless", - output = "homedecor:chair_"..color, - recipe = { - "homedecor:chair", - "wool:"..color - }, - }) - - minetest.register_craft({ - type = "fuel", - recipe = "homedecor:chair_"..color, - burntime = 15, - }) -end +minetest.register_craft({ + type = "fuel", + recipe = "homedecor:kitchen_chair_padded", + burntime = 15, +}) minetest.register_craft({ type = "fuel", diff --git a/homedecor/init.lua b/homedecor/init.lua index 58f6acf5..727f50d3 100644 --- a/homedecor/init.lua +++ b/homedecor/init.lua @@ -79,6 +79,14 @@ function homedecor.fix_rotation(pos, placer, itemstack, pointed_thing) minetest.swap_node(pos, { name = node.name, param2 = fdir }) end +function homedecor.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) + local node = minetest.get_node(pos) + local yaw = placer:get_look_yaw() + local dir = minetest.yaw_to_dir(yaw) + local fdir = minetest.dir_to_wallmounted(dir) + minetest.swap_node(pos, { name = node.name, param2 = fdir }) +end + screwdriver = screwdriver or {} homedecor.plain_wood = { name = "homedecor_generic_wood_plain.png", color = 0xffa76820 } diff --git a/homedecor/models/forniture_armchair.obj b/homedecor/models/forniture_armchair.obj index 6af52cd0..b563691b 100644 --- a/homedecor/models/forniture_armchair.obj +++ b/homedecor/models/forniture_armchair.obj @@ -1,142 +1,142 @@ -# Blender v2.73 (sub 0) OBJ File: 'forniture-armchair.blend' +# Blender v2.72 (sub 0) OBJ File: 'forniture-armchair.blend' # www.blender.org o chair_Cylinder -v 0.375000 -0.437500 -0.500000 -v 0.375000 0.039062 -0.500000 -v 0.375000 0.101562 -0.437500 -v 0.375000 0.101562 0.035156 -v 0.375000 0.437500 0.035156 -v 0.375000 0.500000 0.097656 -v -0.375000 0.500000 0.375000 -v 0.312500 -0.187500 -0.375000 -v -0.375000 0.500000 0.097656 -v -0.375000 0.437500 0.035156 -v -0.312500 -0.187500 -0.375000 -v -0.375000 0.101562 0.035156 -v -0.375000 0.101562 -0.437500 -v -0.375000 0.039062 -0.500000 -v 0.375000 0.500000 0.375000 -v -0.375000 -0.437500 -0.500000 -v -0.437500 -0.437500 -0.500000 -v -0.500000 -0.437500 -0.375000 -v -0.500000 0.437500 0.097656 -v -0.437500 0.039062 -0.500000 -v 0.437500 0.500000 0.437500 -v -0.437500 0.101562 -0.437500 -v 0.437500 0.500000 0.097656 -v -0.437500 0.101562 0.035156 -v 0.437500 0.437500 0.035156 -v -0.437500 0.437500 0.035156 -v 0.437500 0.101562 0.035156 -v -0.437500 0.500000 0.097656 -v 0.437500 0.101562 -0.437500 -v -0.437500 0.500000 0.437500 -v 0.437500 0.039062 -0.500000 -v 0.500000 0.437500 0.097656 -v 0.437500 -0.437500 -0.500000 -v -0.312500 -0.437500 -0.375000 -v 0.500000 0.437500 0.500000 -v 0.500000 -0.437500 0.500000 -v 0.312500 -0.437500 -0.375000 -v -0.500000 0.437500 0.500000 -v -0.500000 -0.437500 0.500000 -v -0.500000 0.039062 0.097656 -v 0.500000 0.039062 0.097656 -v -0.500000 0.039062 -0.437500 -v 0.500000 0.039062 -0.437500 -v -0.500000 -0.437500 -0.437500 +v 0.500000 -0.375000 -0.437500 +v 0.500000 -0.375000 0.039062 +v 0.437500 -0.375000 0.101562 +v -0.035156 -0.375000 0.101562 +v -0.035156 -0.375000 0.437500 +v -0.097656 -0.375000 0.500000 +v -0.375000 0.375000 0.500000 +v 0.375000 -0.312500 -0.187500 +v -0.097656 0.375000 0.500000 +v -0.035156 0.375000 0.437500 +v 0.375000 0.312500 -0.187500 +v -0.035156 0.375000 0.101562 +v 0.437500 0.375000 0.101562 +v 0.500000 0.375000 0.039062 +v -0.375000 -0.375000 0.500000 +v 0.500000 0.375000 -0.437500 +v 0.500000 0.437500 -0.437500 +v 0.375000 0.500000 -0.437500 +v -0.097656 0.500000 0.437500 +v 0.500000 0.437500 0.039062 +v -0.437500 -0.437500 0.500000 +v 0.437500 0.437500 0.101562 +v -0.097656 -0.437500 0.500000 +v -0.035156 0.437500 0.101562 +v -0.035156 -0.437500 0.437500 +v -0.035156 0.437500 0.437500 +v -0.035156 -0.437500 0.101562 +v -0.097656 0.437500 0.500000 +v 0.437500 -0.437500 0.101562 +v -0.437500 0.437500 0.500000 +v 0.500000 -0.437500 0.039062 +v -0.097656 -0.500000 0.437500 v 0.500000 -0.437500 -0.437500 -v 0.312500 0.437500 0.097656 -v 0.312500 0.039062 0.097656 -v 0.312500 0.039062 -0.437500 -v 0.312500 -0.437500 -0.437500 -v -0.312500 0.437500 0.097656 -v 0.500000 -0.437500 -0.375000 -v -0.312500 0.039062 0.097656 -v -0.312500 0.039062 -0.437500 -v -0.312500 -0.437500 -0.437500 -v 0.312500 -0.125000 0.312500 -v -0.312500 -0.125000 0.312500 -v 0.312500 0.437500 0.312500 -v -0.312500 0.437500 0.312500 -v 0.312500 -0.109375 -0.187500 -v -0.312500 -0.109375 -0.187500 -v 0.312500 0.156250 0.285156 -v -0.312500 0.156250 0.285156 -v 0.312500 -0.125000 -0.312500 -v -0.312500 -0.109375 0.250000 -v 0.312500 -0.062500 0.296875 -v -0.312500 0.375000 0.296875 -v 0.312500 -0.109375 0.250000 -v -0.312500 -0.125000 -0.312500 -v 0.312500 0.375000 0.296875 -v -0.312500 -0.062500 0.296875 -v 0.312500 -0.101562 0.031250 -v -0.312500 -0.101562 0.031250 -v -0.432138 -0.500000 0.343750 -v -0.432138 -0.437500 0.343750 -v -0.380362 -0.500000 0.343750 -v -0.380362 -0.437500 0.343750 -v -0.343750 -0.500000 0.380362 -v -0.343750 -0.437500 0.380362 -v -0.343750 -0.500000 0.432138 -v -0.343750 -0.437500 0.432138 -v -0.380362 -0.500000 0.468750 -v -0.380362 -0.437500 0.468750 -v -0.432138 -0.500000 0.468750 -v -0.432138 -0.437500 0.468750 -v -0.468750 -0.500000 0.432138 -v -0.468750 -0.437500 0.432138 -v -0.468750 -0.500000 0.380362 -v -0.468750 -0.437500 0.380362 -v 0.343750 -0.437500 0.380362 -v 0.343750 -0.500000 0.380362 -v 0.343750 -0.437500 0.432138 -v 0.343750 -0.500000 0.432138 -v 0.380362 -0.437500 0.468750 -v 0.380362 -0.500000 0.468750 -v 0.432138 -0.437500 0.468750 -v 0.432138 -0.500000 0.468750 -v 0.468750 -0.437500 0.432138 -v 0.468750 -0.500000 0.432138 -v 0.468750 -0.437500 0.380362 -v 0.468750 -0.500000 0.380362 -v 0.432138 -0.437500 0.343750 -v 0.432138 -0.500000 0.343750 -v 0.380362 -0.437500 0.343750 -v 0.380362 -0.500000 0.343750 -v -0.432138 -0.500000 -0.468750 -v -0.432138 -0.437500 -0.468750 -v -0.380362 -0.500000 -0.468750 -v -0.380362 -0.437500 -0.468750 -v -0.343750 -0.500000 -0.432138 -v -0.343750 -0.437500 -0.432138 -v -0.343750 -0.500000 -0.380362 -v -0.343750 -0.437500 -0.380362 -v -0.380362 -0.500000 -0.343750 -v -0.380362 -0.437500 -0.343750 -v -0.432138 -0.500000 -0.343750 -v -0.432138 -0.437500 -0.343750 -v -0.468750 -0.500000 -0.380362 -v -0.468750 -0.437500 -0.380362 -v -0.468750 -0.500000 -0.432138 -v -0.468750 -0.437500 -0.432138 -v 0.343750 -0.437500 -0.432138 -v 0.343750 -0.500000 -0.432138 -v 0.343750 -0.437500 -0.380362 -v 0.343750 -0.500000 -0.380362 -v 0.380362 -0.437500 -0.343750 -v 0.380362 -0.500000 -0.343750 -v 0.432138 -0.437500 -0.343750 -v 0.432138 -0.500000 -0.343750 -v 0.468750 -0.437500 -0.380362 -v 0.468750 -0.500000 -0.380362 -v 0.468750 -0.437500 -0.432138 -v 0.468750 -0.500000 -0.432138 -v 0.432138 -0.437500 -0.468750 -v 0.432138 -0.500000 -0.468750 -v 0.380362 -0.437500 -0.468750 -v 0.380362 -0.500000 -0.468750 +v 0.375000 0.312500 -0.437500 +v -0.500000 -0.500000 0.437500 +v -0.500000 -0.500000 -0.437500 +v 0.375000 -0.312500 -0.437500 +v -0.500000 0.500000 0.437500 +v -0.500000 0.500000 -0.437500 +v -0.097656 0.500000 0.039062 +v -0.097656 -0.500000 0.039062 +v 0.437500 0.500000 0.039062 +v 0.437500 -0.500000 0.039062 +v 0.437500 0.500000 -0.437500 +v 0.437500 -0.500000 -0.437500 +v -0.097656 -0.312500 0.437500 +v -0.097656 -0.312500 0.039062 +v 0.437500 -0.312500 0.039062 +v 0.437500 -0.312500 -0.437500 +v -0.097656 0.312500 0.437500 +v 0.375000 -0.500000 -0.437500 +v -0.097656 0.312500 0.039062 +v 0.437500 0.312500 0.039062 +v 0.437500 0.312500 -0.437500 +v -0.312500 -0.312500 -0.125000 +v -0.312500 0.312500 -0.125000 +v -0.312500 -0.312500 0.437500 +v -0.312500 0.312500 0.437500 +v 0.187500 -0.312500 -0.109375 +v 0.187500 0.312500 -0.109375 +v -0.285156 -0.312500 0.156250 +v -0.285156 0.312500 0.156250 +v 0.312500 -0.312500 -0.125000 +v -0.250000 0.312500 -0.109375 +v -0.296875 -0.312500 -0.062500 +v -0.296875 0.312500 0.375000 +v -0.250000 -0.312500 -0.109375 +v 0.312500 0.312500 -0.125000 +v -0.296875 -0.312500 0.375000 +v -0.296875 0.312500 -0.062500 +v -0.031250 -0.312500 -0.101562 +v -0.031250 0.312500 -0.101562 +v -0.343750 0.432138 -0.500000 +v -0.343750 0.432138 -0.437500 +v -0.343750 0.380361 -0.500000 +v -0.343750 0.380361 -0.437500 +v -0.380362 0.343750 -0.500000 +v -0.380362 0.343750 -0.437500 +v -0.432139 0.343750 -0.500000 +v -0.432139 0.343750 -0.437500 +v -0.468750 0.380361 -0.500000 +v -0.468750 0.380361 -0.437500 +v -0.468750 0.432138 -0.500000 +v -0.468750 0.432138 -0.437500 +v -0.432139 0.468750 -0.500000 +v -0.432139 0.468750 -0.437500 +v -0.380362 0.468750 -0.500000 +v -0.380362 0.468750 -0.437500 +v -0.380361 -0.343750 -0.437500 +v -0.380361 -0.343750 -0.500000 +v -0.432138 -0.343750 -0.437500 +v -0.432138 -0.343750 -0.500000 +v -0.468750 -0.380362 -0.437500 +v -0.468750 -0.380362 -0.500000 +v -0.468750 -0.432139 -0.437500 +v -0.468750 -0.432139 -0.500000 +v -0.432138 -0.468750 -0.437500 +v -0.432138 -0.468750 -0.500000 +v -0.380361 -0.468750 -0.437500 +v -0.380361 -0.468750 -0.500000 +v -0.343750 -0.432139 -0.437500 +v -0.343750 -0.432139 -0.500000 +v -0.343750 -0.380362 -0.437500 +v -0.343750 -0.380362 -0.500000 +v 0.468750 0.432139 -0.500000 +v 0.468750 0.432139 -0.437500 +v 0.468750 0.380362 -0.500000 +v 0.468750 0.380362 -0.437500 +v 0.432138 0.343750 -0.500000 +v 0.432138 0.343750 -0.437500 +v 0.380361 0.343750 -0.500000 +v 0.380361 0.343750 -0.437500 +v 0.343750 0.380362 -0.500000 +v 0.343750 0.380362 -0.437500 +v 0.343750 0.432139 -0.500000 +v 0.343750 0.432139 -0.437500 +v 0.380361 0.468750 -0.500000 +v 0.380361 0.468750 -0.437500 +v 0.432138 0.468750 -0.500000 +v 0.432138 0.468750 -0.437500 +v 0.432139 -0.343750 -0.437500 +v 0.432139 -0.343750 -0.500000 +v 0.380362 -0.343750 -0.437500 +v 0.380362 -0.343750 -0.500000 +v 0.343750 -0.380361 -0.437500 +v 0.343750 -0.380361 -0.500000 +v 0.343750 -0.432138 -0.437500 +v 0.343750 -0.432138 -0.500000 +v 0.380362 -0.468750 -0.437500 +v 0.380362 -0.468750 -0.500000 +v 0.432139 -0.468750 -0.437500 +v 0.432139 -0.468750 -0.500000 +v 0.468750 -0.432138 -0.437500 +v 0.468750 -0.432138 -0.500000 +v 0.468750 -0.380361 -0.437500 +v 0.468750 -0.380361 -0.500000 vt 0.062590 0.539162 vt 0.062590 0.601648 vt 0.000103 0.539162 @@ -367,52 +367,52 @@ vt 0.125000 0.312500 vt 0.125000 0.375000 vt 0.187500 0.312500 vt 0.187500 0.375000 -vn 0.341600 0.341600 -0.875600 -vn 0.341600 0.875600 -0.341600 -vn 0.875600 0.341600 -0.341600 -vn -0.341600 0.875600 -0.341600 -vn -0.341600 0.341600 -0.875600 -vn -0.875600 0.341600 -0.341600 -vn -0.300200 0.905400 0.300200 -vn -0.650700 0.391300 0.650700 -vn 0.300200 0.905400 0.300200 -vn 0.650700 0.391300 0.650700 -vn -0.987800 0.110000 -0.110000 -vn -0.717300 -0.630300 -0.297100 -vn -0.577400 -0.577400 0.577400 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.382700 -0.923900 -vn 0.000000 0.990200 0.139900 -vn 0.000000 0.707100 -0.707100 -vn -0.729300 0.101700 -0.676600 -vn 0.729300 0.101700 -0.676600 -vn 0.526700 0.636900 -0.563000 -vn -0.526700 0.636900 -0.563000 -vn -0.110000 0.987800 -0.110000 -vn 0.110000 0.987800 -0.110000 -vn -0.574300 0.578900 -0.578900 -vn -0.297100 -0.630200 -0.717300 -vn 0.297100 -0.630200 -0.717300 -vn 0.717300 -0.630200 -0.297100 -vn 0.000000 0.898300 -0.439400 -vn 0.000000 0.996800 -0.079900 -vn 0.000000 -0.148700 -0.988900 -vn 0.987800 0.110000 -0.110000 -vn 0.574300 0.578900 -0.578900 -vn 0.717300 -0.630300 -0.297100 -vn -0.717300 -0.630200 -0.297100 -vn 0.577400 -0.577400 0.577400 -vn 0.000000 1.000000 0.000000 -vn -1.000000 0.000000 0.000000 +vn 0.875600 -0.341600 0.341600 +vn 0.341600 -0.341600 0.875600 +vn 0.341600 -0.875600 0.341600 +vn 0.341600 0.341600 0.875600 +vn 0.875600 0.341600 0.341600 +vn 0.341600 0.875600 0.341600 +vn -0.300200 0.300200 0.905400 +vn -0.650700 0.650700 0.391300 +vn -0.300200 -0.300200 0.905400 +vn -0.650700 -0.650700 0.391300 +vn 0.110000 0.987800 0.110000 +vn 0.297100 0.717300 -0.630300 +vn -0.577400 0.577400 -0.577400 vn 1.000000 0.000000 0.000000 -vn -0.707100 -0.707100 0.000000 -vn 0.707100 -0.707100 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.707100 0.000000 -0.707100 +vn 0.923900 0.000000 0.382700 +vn -0.139900 -0.000000 0.990200 vn 0.707100 0.000000 0.707100 +vn 0.676600 0.729300 0.101700 +vn 0.676600 -0.729300 0.101700 +vn 0.563000 -0.526700 0.636900 +vn 0.563000 0.526700 0.636900 +vn 0.110000 0.110000 0.987800 +vn 0.110000 -0.110000 0.987800 +vn 0.578900 0.574300 0.578900 +vn 0.717300 0.297100 -0.630200 +vn 0.717300 -0.297100 -0.630200 +vn 0.297100 -0.717300 -0.630200 +vn 0.439400 0.000000 0.898300 +vn 0.079900 0.000000 0.996800 +vn 0.988900 0.000000 -0.148700 +vn 0.110000 -0.987800 0.110000 +vn 0.578900 -0.574300 0.578900 +vn 0.297100 -0.717300 -0.630300 +vn 0.297100 0.717300 -0.630200 +vn -0.577400 -0.577400 -0.577400 vn 0.000000 0.000000 1.000000 -vn -0.707100 0.000000 0.707100 -vn -0.707100 0.000000 -0.707100 +vn -0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.707100 -0.707100 +vn 0.000000 -0.707100 -0.707100 +vn 0.000000 0.000000 -1.000000 +vn 0.707100 -0.707100 0.000000 +vn -0.707100 -0.707100 0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.707100 0.707100 0.000000 +vn 0.707100 0.707100 0.000000 g chair_Cylinder_colored s 1 f 31/1/1 29/2/2 43/3/3 diff --git a/homedecor/models/homedecor_kitchen_chair.obj b/homedecor/models/homedecor_kitchen_chair.obj index 09fca5f5..52bd58b9 100644 --- a/homedecor/models/homedecor_kitchen_chair.obj +++ b/homedecor/models/homedecor_kitchen_chair.obj @@ -1,85 +1,85 @@ -# Blender v2.73 (sub 0) OBJ File: 'kitchen-chair.blend' +# Blender v2.72 (sub 0) OBJ File: 'kitchen-chair.blend' # www.blender.org o Cylinder -v 0.312500 -0.125000 0.187500 -v -0.312500 -0.125000 0.187500 -v 0.312500 -0.500000 -0.312500 -v 0.312500 -0.500000 -0.187500 -v 0.187500 -0.500000 -0.187500 -v 0.187500 -0.500000 -0.312500 -v 0.312500 -0.125000 -0.312500 -v 0.312500 -0.125000 -0.187500 -v 0.187500 -0.125000 -0.187500 -v 0.187500 -0.125000 -0.312500 -v -0.187500 -0.500000 -0.312500 -v -0.187500 -0.500000 -0.187500 -v -0.312500 -0.500000 -0.187500 -v -0.187500 -0.125000 -0.312500 -v -0.187500 -0.125000 -0.187500 -v -0.312500 -0.125000 -0.187500 -v -0.312500 -0.125000 -0.312500 -v 0.312500 -0.062500 0.187500 -v 0.312500 -0.062500 -0.312500 -v -0.312500 -0.062500 -0.312500 -v 0.312500 0.000000 0.187500 -v -0.312500 0.000000 0.187500 -v 0.312500 0.000000 -0.312500 -v -0.312500 0.000000 -0.312500 -v 0.312500 0.500000 0.312500 -v 0.312500 0.500000 0.187500 -v 0.187500 0.500000 0.187500 -v 0.187500 0.500000 0.312500 -v -0.187500 0.500000 0.312500 -v -0.187500 0.500000 0.187500 -v -0.312500 0.500000 0.187500 -v -0.312500 0.500000 0.312500 -v -0.312500 -0.062500 0.187500 -v 0.187500 0.437500 0.257812 -v -0.187500 0.437500 0.257813 -v 0.187500 0.062500 0.257812 -v -0.187500 0.062500 0.257813 -v 0.187500 0.437500 0.242187 -v -0.187500 0.437500 0.242187 -v 0.187500 0.062500 0.242188 -v -0.187500 0.062500 0.242188 -v -0.187500 -0.500000 -0.312500 -v -0.187500 -0.500000 -0.187500 -v -0.312500 -0.500000 -0.187500 -v -0.312500 -0.500000 -0.312500 -v -0.187500 -0.125000 -0.312500 -v -0.312500 -0.125000 -0.187500 -v -0.312500 -0.125000 -0.312500 -v 0.312500 -0.500000 0.187500 -v 0.187500 -0.500000 0.312500 -v 0.187500 -0.500000 0.187500 -v 0.312500 0.500000 0.187500 -v 0.187500 0.500000 0.312500 -v 0.187500 0.500000 0.187500 -v -0.187500 0.500000 0.187500 -v -0.312500 -0.500000 0.187500 -v 0.312500 0.500000 0.312500 -v 0.312500 0.500000 0.187500 -v 0.187500 -0.500000 0.187500 -v 0.187500 -0.500000 0.312500 -v 0.312500 -0.500000 0.312500 -v 0.312500 -0.500000 0.187500 -v -0.312500 -0.500000 0.312500 -v -0.187500 -0.500000 0.312500 -v -0.187500 -0.500000 0.187500 -v 0.187500 0.500000 0.312500 -v -0.187500 0.500000 0.312500 -v -0.312500 0.500000 0.312500 -v -0.312500 0.500000 0.187500 -v -0.187500 -0.125000 0.187500 -v -0.187500 0.000000 0.187500 -v 0.187500 -0.125000 0.187500 -v 0.187500 0.000000 0.187500 -v -0.187500 -0.125000 0.312500 -v -0.187500 0.000000 0.312500 -v 0.187500 -0.125000 0.312500 -v 0.187500 -0.062500 0.312500 -v 0.187500 0.000000 0.312500 -v -0.187500 -0.062500 0.312500 +v -0.187500 -0.312500 -0.125000 +v -0.187500 0.312500 -0.125000 +v 0.312500 -0.312500 -0.500000 +v 0.187500 -0.312500 -0.500000 +v 0.187500 -0.187500 -0.500000 +v 0.312500 -0.187500 -0.500000 +v 0.312500 -0.312500 -0.125000 +v 0.187500 -0.312500 -0.125000 +v 0.187500 -0.187500 -0.125000 +v 0.312500 -0.187500 -0.125000 +v 0.312500 0.187500 -0.500000 +v 0.187500 0.187500 -0.500000 +v 0.187500 0.312500 -0.500000 +v 0.312500 0.187500 -0.125000 +v 0.187500 0.187500 -0.125000 +v 0.187500 0.312500 -0.125000 +v 0.312500 0.312500 -0.125000 +v -0.187500 -0.312500 -0.062500 +v 0.312500 -0.312500 -0.062500 +v 0.312500 0.312500 -0.062500 +v -0.187500 -0.312500 0.000000 +v -0.187500 0.312500 0.000000 +v 0.312500 -0.312500 0.000000 +v 0.312500 0.312500 0.000000 +v -0.312500 -0.312500 0.500000 +v -0.187500 -0.312500 0.500000 +v -0.187500 -0.187500 0.500000 +v -0.312500 -0.187500 0.500000 +v -0.312500 0.187500 0.500000 +v -0.187500 0.187500 0.500000 +v -0.187500 0.312500 0.500000 +v -0.312500 0.312500 0.500000 +v -0.187500 0.312500 -0.062500 +v -0.257812 -0.187500 0.437500 +v -0.257813 0.187500 0.437500 +v -0.257812 -0.187500 0.062500 +v -0.257813 0.187500 0.062500 +v -0.242187 -0.187500 0.437500 +v -0.242187 0.187500 0.437500 +v -0.242188 -0.187500 0.062500 +v -0.242188 0.187500 0.062500 +v 0.312500 0.187500 -0.500000 +v 0.187500 0.187500 -0.500000 +v 0.187500 0.312500 -0.500000 +v 0.312500 0.312500 -0.500000 +v 0.312500 0.187500 -0.125000 +v 0.187500 0.312500 -0.125000 +v 0.312500 0.312500 -0.125000 +v -0.187500 -0.312500 -0.500000 +v -0.312500 -0.187500 -0.500000 +v -0.187500 -0.187500 -0.500000 +v -0.187500 -0.312500 0.500000 +v -0.312500 -0.187500 0.500000 +v -0.187500 -0.187500 0.500000 +v -0.187500 0.187500 0.500000 +v -0.187500 0.312500 -0.500000 +v -0.312500 -0.312500 0.500000 +v -0.187500 -0.312500 0.500000 +v -0.187500 -0.187500 -0.500000 +v -0.312500 -0.187500 -0.500000 +v -0.312500 -0.312500 -0.500000 +v -0.187500 -0.312500 -0.500000 +v -0.312500 0.312500 -0.500000 +v -0.312500 0.187500 -0.500000 +v -0.187500 0.187500 -0.500000 +v -0.312500 -0.187500 0.500000 +v -0.312500 0.187500 0.500000 +v -0.312500 0.312500 0.500000 +v -0.187500 0.312500 0.500000 +v -0.187500 0.187500 -0.125000 +v -0.187500 0.187500 0.000000 +v -0.187500 -0.187500 -0.125000 +v -0.187500 -0.187500 0.000000 +v -0.312500 0.187500 -0.125000 +v -0.312500 0.187500 0.000000 +v -0.312500 -0.187500 -0.125000 +v -0.312500 -0.187500 -0.062500 +v -0.312500 -0.187500 0.000000 +v -0.312500 0.187500 -0.062500 vt 0.125000 0.375000 vt 0.625000 0.375000 vt 0.625000 0.437500 @@ -155,12 +155,12 @@ vt 0.750000 0.750000 vt 0.250000 0.750000 vt 0.312500 0.625000 vt 0.687500 0.625000 +vn 0.000000 -1.000000 0.000000 vn 1.000000 0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn -0.000000 1.000000 0.000000 vn 0.000000 0.000000 -1.000000 vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 g Cylinder_Cylinder_wood s off f 1/1/1 7/2/1 19/3/1 18/4/1 diff --git a/homedecor/textures/homedecor_armchair_inv.png b/homedecor/textures/homedecor_armchair_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..41eb85dda8e8c5b4d7275d1607ad42ec6474b0bd GIT binary patch literal 6376 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 Brr7`h literal 0 HcmV?d00001