summaryrefslogtreecommitdiff
path: root/homedecor
diff options
context:
space:
mode:
Diffstat (limited to 'homedecor')
-rw-r--r--homedecor/bathroom_furniture.lua131
-rw-r--r--homedecor/books.lua346
-rw-r--r--homedecor/models/homedecor_block_with_overlay.obj44
-rw-r--r--homedecor/models/homedecor_book.obj236
-rw-r--r--homedecor/models/homedecor_book_open.obj455
-rw-r--r--homedecor/textures/homedecor_bathroom_tiles_bg.pngbin190 -> 202 bytes
-rw-r--r--homedecor/textures/homedecor_bathroom_tiles_fg.pngbin381 -> 259 bytes
-rw-r--r--homedecor/textures/homedecor_book_cover.pngbin1899 -> 2339 bytes
8 files changed, 723 insertions, 489 deletions
diff --git a/homedecor/bathroom_furniture.lua b/homedecor/bathroom_furniture.lua
index 99dc699..585327b 100644
--- a/homedecor/bathroom_furniture.lua
+++ b/homedecor/bathroom_furniture.lua
@@ -1,43 +1,53 @@
local S = homedecor_i18n.gettext
-local bathroom_tile_colors = {
- { "1", S("white/grey"), "#c0c0c0:200" },
- { "2", S("white/dark grey"), "#404040:150" },
- { "3", S("white/black"), "#000000:200" },
- { "4", S("black/dark grey"), "" },
- { "red", S("white/red"), "#d00000:150" },
- { "green", S("white/green"), "#00d000:150" },
- { "blue", S("white/blue"), "#0000d0:150" },
- { "yellow", S("white/yellow"), "#ffff00:150" },
- { "tan", S("white/tan"), "#ceaf42:150" }
-}
-
-for _, c in ipairs(bathroom_tile_colors) do
- local color, shade, hue = unpack(c)
-
- local coloredtile = "homedecor_bathroom_tiles_bg.png^(homedecor_bathroom_tiles_fg.png^[colorize:"..hue..")"
+minetest.register_node("homedecor:bathroom_tiles_dark", {
+ description = S("Bathroom/kitchen tiles (dark)"),
+ tiles = {
+ { name = "homedecor_bathroom_tiles_bg.png", color = 0xff606060 },
+ "homedecor_bathroom_tiles_fg.png"
+ },
+ drawtype = "mesh",
+ mesh = "homedecor_block_with_overlay.obj",
+ paramtype = "light",
+ paramtype2 = "color",
+ palette = "unifieddyes_palette.png",
+ groups = {cracky=3, ud_param2_colorable = 1},
+ sounds = default.node_sound_stone_defaults(),
+ after_dig_node = unifieddyes.after_dig_node
+})
- if color == "4" then
- coloredtile = "(homedecor_bathroom_tiles_bg.png^[colorize:#000000:75)"..
- "^(homedecor_bathroom_tiles_fg.png^[colorize:#000000:200)"
- end
+minetest.register_node("homedecor:bathroom_tiles_medium", {
+ description = S("Bathroom/kitchen tiles (medium)"),
+ tiles = {
+ { name = "homedecor_bathroom_tiles_bg.png", color = 0xffc0c0c0 },
+ "homedecor_bathroom_tiles_fg.png"
+ },
+ drawtype = "mesh",
+ mesh = "homedecor_block_with_overlay.obj",
+ paramtype = "light",
+ paramtype2 = "color",
+ palette = "unifieddyes_palette.png",
+ groups = {cracky=3, ud_param2_colorable = 1},
+ sounds = default.node_sound_stone_defaults(),
+ after_dig_node = unifieddyes.after_dig_node
+})
- minetest.register_node("homedecor:tiles_"..color, {
- description = S("Bathroom/kitchen tiles (@1)", shade),
- tiles = {
- coloredtile,
- coloredtile,
- coloredtile,
- coloredtile,
- "("..coloredtile..")^[transformR90",
- "("..coloredtile..")^[transformR90"
- },
- groups = {cracky=3},
- paramtype = "light",
- sounds = default.node_sound_stone_defaults(),
- })
-end
+minetest.register_node("homedecor:bathroom_tiles_light", {
+ description = S("Bathroom/kitchen tiles (light)"),
+ tiles = {
+ { name = "homedecor_bathroom_tiles_bg.png", color = 0xffffffff },
+ "homedecor_bathroom_tiles_fg.png"
+ },
+ drawtype = "mesh",
+ mesh = "homedecor_block_with_overlay.obj",
+ paramtype = "light",
+ paramtype2 = "color",
+ palette = "unifieddyes_palette.png",
+ groups = {cracky=3, ud_param2_colorable = 1},
+ sounds = default.node_sound_stone_defaults(),
+ after_dig_node = unifieddyes.after_dig_node
+})
local tr_cbox = {
type = "fixed",
@@ -102,3 +112,54 @@ homedecor.register("medicine_cabinet_open", {
minetest.swap_node(pos, node)
end,
})
+
+-- convert old static nodes
+
+homedecor.old_static_bathroom_tiles = {
+ "homedecor:tiles_1",
+ "homedecor:tiles_2",
+ "homedecor:tiles_3",
+ "homedecor:tiles_4",
+ "homedecor:tiles_red",
+ "homedecor:tiles_tan",
+ "homedecor:tiles_yellow",
+ "homedecor:tiles_green",
+ "homedecor:tiles_blue"
+}
+
+local old_to_color = {
+ "light_grey",
+ "grey",
+ "black",
+ "black"
+}
+
+minetest.register_lbm({
+ name = "homedecor:convert_bathroom_tiles",
+ label = "Convert bathroom tiles to use param2 color",
+ run_at_every_load = true,
+ nodenames = homedecor.old_static_bathroom_tiles,
+ action = function(pos, node)
+ local name = node.name
+ local newname = "homedecor:bathroom_tiles_light"
+ local a,b = string.find(node.name, "_")
+ local color = string.sub(node.name, a + 1)
+
+ if color == "tan" then
+ color = "yellow_s50"
+ elseif color == "1" or color == "2" or color == "3" or color == "4" then
+ if color == "4" then
+ newname = "homedecor:bathroom_tiles_medium"
+ end
+ color = old_to_color[tonumber(color)]
+ elseif color ~= "yellow" then
+ color = color.."_s50"
+ end
+
+ local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color)
+
+ minetest.set_node(pos, { name = newname, param2 = paletteidx })
+ local meta = minetest.get_meta(pos)
+ meta:set_string("dye", "unifieddyes:"..color)
+ end
+})
diff --git a/homedecor/books.lua b/homedecor/books.lua
index fecbcec..b6790e3 100644
--- a/homedecor/books.lua
+++ b/homedecor/books.lua
@@ -3,158 +3,153 @@ 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",
+ 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)
+end
- 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,
+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,
})
- stack = digger:get_inventory():add_item("main", stack)
- if not stack:is_empty() then
- minetest.item_drop(stack, digger, pos)
+ 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
- minetest.remove_node(pos)
- 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}
+ }
+})
- 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,
+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,
})
- 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}
- }
- })
-
-end
+ 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
@@ -173,3 +168,68 @@ 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
+
+ local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
+ local param2 = paletteidx + new_fdir
+
+ 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_block_with_overlay.obj b/homedecor/models/homedecor_block_with_overlay.obj
new file mode 100644
index 0000000..9c70760
--- /dev/null
+++ b/homedecor/models/homedecor_block_with_overlay.obj
@@ -0,0 +1,44 @@
+# Blender v2.72 (sub 0) OBJ File: 'unifiedbricks_brick_block.blend'
+# www.blender.org
+o Cube
+v 0.496092 0.496092 0.496092
+v 0.496092 0.496092 -0.496092
+v -0.496092 0.496092 -0.496092
+v -0.496092 0.496092 0.496092
+v 0.496092 -0.496092 0.496092
+v 0.496092 -0.496092 -0.496092
+v -0.496092 -0.496092 -0.496092
+v -0.496092 -0.496092 0.496092
+v 0.499750 0.499750 0.499750
+v 0.499750 0.499750 -0.499750
+v -0.499750 0.499750 -0.499750
+v -0.499750 0.499750 0.499750
+v 0.499750 -0.499750 0.499750
+v 0.499750 -0.499750 -0.499750
+v -0.499750 -0.499750 -0.499750
+v -0.499750 -0.499750 0.499750
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vn 0.000000 -1.000000 0.000000
+vn -1.000000 0.000000 0.000000
+vn 0.000000 1.000000 0.000000
+vn 1.000000 0.000000 0.000000
+vn 0.000000 0.000000 -1.000000
+vn 0.000000 0.000000 1.000000
+g Cube_Cube_base
+s off
+f 8/1/1 7/2/1 6/3/1 5/4/1
+f 4/2/2 3/3/2 7/4/2 8/1/2
+f 1/3/3 2/4/3 3/1/3 4/2/3
+f 2/2/4 1/3/4 5/4/4 6/1/4
+f 3/2/5 2/3/5 6/4/5 7/1/5
+f 1/2/6 4/3/6 8/4/6 5/1/6
+g Cube_Cube_overlay
+f 16/1/1 15/2/1 14/3/1 13/4/1
+f 12/2/2 11/3/2 15/4/2 16/1/2
+f 9/3/3 10/4/3 11/1/3 12/2/3
+f 10/2/4 9/3/4 13/4/4 14/1/4
+f 11/2/5 10/3/5 14/4/5 15/1/5
+f 9/2/6 12/3/6 16/4/6 13/1/6
diff --git a/homedecor/models/homedecor_book.obj b/homedecor/models/homedecor_book.obj
index 9b03986..c7a3af7 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 046b6de..ab2c1b3 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.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.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.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.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.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_bathroom_tiles_bg.png b/homedecor/textures/homedecor_bathroom_tiles_bg.png
index 1a20457..b8a3157 100644
--- a/homedecor/textures/homedecor_bathroom_tiles_bg.png
+++ b/homedecor/textures/homedecor_bathroom_tiles_bg.png
Binary files differ
diff --git a/homedecor/textures/homedecor_bathroom_tiles_fg.png b/homedecor/textures/homedecor_bathroom_tiles_fg.png
index b741d56..a00c3a8 100644
--- a/homedecor/textures/homedecor_bathroom_tiles_fg.png
+++ b/homedecor/textures/homedecor_bathroom_tiles_fg.png
Binary files differ
diff --git a/homedecor/textures/homedecor_book_cover.png b/homedecor/textures/homedecor_book_cover.png
index f5c5083..2fb8514 100644
--- a/homedecor/textures/homedecor_book_cover.png
+++ b/homedecor/textures/homedecor_book_cover.png
Binary files differ