also contains updates to castle modpack's tapestries that hasn't hit the official castle modpack yet. removed redundant castle mod (should have been deleted when DB switched to the modpack one)
253 lines
6.9 KiB
Lua
253 lines
6.9 KiB
Lua
|
|
local S = homedecor_i18n.gettext
|
|
|
|
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 kc_cbox = {
|
|
type = "fixed",
|
|
fixed = { -0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125 },
|
|
}
|
|
|
|
local ac_cbox = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-0.5, -0.5, -0.5, 0.5, 0, 0.5 },
|
|
{-0.5, -0.5, 0.4, 0.5, 0.5, 0.5 }
|
|
}
|
|
}
|
|
|
|
homedecor.register("kitchen_chair_wood", {
|
|
description = S("Kitchen chair"),
|
|
mesh = "homedecor_kitchen_chair.obj",
|
|
tiles = {
|
|
homedecor.plain_wood,
|
|
homedecor.plain_wood
|
|
},
|
|
inventory_image = "homedecor_chair_wood_inv.png",
|
|
paramtype2 = "wallmounted",
|
|
selection_box = kc_cbox,
|
|
collision_box = kc_cbox,
|
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
after_place_node = unifieddyes.fix_rotation_nsew,
|
|
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
|
|
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
|
pos.y = pos.y+0 -- where do I put my ass ?
|
|
homedecor.sit(pos, node, clicker)
|
|
return itemstack
|
|
end
|
|
})
|
|
|
|
homedecor.register("kitchen_chair_padded", {
|
|
description = S("Kitchen chair"),
|
|
mesh = "homedecor_kitchen_chair.obj",
|
|
tiles = {
|
|
homedecor.plain_wood,
|
|
"wool_white.png",
|
|
},
|
|
inventory_image = "homedecor_chair_padded_inv.png",
|
|
paramtype2 = "colorwallmounted",
|
|
palette = "unifieddyes_palette_colorwallmounted.png",
|
|
selection_box = kc_cbox,
|
|
collision_box = kc_cbox,
|
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, ud_param2_colorable = 1},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
|
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
|
|
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
|
|
end,
|
|
after_dig_node = unifieddyes.after_dig_node,
|
|
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
|
|
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
|
pos.y = pos.y+0 -- where do I put my ass ?
|
|
homedecor.sit(pos, node, clicker)
|
|
return itemstack
|
|
end
|
|
})
|
|
|
|
homedecor.register("armchair", {
|
|
description = S("Armchair"),
|
|
mesh = "forniture_armchair.obj",
|
|
tiles = {
|
|
"wool_white.png",
|
|
{ name = "wool_dark_grey.png", color = 0xffffffff },
|
|
{ name = "default_wood.png", color = 0xffffffff }
|
|
},
|
|
inventory_image = "homedecor_armchair_inv.png",
|
|
paramtype2 = "colorwallmounted",
|
|
palette = "unifieddyes_palette_colorwallmounted.png",
|
|
groups = {snappy=3, ud_param2_colorable = 1},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
node_box = ac_cbox,
|
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
|
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
|
|
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
|
|
end,
|
|
after_dig_node = unifieddyes.after_dig_node,
|
|
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
|
|
})
|
|
|
|
local ob_cbox = {
|
|
type = "fixed",
|
|
fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 }
|
|
}
|
|
|
|
minetest.register_node(":homedecor:openframe_bookshelf", {
|
|
description = S("Bookshelf (open-frame)"),
|
|
drawtype = "mesh",
|
|
mesh = "homedecor_openframe_bookshelf.obj",
|
|
tiles = {
|
|
"homedecor_openframe_bookshelf_books.png",
|
|
"default_wood.png"
|
|
},
|
|
groups = {choppy=3,oddly_breakable_by_hand=2,flammable=3},
|
|
sounds = default.node_sound_wood_defaults(),
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
selection_box = ob_cbox,
|
|
collision_box = ob_cbox,
|
|
})
|
|
|
|
homedecor.register("wall_shelf", {
|
|
description = S("Wall Shelf"),
|
|
tiles = {
|
|
"homedecor_wood_table_large_edges.png",
|
|
},
|
|
groups = { snappy = 3 },
|
|
sounds = default.node_sound_wood_defaults(),
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-0.5, 0.4, 0.47, 0.5, 0.47, 0.5},
|
|
{-0.5, 0.47, -0.1875, 0.5, 0.5, 0.5}
|
|
}
|
|
}
|
|
})
|
|
|
|
-- Aliases for 3dforniture mod.
|
|
|
|
minetest.register_alias("3dforniture:table", "homedecor:table")
|
|
minetest.register_alias("3dforniture:chair", "homedecor:chair")
|
|
minetest.register_alias("3dforniture:armchair", "homedecor:armchair_black")
|
|
minetest.register_alias("homedecor:armchair", "homedecor:armchair_black")
|
|
|
|
minetest.register_alias('table', 'homedecor:table')
|
|
minetest.register_alias('chair', 'homedecor:chair')
|
|
minetest.register_alias('armchair', 'homedecor:armchair')
|
|
|
|
-- conversion to param2 colorization
|
|
|
|
homedecor.old_static_chairs = {}
|
|
|
|
local chair_colors = {
|
|
"black",
|
|
"brown",
|
|
"blue",
|
|
"cyan",
|
|
"dark_grey",
|
|
"dark_green",
|
|
"green",
|
|
"grey",
|
|
"magenta",
|
|
"orange",
|
|
"pink",
|
|
"red",
|
|
"violet",
|
|
"white",
|
|
"yellow",
|
|
}
|
|
|
|
for _, color in ipairs(chair_colors) do
|
|
table.insert(homedecor.old_static_chairs, "homedecor:chair_"..color)
|
|
table.insert(homedecor.old_static_chairs, "homedecor:armchair_"..color)
|
|
end
|
|
table.insert(homedecor.old_static_chairs, "homedecor:chair")
|
|
|
|
minetest.register_lbm({
|
|
name = "homedecor:convert_chairs",
|
|
label = "Convert homedecor chairs to use param2 color",
|
|
run_at_every_load = false,
|
|
nodenames = homedecor.old_static_chairs,
|
|
action = function(pos, node)
|
|
local name = node.name
|
|
local paletteidx = 0
|
|
local color
|
|
local a,b = string.find(name, "_")
|
|
|
|
if a then
|
|
color = string.sub(name, a+1)
|
|
|
|
if color == "blue" then
|
|
color = "medium_blue"
|
|
elseif color == "violet" then
|
|
color = "medium_violet"
|
|
elseif color == "red" then
|
|
color = "medium_red"
|
|
elseif color == "black" then
|
|
color = "dark_grey"
|
|
end
|
|
|
|
paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
|
|
end
|
|
|
|
local old_fdir = math.floor(node.param2 % 32)
|
|
local new_fdir = 3
|
|
|
|
if old_fdir == 0 then
|
|
new_fdir = 3
|
|
elseif old_fdir == 1 then
|
|
new_fdir = 4
|
|
elseif old_fdir == 2 then
|
|
new_fdir = 2
|
|
elseif old_fdir == 3 then
|
|
new_fdir = 5
|
|
end
|
|
|
|
local param2 = paletteidx + new_fdir
|
|
local newname = "homedecor:armchair"
|
|
|
|
print(name, dump(a), dump(b), dump(color).."("..dump(paletteidx)..")", dump(param2))
|
|
|
|
if node.name == "homedecor:chair" then
|
|
newname = "homedecor:kitchen_chair_wood"
|
|
elseif string.find(node.name, "homedecor:chair_") then
|
|
newname = "homedecor:kitchen_chair_padded"
|
|
end
|
|
|
|
minetest.set_node(pos, { name = newname, param2 = param2 })
|
|
local meta = minetest.get_meta(pos)
|
|
if color then
|
|
meta:set_string("dye", "unifieddyes:"..color)
|
|
end
|
|
end
|
|
})
|