From a599b041d414fad6ab492baf3d310b363b862f32 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Mon, 6 Feb 2017 09:31:31 -0500 Subject: [PATCH] convert books to param2 colorization requires unified dyes commit b0ccff16 or later --- homedecor/books.lua | 356 ++++++++------- homedecor/models/homedecor_book.obj | 236 ++++++---- homedecor/models/homedecor_book_open.obj | 457 ++++++++++---------- homedecor/textures/homedecor_book_cover.png | Bin 1899 -> 2339 bytes 4 files changed, 591 insertions(+), 458 deletions(-) diff --git a/homedecor/books.lua b/homedecor/books.lua index fecbcece..74c8f90c 100644 --- a/homedecor/books.lua +++ b/homedecor/books.lua @@ -3,159 +3,154 @@ local S = homedecor_i18n.gettext local function N_(x) return x end -local bookcolors = { - { N_("red"), "#c00000:150" }, - { N_("green"), "#008000:150" }, - { N_("blue"), "#4040c0:150" }, - { N_("violet"), "#600070:150" }, - { N_("grey"), "#202020:150" }, - { N_("brown"), "#603010:175" } -} - local BOOK_FORMNAME = "homedecor:book_form" local player_current_book = { } -for _, c in ipairs(bookcolors) do - local color, hue = unpack(c) - - local function book_dig(pos, node, digger) - if minetest.is_protected(pos, digger:get_player_name()) then return end - local meta = minetest.get_meta(pos) - local data = minetest.serialize({ - title = meta:get_string("title") or "", - text = meta:get_string("text") or "", - owner = meta:get_string("owner") or "", - _recover = meta:get_string("_recover") or "", - }) - local stack = ItemStack({ - name = "homedecor:book_"..color, - metadata = data, - }) - stack = digger:get_inventory():add_item("main", stack) - if not stack:is_empty() then - minetest.item_drop(stack, digger, pos) - end - minetest.remove_node(pos) +local function book_dig(pos, node, digger) + if minetest.is_protected(pos, digger:get_player_name()) then return end + local meta = minetest.get_meta(pos) + local data = minetest.serialize({ + title = meta:get_string("title") or "", + text = meta:get_string("text") or "", + owner = meta:get_string("owner") or "", + _recover = meta:get_string("_recover") or "", + }) + local stack = ItemStack({ + name = "homedecor:book", + metadata = data, + }) + stack = digger:get_inventory():add_item("main", stack) + if not stack:is_empty() then + minetest.item_drop(stack, digger, pos) end - - local inv_img = "homedecor_book_inv.png^[colorize:"..hue.."^homedecor_book_trim_inv.png" - - homedecor.register("book_"..color, { - description = S("Writable Book (@1)", S(color)), - mesh = "homedecor_book.obj", - tiles = { - "(homedecor_book_cover.png^[colorize:"..hue..")^homedecor_book_cover_trim.png", - "homedecor_book_edges.png" - }, - inventory_image = inv_img, - wield_image = inv_img, - groups = { snappy=3, oddly_breakable_by_hand=3, book=1 }, - walkable = false, - stack_max = 1, - on_punch = function(pos, node, puncher, pointed_thing) - local fdir = node.param2 - minetest.swap_node(pos, { name = "homedecor:book_open_"..color, param2 = fdir }) - end, - on_place = function(itemstack, placer, pointed_thing) - local plname = placer:get_player_name() - local pos = pointed_thing.under - local node = minetest.get_node_or_nil(pos) - local def = node and minetest.registered_nodes[node.name] - if not def or not def.buildable_to then - pos = pointed_thing.above - node = minetest.get_node_or_nil(pos) - def = node and minetest.registered_nodes[node.name] - if not def or not def.buildable_to then return itemstack end - end - if minetest.is_protected(pos, plname) then return itemstack end - local fdir = minetest.dir_to_facedir(placer:get_look_dir()) - minetest.set_node(pos, { - name = "homedecor:book_"..color, - param2 = fdir, - }) - local text = itemstack:get_metadata() or "" - local meta = minetest.get_meta(pos) - local data = minetest.deserialize(text) or {} - if type(data) ~= "table" then - data = {} - -- Store raw metadata in case some data is lost by the - -- transition to the new meta format, so it is not lost - -- and can be recovered if needed. - meta:set_string("_recover", text) - end - meta:set_string("title", data.title or "") - meta:set_string("text", data.text or "") - meta:set_string("owner", data.owner or "") - if data.title and data.title ~= "" then - meta:set_string("infotext", data.title) - end - if not homedecor.expect_infinite_stacks then - itemstack:take_item() - end - return itemstack - end, - on_dig = book_dig, - selection_box = { - type = "fixed", - fixed = {-0.2, -0.5, -0.25, 0.2, -0.35, 0.25} - } - }) - - homedecor.register("book_open_"..color, { - mesh = "homedecor_book_open.obj", - tiles = { - "(homedecor_book_cover.png^[colorize:"..hue..")^homedecor_book_cover_trim.png", - "homedecor_book_edges.png", - "homedecor_book_pages.png" - }, - groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1 }, - drop = "homedecor:book_"..color, - walkable = false, - on_dig = book_dig, - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - local meta = minetest.get_meta(pos) - local player_name = clicker:get_player_name() - local title = meta:get_string("title") or "" - local text = meta:get_string("text") or "" - local owner = meta:get_string("owner") or "" - local formspec - if owner == "" or owner == player_name then - formspec = "size[8,8]"..default.gui_bg..default.gui_bg_img.. - "field[0.5,1;7.5,0;title;Book title :;".. - minetest.formspec_escape(title).."]".. - "textarea[0.5,1.5;7.5,7;text;Book content :;".. - minetest.formspec_escape(text).."]".. - "button_exit[2.5,7.5;3,1;save;Save]" - else - formspec = "size[8,8]"..default.gui_bg.. - "button_exit[7,0.25;1,0.5;close;X]".. - default.gui_bg_img.. - "label[0.5,0.5;by "..owner.."]".. - "label[0.5,0;"..minetest.formspec_escape(title).."]".. - "textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]" - end - player_current_book[player_name] = pos - minetest.show_formspec(player_name, BOOK_FORMNAME, formspec) - return itemstack - end, - on_punch = function(pos, node, puncher, pointed_thing) - local fdir = node.param2 - minetest.swap_node(pos, { name = "homedecor:book_"..color, param2 = fdir }) - minetest.sound_play("homedecor_book_close", { - pos=pos, - max_hear_distance = 3, - gain = 2, - }) - end, - selection_box = { - type = "fixed", - fixed = {-0.35, -0.5, -0.25, 0.35, -0.4, 0.25} - } - }) - + minetest.remove_node(pos) end +local inv_img = "homedecor_book_inv.png^homedecor_book_trim_inv.png" + +homedecor.register("book", { + description = S("Writable Book"), + mesh = "homedecor_book.obj", + tiles = { + "homedecor_book_cover.png", + { name = "homedecor_book_edges.png", color = 0xffffffff }, + { name = "homedecor_book_cover_trim.png", color = 0xffffffff } + }, + inventory_image = inv_img, + wield_image = inv_img, + groups = { snappy=3, oddly_breakable_by_hand=3, book=1, ud_param2_colorable = 1 }, + walkable = false, + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + after_place_node = homedecor.fix_rotation_nsew, + after_dig_node = unifieddyes.after_dig_node, + stack_max = 1, + on_punch = function(pos, node, puncher, pointed_thing) + local fdir = node.param2 + minetest.swap_node(pos, { name = "homedecor:book_open", param2 = fdir }) + end, + on_place = function(itemstack, placer, pointed_thing) + local plname = placer:get_player_name() + local pos = pointed_thing.under + local node = minetest.get_node_or_nil(pos) + local def = node and minetest.registered_nodes[node.name] + if not def or not def.buildable_to then + pos = pointed_thing.above + node = minetest.get_node_or_nil(pos) + def = node and minetest.registered_nodes[node.name] + if not def or not def.buildable_to then return itemstack end + end + if minetest.is_protected(pos, plname) then return itemstack end + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + minetest.set_node(pos, { + name = "homedecor:book", + param2 = fdir, + }) + local text = itemstack:get_metadata() or "" + local meta = minetest.get_meta(pos) + local data = minetest.deserialize(text) or {} + if type(data) ~= "table" then + data = {} + -- Store raw metadata in case some data is lost by the + -- transition to the new meta format, so it is not lost + -- and can be recovered if needed. + meta:set_string("_recover", text) + end + meta:set_string("title", data.title or "") + meta:set_string("text", data.text or "") + meta:set_string("owner", data.owner or "") + if data.title and data.title ~= "" then + meta:set_string("infotext", data.title) + end + if not homedecor.expect_infinite_stacks then + itemstack:take_item() + end + return itemstack + end, + on_dig = book_dig, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.25, 0.2, -0.35, 0.25} + } +}) + +homedecor.register("book_open", { + mesh = "homedecor_book_open.obj", + tiles = { + "homedecor_book_cover.png", + { name = "homedecor_book_edges.png", color = 0xffffffff }, + { name = "homedecor_book_pages.png", color = 0xffffffff } + }, + groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1, ud_param2_colorable = 1 }, + drop = "homedecor:book", + walkable = false, + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + after_place_node = homedecor.fix_rotation_nsew, + after_dig_node = unifieddyes.after_dig_node, + on_dig = book_dig, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + local player_name = clicker:get_player_name() + local title = meta:get_string("title") or "" + local text = meta:get_string("text") or "" + local owner = meta:get_string("owner") or "" + local formspec + if owner == "" or owner == player_name then + formspec = "size[8,8]"..default.gui_bg..default.gui_bg_img.. + "field[0.5,1;7.5,0;title;Book title :;".. + minetest.formspec_escape(title).."]".. + "textarea[0.5,1.5;7.5,7;text;Book content :;".. + minetest.formspec_escape(text).."]".. + "button_exit[2.5,7.5;3,1;save;Save]" + else + formspec = "size[8,8]"..default.gui_bg.. + "button_exit[7,0.25;1,0.5;close;X]".. + default.gui_bg_img.. + "label[0.5,0.5;by "..owner.."]".. + "label[0.5,0;"..minetest.formspec_escape(title).."]".. + "textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]" + end + player_current_book[player_name] = pos + minetest.show_formspec(player_name, BOOK_FORMNAME, formspec) + return itemstack + end, + on_punch = function(pos, node, puncher, pointed_thing) + local fdir = node.param2 + minetest.swap_node(pos, { name = "homedecor:book", param2 = fdir }) + minetest.sound_play("homedecor_book_close", { + pos=pos, + max_hear_distance = 3, + gain = 2, + }) + end, + selection_box = { + type = "fixed", + fixed = {-0.35, -0.5, -0.25, 0.35, -0.4, 0.25} + } +}) + minetest.register_on_player_receive_fields(function(player, form_name, fields) if form_name ~= BOOK_FORMNAME or not fields.save then return @@ -173,3 +168,72 @@ minetest.register_on_player_receive_fields(function(player, form_name, fields) minetest.log("action", S("@1 has written in a book (title: \"@2\"): \"@3\" at location @4", player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:getpos()))) end) + +-- convert old static nodes to param2 + +local bookcolors = { + "red", + "green", + "blue", + "violet", + "grey", + "brown" +} + +homedecor.old_static_books = {} +for _, color in ipairs(bookcolors) do + table.insert(homedecor.old_static_books, "homedecor:book_"..color) + table.insert(homedecor.old_static_books, "homedecor:book_open_"..color) +end + +minetest.register_lbm({ + name = "homedecor:convert_books", + label = "Convert homedecor books to use param2 color", + run_at_every_load = true, + nodenames = homedecor.old_static_books, + action = function(pos, node) + local name = node.name + local color = string.sub(name, string.find(name, "_", -7)+1) + local newname = "homedecor:book" + if string.find(name, "open") then + newname = "homedecor:book_open" + 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 + + if color == "grey" then + color = "dark_grey" + elseif color == "violet" then + color = "dark_magenta" + elseif color == "brown" then + color = "dark_orange" + elseif color == "blue" then + color = "light_blue" + else + color = "medium_"..color + end + + print(name.." --> "..newname, color) + + local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted") + local param2 = paletteidx + new_fdir + + print(" ("..paletteidx..", "..param2..")") + + minetest.swap_node(pos, { name = newname, param2 = param2 }) + local meta = minetest.get_meta(pos) + meta:set_string("dye", "unifieddyes:"..color) + + end +}) diff --git a/homedecor/models/homedecor_book.obj b/homedecor/models/homedecor_book.obj index 9b039861..c7a3af7e 100644 --- a/homedecor/models/homedecor_book.obj +++ b/homedecor/models/homedecor_book.obj @@ -1,60 +1,92 @@ -# Blender v2.73 (sub 0) OBJ File: 'book.blend' +# Blender v2.72 (sub 0) OBJ File: 'book.blend' # www.blender.org o Cube.002_Cube.001 -v 0.161995 -0.448008 0.216625 -v 0.149566 -0.485966 0.216625 -v 0.113157 -0.485966 0.216625 -v 0.142021 -0.448008 0.216625 -v 0.115781 -0.485966 0.208120 -v 0.142021 -0.448008 0.208120 -v 0.113157 -0.485966 -0.220555 -v -0.159347 -0.485966 -0.220555 -v 0.115781 -0.485966 -0.212050 -v 0.161995 -0.448008 0.208120 -v -0.148926 -0.485966 0.208120 -v -0.155653 -0.448008 0.208120 -v -0.155653 -0.448008 -0.212051 -v -0.148926 -0.485966 -0.212051 -v 0.152482 -0.485966 0.208120 -v 0.152482 -0.485966 -0.212050 -v 0.161995 -0.448008 -0.220555 -v 0.161995 -0.448008 -0.212050 -v 0.145193 -0.500002 -0.212050 -v 0.145193 -0.500002 0.208120 -v 0.115781 -0.500002 0.208120 -v 0.115781 -0.500002 -0.212050 -v 0.115781 -0.396013 -0.212050 -v 0.115781 -0.396013 0.208120 -v 0.145193 -0.396013 0.208120 -v 0.145193 -0.396013 -0.212050 -v 0.152482 -0.410049 -0.212050 -v 0.152482 -0.410049 0.208120 -v -0.148926 -0.410049 -0.212051 -v -0.148926 -0.410049 0.208120 -v 0.115781 -0.410049 -0.212050 -v -0.159347 -0.410049 -0.220555 -v 0.113157 -0.410049 -0.220555 -v 0.115781 -0.410049 0.208120 -v 0.113157 -0.410049 0.216625 -v 0.149566 -0.410049 0.216625 -v 0.115781 -0.396013 0.216625 -v 0.141549 -0.396013 0.216625 -v 0.149566 -0.410049 -0.220555 -v 0.141549 -0.396013 -0.220555 -v -0.159346 -0.396013 -0.220555 -v -0.159347 -0.396013 0.216624 -v 0.115781 -0.396013 -0.220555 -v -0.159347 -0.410049 0.216624 -v 0.115781 -0.500002 0.216625 -v 0.141549 -0.500002 0.216625 -v 0.142021 -0.448008 -0.212050 -v 0.149566 -0.485966 -0.220555 -v 0.141549 -0.500002 -0.220555 -v -0.159346 -0.500002 -0.220555 -v -0.159347 -0.500002 0.216624 -v 0.142021 -0.448008 -0.220555 -v 0.115781 -0.500002 -0.220555 -v -0.159347 -0.485966 0.216624 +v -0.216625 -0.161995 -0.448008 +v -0.216625 -0.149566 -0.485966 +v -0.216625 -0.113157 -0.485966 +v -0.216625 -0.142021 -0.448008 +v -0.208120 -0.115781 -0.485966 +v -0.208120 -0.142021 -0.448008 +v 0.220555 -0.113157 -0.485966 +v 0.220555 0.159347 -0.485966 +v 0.212050 -0.115781 -0.485966 +v -0.208120 -0.161995 -0.448008 +v -0.208120 0.148926 -0.485966 +v -0.208120 0.155653 -0.448008 +v 0.212051 0.155653 -0.448008 +v 0.212051 0.148926 -0.485966 +v -0.208120 -0.152482 -0.485966 +v 0.212050 -0.152482 -0.485966 +v 0.220555 -0.161995 -0.448008 +v 0.212050 -0.161995 -0.448008 +v 0.212050 -0.145193 -0.500002 +v -0.208120 -0.145193 -0.500002 +v -0.208120 -0.115781 -0.500002 +v 0.212050 -0.115781 -0.500002 +v 0.212050 -0.115781 -0.396013 +v -0.208120 -0.115781 -0.396013 +v -0.208120 -0.145193 -0.396013 +v 0.212050 -0.145193 -0.396013 +v 0.212050 -0.152482 -0.410049 +v -0.208120 -0.152482 -0.410049 +v 0.212051 0.148926 -0.410049 +v -0.208120 0.148926 -0.410049 +v 0.212050 -0.115781 -0.410049 +v 0.220555 0.159347 -0.410049 +v 0.220555 -0.113157 -0.410049 +v -0.208120 -0.115781 -0.410049 +v -0.216625 -0.113157 -0.410049 +v -0.216625 -0.149566 -0.410049 +v -0.216625 -0.115781 -0.396013 +v -0.216625 -0.141549 -0.396013 +v 0.220555 -0.149566 -0.410049 +v 0.220555 -0.141549 -0.396013 +v 0.220555 0.159346 -0.396013 +v -0.216624 0.159347 -0.396013 +v 0.220555 -0.115781 -0.396013 +v -0.216624 0.159347 -0.410049 +v -0.216625 -0.115781 -0.500002 +v -0.216625 -0.141549 -0.500002 +v 0.212050 -0.142021 -0.448008 +v 0.220555 -0.149566 -0.485966 +v 0.220555 -0.141549 -0.500002 +v 0.220555 0.159346 -0.500002 +v -0.216624 0.159347 -0.500002 +v 0.220555 -0.142021 -0.448008 +v 0.220555 -0.115781 -0.500002 +v -0.216624 0.159347 -0.485966 +v -0.216625 -0.162729 -0.448008 +v -0.216625 -0.150269 -0.486432 +v -0.208120 -0.162729 -0.448008 +v -0.208120 -0.153192 -0.486432 +v 0.212050 -0.153192 -0.486432 +v 0.220555 -0.162729 -0.448008 +v 0.212050 -0.162729 -0.448008 +v 0.212050 -0.145885 -0.500640 +v -0.208120 -0.145885 -0.500640 +v -0.208120 -0.116399 -0.500640 +v 0.212050 -0.116399 -0.500640 +v 0.212050 -0.116399 -0.395375 +v -0.208120 -0.116399 -0.395375 +v -0.208120 -0.145885 -0.395375 +v 0.212050 -0.145885 -0.395375 +v 0.212050 -0.153192 -0.409583 +v -0.208120 -0.153192 -0.409583 +v -0.216625 -0.150269 -0.409583 +v -0.216625 -0.116399 -0.395375 +v -0.216625 -0.142232 -0.395375 +v 0.220555 -0.150269 -0.409583 +v 0.220555 -0.142232 -0.395375 +v 0.220555 0.159416 -0.395375 +v -0.216624 0.159417 -0.395375 +v 0.220555 -0.116399 -0.395375 +v -0.216625 -0.116399 -0.500640 +v -0.216625 -0.142232 -0.500640 +v 0.220555 -0.150269 -0.486432 +v 0.220555 -0.142232 -0.500640 +v 0.220555 0.159416 -0.500640 +v -0.216624 0.159417 -0.500640 +v 0.220555 -0.116399 -0.500640 vt 0.921987 0.383861 vt 0.921987 0.340448 vt 0.931829 0.340448 @@ -149,6 +181,10 @@ vt 0.670829 0.990273 vt 0.667792 1.000000 vt 0.704866 0.000000 vt 0.000000 0.000001 +vt 0.668539 0.639838 +vt 0.640677 0.639838 +vt 0.640677 0.630641 +vt 0.672479 0.630641 vt 0.439305 1.000000 vt 0.439305 0.319104 vt 0.527160 0.379125 @@ -167,29 +203,41 @@ vt 0.263593 0.961094 vt 0.263593 0.000000 vt 0.175736 0.000000 vt 0.175736 0.961094 -vn -0.803100 -0.582900 0.123900 -vn -0.803000 0.582900 0.123900 -vn 0.970000 0.243100 0.000000 -vn 0.947900 0.274000 -0.162500 -vn 0.947900 -0.274000 -0.162500 -vn -0.000000 -1.000000 -0.000000 -vn 0.831600 -0.453400 0.320700 -vn 0.000000 1.000000 -0.000000 -vn 0.000000 0.000000 1.000000 +vn -0.123900 0.803100 -0.582900 +vn -0.123900 0.803000 0.582900 +vn 0.000000 -0.970000 0.243100 +vn 0.162500 -0.947900 0.274000 +vn 0.162500 -0.947900 -0.274000 vn 0.000000 0.000000 -1.000000 -vn -0.803100 -0.582900 -0.123900 -vn -1.000000 -0.000000 -0.000000 -vn 0.831600 -0.453400 -0.320700 -vn 0.947900 -0.274000 0.162500 -vn 0.970000 -0.243100 -0.000000 -vn 0.947900 0.274000 0.162500 -vn -0.803000 0.582900 -0.123900 -vn 0.887500 -0.460900 -0.000000 -vn 0.887500 0.460900 -0.000000 -vn 0.831600 0.453400 -0.320700 -vn 0.831600 0.453400 0.320700 -vn -0.984700 -0.174500 -0.000000 -vn -0.984700 0.174500 0.000000 +vn -0.320700 -0.831600 -0.453400 +vn 0.000000 -0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.123900 0.803100 -0.582900 +vn 0.000000 1.000000 -0.000000 +vn 0.320700 -0.831600 -0.453400 +vn -0.162500 -0.947900 -0.274000 +vn 0.000000 -0.970000 -0.243100 +vn -0.162500 -0.947900 0.274000 +vn 0.123900 0.803000 0.582900 +vn 0.000000 -0.887500 -0.460900 +vn 0.000000 -0.887500 0.460900 +vn 0.320700 -0.831600 0.453400 +vn -0.320700 -0.831600 0.453400 +vn 0.000000 0.984700 -0.174500 +vn -0.000000 0.984700 0.174500 +vn 0.000000 -0.970600 0.240900 +vn 0.163000 -0.948500 0.271500 +vn 0.163000 -0.948500 -0.271500 +vn -0.322100 -0.833000 -0.449800 +vn 0.322100 -0.833000 -0.449800 +vn -0.163000 -0.948500 -0.271500 +vn 0.000000 -0.970600 -0.240900 +vn -0.163000 -0.948500 0.271500 +vn 0.000000 -0.889300 -0.457400 +vn 0.000000 -0.889300 0.457400 +vn 0.322100 -0.833000 0.449800 +vn -0.322100 -0.833000 0.449800 g Cube.002_Cube.001_Cube.002_Cube.001_cover s off f 47/1/1 31/2/1 33/3/1 52/4/1 @@ -231,10 +279,32 @@ f 28/9/21 25/72/21 38/93/21 36/60/21 f 29/74/6 30/90/6 44/84/6 32/20/6 f 41/26/8 42/94/8 37/76/8 24/68/8 23/67/8 43/50/8 f 54/26/8 11/25/8 14/65/8 8/64/8 +f 46/95/6 45/96/6 21/97/6 20/98/6 g Cube.002_Cube.001_Cube.002_Cube.001_edges -f 13/95/10 47/96/10 9/97/10 14/98/10 -f 6/99/9 12/100/9 11/101/9 5/102/9 -f 13/95/10 29/103/10 31/104/10 47/96/10 -f 6/99/9 34/105/9 30/106/9 12/100/9 -f 14/107/22 11/108/22 12/109/22 13/110/22 -f 29/111/23 13/110/23 12/109/23 30/112/23 +f 13/99/10 47/100/10 9/101/10 14/102/10 +f 6/103/9 12/104/9 11/105/9 5/106/9 +f 13/99/10 29/107/10 31/108/10 47/100/10 +f 6/103/9 34/109/9 30/110/9 12/104/9 +f 14/111/22 11/112/22 12/113/22 13/114/22 +f 29/115/23 13/114/23 12/113/23 30/116/23 +g Cube.002_Cube.001_Cube.002_Cube.001_trim +f 61/7/24 70/8/24 71/9/24 57/10/24 +f 70/8/25 61/7/25 60/11/25 75/12/25 +f 59/13/26 82/14/26 60/11/26 61/7/26 +f 84/15/6 86/16/6 65/17/6 64/18/6 80/19/6 85/20/6 +f 58/21/27 56/22/27 81/23/27 63/24/27 +f 65/17/6 86/16/6 83/29/6 62/30/6 +f 62/55/28 83/56/28 82/14/28 59/13/28 +f 57/10/29 55/59/29 56/22/29 58/21/29 +f 61/7/30 57/10/30 58/21/30 59/13/30 +f 57/10/31 71/9/31 72/60/31 55/59/31 +f 59/13/32 58/21/32 63/24/32 62/55/32 +f 65/17/6 62/30/6 63/66/6 64/18/6 +f 66/67/8 67/68/8 68/69/8 69/70/8 +f 70/8/33 69/71/33 68/72/33 71/9/33 +f 68/69/8 67/68/8 73/76/8 74/77/8 +f 69/71/34 70/8/34 75/12/34 76/78/34 +f 66/67/8 69/70/8 76/89/8 79/50/8 +f 71/9/35 68/72/35 74/93/35 72/60/35 +f 77/26/8 78/94/8 73/76/8 67/68/8 66/67/8 79/50/8 +f 81/95/6 80/96/6 64/97/6 63/98/6 diff --git a/homedecor/models/homedecor_book_open.obj b/homedecor/models/homedecor_book_open.obj index 046b6de1..ab2c1b30 100644 --- a/homedecor/models/homedecor_book_open.obj +++ b/homedecor/models/homedecor_book_open.obj @@ -1,84 +1,84 @@ -# Blender v2.73 (sub 0) OBJ File: 'book-open.blend' +# Blender v2.72 (sub 0) OBJ File: 'book-open.blend' # www.blender.org o Cube.002_Cube.001 -v -0.012428 -0.485966 0.216625 -v 0.000001 -0.486750 -0.220555 -v -0.321341 -0.485966 -0.220555 -v 0.000001 -0.462863 0.208120 -v -0.310920 -0.485966 0.208120 -v -0.306022 -0.464409 0.208120 -v -0.306022 -0.464409 -0.212051 -v -0.310920 -0.485966 -0.212051 -v 0.000001 -0.462862 -0.212050 -v -0.016802 -0.500002 -0.212050 -v -0.016802 -0.500002 0.208120 -v -0.046214 -0.500002 0.208120 -v -0.046214 -0.500002 -0.212050 -v -0.046214 -0.500002 0.216625 -v -0.020445 -0.500002 0.216625 -v -0.012428 -0.485966 -0.220555 -v -0.020445 -0.500002 -0.220555 -v -0.321340 -0.500002 -0.220555 -v -0.321341 -0.500002 0.216624 -v -0.046214 -0.500002 -0.220555 -v -0.321341 -0.485966 0.216624 -v -0.238235 -0.450057 0.208120 -v 0.000001 -0.486750 0.216625 -v -0.238235 -0.450057 -0.212051 -v 0.306023 -0.464409 0.208120 -v 0.306023 -0.464409 -0.212051 -v 0.238237 -0.450057 0.208120 -v 0.238237 -0.450057 -0.212051 -v 0.046215 -0.500003 -0.212050 -v 0.046215 -0.500003 0.208120 -v 0.016803 -0.500003 0.208120 -v 0.016803 -0.500003 -0.212050 -v 0.000001 -0.481442 0.216625 -v 0.000001 -0.481442 -0.220555 -v 0.310922 -0.485967 -0.212051 -v 0.310922 -0.485967 0.208120 -v 0.321343 -0.485967 -0.220555 -v 0.012430 -0.485967 0.216625 -v 0.046215 -0.500003 0.216625 -v 0.020447 -0.500003 0.216625 -v 0.012430 -0.485967 -0.220555 -v 0.020447 -0.500003 -0.220555 -v 0.321342 -0.500003 -0.220555 -v 0.321343 -0.500003 0.216624 -v 0.046215 -0.500003 -0.220555 -v 0.321343 -0.485967 0.216624 -v 0.000001 -0.486750 0.208120 -v 0.000001 -0.486750 -0.212050 -v 0.086920 -0.442244 -0.212051 -v 0.086920 -0.442244 0.208120 -v -0.086847 -0.442244 -0.212051 -v -0.086847 -0.442244 0.208120 -v -0.043405 -0.447755 -0.212050 -v -0.043405 -0.447755 0.208120 -v 0.043478 -0.447755 -0.212050 -v 0.043478 -0.447755 0.208120 -v 0.010224 -0.490836 0.216625 -v -0.006214 -0.482857 0.216625 -v -0.006214 -0.482857 -0.220555 -v -0.008400 -0.490836 0.208120 -v -0.008400 -0.490836 -0.212050 -v -0.010222 -0.490836 -0.220555 -v -0.010222 -0.490836 0.216625 -v 0.010224 -0.490836 -0.220555 -v 0.008402 -0.490836 -0.212050 -v 0.008402 -0.490836 0.208120 -v 0.006215 -0.482858 -0.220555 -v 0.006215 -0.482858 0.216625 -v -0.012428 -0.485966 -0.212050 -v 0.000001 -0.481442 -0.212050 -v 0.012430 -0.485967 -0.212050 -v -0.006214 -0.482857 -0.212050 -v 0.006215 -0.482858 -0.212050 -v -0.012428 -0.485966 0.208120 -v 0.000001 -0.481442 0.208120 -v 0.012430 -0.485967 0.208120 -v -0.006214 -0.482857 0.208120 -v 0.006215 -0.482858 0.208120 +v -0.216625 0.012428 -0.485966 +v 0.220555 -0.000000 -0.486750 +v 0.220555 0.321341 -0.485966 +v -0.208120 -0.000001 -0.462863 +v -0.208120 0.310920 -0.485966 +v -0.208120 0.306022 -0.464409 +v 0.212051 0.306022 -0.464409 +v 0.212051 0.310921 -0.485966 +v 0.212050 -0.000000 -0.462862 +v 0.212050 0.016802 -0.500002 +v -0.208120 0.016801 -0.500002 +v -0.208120 0.046213 -0.500002 +v 0.212050 0.046214 -0.500002 +v -0.216625 0.046213 -0.500002 +v -0.216625 0.020445 -0.500002 +v 0.220555 0.012429 -0.485966 +v 0.220555 0.020446 -0.500002 +v 0.220555 0.321340 -0.500002 +v -0.216624 0.321341 -0.500002 +v 0.220555 0.046214 -0.500002 +v -0.216624 0.321341 -0.485966 +v -0.208120 0.238235 -0.450057 +v -0.216625 -0.000001 -0.486750 +v 0.212051 0.238236 -0.450057 +v -0.208120 -0.306023 -0.464409 +v 0.212051 -0.306023 -0.464409 +v -0.208120 -0.238237 -0.450057 +v 0.212051 -0.238237 -0.450057 +v 0.212050 -0.046214 -0.500003 +v -0.208120 -0.046215 -0.500003 +v -0.208120 -0.016803 -0.500003 +v 0.212050 -0.016803 -0.500003 +v -0.216625 -0.000001 -0.481442 +v 0.220555 -0.000000 -0.481442 +v 0.212051 -0.310922 -0.485967 +v -0.208120 -0.310922 -0.485967 +v 0.220555 -0.321342 -0.485967 +v -0.216625 -0.012430 -0.485967 +v -0.216625 -0.046215 -0.500003 +v -0.216625 -0.020447 -0.500003 +v 0.220555 -0.012429 -0.485967 +v 0.220555 -0.020446 -0.500003 +v 0.220555 -0.321341 -0.500003 +v -0.216624 -0.321343 -0.500003 +v 0.220555 -0.046214 -0.500003 +v -0.216624 -0.321343 -0.485967 +v -0.208120 -0.000001 -0.486750 +v 0.212050 -0.000000 -0.486750 +v 0.212051 -0.086920 -0.442244 +v -0.208120 -0.086920 -0.442244 +v 0.212051 0.086847 -0.442244 +v -0.208120 0.086847 -0.442244 +v 0.212050 0.043405 -0.447755 +v -0.208120 0.043405 -0.447755 +v 0.212050 -0.043478 -0.447755 +v -0.208120 -0.043478 -0.447755 +v -0.216625 -0.010224 -0.490836 +v -0.216625 0.006214 -0.482857 +v 0.220555 0.006214 -0.482857 +v -0.208120 0.008400 -0.490836 +v 0.212050 0.008401 -0.490836 +v 0.220555 0.010223 -0.490836 +v -0.216625 0.010222 -0.490836 +v 0.220555 -0.010223 -0.490836 +v 0.212050 -0.008401 -0.490836 +v -0.208120 -0.008402 -0.490836 +v 0.220555 -0.006215 -0.482858 +v -0.216625 -0.006215 -0.482858 +v 0.212050 0.012429 -0.485966 +v 0.212050 -0.000000 -0.481442 +v 0.212050 -0.012429 -0.485967 +v 0.212050 0.006214 -0.482857 +v 0.212050 -0.006215 -0.482858 +v -0.208120 0.012428 -0.485966 +v -0.208120 -0.000001 -0.481442 +v -0.208120 -0.012430 -0.485967 +v -0.208120 0.006214 -0.482857 +v -0.208120 -0.006215 -0.482858 vt 0.965735 0.839196 vt 0.711783 0.839196 vt 0.711783 0.832541 @@ -249,80 +249,79 @@ vt 0.500000 0.156314 vt 0.568437 0.156314 vt 0.568437 0.984311 vt 0.500000 0.984311 -vn -0.577300 -0.577300 -0.577300 -vn 0.000000 -0.707100 -0.707100 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -0.707100 0.707100 -vn -0.577300 -0.577300 0.577300 -vn 0.280700 0.927500 0.246900 -vn 0.172900 0.732100 0.658800 -vn 0.148700 0.629400 0.762700 -vn 0.577300 0.577300 0.577300 -vn 0.216600 -0.711100 -0.668800 -vn 0.428700 -0.900500 -0.071700 -vn -0.148700 0.629400 0.762700 -vn -0.577300 0.577300 0.577300 -vn 0.216600 -0.711100 0.668800 -vn -0.577300 0.577300 -0.577300 -vn -0.148700 0.629400 -0.762700 -vn -0.172900 0.732100 0.658800 -vn -0.280700 0.927500 0.246900 -vn 0.428700 -0.900500 0.071700 -vn -0.280700 0.927500 -0.246900 -vn -0.428800 -0.900500 0.071700 -vn -0.428800 -0.900500 -0.071700 -vn -0.216600 -0.711100 0.668800 vn 0.577300 0.577300 -0.577300 -vn 0.577300 -0.577300 -0.577300 -vn 0.000000 -0.707100 -0.707000 -vn -0.216600 -0.711100 -0.668800 -vn 0.148700 0.629400 -0.762700 +vn 0.707100 0.000000 -0.707100 +vn 0.000000 0.000000 -1.000000 +vn -0.707100 0.000000 -0.707100 +vn -0.577300 0.577300 -0.577300 +vn -0.246900 -0.280700 0.927500 +vn -0.658800 -0.172900 0.732100 +vn -0.762700 -0.148700 0.629400 +vn -0.577300 -0.577300 0.577300 +vn 0.668800 -0.216600 -0.711100 +vn 0.071700 -0.428700 -0.900500 +vn -0.762700 0.148700 0.629400 +vn -0.577300 0.577300 0.577300 +vn -0.668800 -0.216600 -0.711100 +vn 0.577300 0.577300 0.577300 +vn 0.762700 0.148700 0.629400 +vn -0.658800 0.172900 0.732100 +vn -0.246900 0.280700 0.927500 +vn -0.071700 -0.428700 -0.900500 +vn 0.246900 0.280700 0.927500 +vn -0.071700 0.428800 -0.900500 +vn 0.071700 0.428800 -0.900500 +vn -0.668800 0.216600 -0.711100 vn 0.577300 -0.577300 0.577300 -vn 0.172900 0.732100 -0.658800 -vn 0.280700 0.927500 -0.246900 -vn -0.350300 -0.496700 -0.794100 -vn 0.000000 -0.580000 -0.814600 -vn 0.246900 0.689300 -0.681100 -vn 0.000000 0.750900 -0.660400 -vn -0.246800 0.689300 -0.681100 -vn 0.350300 -0.496700 -0.794100 -vn 0.350300 -0.496700 0.794100 -vn 0.000000 -0.580000 0.814600 -vn -0.246800 0.689300 0.681100 -vn 0.000000 0.750900 0.660400 -vn 0.246900 0.689300 0.681100 -vn -0.350300 -0.496700 0.794100 -vn -0.569600 -0.819500 0.062900 -vn 0.000000 -0.999700 0.023700 -vn 0.569600 -0.819500 0.062900 -vn -0.569600 -0.819500 -0.062900 -vn 0.000000 -0.999700 -0.023700 -vn 0.569600 -0.819500 -0.062900 -vn 0.000000 0.649100 -0.760600 -vn 0.228600 0.638300 -0.735000 -vn -0.172900 0.732100 -0.658800 -vn -0.228600 0.638300 -0.735000 -vn 0.228600 0.638300 0.735000 -vn 0.000000 0.649100 0.760600 -vn -0.228600 0.638300 0.735000 -vn -0.559600 0.567900 0.603500 -vn -0.559600 0.567900 -0.603500 -vn 0.559600 0.567900 -0.603500 -vn 0.559600 0.567900 0.603500 -vn 0.000200 0.614300 -0.789000 -vn 0.166600 0.709800 -0.684400 -vn -0.027100 0.725500 0.687600 -vn -0.166400 0.709800 0.684400 -vn -0.093900 0.717800 -0.689800 -vn 0.027100 0.725500 -0.687600 -vn 0.093900 0.717800 -0.689800 -vn -0.027100 0.725500 -0.687600 -vn -0.166400 0.709800 -0.684400 -vn -0.093900 0.717800 0.689800 -vn 0.027100 0.725500 0.687600 -vn 0.000200 0.614300 0.789000 -vn 0.166600 0.709800 0.684400 -vn 0.093900 0.717800 0.689800 +vn 0.577300 -0.577300 -0.577300 +vn 0.668800 0.216600 -0.711100 +vn 0.762700 -0.148700 0.629400 +vn -0.577300 -0.577300 -0.577300 +vn 0.658800 -0.172900 0.732100 +vn 0.246900 -0.280700 0.927500 +vn 0.794100 0.350300 -0.496700 +vn 0.814600 0.000000 -0.580000 +vn 0.681100 -0.246900 0.689300 +vn 0.660400 0.000000 0.750900 +vn 0.681100 0.246800 0.689300 +vn 0.794100 -0.350300 -0.496700 +vn -0.794100 -0.350300 -0.496700 +vn -0.814600 0.000000 -0.580000 +vn -0.681100 0.246800 0.689300 +vn -0.660400 0.000000 0.750900 +vn -0.681100 -0.246900 0.689300 +vn -0.794100 0.350300 -0.496700 +vn -0.062900 0.569600 -0.819500 +vn -0.023700 0.000000 -0.999700 +vn -0.062900 -0.569600 -0.819500 +vn 0.062900 0.569600 -0.819500 +vn 0.023700 0.000000 -0.999700 +vn 0.062900 -0.569600 -0.819500 +vn 0.760600 0.000000 0.649100 +vn 0.735000 -0.228600 0.638300 +vn 0.658800 0.172900 0.732100 +vn 0.735000 0.228600 0.638300 +vn -0.735000 -0.228600 0.638300 +vn -0.760600 0.000000 0.649100 +vn -0.735000 0.228600 0.638300 +vn -0.603500 0.559600 0.567900 +vn 0.603500 0.559600 0.567900 +vn 0.603500 -0.559600 0.567900 +vn -0.603500 -0.559600 0.567900 +vn 0.789000 -0.000200 0.614300 +vn 0.684400 -0.166600 0.709800 +vn -0.687600 0.027100 0.725500 +vn -0.684400 0.166400 0.709800 +vn 0.689800 0.093900 0.717800 +vn 0.687600 -0.027100 0.725500 +vn 0.689800 -0.093900 0.717800 +vn 0.687600 0.027100 0.725500 +vn 0.684400 0.166400 0.709800 +vn -0.689800 0.093900 0.717800 +vn -0.687600 -0.027100 0.725500 +vn -0.789000 -0.000200 0.614300 +vn -0.684400 -0.166600 0.709800 +vn -0.689800 -0.093900 0.717800 g Cube.002_Cube.001_Cube.002_Cube.001_cover s 1 f 18/1/1 20/2/2 13/3/3 12/4/3 14/5/4 19/6/5 @@ -336,84 +335,84 @@ f 13/3/3 10/12/11 11/31/19 12/4/3 f 21/30/13 5/29/18 8/32/20 3/33/15 f 29/34/3 30/35/3 31/31/21 32/12/22 f 31/31/21 30/35/3 39/36/4 40/37/23 -f 37/38/24 43/39/25 45/40/26 42/41/27 41/42/28 -f 43/43/25 37/21/24 46/20/9 44/44/29 -f 38/45/8 40/46/23 39/47/4 44/48/29 46/49/9 -f 29/34/3 32/12/22 42/50/27 45/51/26 -f 41/52/28 71/53/30 35/54/31 37/55/24 -f 35/54/31 36/7/6 46/10/9 37/55/24 -f 43/56/25 44/57/29 39/36/4 30/35/3 29/34/3 45/51/26 +f 37/38/24 43/39/25 45/40/2 42/41/26 41/42/27 +f 43/43/25 37/21/24 46/20/9 44/44/28 +f 38/45/8 40/46/23 39/47/4 44/48/28 46/49/9 +f 29/34/3 32/12/22 42/50/26 45/51/2 +f 41/52/27 71/53/29 35/54/30 37/55/24 +f 35/54/30 36/7/6 46/10/9 37/55/24 +f 43/56/25 44/57/28 39/36/4 30/35/3 29/34/3 45/51/2 f 15/58/14 14/5/4 12/4/3 11/31/19 -f 42/41/27 64/59/32 41/42/28 -f 41/42/28 64/59/32 2/60/33 67/61/34 -f 67/61/34 2/60/33 34/62/35 -f 34/62/35 2/60/33 59/63/36 -f 2/60/33 62/64/37 16/23/16 59/63/36 -f 16/23/16 62/64/37 17/24/10 -f 15/17/14 63/65/38 1/13/12 -f 23/66/39 58/67/40 1/13/12 63/65/38 -f 58/67/40 23/66/39 33/68/41 -f 68/69/42 33/68/41 23/66/39 -f 38/45/8 68/69/42 23/66/39 57/70/43 -f 57/70/43 40/46/23 38/45/8 -f 40/71/23 57/72/43 66/73/44 31/74/21 -f 57/44/43 23/75/39 47/76/45 66/77/44 -f 47/76/45 23/75/39 63/78/38 60/79/46 -f 15/71/14 11/80/19 60/81/46 63/82/38 -f 32/83/22 65/84/47 64/85/32 42/86/27 -f 64/43/32 65/87/47 48/88/48 2/89/33 -f 48/88/48 61/90/49 62/91/37 2/89/33 -f 17/86/10 62/92/37 61/93/49 10/94/11 -f 67/95/34 34/96/35 70/97/50 73/98/51 -f 59/99/36 16/100/16 69/101/52 72/102/53 -f 41/52/28 67/95/34 73/98/51 71/53/30 -f 34/96/35 59/99/36 72/102/53 70/97/50 -f 33/103/41 68/104/42 78/105/54 75/106/55 -f 1/27/12 58/107/40 77/108/56 74/28/17 -f 68/104/42 38/9/8 76/8/7 78/105/54 -f 58/107/40 33/103/41 75/106/55 77/108/56 -f 8/32/20 69/101/52 16/100/16 3/33/15 -f 10/94/11 61/93/49 60/81/46 11/80/19 -f 47/76/45 60/79/46 61/90/49 48/88/48 -f 65/87/47 66/77/44 47/76/45 48/88/48 -f 31/74/21 66/73/44 65/84/47 32/83/22 +f 42/41/26 64/59/31 41/42/27 +f 41/42/27 64/59/31 2/60/32 67/61/33 +f 67/61/33 2/60/32 34/62/34 +f 34/62/34 2/60/32 59/63/35 +f 2/60/32 62/64/36 16/23/16 59/63/35 +f 16/23/16 62/64/36 17/24/10 +f 15/17/14 63/65/37 1/13/12 +f 23/66/38 58/67/39 1/13/12 63/65/37 +f 58/67/39 23/66/38 33/68/40 +f 68/69/41 33/68/40 23/66/38 +f 38/45/8 68/69/41 23/66/38 57/70/42 +f 57/70/42 40/46/23 38/45/8 +f 40/71/23 57/72/42 66/73/43 31/74/21 +f 57/44/42 23/75/38 47/76/44 66/77/43 +f 47/76/44 23/75/38 63/78/37 60/79/45 +f 15/71/14 11/80/19 60/81/45 63/82/37 +f 32/83/22 65/84/46 64/85/31 42/86/26 +f 64/43/31 65/87/46 48/88/47 2/89/32 +f 48/88/47 61/90/48 62/91/36 2/89/32 +f 17/86/10 62/92/36 61/93/48 10/94/11 +f 67/95/33 34/96/34 70/97/49 73/98/50 +f 59/99/35 16/100/16 69/101/51 72/102/52 +f 41/52/27 67/95/33 73/98/50 71/53/29 +f 34/96/34 59/99/35 72/102/52 70/97/49 +f 33/103/40 68/104/41 78/105/53 75/106/54 +f 1/27/12 58/107/39 77/108/55 74/28/17 +f 68/104/41 38/9/8 76/8/7 78/105/53 +f 58/107/39 33/103/40 75/106/54 77/108/55 +f 8/32/20 69/101/51 16/100/16 3/33/15 +f 10/94/11 61/93/48 60/81/45 11/80/19 +f 47/76/44 60/79/45 61/90/48 48/88/47 +f 65/87/46 66/77/43 47/76/44 48/88/47 +f 31/74/21 66/73/43 65/84/46 32/83/22 g Cube.002_Cube.001_Cube.002_Cube.001_edges -f 8/109/20 5/110/18 6/111/57 7/112/58 -f 35/113/31 26/114/59 25/115/60 36/116/6 -f 9/117/61 69/118/52 53/119/62 -f 50/120/63 56/121/64 76/122/7 -f 24/123/65 69/118/52 8/124/20 -f 9/125/61 71/126/30 73/127/51 -f 51/128/66 53/119/62 69/118/52 -f 9/125/61 73/127/51 70/129/50 -f 28/130/67 26/131/59 35/132/31 -f 71/126/30 49/133/68 28/130/67 -f 72/134/53 69/118/52 9/117/61 -f 71/126/30 55/135/69 49/133/68 -f 28/130/67 35/132/31 71/126/30 -f 24/123/65 8/124/20 7/136/58 -f 69/118/52 24/123/65 51/128/66 -f 9/125/61 55/135/69 71/126/30 -f 70/137/50 72/134/53 9/117/61 -f 22/138/70 6/139/57 5/140/18 -f 74/141/17 52/142/71 22/138/70 -f 75/143/55 78/144/54 4/145/72 -f 74/141/17 54/146/73 52/142/71 -f 22/138/70 5/140/18 74/141/17 -f 27/147/74 76/122/7 36/148/6 -f 4/149/72 74/141/17 77/150/56 -f 27/147/74 50/120/63 76/122/7 -f 4/149/72 77/150/56 75/151/55 -f 4/145/72 78/144/54 76/122/7 -f 4/149/72 54/146/73 74/141/17 -f 27/147/74 36/148/6 25/152/60 -f 56/121/64 4/145/72 76/122/7 +f 8/109/20 5/110/18 6/111/56 7/112/57 +f 35/113/30 26/114/58 25/115/59 36/116/6 +f 9/117/60 69/118/51 53/119/61 +f 50/120/62 56/121/63 76/122/7 +f 24/123/64 69/118/51 8/124/20 +f 9/125/60 71/126/29 73/127/50 +f 51/128/65 53/119/61 69/118/51 +f 9/125/60 73/127/50 70/129/49 +f 28/130/66 26/131/58 35/132/30 +f 71/126/29 49/133/67 28/130/66 +f 72/134/52 69/118/51 9/117/60 +f 71/126/29 55/135/68 49/133/67 +f 28/130/66 35/132/30 71/126/29 +f 24/123/64 8/124/20 7/136/57 +f 69/118/51 24/123/64 51/128/65 +f 9/125/60 55/135/68 71/126/29 +f 70/137/49 72/134/52 9/117/60 +f 22/138/69 6/139/56 5/140/18 +f 74/141/17 52/142/70 22/138/69 +f 75/143/54 78/144/53 4/145/71 +f 74/141/17 54/146/72 52/142/70 +f 22/138/69 5/140/18 74/141/17 +f 27/147/73 76/122/7 36/148/6 +f 4/149/71 74/141/17 77/150/55 +f 27/147/73 50/120/62 76/122/7 +f 4/149/71 77/150/55 75/151/54 +f 4/145/71 78/144/53 76/122/7 +f 4/149/71 54/146/72 74/141/17 +f 27/147/73 36/148/6 25/152/59 +f 56/121/63 4/145/71 76/122/7 g Cube.002_Cube.001_Cube.002_Cube.001_pages -f 50/153/63 27/154/74 28/155/67 49/156/68 -f 6/157/57 22/158/70 24/159/65 7/160/58 -f 27/154/74 25/161/60 26/162/59 28/155/67 -f 52/163/71 54/164/73 53/165/62 51/166/66 -f 22/158/70 52/163/71 51/166/66 24/159/65 -f 4/167/72 56/168/64 55/169/69 9/170/61 -f 54/164/73 4/167/72 9/170/61 53/165/62 -f 56/168/64 50/153/63 49/156/68 55/169/69 +f 50/153/62 27/154/73 28/155/66 49/156/67 +f 6/157/56 22/158/69 24/159/64 7/160/57 +f 27/154/73 25/161/59 26/162/58 28/155/66 +f 52/163/70 54/164/72 53/165/61 51/166/65 +f 22/158/69 52/163/70 51/166/65 24/159/64 +f 4/167/71 56/168/63 55/169/68 9/170/60 +f 54/164/72 4/167/71 9/170/60 53/165/61 +f 56/168/63 50/153/62 49/156/67 55/169/68 diff --git a/homedecor/textures/homedecor_book_cover.png b/homedecor/textures/homedecor_book_cover.png index f5c508325755c8bc999bc70738a37b2d899ced68..2fb851493ef12a2c0bbb01972872e11089aa3d6a 100644 GIT binary patch delta 2329 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 X-O>Pps;54m00000NkvXXu0mjf?cR}C