-- This file supplies Kitchen cabinets and kitchen sink local S = homedecor_i18n.gettext local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png" local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)^(homedecor_kitchen_cabinet_bevel.png^[colorize:#46321580)" local function N_(x) return x end local counter_materials = { "", N_("granite"), N_("marble"), N_("steel") } for _, mat in ipairs(counter_materials) do local desc = S("Kitchen Cabinet") local material = "" if mat ~= "" then desc = S("Kitchen Cabinet (@1 top)", S(mat)) material = "_"..mat end homedecor.register("kitchen_cabinet"..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 }, sounds = default.node_sound_wood_defaults(), infotext=S("Kitchen Cabinet"), inventory = { size=24, lockable=true, }, }) end local kitchen_cabinet_half_box = homedecor.nodebox.slab_y(0.5, 0.5) homedecor.register("kitchen_cabinet_half", { description = S('Half-height Kitchen Cabinet (on ceiling)'), tiles = { cabinet_sides, cabinet_bottom, cabinet_sides, cabinet_sides, cabinet_sides, 'homedecor_kitchen_cabinet_front_half.png' }, selection_box = kitchen_cabinet_half_box, node_box = kitchen_cabinet_half_box, groups = { snappy = 3 }, sounds = default.node_sound_wood_defaults(), infotext=S("Kitchen Cabinet"), inventory = { size=12, lockable=true, }, }) homedecor.register("kitchen_cabinet_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_sides, cabinet_bottom }, groups = { snappy = 3 }, 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 }) local cp_cbox = { type = "fixed", fixed = { -0.375, -0.5, -0.5, 0.375, -0.3125, 0.3125 } } homedecor.register("copper_pans", { description = S("Copper pans"), mesh = "homedecor_copper_pans.obj", tiles = { "homedecor_polished_copper.png" }, inventory_image = "homedecor_copper_pans_inv.png", groups = { snappy=3 }, selection_box = cp_cbox, walkable = false, on_place = minetest.rotate_node }) local kf_cbox = { type = "fixed", fixed = { -2/16, -8/16, 1/16, 2/16, -1/16, 8/16 } } homedecor.register("kitchen_faucet", { mesh = "homedecor_kitchen_faucet.obj", tiles = { "homedecor_generic_metal_bright.png" }, inventory_image = "homedecor_kitchen_faucet_inv.png", description = S("Kitchen Faucet"), groups = {snappy=3}, selection_box = kf_cbox, walkable = false, on_rotate = screwdriver.disallow, on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z}) if below and below.name == "homedecor:sink" or below.name == "homedecor:kitchen_cabinet_with_sink" or below.name == "homedecor:kitchen_cabinet_with_sink_locked" then local particledef = { outlet = { x = 0, y = -0.19, z = 0.13 }, velocity_x = { min = -0.05, max = 0.05 }, velocity_y = -0.3, velocity_z = { min = -0.1, max = 0 }, spread = 0 } homedecor.start_particle_spawner(pos, node, particledef, "homedecor_faucet") end return itemstack end, on_destruct = homedecor.stop_particle_spawner }) homedecor.register("paper_towel", { mesh = "homedecor_paper_towel.obj", tiles = { "homedecor_generic_quilted_paper.png", "default_wood.png" }, inventory_image = "homedecor_paper_towel_inv.png", description = S("Paper towels"), groups = { snappy=3 }, walkable = false, selection_box = { type = "fixed", fixed = { -0.4375, 0.125, 0.0625, 0.4375, 0.4375, 0.5 } }, })