diff --git a/homedecor_common/nodeboxes.lua b/homedecor_common/nodeboxes.lua index 0fafe1ab..6960072b 100644 --- a/homedecor_common/nodeboxes.lua +++ b/homedecor_common/nodeboxes.lua @@ -9,16 +9,17 @@ homedecor.box = { -- bottom slab (starting from -y) with height optionally shifted upwards slab_y = function(height, shift) return { -0.5, -0.5+(shift or 0), -0.5, 0.5, -0.5+height+(shift or 0), 0.5 } end, -- slab starting from -z (+z with negative depth) - slab_z = function(depth) + slab_z = function(depth, shift) -- for consistency with the other functions here, we have to assume that a "z" slab starts from -z and extends by depth, -- but since conventionally a lot of nodes place slabs against +z for player convenience, we define -- a "negative" depth as a depth extending from the other side, i.e. +z + local s = shift or 0 if depth > 0 then -- slab starting from -z - return { -0.5, -0.5, -0.5, 0.5, 0.5, -0.5+depth } + return { -0.5, -0.5, -0.5+s, 0.5, 0.5, -0.5+depth+s } else -- slab starting from +z (z1=0.5-(-depth)) - return { -0.5, -0.5, 0.5+depth, 0.5, 0.5, 0.5 } + return { -0.5, -0.5, 0.5+depth+s, 0.5, 0.5, 0.5+s } end end, bar_y = function(radius) return {-radius, -0.5, -radius, radius, 0.5, radius} end, diff --git a/homedecor_kitchen/init.lua b/homedecor_kitchen/init.lua index 7197b8a6..610fb2a2 100644 --- a/homedecor_kitchen/init.lua +++ b/homedecor_kitchen/init.lua @@ -137,13 +137,18 @@ homedecor.register("dishwasher_"..m, { end local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png" +local cabinet_sides_colored = "(homedecor_generic_wood_plain.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png" + local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)" .."^(homedecor_kitchen_cabinet_bevel.png^[colorize:#46321580)" +local cabinet_bottom_colored = "homedecor_generic_wood_plain.png^(homedecor_kitchen_cabinet_bevel.png^[colorize:#46321580)" local function N_(x) return x end local counter_materials = { "", N_("granite"), N_("marble"), N_("steel") } +homedecor.kitchen_convert_nodes = {} + for _, mat in ipairs(counter_materials) do local desc = S("Kitchen Cabinet") @@ -154,26 +159,65 @@ for _, mat in ipairs(counter_materials) do material = "_"..mat end - homedecor.register("kitchen_cabinet"..material, { + homedecor.register("kitchen_cabinet_colorable"..material, { description = desc, - tiles = { 'homedecor_kitchen_cabinet_top'..material..'.png', - cabinet_bottom, - cabinet_sides, - cabinet_sides, - cabinet_sides, - 'homedecor_kitchen_cabinet_front.png'}, - groups = { snappy = 3 }, + tiles = { + 'homedecor_kitchen_cabinet_top'..material..'.png', + cabinet_bottom, + cabinet_sides, + cabinet_sides, + cabinet_sides, + 'homedecor_kitchen_cabinet_front.png' + }, + mesh = "homedecor_kitchen_cabinet.obj", + paramtype2 = "wallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + airbrush_replacement_node = "homedecor:kitchen_cabinet_colored"..material, + place_param2 = 0, + groups = { snappy = 3, ud_param2_colorable = 1}, sounds = default.node_sound_wood_defaults(), infotext=S("Kitchen Cabinet"), inventory = { size=24, lockable=true, }, + after_place_node = function(pos, placer, itemstack, pointed_thing) + unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) + end + }) + + homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet"..material + homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_locked"..material + + homedecor.register("kitchen_cabinet_colored"..material, { + description = desc, + tiles = { + {name = 'homedecor_kitchen_cabinet_top'..material..'.png', color = 0xFFFFFFFF}, + {name = cabinet_bottom, color = 0xFFFFFFFF }, + cabinet_sides_colored, + cabinet_sides_colored, + cabinet_sides_colored, + 'homedecor_kitchen_cabinet_colored_front.png' + }, + mesh = "homedecor_kitchen_cabinet.obj", + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + groups = { snappy = 3, ud_param2_colorable = 1}, + sounds = default.node_sound_wood_defaults(), + infotext=S("Kitchen Cabinet"), + inventory = { + size=24, + lockable=true, + }, + after_place_node = function(pos, placer, itemstack, pointed_thing) + unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) + end }) end -local kitchen_cabinet_half_box = homedecor.nodebox.slab_y(0.5, 0.5) -homedecor.register("kitchen_cabinet_half", { +local kitchen_cabinet_half_box = homedecor.nodebox.slab_z(0.5, 0.5) + +homedecor.register("kitchen_cabinet_colorable_half", { description = S('Half-height Kitchen Cabinet (on ceiling)'), tiles = { cabinet_sides, @@ -183,27 +227,71 @@ homedecor.register("kitchen_cabinet_half", { cabinet_sides, 'homedecor_kitchen_cabinet_front_half.png' }, + mesh = "homedecor_kitchen_cabinet_half.obj", + paramtype2 = "wallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_half", + place_param2 = 0, selection_box = kitchen_cabinet_half_box, node_box = kitchen_cabinet_half_box, - groups = { snappy = 3 }, + groups = { snappy = 3, ud_param2_colorable = 1 }, sounds = default.node_sound_wood_defaults(), infotext=S("Kitchen Cabinet"), inventory = { size=12, lockable=true, }, + after_place_node = function(pos, placer, itemstack, pointed_thing) + unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) + end }) -homedecor.register("kitchen_cabinet_with_sink", { +homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_half" +homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_half_locked" + +homedecor.register("kitchen_cabinet_colored_half", { + description = S('Half-height Kitchen Cabinet (on ceiling)'), + tiles = { + { name = cabinet_sides, color = 0xFFFFFFFF }, + cabinet_bottom_colored, + cabinet_sides_colored, + cabinet_sides_colored, + cabinet_sides_colored, + 'homedecor_kitchen_cabinet_colored_front_half.png' + }, + mesh = "homedecor_kitchen_cabinet_half.obj", + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + selection_box = kitchen_cabinet_half_box, + node_box = kitchen_cabinet_half_box, + groups = { snappy = 3, ud_param2_colorable = 1 }, + sounds = default.node_sound_wood_defaults(), + infotext=S("Kitchen Cabinet"), + inventory = { + size=12, + lockable=true, + }, + after_place_node = function(pos, placer, itemstack, pointed_thing) + unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) + end +}) + +homedecor.register("kitchen_cabinet_colorable_with_sink", { description = S("Kitchen Cabinet with sink"), mesh = "homedecor_kitchen_sink.obj", tiles = { "homedecor_kitchen_sink_top.png", - "homedecor_kitchen_cabinet_front.png", + cabinet_bottom, cabinet_sides, - cabinet_bottom + cabinet_sides, + cabinet_sides, + "homedecor_kitchen_cabinet_front.png" }, - groups = { snappy = 3 }, + paramtype2 = "wallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_sink", + place_param2 = 0, + groups = { snappy = 3, ud_param2_colorable = 1 }, sounds = default.node_sound_wood_defaults(), infotext=S("Under-sink cabinet"), inventory = { @@ -222,6 +310,50 @@ homedecor.register("kitchen_cabinet_with_sink", { }, on_destruct = function(pos) homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z}) + end, + after_place_node = function(pos, placer, itemstack, pointed_thing) + unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) + end +}) + +homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_with_sink" +homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_with_sink_locked" + +homedecor.register("kitchen_cabinet_colored_with_sink", { + description = S("Kitchen Cabinet with sink"), + mesh = "homedecor_kitchen_sink.obj", + tiles = { + { name = "homedecor_kitchen_sink_top.png", color = 0xFFFFFFFF }, + { name = cabinet_bottom, color = 0xFFFFFFFF}, + cabinet_sides_colored, + cabinet_sides_colored, + cabinet_sides_colored, + "homedecor_kitchen_cabinet_colored_front.png", + }, + paramtype2 = "colorwallmounted", + palette = "unifieddyes_palette_colorwallmounted.png", + groups = { snappy = 3, ud_param2_colorable = 1 }, + sounds = default.node_sound_wood_defaults(), + infotext=S("Under-sink cabinet"), + inventory = { + size=16, + lockable=true, + }, + node_box = { + type = "fixed", + fixed = { + { -8/16, -8/16, -8/16, 8/16, 6/16, 8/16 }, + { -8/16, 6/16, -8/16, -6/16, 8/16, 8/16 }, + { 6/16, 6/16, -8/16, 8/16, 8/16, 8/16 }, + { -8/16, 6/16, -8/16, 8/16, 8/16, -6/16 }, + { -8/16, 6/16, 6/16, 8/16, 8/16, 8/16 }, + } + }, + on_destruct = function(pos) + homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z}) + end, + after_place_node = function(pos, placer, itemstack, pointed_thing) + unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) end }) @@ -555,3 +687,29 @@ minetest.register_craft({ { "homedecor:toilet_paper", "homedecor:toilet_paper" } }, }) + +minetest.register_lbm({ + name = ":homedecor:convert_kitchen_cabinets", + label = "Convert homedecor kitchen cabinets to use [color]wallmounted", + run_at_every_load = false, + nodenames = homedecor.kitchen_convert_nodes, + action = function(pos, node) + local name = node.name + local newname = string.gsub(name, "_cabinet", "_cabinet_colorable") + + 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 + + minetest.set_node(pos, { name = newname, param2 = new_fdir }) + end +}) diff --git a/homedecor_kitchen/models/homedecor_kitchen_cabinet.obj b/homedecor_kitchen/models/homedecor_kitchen_cabinet.obj new file mode 100644 index 00000000..86f0be0b --- /dev/null +++ b/homedecor_kitchen/models/homedecor_kitchen_cabinet.obj @@ -0,0 +1,50 @@ +# Blender v2.83.5 OBJ File: 'kitchen_cabinet.blend' +# www.blender.org +o Cube_Cube.001 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v -0.500000 0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 1.000000 +vt -0.000000 0.000000 +vt 1.000000 -0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 0.000000 +vt 1.000000 -0.000000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +g Cube_Cube.001_top +s off +f 8/1/1 4/2/1 2/3/1 6/4/1 +g Cube_Cube.001_bottom +f 7/5/2 5/6/2 1/7/2 3/8/2 +g Cube_Cube.001_right +f 5/9/3 7/5/3 8/1/3 6/10/3 +g Cube_Cube.001_left +f 4/2/4 3/8/4 1/11/4 2/12/4 +g Cube_Cube.001_back +f 7/13/5 3/14/5 4/15/5 8/16/5 +g Cube_Cube.001_front +f 6/17/6 2/18/6 1/19/6 5/20/6 diff --git a/homedecor_kitchen/models/homedecor_kitchen_cabinet_half.obj b/homedecor_kitchen/models/homedecor_kitchen_cabinet_half.obj new file mode 100644 index 00000000..39c0b0e4 --- /dev/null +++ b/homedecor_kitchen/models/homedecor_kitchen_cabinet_half.obj @@ -0,0 +1,52 @@ +# Blender v2.83.5 OBJ File: 'kitchen_cabinet_half.blend' +# www.blender.org +o Cube_Cube.001 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.000000 +v -0.500000 -0.500000 0.500000 +v 0.500000 0.500000 -0.000000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.000000 +v -0.500000 0.500000 0.500000 +v 0.500000 -0.500000 0.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt -0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 0.500000 +vt 1.000000 0.500000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +g Cube_Cube.001_top +s off +f 1/1/1 5/2/1 7/3/1 3/4/1 +g Cube_Cube.001_bottom +f 2/5/2 6/6/2 4/7/2 8/8/2 +g Cube_Cube.001_right +f 7/3/3 5/9/3 4/10/3 6/11/3 +g Cube_Cube.001_left +f 1/12/4 3/4/4 2/13/4 8/14/4 +g Cube_Cube.001_back +f 3/15/5 7/16/5 6/17/5 2/18/5 +g Cube_Cube.001_front +f 5/19/6 1/20/6 8/21/6 4/22/6 diff --git a/homedecor_kitchen/models/homedecor_kitchen_sink.obj b/homedecor_kitchen/models/homedecor_kitchen_sink.obj index 832fae10..bb80812d 100644 --- a/homedecor_kitchen/models/homedecor_kitchen_sink.obj +++ b/homedecor_kitchen/models/homedecor_kitchen_sink.obj @@ -1,101 +1,166 @@ -v -0.5 -0.5 -0.5 -v 0.5 -0.5 -0.5 -v 0.5 -0.5 0.5 -v -0.5 -0.5 0.5 -v -0.5 0.5 0.5 -v -0.5 0.5 -0.5 -v 0.5 0.5 -0.5 -v 0.5 0.5 0.5 -v -0.387 0.5 0.388 -v -0.387 0.5 -0.387 -v 0.388 0.5 -0.387 -v 0.388 0.5 0.388 -v -0.387 0.4 0.388 -v -0.387 0.4 -0.387 -v 0.388 0.4 -0.387 -v 0.388 0.4 0.388 -v 0.063 0.4 -0.062 -v 0.063 0.4 0.063 -v -0.062 0.4 -0.062 -v -0.062 0.4 0.063 -v 0.063 0.313 0.063 -v 0.063 0.313 -0.062 -v -0.062 0.313 0.063 -v -0.062 0.313 -0.062 -vt 0.469 0.906 -vt 0.469 0.531 -vt 0.531 0.469 -vt 0.531 0.969 -vt 0.031 0.969 -vt 0.094 0.906 -vt 0.031 0.469 -vt 0.094 0.531 -vt 0.813 0.5 -vt 0.813 0.938 -vt 0.781 0.938 -vt 0.781 0.5 -vt 0.688 0.5 -vt 0.719 0.5 -vt 0.719 0.938 -vt 0.688 0.938 -vt 0.906 0.5 -vt 0.906 0.938 -vt 0.875 0.938 -vt 0.875 0.5 -vt 0.594 0.5 -vt 0.625 0.5 -vt 0.625 0.938 -vt 0.594 0.938 -vt 0.313 0.75 -vt 0.313 0.688 -vt 0.25 0.688 -vt 0.25 0.75 -vt 0.219 0.375 -vt 0.219 0.313 -vt 0.25 0.313 -vt 0.25 0.375 -vt 0.25 0.406 -vt 0.313 0.375 -vt 0.313 0.406 -vt 0.313 0.313 -vt 0.344 0.313 -vt 0.344 0.375 -vt 0.25 0.281 -vt 0.313 0.281 -vt 0 0 -vt 1 0 -vt 1 1 -vt 0 1 -vn 0 1 0 -vn -1 0 0 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn 0 -1 0 -g 1 +# Blender v2.83.5 OBJ File: 'kitchen_sink.blend' +# www.blender.org +o Cube_Cube.001 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v -0.500000 0.500000 0.500000 +v 0.000000 -0.500000 0.500000 +v 0.000000 0.500000 0.500000 +v 0.000000 0.062500 0.437500 +v -0.062500 0.062500 0.375000 +v 0.062500 0.062500 0.375000 +v 0.062500 -0.062500 0.437500 +v 0.000000 -0.062500 0.437500 +v 0.062500 -0.062500 0.375000 +v -0.062500 -0.062500 0.437500 +v -0.062500 0.062500 0.437500 +v -0.062500 -0.062500 0.375000 +v 0.000000 0.375000 0.437500 +v 0.062500 0.062500 0.437500 +v 0.000000 -0.375000 0.437500 +v -0.375000 -0.375000 0.437500 +v -0.375000 0.375000 0.500000 +v -0.375000 0.375000 0.437500 +v 0.375000 0.375000 0.437500 +v 0.000000 0.375000 0.500000 +v 0.375000 0.375000 0.500000 +v 0.000000 -0.375000 0.500000 +v 0.375000 -0.375000 0.500000 +v 0.375000 -0.375000 0.437500 +v -0.375000 -0.375000 0.500000 +vt 0.437500 0.375000 +vt 0.562500 0.437500 +vt 0.437500 0.437500 +vt 0.125000 0.875000 +vt 0.875000 0.875000 +vt 1.000000 1.000000 +vt 0.625000 0.500000 +vt 0.625000 0.562500 +vt 0.562500 0.562500 +vt 0.875000 0.062500 +vt 0.125000 0.125000 +vt 0.125000 0.062500 +vt 0.875000 0.875000 +vt 0.437500 0.562500 +vt 0.562500 0.562500 +vt 0.875000 0.125000 +vt 0.125000 0.125000 +vt 0.000000 0.000000 +vt 0.375000 0.500000 +vt 0.375000 0.437500 +vt 0.437500 0.625000 +vt 0.437500 0.562500 +vt 0.875000 0.500000 +vt 0.875000 0.125000 +vt 0.937500 0.500000 +vt 0.125000 0.500000 +vt 0.125000 0.875000 +vt 0.062500 0.875000 +vt 0.562500 0.437500 +vt 0.437500 0.437500 +vt 0.125000 0.937500 +vt 0.875000 0.937500 +vt 0.937500 0.125000 +vt 0.937500 0.875000 +vt 0.062500 0.500000 +vt 0.062500 0.125000 +vt 0.562500 0.375000 +vt 0.625000 0.437500 +vt 0.375000 0.562500 +vt 0.562500 0.625000 +vt 0.562500 0.500000 +vt 0.437500 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.125000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.500000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.500000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 1.000000 +vt -0.000000 0.000000 +vt 1.000000 -0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 0.000000 +vt 1.000000 -0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +g Cube_Cube.001_top s off -f 9/1/1 10/2/1 6/3/1 5/4/1 -f 5/4/1 8/5/1 12/6/1 9/1/1 -f 7/7/1 6/3/1 10/2/1 11/8/1 -f 8/5/1 7/7/1 11/8/1 12/6/1 -f 15/9/2 16/10/2 12/11/2 11/12/2 -f 16/13/3 13/14/3 9/15/3 12/16/3 -f 13/17/4 14/18/4 10/19/4 9/20/4 -f 14/21/5 15/22/5 11/23/5 10/24/5 -f 13/2/1 16/1/1 18/25/1 20/26/1 -f 19/27/1 14/8/1 13/2/1 20/26/1 -f 17/28/1 15/6/1 14/8/1 19/27/1 -f 16/1/1 15/6/1 17/28/1 18/25/1 -f 17/29/2 22/30/2 21/31/2 18/32/2 -f 18/33/3 21/32/3 23/34/3 20/35/3 -f 20/34/4 23/36/4 24/37/4 19/38/4 -f 19/31/5 24/39/5 22/40/5 17/36/5 -f 24/27/1 23/26/1 21/25/1 22/28/1 -g 2 -f 2/41/3 1/42/3 6/43/3 7/44/3 -g 3 -f 1/41/2 4/42/2 5/43/2 6/44/2 -f 2/42/4 7/43/4 8/44/4 3/41/4 -f 4/41/5 3/42/5 8/43/5 5/44/5 -g 4 -f 1/43/6 2/44/6 3/41/6 4/42/6 +f 14/1/1 13/2/1 16/3/1 +f 32/4/2 24/5/2 8/6/2 +f 11/7/3 18/8/3 12/9/3 +f 28/10/1 31/11/1 30/12/1 +f 25/13/2 17/14/2 18/15/2 +f 28/16/2 30/17/2 2/18/2 +f 15/19/4 14/20/4 16/3/4 +f 12/9/5 17/21/5 19/22/5 +f 20/23/3 26/24/3 27/25/3 +f 22/26/4 23/27/4 32/28/4 +f 26/24/2 21/29/2 14/30/2 +f 32/31/5 25/13/5 24/32/5 +f 12/9/2 19/22/2 16/3/2 13/2/2 +f 28/10/1 26/24/1 31/11/1 +f 26/24/3 28/33/3 27/25/3 +f 27/25/3 24/34/3 20/23/3 +f 24/34/3 25/13/3 20/23/3 +f 32/28/4 29/35/4 22/26/4 +f 29/35/4 30/36/4 22/26/4 +f 30/36/4 31/11/4 22/26/4 +f 32/31/5 23/27/5 25/13/5 +f 14/1/1 21/37/1 13/2/1 +f 12/9/3 13/2/3 11/7/3 +f 13/2/3 21/38/3 11/7/3 +f 16/3/4 19/22/4 15/19/4 +f 19/22/4 17/39/4 15/19/4 +f 12/9/5 18/40/5 17/21/5 +f 11/41/2 20/23/2 18/15/2 +f 20/23/2 25/13/2 18/15/2 +f 25/13/2 23/27/2 17/14/2 +f 23/27/2 22/26/2 17/14/2 +f 22/26/2 15/42/2 17/14/2 +f 14/30/2 15/42/2 22/26/2 +f 22/26/2 31/11/2 14/30/2 +f 31/11/2 26/24/2 14/30/2 +f 26/24/2 20/23/2 21/29/2 +f 20/23/2 11/41/2 21/29/2 +f 4/43/2 9/44/2 32/4/2 +f 9/44/2 29/45/2 32/4/2 +f 27/46/2 10/47/2 24/5/2 +f 10/47/2 8/6/2 24/5/2 +f 4/43/2 32/4/2 8/6/2 +f 6/48/2 10/47/2 28/16/2 +f 10/47/2 27/46/2 28/16/2 +f 29/45/2 9/44/2 30/17/2 +f 9/44/2 2/18/2 30/17/2 +f 6/48/2 28/16/2 2/18/2 +g Cube_Cube.001_bottom +f 5/49/6 1/50/6 3/51/6 7/52/6 +g Cube_Cube.001_right +f 8/6/4 10/53/4 6/54/4 5/55/4 7/52/4 +g Cube_Cube.001_left +f 9/56/3 4/43/3 3/51/3 1/57/3 2/58/3 +g Cube_Cube.001_back +f 7/59/1 3/60/1 4/61/1 8/62/1 +g Cube_Cube.001_front +f 1/63/5 5/64/5 6/65/5 2/66/5 diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_bevel.png b/homedecor_kitchen/textures/homedecor_kitchen_cabinet_bevel.png index 137eb3ee..0184d73b 100644 Binary files a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_bevel.png and b/homedecor_kitchen/textures/homedecor_kitchen_cabinet_bevel.png differ diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_colored_front.png b/homedecor_kitchen/textures/homedecor_kitchen_cabinet_colored_front.png new file mode 100644 index 00000000..ba23d43d Binary files /dev/null and b/homedecor_kitchen/textures/homedecor_kitchen_cabinet_colored_front.png differ diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_colored_front_half.png b/homedecor_kitchen/textures/homedecor_kitchen_cabinet_colored_front_half.png new file mode 100644 index 00000000..45e93f7d Binary files /dev/null and b/homedecor_kitchen/textures/homedecor_kitchen_cabinet_colored_front_half.png differ diff --git a/homedecor_kitchen/textures/homedecor_kitchen_sink_top.png b/homedecor_kitchen/textures/homedecor_kitchen_sink_top.png index fc70835c..ccb117ea 100644 Binary files a/homedecor_kitchen/textures/homedecor_kitchen_sink_top.png and b/homedecor_kitchen/textures/homedecor_kitchen_sink_top.png differ