diff --git a/homedecor/furniture.lua b/homedecor/furniture.lua index 93b0b291..a866414a 100644 --- a/homedecor/furniture.lua +++ b/homedecor/furniture.lua @@ -189,43 +189,16 @@ local bedcolors = { "pink", } -local function bed_extension(pos, color) - - local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) - local thisnode = minetest.get_node(pos) - local bottomnode = minetest.get_node({x=pos.x, y=pos.y-1.0, z=pos.z}) - - local fdir = thisnode.param2 - - if string.find(topnode.name, "homedecor:bed_.*_regular$") then - if fdir == topnode.param2 then - local newnode = string.gsub(thisnode.name, "_regular", "_extended") - minetest.set_node(pos, { name = newnode, param2 = fdir}) - end - end - - if string.find(bottomnode.name, "homedecor:bed_.*_regular$") then - if fdir == bottomnode.param2 then - local newnode = string.gsub(bottomnode.name, "_regular", "_extended") - minetest.set_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newnode, param2 = fdir}) - end - end -end - -local function unextend_bed(pos, color) - local bottomnode = minetest.get_node({x=pos.x, y=pos.y-1.0, z=pos.z}) - local fdir = bottomnode.param2 - if string.find(bottomnode.name, "homedecor:bed_.*_extended$") then - local newnode = string.gsub(bottomnode.name, "_extended", "_regular") - minetest.set_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newnode, param2 = fdir}) - end -end - local bed_cbox = { type = "fixed", fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 1.5 } } +local kbed_cbox = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 1.5 } +} + for _, color in ipairs(bedcolors) do local color2=color if color == "darkgrey" then @@ -246,12 +219,13 @@ for _, color in ipairs(bedcolors) do groups = {snappy=3}, selection_box = bed_cbox, collision_box = bed_cbox, - on_construct = function(pos) - bed_extension(pos, color) + after_place_node = function(pos, placer, itemstack, pointed_thing) + if not placer:get_player_control().sneak then + return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, color) + end end, - expand = { forward = "air" }, - after_unexpand = function(pos) - unextend_bed(pos, color) + after_dig_node = function(pos) + homedecor.unextend_bed(pos, color) end, }) @@ -269,12 +243,29 @@ for _, color in ipairs(bedcolors) do selection_box = bed_cbox, collision_box = bed_cbox, expand = { forward = "air" }, - after_unexpand = function(pos) - unextend_bed(pos, color) + after_dig_node = function(pos) + homedecor.unextend_bed(pos, color) end, drop = "homedecor:bed_"..color.."_regular" }) + homedecor.register("bed_"..color.."_kingsize", { + mesh = "homedecor_bed_kingsize.obj", + tiles = { + "homedecor_bed_frame.png", + "default_wood.png", + "wool_white.png", + "wool_"..color2..".png", + "homedecor_bed_bottom.png", + "wool_"..color2..".png^[brighten", + }, + inventory_image = "homedecor_bed_kingsize_"..color.."_inv.png", + description = S("Bed (%s, king sized)"):format(color), + groups = {snappy=3, not_in_creative_inventory=1}, + selection_box = kbed_cbox, + collision_box = kbed_cbox, + }) + minetest.register_alias("homedecor:bed_"..color.."_foot", "homedecor:bed_"..color.."_regular") minetest.register_alias("homedecor:bed_"..color.."_footext", "homedecor:bed_"..color.."_extended") minetest.register_alias("homedecor:bed_"..color.."_head", "air") diff --git a/homedecor/handlers/expansion.lua b/homedecor/handlers/expansion.lua index b7bb553e..2f72d231 100644 --- a/homedecor/handlers/expansion.lua +++ b/homedecor/handlers/expansion.lua @@ -1,5 +1,28 @@ local S = homedecor.gettext +-- vectors to place one node next to or behind another + +homedecor.fdir_to_right = { + { 1, 0 }, + { 0, -1 }, + { -1, 0 }, + { 0, 1 }, +} + +homedecor.fdir_to_left = { + { -1, 0 }, + { 0, 1 }, + { 1, 0 }, + { 0, -1 }, +} + +homedecor.fdir_to_fwd = { + { 0, 1 }, + { 1, 0 }, + { 0, -1 }, + { -1, 0 }, +} + -- selects which node was pointed at based on it being known, and either clickable or buildable_to local function select_node(pointed_thing) local pos = pointed_thing.under @@ -63,12 +86,7 @@ end -- Stack one door node above another -- like homedecor.stack_vertically but tests first if it was placed as a right wing, then uses node1_right and node2_right instead -local fdir_to_left = { - { -1, 0 }, - { 0, 1 }, - { 1, 0 }, - { 0, -1 }, -} + function homedecor.stack_wing(itemstack, placer, pointed_thing, node1, node2, node1_right, node2_right) local pos, def = select_node(pointed_thing) if not def then return end -- rare corner case, but happened in #205 @@ -80,7 +98,7 @@ function homedecor.stack_wing(itemstack, placer, pointed_thing, node1, node2, no local forceright = placer:get_player_control()["sneak"] local fdir = minetest.dir_to_facedir(placer:get_look_dir()) - local is_right_wing = node1 == minetest.get_node({ x = pos.x + fdir_to_left[fdir+1][1], y=pos.y, z = pos.z + fdir_to_left[fdir+1][2] }).name + local is_right_wing = node1 == minetest.get_node({ x = pos.x + homedecor.fdir_to_left[fdir+1][1], y=pos.y, z = pos.z + homedecor.fdir_to_left[fdir+1][2] }).name if forceright or is_right_wing then node1, node2 = node1_right, node2_right end @@ -89,21 +107,6 @@ function homedecor.stack_wing(itemstack, placer, pointed_thing, node1, node2, no return stack(itemstack, placer, fdir, pos, def, top_pos, node1, node2) end --- Place one node right of or behind another -homedecor.fdir_to_right = { - { 1, 0 }, - { 0, -1 }, - { -1, 0 }, - { 0, 1 }, -} - -homedecor.fdir_to_fwd = { - { 0, 1 }, - { 1, 0 }, - { 0, -1 }, - { -1, 0 }, -} - function homedecor.stack_sideways(itemstack, placer, pointed_thing, node1, node2, dir) local pos, def = select_node(pointed_thing) if not def then return end -- rare corner case, but happened in #205 @@ -119,3 +122,71 @@ function homedecor.stack_sideways(itemstack, placer, pointed_thing, node1, node2 return stack(itemstack, placer, fdir, pos, def, pos2, node1, node2) end + +function homedecor.bed_expansion(pos, placer, itemstack, pointed_thing, color) + + local thisnode = minetest.get_node(pos) + local fdir = thisnode.param2 + + local fxd = homedecor.fdir_to_fwd[fdir+1][1] + local fzd = homedecor.fdir_to_fwd[fdir+1][2] + + local forwardpos = {x=pos.x+fxd, y=pos.y, z=pos.z+fzd} + local forwardnode = minetest.get_node(forwardpos) + + local def = minetest.registered_nodes[forwardnode.name] + local placer_name = placer:get_player_name() + + if not (def and def.buildable_to) then + minetest.chat_send_player( placer:get_player_name(), "Not enough room - the space for the headboard is occupied!" ) + minetest.set_node(pos, {name = "air"}) + return true + end + + if minetest.is_protected(forwardpos, placer_name) then + minetest.chat_send_player( placer:get_player_name(), "Someone already owns the spot where the headboard goes." ) + return true + end + + minetest.set_node(forwardpos, {name = "air"}) + + local lxd = homedecor.fdir_to_left[fdir+1][1] + local lzd = homedecor.fdir_to_left[fdir+1][2] + + local leftpos = {x=pos.x+lxd, y=pos.y, z=pos.z+lzd} + local leftnode = minetest.get_node(leftpos) + + if leftnode.name == "homedecor:bed_"..color.."_regular" then + local newname = string.gsub(thisnode.name, "_regular", "_kingsize") + + minetest.set_node(pos, {name = "air"}) + minetest.set_node(leftpos, { name = newname, param2 = fdir}) + end + + local topnode = minetest.get_node({x=pos.x, y=pos.y+1.0, z=pos.z}) + local bottomnode = minetest.get_node({x=pos.x, y=pos.y-1.0, z=pos.z}) + + if string.find(topnode.name, "homedecor:bed_.*_regular$") then + if fdir == topnode.param2 then + local newname = string.gsub(thisnode.name, "_regular", "_extended") + minetest.set_node(pos, { name = newname, param2 = fdir}) + end + end + + if string.find(bottomnode.name, "homedecor:bed_.*_regular$") then + if fdir == bottomnode.param2 then + local newname = string.gsub(bottomnode.name, "_regular", "_extended") + minetest.set_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newname, param2 = fdir}) + end + end +end + +function homedecor.unextend_bed(pos, color) + local bottomnode = minetest.get_node({x=pos.x, y=pos.y-1.0, z=pos.z}) + local fdir = bottomnode.param2 + if string.find(bottomnode.name, "homedecor:bed_.*_extended$") then + local newname = string.gsub(bottomnode.name, "_extended", "_regular") + minetest.set_node({x=pos.x, y=pos.y-1.0, z=pos.z}, { name = newname, param2 = fdir}) + end +end + diff --git a/homedecor/models/homedecor_bed_kingsize.obj b/homedecor/models/homedecor_bed_kingsize.obj new file mode 100644 index 00000000..9b5dad10 --- /dev/null +++ b/homedecor/models/homedecor_bed_kingsize.obj @@ -0,0 +1,528 @@ +# Blender v2.73 (sub 0) OBJ File: 'bed-kingsize.blend' +# www.blender.org +o Cube +v -0.500000 -0.375000 1.437500 +v 0.500000 -0.375000 -0.437500 +v 0.500000 -0.375000 1.437500 +v 0.500000 -0.125000 -0.437500 +v 0.500000 -0.125000 1.437500 +v 0.437500 -0.125000 -0.437500 +v 0.437500 -0.125000 1.437500 +v 0.375000 -0.500000 -0.437500 +v 0.375000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.437500 +v 0.375000 0.187500 -0.437500 +v 0.375000 0.187500 -0.500000 +v 0.500000 0.187500 -0.500000 +v 0.500000 0.187500 -0.437500 +v -0.500000 -0.375000 -0.437500 +v -0.500000 -0.375000 -0.500000 +v 0.375000 -0.375000 -0.500000 +v 0.375000 -0.375000 -0.437500 +v -0.500000 -0.125000 -0.437500 +v -0.500000 -0.125000 -0.500000 +v 0.375000 -0.125000 -0.500000 +v 0.375000 -0.125000 -0.437500 +v -0.500000 0.000000 -0.437500 +v -0.500000 0.000000 -0.500000 +v 0.375000 0.000000 -0.500000 +v 0.375000 0.000000 -0.437500 +v -0.500000 0.125000 -0.437500 +v -0.500000 0.125000 -0.500000 +v 0.375000 0.125000 -0.500000 +v 0.375000 0.125000 -0.437500 +v 0.375000 -0.500000 1.437500 +v 0.375000 -0.500000 1.500000 +v 0.500000 -0.500000 1.500000 +v 0.500000 -0.500000 1.437500 +v 0.375000 0.500000 1.437500 +v 0.375000 0.500000 1.500000 +v 0.500000 0.500000 1.500000 +v 0.500000 0.500000 1.437500 +v -0.500000 -0.375000 1.437500 +v -0.500000 -0.375000 1.500000 +v 0.375000 -0.375000 1.500000 +v 0.375000 -0.375000 1.437500 +v -0.500000 -0.125000 1.437500 +v -0.500000 -0.125000 1.500000 +v 0.375000 -0.125000 1.500000 +v 0.375000 -0.125000 1.437500 +v -0.500000 -0.062500 1.437500 +v -0.500000 -0.062500 1.500000 +v 0.375000 -0.062500 1.500000 +v 0.375000 -0.062500 1.437500 +v -0.500000 0.187500 1.437500 +v -0.500000 0.187500 1.500000 +v 0.375000 0.187500 1.500000 +v 0.375000 0.187500 1.437500 +v -0.500000 0.250000 1.437500 +v -0.500000 0.250000 1.500000 +v 0.375000 0.250000 1.500000 +v 0.375000 0.250000 1.437500 +v -0.500000 0.437500 1.437500 +v -0.500000 0.437500 1.500000 +v 0.375000 0.437500 1.500000 +v 0.375000 0.437500 1.437500 +v -0.500000 -0.375000 0.500000 +v 0.500000 -0.125000 0.500000 +v 0.500000 -0.375000 0.500000 +v 0.437500 -0.125000 0.500000 +v -0.437500 -0.375000 0.500000 +v -0.437500 -0.375000 1.437500 +v 0.437500 -0.078125 -0.437500 +v 0.437500 -0.078125 1.437500 +v -0.500000 -0.046875 1.437500 +v -0.500000 -0.046875 -0.437500 +v 0.406250 -0.046875 -0.437500 +v 0.406250 -0.046875 1.437500 +v -0.312500 -0.046875 1.437500 +v -0.312500 -0.046875 1.062500 +v 0.312500 -0.046875 1.062500 +v 0.312500 -0.046875 1.437500 +v -0.500000 -0.046875 0.500000 +v 0.406250 -0.046875 0.500000 +v 0.437500 -0.078125 0.500000 +v -0.312500 -0.031250 1.437500 +v -0.312500 -0.031250 1.062500 +v 0.312500 -0.031250 1.062500 +v 0.312500 -0.031250 1.437500 +v -0.250000 0.031250 1.375000 +v -0.250000 0.031250 1.125000 +v 0.250000 0.031250 1.125000 +v 0.250000 0.031250 1.375000 +v 0.437500 -0.375000 1.437500 +v 0.437500 -0.375000 0.500000 +v -0.437500 -0.375000 1.375000 +v 0.437500 -0.375000 1.375000 +v -0.437500 -0.375000 -0.375000 +v 0.437500 -0.375000 -0.375000 +v -0.437500 -0.312500 1.375000 +v 0.437500 -0.312500 1.375000 +v -0.437500 -0.312500 -0.375000 +v 0.437500 -0.312500 -0.375000 +v 0.437500 -0.125000 1.000000 +v 0.406250 -0.046875 1.000000 +v -0.500000 -0.046875 1.000000 +v 0.437500 -0.078125 1.000000 +v -0.437500 -0.312500 0.500000 +v 0.437500 -0.312500 0.500000 +v -0.500000 -0.375000 -0.437500 +v 0.500000 -0.375000 -0.437500 +v -0.500000 -0.375000 0.500000 +v 0.500000 -0.375000 0.500000 +v -0.437500 -0.375000 0.500000 +v -0.437500 -0.375000 -0.437500 +v 0.437500 -0.375000 -0.437500 +v 0.437500 -0.375000 0.500000 +v -0.437500 -0.375000 -0.375000 +v 0.437500 -0.375000 -0.375000 +v -1.500000 -0.375000 1.437500 +v -1.500000 -0.375000 -0.437500 +v -0.500000 -0.375000 1.437500 +v -1.500000 -0.125000 1.437500 +v -1.500000 -0.125000 -0.437500 +v -1.437500 -0.125000 1.437500 +v -1.437500 -0.125000 -0.437500 +v -1.500000 -0.500000 -0.437500 +v -1.500000 -0.500000 -0.500000 +v -1.375000 -0.500000 -0.500000 +v -1.375000 -0.500000 -0.437500 +v -1.500000 0.187500 -0.437500 +v -1.500000 0.187500 -0.500000 +v -1.375000 0.187500 -0.500000 +v -1.375000 0.187500 -0.437500 +v -1.375000 -0.375000 -0.437500 +v -1.375000 -0.375000 -0.500000 +v -0.500000 -0.375000 -0.500000 +v -0.500000 -0.375000 -0.437500 +v -1.375000 -0.125000 -0.437500 +v -1.375000 -0.125000 -0.500000 +v -0.500000 -0.125000 -0.500000 +v -0.500000 -0.125000 -0.437500 +v -1.375000 0.000000 -0.437500 +v -1.375000 0.000000 -0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 -0.437500 +v -1.375000 0.125000 -0.437500 +v -1.375000 0.125000 -0.500000 +v -0.500000 0.125000 -0.500000 +v -0.500000 0.125000 -0.437500 +v -1.500000 -0.500000 1.437500 +v -1.500000 -0.500000 1.500000 +v -1.375000 -0.500000 1.500000 +v -1.375000 -0.500000 1.437500 +v -1.500000 0.500000 1.437500 +v -1.500000 0.500000 1.500000 +v -1.375000 0.500000 1.500000 +v -1.375000 0.500000 1.437500 +v -1.375000 -0.375000 1.437500 +v -1.375000 -0.375000 1.500000 +v -0.500000 -0.375000 1.500000 +v -0.500000 -0.375000 1.437500 +v -1.375000 -0.125000 1.437500 +v -1.375000 -0.125000 1.500000 +v -0.500000 -0.125000 1.500000 +v -0.500000 -0.125000 1.437500 +v -1.375000 -0.062500 1.437500 +v -1.375000 -0.062500 1.500000 +v -0.500000 -0.062500 1.500000 +v -0.500000 -0.062500 1.437500 +v -1.375000 0.187500 1.437500 +v -1.375000 0.187500 1.500000 +v -0.500000 0.187500 1.500000 +v -0.500000 0.187500 1.437500 +v -1.375000 0.250000 1.437500 +v -1.375000 0.250000 1.500000 +v -0.500000 0.250000 1.500000 +v -0.500000 0.250000 1.437500 +v -1.375000 0.437500 1.437500 +v -1.375000 0.437500 1.500000 +v -0.500000 0.437500 1.500000 +v -0.500000 0.437500 1.437500 +v -1.500000 -0.125000 0.500000 +v -1.500000 -0.375000 0.500000 +v -0.500000 -0.375000 0.500000 +v -1.437500 -0.125000 0.500000 +v -1.437500 -0.375000 0.500000 +v -1.437500 -0.375000 1.437500 +v -1.437500 -0.078125 1.437500 +v -1.437500 -0.078125 -0.437500 +v -1.406250 -0.046875 1.437500 +v -1.406250 -0.046875 -0.437500 +v -0.500000 -0.046875 -0.437500 +v -0.500000 -0.046875 1.437500 +v -1.312500 -0.046875 1.437500 +v -1.312500 -0.046875 1.062500 +v -0.687500 -0.046875 1.062500 +v -0.687500 -0.046875 1.437500 +v -1.406250 -0.046875 0.500000 +v -1.437500 -0.078125 0.500000 +v -0.500000 -0.046875 0.500000 +v -1.312500 -0.031250 1.437500 +v -1.312500 -0.031250 1.062500 +v -0.687500 -0.031250 1.062500 +v -0.687500 -0.031250 1.437500 +v -1.250000 0.031250 1.375000 +v -1.250000 0.031250 1.125000 +v -0.750000 0.031250 1.125000 +v -0.750000 0.031250 1.375000 +v -0.562500 -0.375000 1.437500 +v -0.562500 -0.375000 0.500000 +v -1.437500 -0.375000 1.375000 +v -0.562500 -0.375000 1.375000 +v -1.437500 -0.375000 -0.375000 +v -0.562500 -0.375000 -0.375000 +v -1.437500 -0.312500 1.375000 +v -0.562500 -0.312500 1.375000 +v -1.437500 -0.312500 -0.375000 +v -0.562500 -0.312500 -0.375000 +v -1.437500 -0.125000 1.000000 +v -1.437500 -0.078125 1.000000 +v -0.500000 -0.046875 1.000000 +v -1.406250 -0.046875 1.000000 +v -1.437500 -0.312500 0.500000 +v -0.562500 -0.312500 0.500000 +v -1.500000 -0.375000 -0.437500 +v -0.500000 -0.375000 -0.437500 +v -1.500000 -0.375000 0.500000 +v -0.500000 -0.375000 0.500000 +v -1.437500 -0.375000 0.500000 +v -1.437500 -0.375000 -0.437500 +v -0.562500 -0.375000 -0.437500 +v -0.562500 -0.375000 0.500000 +v -1.437500 -0.375000 -0.375000 +v -0.562500 -0.375000 -0.375000 +v -0.500000 -0.125000 -0.437500 +v -0.500000 -0.046875 1.437500 +v -0.500000 -0.125000 1.437500 +v -0.500000 -0.078125 1.437500 +v -0.500000 -0.046875 -0.437500 +v -0.500000 -0.078125 -0.437500 +v -0.562500 -0.500000 -0.375000 +v -0.562500 -0.500000 -0.437500 +v -0.437500 -0.500000 -0.437500 +v -0.437500 -0.500000 -0.375000 +v -0.562500 -0.375000 -0.375000 +v -0.562500 -0.375000 -0.437500 +v -0.437500 -0.375000 -0.437500 +v -0.437500 -0.375000 -0.375000 +v -0.562500 -0.500000 1.437500 +v -0.562500 -0.500000 1.375000 +v -0.437500 -0.500000 1.375000 +v -0.437500 -0.500000 1.437500 +v -0.562500 -0.375000 1.437500 +v -0.562500 -0.375000 1.375000 +v -0.437500 -0.375000 1.375000 +v -0.437500 -0.375000 1.437500 +vt 1.000000 0.250000 +vt 0.062500 0.250000 +vt 0.062500 -0.000000 +vt 1.000000 -0.000000 +vt 0.937500 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.937500 +vt 0.937500 0.937500 +vt 0.437500 1.000000 +vt -0.000000 0.000000 +vt 0.062500 0.937500 +vt 0.937500 0.250000 +vt -0.000000 0.250000 +vt 0.937500 0.000000 +vt 1.000000 0.937500 +vt 0.062500 0.875000 +vt 0.937500 0.875000 +vt 0.062500 0.062500 +vt 0.937500 0.062500 +vt 0.000000 0.062500 +vt 1.000000 0.062500 +vt 0.437500 0.937500 +vt 0.875000 1.000000 +vt 0.875000 0.000000 +vt 1.000000 1.000000 +vt 0.062500 0.687500 +vt -0.000000 0.687500 +vt 0.125000 0.687500 +vt 0.125000 -0.000000 +vt 1.000000 0.687500 +vt 0.937500 0.687500 +vt 0.875000 0.687500 +vt 0.875000 0.062500 +vt 0.875000 0.937500 +vt 0.875000 0.625000 +vt -0.000000 0.625000 +vt -0.000000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.375000 +vt 0.125000 0.375000 +vt 0.125000 0.125000 +vt 1.000000 0.125000 +vt 1.000000 0.625000 +vt 0.125000 0.625000 +vt 0.125000 0.500000 +vt 1.000000 0.500000 +vt 0.125000 0.062500 +vt 0.125000 1.000000 +vt 0.125000 0.937500 +vt 0.062500 1.000000 +vt 0.125000 0.437500 +vt 1.000000 0.437500 +vt -0.000000 0.375000 +vt -0.000000 0.125000 +vt 0.875000 0.125000 +vt 0.875000 0.375000 +vt -0.000000 0.437500 +vt 0.875000 0.437500 +vt 0.125000 0.750000 +vt 1.000000 0.750000 +vt -0.000000 0.750000 +vt 0.875000 0.750000 +vt 0.125000 0.875000 +vt 0.000000 0.875000 +vt 0.250000 0.750000 +vt 0.250000 0.875000 +vt 0.187500 0.875000 +vt 0.187500 1.000000 +vt 0.942316 0.062500 +vt 0.942316 0.084487 +vt 0.000000 0.084487 +vt 0.937500 0.437500 +vt 0.905938 0.000000 +vt 0.905938 0.437500 +vt 0.062500 0.437500 +vt 0.000000 0.099146 +vt 0.910906 0.099146 +vt 0.094062 0.437500 +vt 0.094062 0.000000 +vt 0.089095 0.099146 +vt 0.057684 0.084487 +vt 1.000000 0.084487 +vt 1.000000 0.099146 +vt 0.057684 0.062500 +vt -0.000000 0.562500 +vt 0.062500 0.562500 +vt 0.094062 1.000000 +vt 0.094062 0.062500 +vt 0.094062 0.562500 +vt 1.000000 0.562500 +vt 0.125000 0.562500 +vt 0.905938 0.062500 +vt 0.905938 1.000000 +vt 0.905938 0.562500 +vt 0.875000 0.562500 +vt 0.937500 0.562500 +vt 0.250000 0.125000 +vt 0.250000 0.375000 +vt 0.187500 0.437500 +vt 0.187500 0.062500 +vt 0.750000 0.375000 +vt 0.812500 0.437500 +vt 0.750000 0.125000 +vt 0.812500 0.062500 +vt 0.812500 0.500000 +vt 0.187500 0.500000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 1.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.707100 0.707100 0.000000 +vn -0.707100 0.707100 0.000000 +vn 0.000000 0.707100 -0.707100 +vn 0.000000 0.707100 0.707100 +g Cube_Cube_frame-metal +s off +f 65/1/1 5/2/1 3/3/1 66/4/1 +f 6/5/2 67/6/2 65/7/2 4/8/2 +f 65/8/2 67/5/2 101/9/2 7/6/2 5/7/2 +f 1/7/3 64/10/3 68/3/3 69/11/3 +f 4/12/1 65/13/1 66/10/1 2/14/1 +f 66/4/3 3/15/3 91/8/3 92/14/3 +f 93/16/2 69/11/2 91/8/2 94/17/2 +f 95/3/4 99/18/4 100/19/4 96/14/4 +f 94/14/5 98/19/5 97/18/5 93/3/5 +f 105/19/6 68/14/6 93/10/6 97/20/6 +f 92/14/1 106/19/1 98/20/1 94/10/1 +f 96/4/1 100/21/1 106/18/1 92/3/1 +f 99/21/6 95/4/6 68/3/6 105/18/6 +f 109/7/3 107/10/3 112/3/3 111/11/3 +f 108/4/3 110/15/3 114/8/3 113/14/3 +f 115/18/3 112/3/3 113/14/3 116/19/3 +f 180/1/6 121/2/6 118/3/6 181/4/6 +f 117/7/3 181/10/3 184/3/3 185/11/3 +f 120/12/6 180/13/6 181/10/6 117/14/6 +f 182/4/3 119/15/3 207/8/3 208/14/3 +f 209/16/2 185/11/2 207/8/2 210/17/2 +f 211/3/4 215/18/4 216/19/4 212/14/4 +f 210/14/5 214/19/5 213/18/5 209/3/5 +f 180/6/2 183/7/2 123/8/2 121/5/2 +f 183/8/2 180/5/2 120/6/2 122/7/2 217/22/2 +f 221/19/6 184/14/6 209/10/6 213/20/6 +f 208/14/1 222/19/1 214/20/1 210/10/1 +f 212/4/1 216/21/1 222/18/1 208/3/1 +f 215/21/6 211/4/6 184/3/6 221/18/6 +f 225/7/3 223/10/3 228/3/3 227/11/3 +f 224/4/3 226/15/3 230/8/3 229/14/3 +f 231/18/3 228/3/3 229/14/3 232/19/3 +g Cube_Cube_head-foot-wood +f 37/23/5 33/24/5 34/4/5 38/25/5 +f 12/26/6 13/27/6 9/10/6 8/3/6 +f 13/28/4 14/27/4 10/10/4 9/29/4 +f 14/30/1 15/31/1 11/14/1 10/4/1 +f 15/30/5 12/32/5 8/24/5 11/4/5 +f 8/33/3 9/24/3 10/4/3 11/21/3 +f 15/15/2 14/25/2 13/23/2 12/34/2 +f 31/35/5 28/36/5 24/37/5 27/38/5 +f 21/39/4 22/40/4 18/41/4 17/42/4 +f 29/43/4 30/44/4 26/45/4 25/46/4 +f 36/5/6 32/14/6 33/4/6 37/25/6 +f 16/47/3 17/29/3 18/4/3 19/21/3 +f 23/15/2 22/25/2 21/48/2 20/49/2 +f 24/47/3 25/29/3 26/4/3 27/21/3 +f 31/15/2 30/25/2 29/48/2 28/49/2 +f 38/6/1 34/10/1 35/3/1 39/50/1 +f 39/6/4 35/10/4 32/29/4 36/48/4 +f 32/34/3 35/15/3 34/25/3 33/23/3 +f 39/21/2 36/33/2 37/24/2 38/4/2 +f 55/28/4 51/51/4 48/52/4 52/30/4 +f 45/53/5 41/54/5 42/55/5 46/56/5 +f 53/27/5 49/57/5 50/58/5 54/32/5 +f 40/49/3 43/15/3 42/25/3 41/48/3 +f 47/21/2 44/47/2 45/29/2 46/4/2 +f 48/49/3 51/15/3 50/25/3 49/48/3 +f 55/21/2 52/47/2 53/29/2 54/4/2 +f 63/49/4 59/59/4 56/60/4 60/15/4 +f 61/7/5 57/61/5 58/62/5 62/34/5 +f 56/49/3 59/15/3 58/25/3 57/48/3 +f 63/21/2 60/47/2 61/29/2 62/4/2 +f 128/26/6 129/27/6 125/10/6 124/3/6 +f 129/30/4 130/32/4 126/24/4 125/4/4 +f 130/30/1 131/31/1 127/14/1 126/4/1 +f 131/28/5 128/27/5 124/10/5 127/29/5 +f 124/20/3 125/10/3 126/29/3 127/47/3 +f 131/49/2 130/48/2 129/6/2 128/7/2 +f 147/43/5 144/44/5 140/45/5 143/46/5 +f 137/56/4 138/53/4 134/54/4 133/55/4 +f 145/35/4 146/36/4 142/37/4 141/38/4 +f 132/20/3 133/10/3 134/24/3 135/33/3 +f 139/34/2 138/23/2 137/6/2 136/7/2 +f 140/20/3 141/10/3 142/24/3 143/33/3 +f 147/34/2 146/23/2 145/6/2 144/7/2 +f 152/5/6 148/14/6 149/4/6 153/25/6 +f 153/6/5 149/10/5 150/29/5 154/48/5 +f 154/6/1 150/10/1 151/3/1 155/50/1 +f 155/23/4 151/24/4 148/4/4 152/25/4 +f 148/7/3 151/49/3 150/48/3 149/6/3 +f 155/47/2 152/20/2 153/10/2 154/29/2 +f 171/27/4 167/57/4 164/58/4 168/32/4 +f 161/40/5 157/41/5 158/42/5 162/39/5 +f 169/28/5 165/51/5 166/52/5 170/30/5 +f 156/7/3 159/34/3 158/23/3 157/6/3 +f 163/33/2 160/20/2 161/10/2 162/24/2 +f 164/7/3 167/34/3 166/23/3 165/6/3 +f 171/33/2 168/20/2 169/10/2 170/24/2 +f 179/7/4 175/61/4 172/62/4 176/34/4 +f 177/49/5 173/59/5 174/60/5 178/15/5 +f 172/7/3 175/34/3 174/23/3 173/6/3 +f 179/33/2 176/20/2 177/10/2 178/24/2 +f 243/16/6 244/63/6 240/48/6 239/50/6 +f 244/63/4 245/64/4 241/61/4 240/59/4 +f 245/64/1 246/16/1 242/50/1 241/6/1 +f 246/59/5 243/65/5 239/66/5 242/63/5 +f 239/63/3 240/67/3 241/68/3 242/48/3 +f 251/16/6 252/63/6 248/48/6 247/50/6 +f 252/63/4 253/64/4 249/61/4 248/59/4 +f 253/64/1 254/16/1 250/50/1 249/6/1 +f 254/59/5 251/65/5 247/66/5 250/63/5 +f 247/63/3 248/67/3 249/68/3 250/48/3 +g Cube_Cube_white-wool +f 235/20/5 7/69/5 71/70/5 236/71/5 +f 102/58/7 75/24/7 71/14/7 104/72/7 +f 75/73/2 102/74/2 103/57/2 72/10/2 +f 7/4/1 101/52/1 104/72/1 71/14/1 +f 217/57/6 122/10/6 186/3/6 218/75/6 +f 234/76/5 236/71/5 71/70/5 75/77/5 +f 188/29/8 220/51/8 218/75/8 186/3/8 +f 191/4/2 219/52/2 220/78/2 188/79/2 +f 188/80/5 186/81/5 236/82/5 234/83/5 +f 122/84/5 235/21/5 236/82/5 186/81/5 +g Cube_Cube_colored-wool +f 67/6/1 6/20/1 70/18/1 82/50/1 +f 101/85/1 67/20/1 82/18/1 104/86/1 +f 81/87/2 74/88/2 73/21/2 80/25/2 +f 102/89/2 81/88/2 80/21/2 103/90/2 +f 74/47/7 81/48/7 82/50/7 70/18/7 +f 81/47/7 102/91/7 104/86/7 82/18/7 +f 238/82/4 187/81/4 189/80/4 237/83/4 +f 233/20/4 238/71/4 70/70/4 6/69/4 +f 123/21/6 183/25/6 197/5/6 187/19/6 +f 196/23/8 189/33/8 187/19/8 197/5/8 +f 198/6/2 190/20/2 189/92/2 196/93/2 +f 219/85/2 198/20/2 196/92/2 220/94/2 +f 220/95/8 196/33/8 197/19/8 218/96/8 +f 183/21/6 217/90/6 218/96/6 197/19/6 +f 123/84/4 187/81/4 238/82/4 233/21/4 +f 70/70/4 238/71/4 237/76/4 74/77/4 +g Cube_Cube_bottom-stuff +f 106/5/2 100/19/2 99/18/2 105/50/2 +f 98/8/2 106/14/2 105/3/2 97/11/2 +f 222/5/2 216/19/2 215/18/2 221/50/2 +f 214/8/2 222/14/2 221/3/2 213/11/2 +g Cube_Cube_pillow +f 87/97/8 88/98/8 84/99/8 83/100/8 +f 88/98/9 89/101/9 85/102/9 84/99/9 +f 89/101/7 90/103/7 86/104/7 85/102/7 +f 90/103/2 89/101/2 88/98/2 87/97/2 +f 83/100/10 86/104/10 90/103/10 87/97/10 +f 79/100/1 78/99/1 85/51/1 86/47/1 +f 78/99/4 77/102/4 84/105/4 85/106/4 +f 77/102/6 76/104/6 83/33/6 84/58/6 +f 203/97/8 204/98/8 200/99/8 199/100/8 +f 204/98/9 205/101/9 201/102/9 200/99/9 +f 205/101/7 206/103/7 202/104/7 201/102/7 +f 206/103/2 205/101/2 204/98/2 203/97/2 +f 199/100/10 202/104/10 206/103/10 203/97/10 +f 195/100/1 194/99/1 201/51/1 202/47/1 +f 194/99/4 193/102/4 200/105/4 201/106/4 +f 193/102/6 192/104/6 199/33/6 200/58/6 diff --git a/homedecor/textures/homedecor_bed_kingsize_blue_inv.png b/homedecor/textures/homedecor_bed_kingsize_blue_inv.png new file mode 100644 index 00000000..981c5999 Binary files /dev/null and b/homedecor/textures/homedecor_bed_kingsize_blue_inv.png differ diff --git a/homedecor/textures/homedecor_bed_kingsize_brown_inv.png b/homedecor/textures/homedecor_bed_kingsize_brown_inv.png new file mode 100644 index 00000000..0e976a29 Binary files /dev/null and b/homedecor/textures/homedecor_bed_kingsize_brown_inv.png differ diff --git a/homedecor/textures/homedecor_bed_kingsize_darkgrey_inv.png b/homedecor/textures/homedecor_bed_kingsize_darkgrey_inv.png new file mode 100644 index 00000000..d3f80486 Binary files /dev/null and b/homedecor/textures/homedecor_bed_kingsize_darkgrey_inv.png differ diff --git a/homedecor/textures/homedecor_bed_kingsize_green_inv.png b/homedecor/textures/homedecor_bed_kingsize_green_inv.png new file mode 100644 index 00000000..c87713dd Binary files /dev/null and b/homedecor/textures/homedecor_bed_kingsize_green_inv.png differ diff --git a/homedecor/textures/homedecor_bed_kingsize_orange_inv.png b/homedecor/textures/homedecor_bed_kingsize_orange_inv.png new file mode 100644 index 00000000..86f1aaf2 Binary files /dev/null and b/homedecor/textures/homedecor_bed_kingsize_orange_inv.png differ diff --git a/homedecor/textures/homedecor_bed_kingsize_pink_inv.png b/homedecor/textures/homedecor_bed_kingsize_pink_inv.png new file mode 100644 index 00000000..b045c262 Binary files /dev/null and b/homedecor/textures/homedecor_bed_kingsize_pink_inv.png differ diff --git a/homedecor/textures/homedecor_bed_kingsize_red_inv.png b/homedecor/textures/homedecor_bed_kingsize_red_inv.png new file mode 100644 index 00000000..6ae61d06 Binary files /dev/null and b/homedecor/textures/homedecor_bed_kingsize_red_inv.png differ diff --git a/homedecor/textures/homedecor_bed_kingsize_violet_inv.png b/homedecor/textures/homedecor_bed_kingsize_violet_inv.png new file mode 100644 index 00000000..cddbc702 Binary files /dev/null and b/homedecor/textures/homedecor_bed_kingsize_violet_inv.png differ diff --git a/homedecor/textures/homedecor_bed_kingsize_yellow_inv.png b/homedecor/textures/homedecor_bed_kingsize_yellow_inv.png new file mode 100644 index 00000000..f62ea75f Binary files /dev/null and b/homedecor/textures/homedecor_bed_kingsize_yellow_inv.png differ