Merge remote-tracking branch 'upstream/master'

This commit is contained in:
bri cassa 2021-04-04 20:59:35 +02:00
commit 2814f672f0
50 changed files with 2447 additions and 889 deletions

View File

@ -239,9 +239,7 @@ local function taps_on_rightclick(pos, node, clicker, itemstack, pointed_thing)
local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z}) local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
if below and if below and
below.name == "homedecor:shower_tray" or below.name == "homedecor:shower_tray" or
below.name == "homedecor:sink" or string.find(below.name, "homedecor:.*sink") then
below.name == "homedecor:kitchen_cabinet_with_sink" or
below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
local particledef = { local particledef = {
outlet = { x = 0, y = -0.44, z = 0.28 }, outlet = { x = 0, y = -0.44, z = 0.28 },
velocity_x = { min = -0.1, max = 0.1 }, velocity_x = { min = -0.1, max = 0.1 },

View File

@ -9,16 +9,17 @@ homedecor.box = {
-- bottom slab (starting from -y) with height optionally shifted upwards -- 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_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 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, -- 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 -- 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 -- a "negative" depth as a depth extending from the other side, i.e. +z
local s = shift or 0
if depth > 0 then if depth > 0 then
-- slab starting from -z -- 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 else
-- slab starting from +z (z1=0.5-(-depth)) -- 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
end, end,
bar_y = function(radius) return {-radius, -0.5, -radius, radius, 0.5, radius} end, bar_y = function(radius) return {-radius, -0.5, -radius, radius, 0.5, radius} end,

View File

@ -1,38 +1,5 @@
local S = minetest.get_translator("homedecor_furniture") local S = minetest.get_translator("homedecor_furniture")
local table_colors = {
{ "", S("Table"), homedecor.plain_wood },
{ "_mahogany", S("Mahogany Table"), homedecor.mahogany_wood },
{ "_white", S("White Table"), homedecor.white_wood }
}
for _, t in ipairs(table_colors) do
local suffix, desc, texture = unpack(t)
homedecor.register("table"..suffix, {
description = desc,
tiles = { texture },
node_box = {
type = "fixed",
fixed = {
{ -0.4, -0.5, -0.4, -0.3, 0.4, -0.3 },
{ 0.3, -0.5, -0.4, 0.4, 0.4, -0.3 },
{ -0.4, -0.5, 0.3, -0.3, 0.4, 0.4 },
{ 0.3, -0.5, 0.3, 0.4, 0.4, 0.4 },
{ -0.5, 0.4, -0.5, 0.5, 0.5, 0.5 },
{ -0.4, -0.2, -0.3, -0.3, -0.1, 0.3 },
{ 0.3, -0.2, -0.4, 0.4, -0.1, 0.3 },
{ -0.3, -0.2, -0.4, 0.4, -0.1, -0.3 },
{ -0.3, -0.2, 0.3, 0.3, -0.1, 0.4 },
},
},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
})
end
local ob_cbox = { local ob_cbox = {
type = "fixed", type = "fixed",
fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 } fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 }
@ -69,224 +36,3 @@ homedecor.register("wall_shelf", {
} }
} }
}) })
-- Crafts
minetest.register_craft({
output = "homedecor:table",
recipe = {
{ "group:wood","group:wood", "group:wood" },
{ "group:stick", "", "group:stick" },
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_mahogany",
recipe = {
"homedecor:table",
"dye:brown",
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_mahogany",
recipe = {
"homedecor:table",
"unifieddyes:dark_orange",
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_white",
recipe = {
"homedecor:table",
"dye:white",
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_mahogany",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_white",
burntime = 30,
})
minetest.register_craft({
output = "homedecor:standing_lamp_off",
recipe = {
{"homedecor:table_lamp_off"},
{"group:stick"},
{"group:stick"},
},
})
unifieddyes.register_color_craft({
output = "homedecor:standing_lamp_off",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:standing_lamp_off",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_lamp_off",
burntime = 10,
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "wool:white", "default:torch", "wool:white"},
{ "", "group:stick", ""},
{ "", "stairs:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "cottages:wool", "default:torch", "cottages:wool"},
{ "", "group:stick", ""},
{ "", "stairs:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "wool:white", "default:torch", "wool:white"},
{ "", "group:stick", ""},
{ "", "moreblocks:slab_wood", "" },
},
})
minetest.register_craft({
output = "homedecor:table_lamp_off",
recipe = {
{ "cottages:wool", "default:torch", "cottages:wool"},
{ "", "group:stick", ""},
{ "", "moreblocks:slab_wood", "" },
},
})
unifieddyes.register_color_craft({
output = "homedecor:table_lamp_off",
palette = "extended",
type = "shapeless",
neutral_node = "homedecor:table_lamp_off",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
minetest.register_craft({
output = "homedecor:toilet",
recipe = {
{ "","","bucket:bucket_water"},
{ "group:marble","group:marble", "group:marble" },
{ "", "bucket:bucket_empty", "" },
},
})
minetest.register_craft({
output = "homedecor:sink",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
{ "", "group:marble", "" }
},
})
minetest.register_craft({
output = "homedecor:taps",
recipe = {
{ "default:steel_ingot","bucket:bucket_water", "default:steel_ingot" },
},
})
minetest.register_craft({
output = "homedecor:taps_brass",
recipe = {
{ "technic:brass_ingot","bucket:bucket_water", "technic:brass_ingot" },
},
})
minetest.register_craft({
output = "homedecor:shower_tray",
recipe = {
{ "group:marble","bucket:bucket_empty", "group:marble" },
},
})
minetest.register_craft({
output = "homedecor:shower_head",
recipe = {
{"default:steel_ingot", "bucket:bucket_water"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_brass_taps",
recipe = {
{ "homedecor:taps_brass", "", "" },
{ "group:marble", "", "group:marble" },
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "homedecor:bathtub_clawfoot_chrome_taps",
recipe = {
{ "homedecor:taps", "", "" },
{ "group:marble", "", "group:marble" },
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
},
})
minetest.register_craft({
output = "homedecor:bars 6",
recipe = {
{ "default:steel_ingot","default:steel_ingot","default:steel_ingot" },
{ "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" },
},
})
minetest.register_craft({
output = "homedecor:L_binding_bars 3",
recipe = {
{ "homedecor:bars","" },
{ "homedecor:bars","homedecor:bars" },
},
})
minetest.register_craft({
output = "homedecor:torch_wall 10",
recipe = {
{ "default:coal_lump" },
{ "default:steel_ingot" },
},
})
-- Aliases for 3dforniture mod.
minetest.register_alias("3dforniture:table", "homedecor:table")
minetest.register_alias('table', 'homedecor:table')

View File

@ -57,6 +57,24 @@ homedecor.register("chains", {
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
-- Crafts
minetest.register_craft({
output = "homedecor:bars 6",
recipe = {
{ "default:steel_ingot","default:steel_ingot","default:steel_ingot" },
{ "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" },
},
})
minetest.register_craft({
output = "homedecor:L_binding_bars 3",
recipe = {
{ "homedecor:bars","" },
{ "homedecor:bars","homedecor:bars" },
},
})
minetest.register_alias("3dforniture:bars", "homedecor:bars") minetest.register_alias("3dforniture:bars", "homedecor:bars")
minetest.register_alias("3dforniture:L_binding_bars", "homedecor:L_binding_bars") minetest.register_alias("3dforniture:L_binding_bars", "homedecor:L_binding_bars")
minetest.register_alias("3dforniture:chains", "homedecor:chains") minetest.register_alias("3dforniture:chains", "homedecor:chains")

View File

@ -137,43 +137,159 @@ homedecor.register("dishwasher_"..m, {
end end
local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png" local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)" local cabinet_sides_colored = "(homedecor_generic_wood_plain.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png"
.."^(homedecor_kitchen_cabinet_bevel.png^[colorize:#46321580)"
local ic_cabinet_sides = string.gsub(cabinet_sides, "%^", "&")
local ic_cabinet_sides_colored = string.gsub(cabinet_sides_colored, "%^", "&")
local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)^homedecor_kitchen_cabinet_bevel.png"
local cabinet_bottom_colored = "homedecor_generic_wood_plain.png^homedecor_kitchen_cabinet_bevel.png"
local function N_(x) return x end local function N_(x) return x end
local counter_materials = { "", N_("granite"), N_("marble"), N_("steel") } local counter_materials = { "", N_("granite"), N_("marble"), N_("steel") }
homedecor.kitchen_convert_nodes = {}
for _, mat in ipairs(counter_materials) do for _, mat in ipairs(counter_materials) do
local desc = S("Kitchen Cabinet") local desc = S("Kitchen Cabinet")
local desc2 = S("Kitchen Cabinet with drawers")
local material = "" local material = ""
if mat ~= "" then if mat ~= "" then
desc = S("Kitchen Cabinet (@1 top)", S(mat)) desc = S("Kitchen Cabinet (@1 top)", S(mat))
desc2 = S("Kitchen Cabinet with drawers (@1 top)", S(mat))
material = "_"..mat material = "_"..mat
end end
homedecor.register("kitchen_cabinet"..material, { homedecor.register("kitchen_cabinet_colorable"..material, {
description = desc, description = desc,
tiles = { 'homedecor_kitchen_cabinet_top'..material..'.png', tiles = {
'homedecor_kitchen_cabinet_top'..material..'.png',
cabinet_bottom, cabinet_bottom,
cabinet_sides, cabinet_sides,
cabinet_sides, cabinet_sides,
cabinet_sides, cabinet_sides,
'homedecor_kitchen_cabinet_front.png'}, 'homedecor_kitchen_cabinet_front.png^homedecor_kitchen_cabinet_bevel.png'
groups = { snappy = 3 }, },
inventory_image = "[inventorycube"
.."{homedecor_kitchen_cabinet_top"..material..".png"
.."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides,
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(), sounds = default.node_sound_wood_defaults(),
infotext=S("Kitchen Cabinet"), infotext=S("Kitchen Cabinet"),
inventory = { inventory = {
size=24, size=24,
lockable=true, 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_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^homedecor_kitchen_cabinet_bevel.png'
},
inventory_image = "[inventorycube"
.."{homedecor_kitchen_cabinet_top"..material..".png"
.."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides_colored,
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 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.register("kitchen_cabinet_colorable_with_drawers"..material, {
description = desc2,
tiles = {
'homedecor_kitchen_cabinet_top'..material..'.png',
cabinet_bottom,
cabinet_sides,
cabinet_sides,
cabinet_sides,
'homedecor_kitchen_cabinet_front_with_drawers.png^homedecor_kitchen_cabinet_bevel.png'
},
inventory_image = "[inventorycube"
.."{homedecor_kitchen_cabinet_top"..material..".png"
.."{homedecor_kitchen_cabinet_front_with_drawers.png"
.."{"..ic_cabinet_sides,
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "wallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_drawers"..material,
groups = { snappy = 3, ud_param2_colorable = 1},
sounds = default.node_sound_wood_defaults(),
infotext=S("Kitchen Cabinet with drawers"),
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.register("kitchen_cabinet_colored_with_drawers"..material, {
description = desc2,
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_with_drawers.png^homedecor_kitchen_cabinet_bevel.png'
},
inventory_image = "[inventorycube"
.."{homedecor_kitchen_cabinet_top"..material..".png"
.."{homedecor_kitchen_cabinet_colored_front_with_drawers.png"
.."{"..ic_cabinet_sides_colored,
mesh = "homedecor_kitchen_cabinet.obj",
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 1 },
sounds = default.node_sound_wood_defaults(),
infotext=S("Kitchen Cabinet with drawers"),
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
end end
local kitchen_cabinet_half_box = homedecor.nodebox.slab_y(0.5, 0.5) local kitchen_cabinet_half_box = homedecor.nodebox.slab_z(0.5, 0.5)
homedecor.register("kitchen_cabinet_half", {
homedecor.register("kitchen_cabinet_colorable_half", {
description = S('Half-height Kitchen Cabinet (on ceiling)'), description = S('Half-height Kitchen Cabinet (on ceiling)'),
tiles = { tiles = {
cabinet_sides, cabinet_sides,
@ -181,29 +297,77 @@ homedecor.register("kitchen_cabinet_half", {
cabinet_sides, cabinet_sides,
cabinet_sides, cabinet_sides,
cabinet_sides, cabinet_sides,
'homedecor_kitchen_cabinet_front_half.png' 'homedecor_kitchen_cabinet_front_half.png^homedecor_kitchen_cabinet_half_bevel.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, selection_box = kitchen_cabinet_half_box,
node_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(), sounds = default.node_sound_wood_defaults(),
infotext=S("Kitchen Cabinet"), infotext=S("Kitchen Cabinet"),
inventory = { inventory = {
size=12, size=12,
lockable=true, 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^homedecor_kitchen_cabinet_half_bevel.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, not_in_creative_inventory = 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"), description = S("Kitchen Cabinet with sink"),
mesh = "homedecor_kitchen_sink.obj", mesh = "homedecor_kitchen_sink.obj",
tiles = { tiles = {
"homedecor_kitchen_sink_top.png", "homedecor_kitchen_sink_top.png",
"homedecor_kitchen_cabinet_front.png", cabinet_bottom,
cabinet_sides, cabinet_sides,
cabinet_bottom cabinet_sides,
cabinet_sides,
"homedecor_kitchen_cabinet_front.png^homedecor_kitchen_cabinet_bevel.png"
}, },
groups = { snappy = 3 }, inventory_image = "[inventorycube"
.."{homedecor_kitchen_sink_top.png"
.."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides,
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(), sounds = default.node_sound_wood_defaults(),
infotext=S("Under-sink cabinet"), infotext=S("Under-sink cabinet"),
inventory = { inventory = {
@ -222,6 +386,54 @@ homedecor.register("kitchen_cabinet_with_sink", {
}, },
on_destruct = function(pos) on_destruct = function(pos)
homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z}) 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^homedecor_kitchen_cabinet_bevel.png",
},
inventory_image = "[inventorycube"
.."{homedecor_kitchen_sink_top.png"
.."{homedecor_kitchen_cabinet_front.png"
.."{"..ic_cabinet_sides_colored,
paramtype2 = "colorwallmounted",
palette = "unifieddyes_palette_colorwallmounted.png",
groups = { snappy = 3, ud_param2_colorable = 1, not_in_creative_inventory = 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 end
}) })
@ -257,10 +469,7 @@ homedecor.register("kitchen_faucet", {
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil, on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) 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}) local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
if below and if below and string.find(below.name, "homedecor:.*sink") then
below.name == "homedecor:sink" or
below.name == "homedecor:kitchen_cabinet_with_sink" or
below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
local particledef = { local particledef = {
outlet = { x = 0, y = -0.19, z = 0.13 }, outlet = { x = 0, y = -0.19, z = 0.13 },
velocity_x = { min = -0.05, max = 0.05 }, velocity_x = { min = -0.05, max = 0.05 },
@ -555,3 +764,29 @@ minetest.register_craft({
{ "homedecor:toilet_paper", "homedecor:toilet_paper" } { "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.swap_node(pos, { name = newname, param2 = new_fdir })
end
})

View File

@ -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

View File

@ -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

View File

@ -1,101 +1,166 @@
v -0.5 -0.5 -0.5 # Blender v2.83.5 OBJ File: 'kitchen_sink.blend'
v 0.5 -0.5 -0.5 # www.blender.org
v 0.5 -0.5 0.5 o Cube_Cube.001
v -0.5 -0.5 0.5 v 0.500000 -0.500000 -0.500000
v -0.5 0.5 0.5 v 0.500000 -0.500000 0.500000
v -0.5 0.5 -0.5 v -0.500000 -0.500000 -0.500000
v 0.5 0.5 -0.5 v -0.500000 -0.500000 0.500000
v 0.5 0.5 0.5 v 0.500000 0.500000 -0.500000
v -0.387 0.5 0.388 v 0.500000 0.500000 0.500000
v -0.387 0.5 -0.387 v -0.500000 0.500000 -0.500000
v 0.388 0.5 -0.387 v -0.500000 0.500000 0.500000
v 0.388 0.5 0.388 v 0.000000 -0.500000 0.500000
v -0.387 0.4 0.388 v 0.000000 0.500000 0.500000
v -0.387 0.4 -0.387 v 0.000000 0.062500 0.437500
v 0.388 0.4 -0.387 v -0.062500 0.062500 0.375000
v 0.388 0.4 0.388 v 0.062500 0.062500 0.375000
v 0.063 0.4 -0.062 v 0.062500 -0.062500 0.437500
v 0.063 0.4 0.063 v 0.000000 -0.062500 0.437500
v -0.062 0.4 -0.062 v 0.062500 -0.062500 0.375000
v -0.062 0.4 0.063 v -0.062500 -0.062500 0.437500
v 0.063 0.313 0.063 v -0.062500 0.062500 0.437500
v 0.063 0.313 -0.062 v -0.062500 -0.062500 0.375000
v -0.062 0.313 0.063 v 0.000000 0.375000 0.437500
v -0.062 0.313 -0.062 v 0.062500 0.062500 0.437500
vt 0.469 0.906 v 0.000000 -0.375000 0.437500
vt 0.469 0.531 v -0.375000 -0.375000 0.437500
vt 0.531 0.469 v -0.375000 0.375000 0.500000
vt 0.531 0.969 v -0.375000 0.375000 0.437500
vt 0.031 0.969 v 0.375000 0.375000 0.437500
vt 0.094 0.906 v 0.000000 0.375000 0.500000
vt 0.031 0.469 v 0.375000 0.375000 0.500000
vt 0.094 0.531 v 0.000000 -0.375000 0.500000
vt 0.813 0.5 v 0.375000 -0.375000 0.500000
vt 0.813 0.938 v 0.375000 -0.375000 0.437500
vt 0.781 0.938 v -0.375000 -0.375000 0.500000
vt 0.781 0.5 vt 0.437500 0.375000
vt 0.688 0.5 vt 0.562500 0.437500
vt 0.719 0.5 vt 0.437500 0.437500
vt 0.719 0.938 vt 0.125000 0.875000
vt 0.688 0.938 vt 0.875000 0.875000
vt 0.906 0.5 vt 1.000000 1.000000
vt 0.906 0.938 vt 0.625000 0.500000
vt 0.875 0.938 vt 0.625000 0.562500
vt 0.875 0.5 vt 0.562500 0.562500
vt 0.594 0.5 vt 0.875000 0.062500
vt 0.625 0.5 vt 0.125000 0.125000
vt 0.625 0.938 vt 0.125000 0.062500
vt 0.594 0.938 vt 0.875000 0.875000
vt 0.313 0.75 vt 0.437500 0.562500
vt 0.313 0.688 vt 0.562500 0.562500
vt 0.25 0.688 vt 0.875000 0.125000
vt 0.25 0.75 vt 0.125000 0.125000
vt 0.219 0.375 vt 0.000000 0.000000
vt 0.219 0.313 vt 0.375000 0.500000
vt 0.25 0.313 vt 0.375000 0.437500
vt 0.25 0.375 vt 0.437500 0.625000
vt 0.25 0.406 vt 0.437500 0.562500
vt 0.313 0.375 vt 0.875000 0.500000
vt 0.313 0.406 vt 0.875000 0.125000
vt 0.313 0.313 vt 0.937500 0.500000
vt 0.344 0.313 vt 0.125000 0.500000
vt 0.344 0.375 vt 0.125000 0.875000
vt 0.25 0.281 vt 0.062500 0.875000
vt 0.313 0.281 vt 0.562500 0.437500
vt 0 0 vt 0.437500 0.437500
vt 1 0 vt 0.125000 0.937500
vt 1 1 vt 0.875000 0.937500
vt 0 1 vt 0.937500 0.125000
vn 0 1 0 vt 0.937500 0.875000
vn -1 0 0 vt 0.062500 0.500000
vn 0 0 -1 vt 0.062500 0.125000
vn 1 0 0 vt 0.562500 0.375000
vn 0 0 1 vt 0.625000 0.437500
vn 0 -1 0 vt 0.375000 0.562500
g 1 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 s off
f 9/1/1 10/2/1 6/3/1 5/4/1 f 14/1/1 13/2/1 16/3/1
f 5/4/1 8/5/1 12/6/1 9/1/1 f 32/4/2 24/5/2 8/6/2
f 7/7/1 6/3/1 10/2/1 11/8/1 f 11/7/3 18/8/3 12/9/3
f 8/5/1 7/7/1 11/8/1 12/6/1 f 28/10/1 31/11/1 30/12/1
f 15/9/2 16/10/2 12/11/2 11/12/2 f 25/13/2 17/14/2 18/15/2
f 16/13/3 13/14/3 9/15/3 12/16/3 f 28/16/2 30/17/2 2/18/2
f 13/17/4 14/18/4 10/19/4 9/20/4 f 15/19/4 14/20/4 16/3/4
f 14/21/5 15/22/5 11/23/5 10/24/5 f 12/9/5 17/21/5 19/22/5
f 13/2/1 16/1/1 18/25/1 20/26/1 f 20/23/3 26/24/3 27/25/3
f 19/27/1 14/8/1 13/2/1 20/26/1 f 22/26/4 23/27/4 32/28/4
f 17/28/1 15/6/1 14/8/1 19/27/1 f 26/24/2 21/29/2 14/30/2
f 16/1/1 15/6/1 17/28/1 18/25/1 f 32/31/5 25/13/5 24/32/5
f 17/29/2 22/30/2 21/31/2 18/32/2 f 12/9/2 19/22/2 16/3/2 13/2/2
f 18/33/3 21/32/3 23/34/3 20/35/3 f 28/10/1 26/24/1 31/11/1
f 20/34/4 23/36/4 24/37/4 19/38/4 f 26/24/3 28/33/3 27/25/3
f 19/31/5 24/39/5 22/40/5 17/36/5 f 27/25/3 24/34/3 20/23/3
f 24/27/1 23/26/1 21/25/1 22/28/1 f 24/34/3 25/13/3 20/23/3
g 2 f 32/28/4 29/35/4 22/26/4
f 2/41/3 1/42/3 6/43/3 7/44/3 f 29/35/4 30/36/4 22/26/4
g 3 f 30/36/4 31/11/4 22/26/4
f 1/41/2 4/42/2 5/43/2 6/44/2 f 32/31/5 23/27/5 25/13/5
f 2/42/4 7/43/4 8/44/4 3/41/4 f 14/1/1 21/37/1 13/2/1
f 4/41/5 3/42/5 8/43/5 5/44/5 f 12/9/3 13/2/3 11/7/3
g 4 f 13/2/3 21/38/3 11/7/3
f 1/43/6 2/44/6 3/41/6 4/42/6 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 B

After

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

After

Width:  |  Height:  |  Size: 286 B

View File

@ -1789,6 +1789,14 @@ unifieddyes.register_color_craft({
} }
}) })
minetest.register_craft({
output = "homedecor:torch_wall 10",
recipe = {
{ "default:coal_lump" },
{ "default:steel_ingot" },
},
})
-- aliases -- aliases
minetest.register_alias("chains:chain_top", "homedecor:chain_steel_top") minetest.register_alias("chains:chain_top", "homedecor:chain_steel_top")

View File

@ -2,172 +2,30 @@
local S = minetest.get_translator("homedecor_tables") local S = minetest.get_translator("homedecor_tables")
local materials = {
{ "glass",
S("Small square glass table"),
S("Small round glass table"),
S("Large glass table piece"),
},
{ "wood",
S("Small square wooden table"),
S("Small round wooden table"),
S("Large wooden table piece"),
}
}
local tables_cbox = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
}
for i, mat in ipairs(materials) do
local m, small_s, small_r, large = unpack(mat)
local s
if m == "glass" then
s = default.node_sound_glass_defaults()
else
s = default.node_sound_wood_defaults()
end
-- small square tables
homedecor.register(m.."_table_small_square", {
description = small_s,
mesh = "homedecor_table_small_square.obj",
tiles = { 'homedecor_'..m..'_table_small_square.png' },
wield_image = 'homedecor_'..m..'_table_small_square_inv.png',
inventory_image = 'homedecor_'..m..'_table_small_square_inv.png',
groups = { snappy = 3 },
sounds = s,
selection_box = tables_cbox,
collision_box = tables_cbox,
on_place = minetest.rotate_node
})
-- small round tables
homedecor.register(m..'_table_small_round', {
description = small_r,
mesh = "homedecor_table_small_round.obj",
tiles = { "homedecor_"..m.."_table_small_round.png" },
wield_image = 'homedecor_'..m..'_table_small_round_inv.png',
inventory_image = 'homedecor_'..m..'_table_small_round_inv.png',
groups = { snappy = 3 },
sounds = s,
selection_box = tables_cbox,
collision_box = tables_cbox,
on_place = minetest.rotate_node
})
-- Large square table pieces
homedecor.register(m..'_table_large', {
description = large,
tiles = {
'homedecor_'..m..'_table_large_tb.png',
'homedecor_'..m..'_table_large_tb.png',
'homedecor_'..m..'_table_large_edges.png',
'homedecor_'..m..'_table_large_edges.png',
'homedecor_'..m..'_table_large_edges.png',
'homedecor_'..m..'_table_large_edges.png'
},
wield_image = 'homedecor_'..m..'_table_large_inv.png',
inventory_image = 'homedecor_'..m..'_table_large_inv.png',
groups = { snappy = 3 },
sounds = s,
node_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
},
selection_box = tables_cbox,
on_place = minetest.rotate_node
})
minetest.register_alias('homedecor:'..m..'_table_large_b', 'homedecor:'..m..'_table_large')
minetest.register_alias('homedecor:'..m..'_table_small_square_b', 'homedecor:'..m..'_table_small_square')
minetest.register_alias('homedecor:'..m..'_table_small_round_b', 'homedecor:'..m..'_table_small_round')
end
-- conversion routines for old non-6dfacedir tables
local tlist_s = {}
local tlist_t = {}
local dirs2 = { 9, 18, 7, 12 }
for i in ipairs(materials) do
local m = materials[i][1]
table.insert(tlist_s, "homedecor:"..m.."_table_large_s")
table.insert(tlist_s, "homedecor:"..m.."_table_small_square_s")
table.insert(tlist_s, "homedecor:"..m.."_table_small_round_s")
table.insert(tlist_t, "homedecor:"..m.."_table_large_t")
table.insert(tlist_t, "homedecor:"..m.."_table_small_square_t")
table.insert(tlist_t, "homedecor:"..m.."_table_small_round_t")
end
minetest.register_abm({
nodenames = tlist_s,
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local newnode = string.sub(node.name, 1, -3) -- strip the "_s" from the name
local fdir = node.param2 or 0
minetest.set_node(pos, {name = newnode, param2 = dirs2[fdir+1]})
end
})
minetest.register_abm({
nodenames = tlist_t,
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local newnode = string.sub(node.name, 1, -3) -- strip the "_t" from the name
minetest.set_node(pos, { name = newnode, param2 = 20 })
end
})
-- other tables
homedecor.register("utility_table_top", {
description = S("Utility Table"),
tiles = {
'homedecor_utility_table_tb.png',
'homedecor_utility_table_tb.png',
'homedecor_utility_table_edges.png',
'homedecor_utility_table_edges.png',
'homedecor_utility_table_edges.png',
'homedecor_utility_table_edges.png'
},
wield_image = 'homedecor_utility_table_tb.png',
inventory_image = 'homedecor_utility_table_tb.png',
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
paramtype2 = "wallmounted",
node_box = {
type = "wallmounted",
wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 },
wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 },
},
selection_box = {
type = "wallmounted",
wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 },
wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 },
},
})
-- Various kinds of table legs -- Various kinds of table legs
-- local above local table_shapes = {"large_square", "small_square", "small_round"}
materials = {
{ "brass", S("brass") }, local tabletop_materials = {
{ "wrought_iron", S("wrought iron") }, { "glass",
S("Small square glass tabletop"),
S("Small round glass tabletop"),
S("Large glass tabletop piece"),
},
{ "wood",
S("Small square wooden tabletop"),
S("Small round wooden tabletop"),
S("Large wooden tabletop piece"),
}
} }
for _, t in ipairs(materials) do leg_materials = {
{ "brass", S("brass") },
{ "wrought_iron", S("wrought iron") },
{ "wood", S("wood") }
}
for _, t in ipairs(leg_materials) do
local name, desc = unpack(t) local name, desc = unpack(t)
homedecor.register("table_legs_"..name, { homedecor.register("table_legs_"..name, {
description = S("Table Legs (@1)", desc), description = S("Table Legs (@1)", desc),
@ -185,23 +43,121 @@ homedecor.register("table_legs_"..name, {
}) })
end end
homedecor.register("utility_table_legs", { minetest.register_alias("homedecor:utility_table_legs", "homedecor:table_legs_wood")
description = S("Legs for Utility Table"), minetest.register_alias("homedecor:utility_table_top", "homedecor:wood_table_small_square")
drawtype = "plantlike",
tiles = { 'homedecor_utility_table_legs.png' }, -- table tops and combined tables
inventory_image = 'homedecor_utility_table_legs_inv.png',
wield_image = 'homedecor_utility_table_legs.png', local tables_cbox = {
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
selection_box = {
type = "fixed", type = "fixed",
fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 } fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
}
for i, mat in ipairs(tabletop_materials) do
local m, small_s, small_r, large = unpack(mat)
local s
if m == "glass" then
s = default.node_sound_glass_defaults()
else
s = default.node_sound_wood_defaults()
end
for _, shape in ipairs(table_shapes) do
homedecor.register(m.."_table_"..shape, {
description = shape.." "..m.." tabletop",
mesh = "homedecor_table_"..shape..".obj",
tiles = {
'homedecor_'..m..'_table_'..shape..'.png',
'homedecor_'..m..'_table_edges.png',
'homedecor_blanktile.png',
'homedecor_blanktile.png',
'homedecor_blanktile.png',
}, },
wield_image = 'homedecor_'..m..'_table_'..shape..'_inv.png',
groups = { snappy = 3 },
sounds = s,
selection_box = tables_cbox,
collision_box = tables_cbox,
on_place = function(itemstack, placer, pointed_thing)
local player_name = placer:get_player_name()
if minetest.is_protected(pointed_thing.under, player_name) then return end
local node = minetest.get_node(pointed_thing.under)
if string.find(node.name, "homedecor:table_legs") then
local newname = string.format("homedecor:%s_table_%s_with_%s_legs",
m, shape, string.sub(node.name, 22))
minetest.set_node(pointed_thing.under, {name = newname})
if not creative.is_enabled_for(player_name) then
itemstack:take_item()
return itemstack
end
else
return minetest.rotate_node(itemstack, placer, pointed_thing)
end
end
}) })
-- crafting for _, l in ipairs(leg_materials) do
local leg_mat, desc = unpack(l)
homedecor.register(string.format("%s_table_%s_with_%s_legs", m, shape, leg_mat), {
description = string.format("%s %s table with %s legs", shape, m, leg_mat),
mesh = "homedecor_table_"..shape..".obj",
tiles = {
'homedecor_blanktile.png',
'homedecor_blanktile.png',
'homedecor_'..m..'_table_'..shape..'.png',
'homedecor_'..m..'_table_edges.png',
"homedecor_table_legs_"..leg_mat..".png",
},
groups = { snappy = 3 },
sounds = s,
})
end
end
minetest.register_alias('homedecor:'..m..'_table_large_b', 'homedecor:'..m..'_table_large')
minetest.register_alias('homedecor:'..m..'_table_small_square_b', 'homedecor:'..m..'_table_small_square')
minetest.register_alias('homedecor:'..m..'_table_small_round_b', 'homedecor:'..m..'_table_small_round')
minetest.register_alias('homedecor:'..m..'_table_large', 'homedecor:'..m..'_table_large_square')
end
-- old-style tables that used to be from 3dforniture.
local table_colors = {
{ "", S("Table"), homedecor.plain_wood },
{ "_mahogany", S("Mahogany Table"), homedecor.mahogany_wood },
{ "_white", S("White Table"), homedecor.white_wood }
}
for _, t in ipairs(table_colors) do
local suffix, desc, texture = unpack(t)
homedecor.register("table"..suffix, {
description = desc,
tiles = { texture },
node_box = {
type = "fixed",
fixed = {
{ -0.4, -0.5, -0.4, -0.3, 0.4, -0.3 },
{ 0.3, -0.5, -0.4, 0.4, 0.4, -0.3 },
{ -0.4, -0.5, 0.3, -0.3, 0.4, 0.4 },
{ 0.3, -0.5, 0.3, 0.4, 0.4, 0.4 },
{ -0.5, 0.4, -0.5, 0.5, 0.5, 0.5 },
{ -0.4, -0.2, -0.3, -0.3, -0.1, 0.3 },
{ 0.3, -0.2, -0.4, 0.4, -0.1, 0.3 },
{ -0.3, -0.2, -0.4, 0.4, -0.1, -0.3 },
{ -0.3, -0.2, 0.3, 0.3, -0.1, 0.4 },
},
},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
})
end
-- crafting
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:glass_table_small_round_b 15", output = "homedecor:glass_table_small_round_b 15",
@ -226,8 +182,6 @@ minetest.register_craft( {
} }
}) })
--
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:wood_table_small_round_b 15", output = "homedecor:wood_table_small_round_b 15",
recipe = { recipe = {
@ -305,7 +259,73 @@ minetest.register_craft({
burntime = 30, burntime = 30,
}) })
for _, shape in ipairs (table_shapes) do
for _, leg in ipairs(leg_materials) do
for _, mat in ipairs(tabletop_materials) do
minetest.register_craft({
output = "homedecor:"..mat[1].."_table_"..shape.."_with_"..leg[1].."_legs",
type = "shapeless",
recipe = {
"homedecor:"..mat[1].."_table_"..shape,
"homedecor:table_legs_"..leg[1]
},
})
end
end
end
minetest.register_craft({
output = "homedecor:table",
recipe = {
{ "group:wood","group:wood", "group:wood" },
{ "group:stick", "", "group:stick" },
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_mahogany",
recipe = {
"homedecor:table",
"dye:brown",
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_mahogany",
recipe = {
"homedecor:table",
"unifieddyes:dark_orange",
},
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:table_white",
recipe = {
"homedecor:table",
"dye:white",
},
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_mahogany",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:table_white",
burntime = 30,
})
-- recycling -- recycling
@ -368,3 +388,8 @@ minetest.register_craft({
"homedecor:wood_table_large" "homedecor:wood_table_large"
} }
}) })
-- Aliases for the above 3dforniture-like tables
minetest.register_alias("3dforniture:table", "homedecor:table")
minetest.register_alias('table', 'homedecor:table')

View File

@ -1,3 +1,4 @@
name = homedecor_tables name = homedecor_tables
description = Homedecor mod: tables description = Homedecor mod: tables
depends = homedecor_common, default, basic_materials depends = homedecor_common, default, basic_materials
optional_depends = creative

View File

@ -0,0 +1,107 @@
# Blender v2.83.5 OBJ File: 'homedecor table with legs.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.437500 -0.500000
v -0.353553 -0.500000 0.353554
v -0.353553 0.437515 0.353554
v 0.353553 -0.500000 -0.353553
v 0.353553 0.437515 -0.353553
v 0.500000 -0.500000 0.500000
v 0.500000 -0.437500 -0.500000
v 0.500000 -0.437500 0.500000
v -0.500000 -0.437500 -0.500000
v -0.500000 -0.500000 -0.500000
v -0.500000 -0.437500 0.500000
v 0.500000 0.437500 -0.500000
v 0.500000 0.437500 0.500000
v -0.500000 0.500000 -0.500000
v -0.500000 0.437500 0.500000
v -0.500000 0.500000 0.500000
v 0.353553 -0.500000 0.353554
v 0.353553 0.437515 0.353554
v -0.353553 -0.500000 -0.353553
v -0.353553 0.437515 -0.353553
vt -0.000000 -0.000000
vt 1.000000 -0.000000
vt 1.000000 0.500000
vt -0.000000 0.500000
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.500000
vt 1.000000 0.500000
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
vt -0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 1.000000
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
vt -0.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt -0.000000 1.000000
vt 1.000000 -0.000000
vt 1.000000 0.500000
vt 0.000000 0.500000
vt 0.000000 -0.000000
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 1.000000
vt -0.000000 0.937500
vt -0.000000 1.000000
vt -0.000000 0.937500
vt 1.000000 0.937500
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 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
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn 0.7071 0.0000 -0.7071
vn 0.7071 0.0000 0.7071
g Cube_Cube.001_top-bottom
s off
f 14/1/1 2/2/1 10/3/1 1/4/1
f 11/5/2 13/6/2 15/7/2 12/8/2
g Cube_Cube.001_edges
f 11/5/3 12/9/3 10/10/3 2/11/3
f 13/6/4 14/12/4 1/13/4 15/14/4
f 12/15/5 15/16/5 1/17/5 10/18/5
f 13/19/6 11/20/6 2/21/6 14/22/6
g Cube_Cube.001_top-bot_with_legs
f 20/23/2 3/24/2 4/25/2 18/26/2
f 16/27/1 17/28/1 19/29/1 5/30/1
g Cube_Cube.001_edges_with_legs
f 20/31/5 19/32/5 17/33/5 3/34/5
f 4/25/3 3/35/3 17/36/3 16/37/3
f 19/38/4 20/39/4 18/26/4 5/40/4
f 4/41/6 16/42/6 5/43/6 18/44/6
g Cube_Cube.001_legs
f 21/45/7 23/46/7 24/47/7 22/48/7
f 6/49/8 8/50/8 9/51/8 7/52/8

File diff suppressed because it is too large Load Diff

View File

@ -1,43 +1,139 @@
v 0.499 -0.499 -0.499 # Blender v2.83.5 OBJ File: 'homedecor small square table with legs.blend'
v 0.499 -0.499 0.499 # www.blender.org
v -0.499 -0.499 0.499 o Cube_Cube.001
v -0.499 -0.499 -0.499 v -0.500000 -0.500000 0.500000
v 0.499 -0.469 -0.499 v 0.500000 -0.500000 -0.500000
v 0.499 -0.469 0.499 v -0.500000 0.437500 -0.500000
v -0.499 -0.469 0.499 v -0.353553 -0.500000 0.353554
v -0.499 -0.469 -0.499 v -0.353553 0.437515 0.353554
v 0.469 -0.437 -0.469 v 0.353553 -0.500000 -0.353553
v 0.469 -0.437 0.469 v 0.353553 0.437515 -0.353553
v -0.469 -0.437 0.469 v 0.500000 -0.500000 0.500000
v -0.469 -0.437 -0.469 v -0.500000 -0.500000 -0.500000
vt 0.5 0.029 v 0.500000 0.437500 -0.500000
vt 0.971 0.029 v 0.500000 0.437500 0.500000
vt 0.971 0.5 v -0.500000 0.437500 0.500000
vt 0.5 0.5 v 0.353553 -0.500000 0.353554
vt 0.015 0.985 v 0.353553 0.437515 0.353554
vt 0.015 0.515 v -0.353553 -0.500000 -0.353553
vt 0.029 0.529 v -0.353553 0.437515 -0.353553
vt 0.029 0.971 v 0.468750 0.500000 0.468750
vt 0.985 0.5 v 0.500000 0.468750 0.500000
vt 0.985 0.029 v 0.500000 0.468750 -0.500000
vt 0.5 0.515 v 0.468750 0.500000 -0.468750
vt 0.971 0.515 v 0.500000 -0.468750 -0.500000
vt 0.485 0.029 v 0.468750 -0.437500 -0.468750
vt 0.485 0.5 v 0.500000 -0.468750 0.500000
vt 0.971 0.015 v 0.468750 -0.437500 0.468750
vt 0.5 0.015 v -0.500000 -0.468750 -0.500000
vt 0.471 0.971 v -0.468750 -0.437500 -0.468750
vt 0.471 0.529 v -0.468750 -0.437500 0.468750
vt 0.485 0.515 v -0.500000 -0.468750 0.500000
vt 0.485 0.985 v -0.468750 0.500000 -0.468750
v -0.500000 0.468750 -0.500000
v -0.468750 0.500000 0.468750
v -0.500000 0.468750 0.500000
vt -0.000000 -0.000000
vt 1.000000 -0.000000
vt 1.000000 0.500000
vt -0.000000 0.500000
vt 0.968750 0.984375
vt 0.031250 0.984375
vt 0.031250 0.515625
vt 0.968750 0.515625
vt 0.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 0.968750
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 -0.000000
vt 1.000000 0.500000
vt 0.000000 0.500000
vt 0.000000 -0.000000
vt 0.031250 0.515625
vt 0.968750 0.515625
vt 0.968750 0.984375
vt 0.031250 0.984375
vt 0.000000 1.000000
vt 0.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 0.968750
vt 1.000000 0.937500
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.937500
vt 1.000000 0.937500
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 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.7071 0.7071
vn 0.7071 0.7071 0.0000
vn 0.0000 0.7071 -0.7071
vn -0.7071 0.7071 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.7071 0.0000 -0.7071
vn 0.7071 0.0000 0.7071
g Cube_Cube.001_top-bottom
s off s off
f 1/1 2/2 3/3 4/4 f 9/1/1 2/2/1 8/3/1 1/4/1
f 8/5 7/6 11/7 12/8 f 22/5/2 26/6/2 27/7/2 24/8/2
f 1/9 5/3 6/2 2/10 f 24/8/3 27/7/3 28/9/3 23/10/3
f 2/11 6/4 7/3 3/12 f 22/5/4 24/8/4 23/10/4 21/11/4
f 3/13 7/1 8/4 4/14 f 26/6/5 22/5/5 21/11/5 25/12/5
f 5/15 1/2 4/1 8/16 f 27/7/6 26/6/6 25/12/6 28/9/6
f 9/17 12/8 11/7 10/18 g Cube_Cube.001_edges
f 7/6 6/19 10/18 11/7 f 23/13/7 28/14/7 1/15/7 8/16/7
f 5/20 8/5 12/8 9/17 f 25/17/8 21/18/8 2/19/8 9/20/8
f 6/19 5/20 9/17 10/18 f 25/21/9 9/22/9 1/23/9 28/24/9
f 21/25/10 23/26/10 8/27/10 2/28/10
g Cube_Cube.001_top-bot_with_legs
f 10/29/1 11/30/1 12/31/1 3/32/1
f 31/33/2 17/34/2 20/35/2 29/36/2
f 31/33/6 29/36/6 30/37/6 32/38/6
f 20/35/4 17/34/4 18/39/4 19/40/4
f 17/34/3 31/33/3 32/38/3 18/39/3
f 29/36/5 20/35/5 19/40/5 30/37/5
g Cube_Cube.001_edges_with_legs
f 32/41/7 12/42/7 11/43/7 18/44/7
f 19/45/8 10/46/8 3/47/8 30/48/8
f 12/49/9 32/50/9 30/51/9 3/52/9
f 19/53/10 18/54/10 11/55/10 10/56/10
g Cube_Cube.001_legs
f 13/57/11 15/58/11 16/59/11 14/60/11
f 4/61/12 6/62/12 7/63/12 5/64/12

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 B

View File

Before

Width:  |  Height:  |  Size: 189 B

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 B

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 325 B

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 573 B

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 982 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 901 B