1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2024-11-18 16:20:38 +01:00

Updated homedecor_modpack

- Added overrides of missing technic nodes if mod is disabled
- Turned a lot of nodes into meshnodes and removed useless side textures
- Used a new way to register nodes like windows, shower heads, etc...
This commit is contained in:
LeMagnesium 2015-03-29 12:06:13 +02:00
parent 5b071b9018
commit 6dce5e5cfc
97 changed files with 304 additions and 1150 deletions

View File

@ -570,3 +570,39 @@ minetest.register_craft({
} }
}) })
if not minetest.get_modpath("technic") then
minetest.register_node( ":technic:granite", {
description = "Granite",
tiles = { "technic_granite.png" },
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "technic:granite 9",
recipe = {
{ "building_blocks:Tar", "building_blocks:Marble", "building_blocks:Tar" },
{ "building_blocks:Marble", "building_blocks:Tar", "building_blocks:Marble" },
{ "building_blocks:Tar", "building_blocks:Marble", "building_blocks:Tar" }
},
})
if minetest.get_modpath("moreblocks") then
stairsplus:register_all("technic", "granite", "technic:granite", {
description="Granite",
groups={cracky=1, not_in_creative_inventory=1},
tiles={"technic_granite.png"},
})
minetest.register_craft({
output = "technic:granite 9",
recipe = {
{ "moreblocks:tar", "building_blocks:Marble", "moreblocks:tar" },
{ "building_blocks:Marble", "moreblocks:tar", "building_blocks:Marble" },
{ "moreblocks:tar", "building_blocks:Marble", "moreblocks:tar" }
},
})
end
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 947 B

View File

@ -141,31 +141,46 @@ homedecor.register("shower_tray", {
type = "fixed", type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, -0.4, 0.5 }, fixed = { -0.5, -0.5, -0.5, 0.5, -0.4, 0.5 },
}, },
groups = {cracky=2,}, groups = {cracky=2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
--Shower Head --Shower Head
local sh_cbox = {
type = "fixed",
fixed = { -0.2, -0.4, -0.1, 0.2, 0.1, 0.5 }
}
homedecor.register("shower_head", { homedecor.register("shower_head", {
description = S("Shower Head"), drawtype = "mesh",
tiles = { "forniture_metal.png" }, mesh = "homedecor_shower_head.obj",
inventory_image="3dforniture_inv_shower_head.png", tiles = { "homedecor_shower_head.png" },
sunlight_propagates = true, inventory_image = "homedecor_shower_head_inv.png",
node_box = { description = "Shower Head",
type = "fixed", groups = {snappy=3},
fixed = { selection_box = sh_cbox,
{ -0.10, -0.50, 0.10, 0.10, -0.40, 0.30, }, collision_box = sh_cbox,
{ -0.05, -0.40, 0.15, 0.05, -0.30, 0.25, }, })
{ -0.05, -0.35, 0.25, 0.05, -0.30, 0.50, },
{ -0.10, -0.40, 0.49, 0.10, -0.25, 0.50, }, local bs_cbox = {
}, type = "fixed",
fixed = { -8/16, -8/16, 1/16, 8/16, 8/16, 8/16 }
}
homedecor.register("bathroom_set", {
drawtype = "mesh",
mesh = "homedecor_bathroom_set.obj",
tiles = {
"homedecor_bathroom_set_mirror.png",
"homedecor_bathroom_set_tray.png",
"homedecor_bathroom_set_toothbrush.png",
"homedecor_bathroom_set_cup.png",
"homedecor_bathroom_set_toothpaste.png",
}, },
selection_box = { description = "Bathroom sundries set",
type = "fixed", groups = {snappy=3},
fixed = { -0.1, -0.5, 0.1, 0.1, -0.25, 0.5 }, selection_box = bs_cbox,
}, collision_box = bs_cbox,
groups = {cracky=2,},
sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_alias("3dforniture:toilet", "homedecor:toilet") minetest.register_alias("3dforniture:toilet", "homedecor:toilet")

View File

@ -90,7 +90,7 @@ minetest.register_craftitem("homedecor:steel_wire", {
minetest.register_craftitem("homedecor:speaker_driver", { minetest.register_craftitem("homedecor:speaker_driver", {
description = S("Speaker driver"), description = S("Speaker driver"),
inventory_image = "homedecor_speaker_driver.png" inventory_image = "homedecor_speaker_driver_inv.png"
}) })
minetest.register_craftitem("homedecor:fan_blades", { minetest.register_craftitem("homedecor:fan_blades", {
@ -1165,7 +1165,7 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:refrigerator_steel_bottom", output = "homedecor:refrigerator_steel",
recipe = { recipe = {
{"default:steel_ingot", "homedecor:glowlight_small_cube_white", "default:steel_ingot", }, {"default:steel_ingot", "homedecor:glowlight_small_cube_white", "default:steel_ingot", },
{"default:steel_ingot", "default:copperblock", "default:steel_ingot", }, {"default:steel_ingot", "default:copperblock", "default:steel_ingot", },
@ -1175,9 +1175,9 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "homedecor:refrigerator_white_bottom", output = "homedecor:refrigerator_white",
recipe = { recipe = {
"homedecor:refrigerator_steel_bottom", "homedecor:refrigerator_steel",
"dye:white", "dye:white",
"dye:white", "dye:white",
"dye:white", "dye:white",
@ -2447,7 +2447,7 @@ minetest.register_craft( {
-- doghouse -- doghouse
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:doghouse_base", output = "homedecor:doghouse",
recipe = { recipe = {
{"homedecor:shingles_terracotta", "homedecor:shingles_terracotta", "homedecor:shingles_terracotta"}, {"homedecor:shingles_terracotta", "homedecor:shingles_terracotta", "homedecor:shingles_terracotta"},
{"group:wood", "", "group:wood"}, {"group:wood", "", "group:wood"},
@ -2516,8 +2516,8 @@ minetest.register_craft( {
output = "homedecor:pool_table", output = "homedecor:pool_table",
recipe = { recipe = {
{ "wool:dark_green", "wool:dark_green", "wool:dark_green" }, { "wool:dark_green", "wool:dark_green", "wool:dark_green" },
{ "group:wood", "group:wood", "group:wood" }, { "building_blocks:hardwood", "building_blocks:hardwood", "building_blocks:hardwood" },
{ "group:stick", "", "group:stick" } { "building_blocks:slab_hardwood", "", "building_blocks:slab_hardwood" }
}, },
}) })
@ -2548,7 +2548,7 @@ minetest.register_craft( {
}) })
minetest.register_craft( { minetest.register_craft( {
output = "homedecor:well_base", output = "homedecor:well",
recipe = { recipe = {
{ "homedecor:shingles_wood", "homedecor:shingles_wood", "homedecor:shingles_wood" }, { "homedecor:shingles_wood", "homedecor:shingles_wood", "homedecor:shingles_wood" },
{ "group:wood", "group:stick", "group:wood" }, { "group:wood", "group:stick", "group:wood" },
@ -2741,11 +2741,11 @@ minetest.register_craft({
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:piano_left", output = "homedecor:piano",
recipe = { recipe = {
{ "", "homedecor:steel_wire", "building_blocks:hardwood" }, { "", "homedecor:steel_wire", "building_blocks:hardwood" },
{ "homedecor:plastic_strips", "homedecor:steel_wire", "building_blocks:hardwood" }, { "homedecor:plastic_strips", "homedecor:steel_wire", "building_blocks:hardwood" },
{ "building_blocks:hardwood", "default:steelblock", "building_blocks:hardwood" } { "technic:brass_ingot", "default:steelblock", "building_blocks:hardwood" }
}, },
}) })
@ -3039,6 +3039,34 @@ minetest.register_craft({
}, },
}) })
minetest.register_craft({
output = "homedecor:desk_globe",
recipe = {
{ "group:stick", "homedecor:plastic_sheeting", "dye:green" },
{ "group:stick", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "group:stick", "stairs:slab_wood", "dye:blue" }
},
})
minetest.register_craft({
output = "homedecor:desk_globe",
recipe = {
{ "group:stick", "homedecor:plastic_sheeting", "dye:green" },
{ "group:stick", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "group:stick", "moreblocks:slab_wood", "dye:blue" }
},
})
minetest.register_craft({
output = "homedecor:tool_cabinet_bottom",
recipe = {
{ "homedecor:motor", "default:axe_steel", "default:pick_steel" },
{ "default:steel_ingot", "homedecor:drawer_small", "default:steel_ingot" },
{ "default:steel_ingot", "homedecor:drawer_small", "default:steel_ingot" }
},
})
if (minetest.get_modpath("technic") and minetest.get_modpath("dye") and minetest.get_modpath("bees")) then if (minetest.get_modpath("technic") and minetest.get_modpath("dye") and minetest.get_modpath("bees")) then
technic.register_separating_recipe({ input = {"bees:wax 1"}, output = {"homedecor:oil_extract 2","dye:yellow 1"} }) technic.register_separating_recipe({ input = {"bees:wax 1"}, output = {"homedecor:oil_extract 2","dye:yellow 1"} })
end end

View File

@ -4,34 +4,47 @@ local S = homedecor.gettext
homedecor.register("speaker", { homedecor.register("speaker", {
description = S("Large Stereo Speaker"), description = S("Large Stereo Speaker"),
tiles = { 'homedecor_speaker_top.png', mesh="homedecor_speaker_large.obj",
'homedecor_speaker_bottom.png', tiles = {
'homedecor_speaker_right.png', "homedecor_speaker_sides.png",
'homedecor_speaker_left.png', "homedecor_speaker_front.png"
'homedecor_speaker_back.png', },
'homedecor_speaker_front.png'},
groups = { snappy = 3 }, groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
on_punch = function(pos, node, puncher, pointed_thing)
minetest.set_node(pos, {name = "homedecor:speaker_open", param2 = node.param2})
end
}) })
homedecor.register("speaker_open", {
description = S("Large Stereo Speaker, open front"),
mesh="homedecor_speaker_large_open.obj",
tiles = {
"homedecor_speaker_sides.png",
"homedecor_speaker_driver.png",
"homedecor_speaker_open_front.png",
},
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
on_punch = function(pos, node, puncher, pointed_thing)
minetest.set_node(pos, {name = "homedecor:speaker", param2 = node.param2})
end
})
local spk_cbox = {
type = "fixed",
fixed = { -3/16, -8/16, 1/16, 3/16, -2/16, 7/16 }
}
homedecor.register("speaker_small", { homedecor.register("speaker_small", {
description = S("Small Surround Speaker"), description = S("Small Surround Speaker"),
mesh="homedecor_speaker_small.obj",
tiles = { tiles = {
'homedecor_speaker_top.png', "homedecor_speaker_sides.png",
'homedecor_speaker_bottom.png', "homedecor_speaker_front.png"
'homedecor_speaker_right.png',
'homedecor_speaker_left.png',
'homedecor_speaker_back.png',
'homedecor_speaker_front.png'
},
selection_box = {
type = "fixed",
fixed = { -0.2, -0.5, 0, 0.2, 0, 0.4 }
},
node_box = {
type = "fixed",
fixed = { -0.2, -0.5, 0, 0.2, 0, 0.4 }
}, },
selection_box = spk_cbox,
collision_box = spk_cbox,
groups = { snappy = 3 }, groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
}) })

View File

@ -1,57 +1,34 @@
local S = homedecor.gettext local S = homedecor.gettext
dofile(homedecor.modpath.."/furniture.lua") dofile(homedecor.modpath.."/furniture.lua")
local bbq_cbox = {
type = "fixed",
fixed = { -0.5, -0.5, -0.3125, 0.5, 0.53125, 0.3125 }
}
homedecor.register("barbecue", { homedecor.register("barbecue", {
description = "Barbecue", description = "Barbecue",
mesh = "homedecor_barbecue.obj",
tiles = { tiles = {
{name="homedecor_barbecue_top.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=2}},
"forniture_black_metal.png", "forniture_black_metal.png",
{ name="homedecor_embers.png",
animation={
type="vertical_frames",
aspect_w=16,
aspect_h=16,
length=2
}
},
"homedecor_barbecue_meat.png",
}, },
groups = { snappy=3 }, groups = { snappy=3 },
light_source = 9, light_source = 9,
node_box = { selection_box = bbq_cbox,
type = "fixed", collision_box = bbq_cbox,
fixed = { expand = { top="air" },
{-0.5, -0.5, 0.25, -0.4375, 0.0625, 0.3125}, -- NodeBox1
{0.4375, -0.5, 0.25, 0.5, 0.0625, 0.3125}, -- NodeBox2
{-0.5, -0.5, -0.3125, -0.4375, 0.0625, -0.25}, -- NodeBox3
{0.4375, -0.5, -0.3125, 0.5, 0.0625, -0.25}, -- NodeBox4
{-0.5, 0.0625, -0.3125, 0.5, 0.375, 0.3125}, -- NodeBox5
{-0.375, 0.5, -0.25, -0.313, 0.5, 0.251}, -- NodeBox6
{-0.25, 0.5, -0.25, -0.188, 0.5, 0.251}, -- NodeBox7
{-0.125, 0.5, -0.25, -0.063, 0.5, 0.251}, -- NodeBox8
{0, 0.5, -0.25, 0.062, 0.5, 0.251}, -- NodeBox9
{0.125, 0.5, -0.25, 0.187, 0.5, 0.251}, -- NodeBox10
{0.25, 0.5, -0.25, 0.312, 0.5, 0.251}, -- NodeBox11
{0.375, 0.5, -0.25, 0.437, 0.5, 0.251}, -- NodeBox12
{-0.5, 0.375, 0.251, 0.5, 0.5, 0.3125}, -- NodeBox13
{-0.5, 0.0625, -0.3125, 0.5, 0.5, -0.25}, -- NodeBox14
{-0.5, 0.0625, -0.3125, -0.438, 0.5, 0.3125}, -- NodeBox15
{0.4375, 0.0625, -0.3125, 0.5, 0.5, 0.3125}, -- NodeBox16
}
},
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.3125, 0.5, 0.625, 0.3125 }
},
expand = { top="homedecor:barbecue_meat" },
}) })
homedecor.register("barbecue_meat", { minetest.register_alias("homedecor:barbecue_meat", "air")
tiles = {
"homedecor_barbecue_meat.png",
},
groups = { snappy=3, not_in_creative_inventory=1 },
node_box = {
type = "fixed",
fixed = {
{-0.25, -0.5, -0.125, -0.0625, -0.4375, 0.125}, -- NodeBox1
{0.125, -0.5, -0.125, 0.3125, -0.4375, 0.125}, -- NodeBox2
}
},
selection_box = homedecor.nodebox.null
})
homedecor.register("bench_large_1_left", { homedecor.register("bench_large_1_left", {
description = "Garden Bench (style 1)", description = "Garden Bench (style 1)",
@ -254,77 +231,23 @@ homedecor.register("deckchair_foot", {
expand = { forward="homedecor:deckchair_head" }, expand = { forward="homedecor:deckchair_head" },
}) })
homedecor.register("doghouse_base", { homedecor.register("doghouse", {
mesh = "homedecor_doghouse.obj",
tiles = { tiles = {
"homedecor_doghouse_base_top.png", "homedecor_shingles_terracotta.png",
"homedecor_doghouse_base_bottom.png", "default_wood.png",
"homedecor_doghouse_base_side.png", "building_blocks_towel.png"
"homedecor_doghouse_base_side.png",
"homedecor_doghouse_base_side.png",
"homedecor_doghouse_base_front.png"
}, },
description = "Doghouse", description = "Doghouse",
inventory_image = "homedecor_doghouse_inv.png", inventory_image = "homedecor_doghouse_inv.png",
node_box = {
type = "fixed",
fixed = {
{0.3125, -0.5, -0.4375, 0.4375, -0.3125, -0.3125}, -- NodeBox1
{0.3125, -0.5, 0.3125, 0.4375, -0.3125, 0.4375}, -- NodeBox2
{-0.4375, -0.5, 0.3125, -0.3125, -0.3125, 0.4375}, -- NodeBox3
{-0.4375, -0.5, -0.4375, -0.3125, -0.3125, -0.3125}, -- NodeBox4
{-0.4375, -0.3125, -0.4375, -0.375, 0.5, 0.4375}, -- NodeBox5
{-0.4375, 0.3125, -0.375, 0.4375, 0.5, -0.3125}, -- NodeBox6
{-0.4375, -0.3125, -0.4375, 0.4375, -0.25, 0.4375}, -- NodeBox7
{-0.375, -0.3125, -0.375, -0.1875, 0.4375, -0.3125}, -- NodeBox8
{0.1875, -0.3125, -0.375, 0.4375, 0.5, -0.3125}, -- NodeBox9
{0.375, -0.25, -0.4375, 0.4375, 0.5, 0.4375}, -- NodeBox10
{-0.4375, -0.3125, 0.375, 0.4375, 0.5, 0.4375}, -- NodeBox11
}
},
selection_box = homedecor.nodebox.slab_y(1.5), selection_box = homedecor.nodebox.slab_y(1.5),
collision_box = homedecor.nodebox.slab_y(1.5),
groups = {snappy=3}, groups = {snappy=3},
expand = { top="homedecor:doghouse_roof" }, expand = { top="air" },
}) })
homedecor.register("doghouse_roof", { minetest.register_alias("homedecor:doghouse_roof", "air")
tiles = { minetest.register_alias("homedecor:doghouse_base", "homedecor:doghouse")
"homedecor_doghouse_roof_top.png",
"homedecor_doghouse_roof_bottom.png",
"homedecor_doghouse_roof_side.png",
"homedecor_doghouse_roof_side.png",
"homedecor_doghouse_roof_front.png",
"homedecor_doghouse_roof_front.png"
},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, -0.4375, -0.4375, 0.5}, -- NodeBox17
{-0.4375, -0.4375, -0.5, -0.375, -0.375, 0.5}, -- NodeBox18
{-0.375, -0.375, -0.5, -0.3125, -0.3125, 0.5}, -- NodeBox19
{-0.3125, -0.3125, -0.5, -0.25, -0.25, 0.5}, -- NodeBox20
{-0.25, -0.25, -0.5, -0.1875, -0.1875, 0.5}, -- NodeBox21
{-0.1875, -0.1875, -0.5, -0.125, -0.125, 0.5}, -- NodeBox22
{-0.125, -0.125, -0.5, -0.0625, -0.0625, 0.5}, -- NodeBox23
{-0.0625, -0.0625, -0.5, 0.0625, 0, 0.5}, -- NodeBox24
{0.0625, -0.125, -0.5, 0.125, -0.0625, 0.5}, -- NodeBox25
{0.125, -0.1875, -0.5, 0.1875, -0.125, 0.5}, -- NodeBox26
{0.1875, -0.25, -0.5, 0.25, -0.1875, 0.5}, -- NodeBox27
{0.25, -0.3125, -0.5, 0.3125, -0.25, 0.5}, -- NodeBox28
{0.3125, -0.375, -0.5, 0.375, -0.3125, 0.5}, -- NodeBox29
{0.375, -0.4375, -0.5, 0.4375, -0.375, 0.5}, -- NodeBox30
{0.4375, -0.5, -0.5, 0.5, -0.4375, 0.5}, -- NodeBox31
{-0.4375, -0.5, -0.375, 0.4375, -0.4375, 0.4375}, -- NodeBox32
{-0.375, -0.4375, -0.375, 0.375, -0.375, 0.4375}, -- NodeBox33
{-0.3125, -0.375, -0.375, 0.3125, -0.3125, 0.4375}, -- NodeBox34
{-0.25, -0.3125, -0.375, 0.25, -0.25, 0.4375}, -- NodeBox35
{-0.1875, -0.25, -0.375, 0.1875, -0.1875, 0.4375}, -- NodeBox36
{-0.125, -0.1875, -0.375, 0.125, -0.125, 0.4375}, -- NodeBox37
{0.0625, -0.125, -0.375, -0.0625, -0.0625, 0.4375}, -- NodeBox38
}
},
selection_box = homedecor.nodebox.null,
groups = {snappy=3, not_in_creative_inventory=1},
})
homedecor.register("simple_bench", { homedecor.register("simple_bench", {
tiles = { tiles = {
@ -464,97 +387,24 @@ homedecor.register("swing_rope", {
selection_box = homedecor.nodebox.null selection_box = homedecor.nodebox.null
}) })
homedecor.register("well_base", { homedecor.register("well", {
mesh = "homedecor_well.obj",
tiles = { tiles = {
"homedecor_well_base_top.png", "homedecor_rope_texture.png",
"default_cobble.png" "forniture_metal.png",
"default_water.png",
"default_cobble.png",
"default_wood.png",
"homedecor_shingles_wood.png"
}, },
inventory_image = "homedecor_well_inv.png", inventory_image = "homedecor_well_inv.png",
description = "Water well", description = "Water well",
groups = { snappy = 3 }, groups = { snappy = 3 },
node_box = {
type = "fixed",
fixed = {
{-0.3125, -0.5, -0.4375, 0.3125, 0.5, -0.3125}, -- NodeBox1
{0.3125, -0.5, -0.3125, 0.4375, 0.5, 0.3125}, -- NodeBox2
{-0.4375, -0.5, -0.3125, -0.3125, 0.5, 0.3125}, -- NodeBox3
{-0.3125, -0.5, 0.3125, 0.3125, 0.5, 0.4375}, -- NodeBox4
{0.25, -0.5, -0.375, 0.375, 0.5, -0.25}, -- NodeBox5
{0.25, -0.5, 0.25, 0.375, 0.5, 0.375}, -- NodeBox6
{-0.375, -0.5, -0.375, -0.25, 0.5, -0.25}, -- NodeBox7
{-0.375, -0.5, 0.25, -0.25, 0.5, 0.375}, -- NodeBox8
{-0.3125, -0.5, -0.5, 0.3125, -0.3125, -0.4375}, -- NodeBox9
{0.4375, -0.5, -0.3125, 0.5, -0.3125, 0.3125}, -- NodeBox10
{-0.3125, -0.5, 0.4375, 0.3125, -0.3125, 0.5}, -- NodeBox11
{-0.5, -0.5, -0.3125, -0.4375, -0.3125, 0.3125}, -- NodeBox12
{0.3125, -0.5, -0.4375, 0.4375, -0.3125, -0.3125}, -- NodeBox13
{0.3125, -0.5, 0.3125, 0.4375, -0.3125, 0.4375}, -- NodeBox14
{-0.4375, -0.5, 0.3125, -0.3125, -0.3125, 0.4375}, -- NodeBox15
{-0.4375, -0.5, -0.4375, -0.3125, -0.3125, -0.3125}, -- NodeBox16
{-0.3125, -0.5, -0.3125, 0.3125, 0, 0.3125}, -- NodeBox17
}
},
selection_box = homedecor.nodebox.slab_y(2), selection_box = homedecor.nodebox.slab_y(2),
expand = { top="homedecor:well_top" }, collision_box = homedecor.nodebox.slab_y(2),
expand = { top="air" },
}) })
homedecor.register("well_top", { minetest.register_alias("homedecor:well_top", "air")
tiles = { minetest.register_alias("homedecor:well_base", "homedecor:well")
"homedecor_well_roof_top.png",
"homedecor_well_roof_wood.png",
"homedecor_well_roof_side3.png",
"homedecor_well_roof_side3.png",
"homedecor_well_roof_side2.png",
"homedecor_well_roof_side1.png"
},
groups = { snappy = 3 },
node_box = {
type = "fixed",
fixed = {
{-0.0625, -0.5, 0.375, 0.0625, 0.4375, 0.4375}, -- NodeBox1
{-0.0625, -0.5, -0.4375, 0.0625, 0.4375, -0.375}, -- NodeBox2
{-0.125, 0.375, -0.5, 0.125, 0.4375, 0.5}, -- NodeBox3
{0.125, 0.3125, -0.5, 0.1875, 0.375, 0.5}, -- NodeBox4
{-0.1875, 0.3125, -0.5, -0.125, 0.375, 0.5}, -- NodeBox5
{0.1875, 0.25, -0.5, 0.25, 0.3125, 0.5}, -- NodeBox6
{-0.25, 0.25, -0.5, -0.1875, 0.3125, 0.5}, -- NodeBox7
{0.25, 0.1875, -0.5, 0.3125, 0.25, 0.5}, -- NodeBox8
{-0.3125, 0.1875, -0.5, -0.25, 0.25, 0.5}, -- NodeBox9
{0.3125, 0.125, -0.5, 0.375, 0.1875, 0.5}, -- NodeBox10
{-0.375, 0.125, -0.5, -0.3125, 0.1875, 0.5}, -- NodeBox11
{0.375, 0.0625, -0.5, 0.4375, 0.125, 0.5}, -- NodeBox12
{-0.375, 0.0625, -0.5, -0.4375, 0.125, 0.5}, -- NodeBox13
{0.4375, 0, -0.5, 0.5, 0.0625, 0.5}, -- NodeBox14
{-0.5, 0, -0.5, -0.4375, 0.0625, 0.5}, -- NodeBox15
{-0.0625, 0.4375, -0.5, 0.0625, 0.5, 0.5}, -- NodeBox16
{-0.125, 0.125, -0.4375, 0.125, 0.1875, -0.375}, -- NodeBox17
{0.125, 0.1875, -0.4375, 0.1875, 0.25, -0.375}, -- NodeBox18
{-0.1875, 0.1875, -0.4375, -0.125, 0.25, -0.375}, -- NodeBox19
{-0.125, 0.125, 0.375, 0.125, 0.1875, 0.4375}, -- NodeBox20
{0.125, 0.1875, 0.375, 0.1875, 0.25, 0.4375}, -- NodeBox21
{-0.1875, 0.1875, 0.375, -0.125, 0.25, 0.4375}, -- NodeBox22
{-0.0165975, -0.159751, -0.375, 0.0165974, -0.125, 0.375}, -- NodeBox23
{-0.00414942, -0.465, -0.008299, 0.008299, -0.159751, 0.004149}, -- NodeBox24
{-0.0625, -0.0625, -0.5, 0.0625, 0, -0.4646}, -- NodeBox25
{0.0625, -0.125, -0.5, 0.125, -0.0625, -0.4646}, -- NodeBox26
{0.125, -0.25, -0.5, 0.1875, -0.125, -0.4646}, -- NodeBox27
{0.0625, -0.3125, -0.5, 0.125, -0.25, -0.4646}, -- NodeBox28
{-0.0625, -0.375, -0.5, 0.0625, -0.3125, -0.4646}, -- NodeBox29
{-0.0625, -0.3125, -0.5, -0.125, -0.25, -0.4646}, -- NodeBox30
{-0.1875, -0.25, -0.5, -0.125, -0.125, -0.4646}, -- NodeBox31
{-0.125, -0.125, -0.5, -0.0625, -0.0625, -0.4646}, -- NodeBox32
{-0.016598, -0.3125, -0.48, 0.020747, -0.0625, -0.49}, -- NodeBox33
{-0.125, -0.209544, -0.48, 0.125, -0.172199, -0.49}, -- NodeBox34
{-0.0165975, -0.200, -0.477178, 0.020747, -0.175349, -0.435685}, -- NodeBox35
{0.1, -0.75, -0.125, 0.125, -0.5, 0.125}, -- NodeBox36
{-0.125, -0.75, -0.125, -0.1, -0.5, 0.125}, -- NodeBox37
{-0.125, -0.75, -0.125, 0.125, -0.729253, 0.125}, -- NodeBox38
{-0.125, -0.75, -0.125, 0.125, -0.5, -0.1}, -- NodeBox39
{-0.125, -0.75, 0.1, 0.125, -0.5, 0.125}, -- NodeBox40
{-0.0165975,-0.465, -0.125, 0.0165974, -0.451245, 0.125}, -- NodeBox41
{-0.0165975, -0.51, 0.112033, 0.0165974, -0.46, 0.125}, -- NodeBox42
{-0.0165975, -0.51, -0.125, 0.0165974, -0.46, -0.112033}, -- NodeBox43
}
},
selection_box = homedecor.nodebox.null,
})

View File

@ -174,7 +174,7 @@ for _, color in ipairs(lamp_colors) do
}) })
minetest.register_craft({ minetest.register_craft({
output = "homedecor:standing_lamp_bottom_"..color.."_off", output = "homedecor:standing_lamp_"..color.."_off",
recipe = { recipe = {
{"homedecor:table_lamp_"..color.."_off"}, {"homedecor:table_lamp_"..color.."_off"},
{"group:stick"}, {"group:stick"},
@ -184,9 +184,9 @@ for _, color in ipairs(lamp_colors) do
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "homedecor:standing_lamp_bottom_"..color.."_off", output = "homedecor:standing_lamp_"..color.."_off",
recipe = { recipe = {
"homedecor:standing_lamp_bottom_off", "homedecor:standing_lamp_off",
"dye:"..color "dye:"..color
}, },
}) })

View File

@ -115,9 +115,9 @@ local function create_locked ( name, infotext )
end end
local items = { local items = {
{ "refrigerator_white_bottom", { "refrigerator_white",
"Refrigerator" }, "Refrigerator" },
{ "refrigerator_steel_bottom", { "refrigerator_steel",
"Refrigerator (stainless steel)" }, "Refrigerator (stainless steel)" },
{ "kitchen_cabinet", { "kitchen_cabinet",
"Cabinet" }, "Cabinet" },

View File

@ -2,57 +2,17 @@
local S = homedecor.gettext local S = homedecor.gettext
-- nodebox models
local fridge_model_bottom = {
type = "fixed",
fixed = {
{0, -0.4375, -0.4375, 0.5, 0.5, 0.5}, -- NodeBox1
{-0.5, -0.5, -0.42, 0.5, 0.5, 0.5}, -- NodeBox2
{-0.5, -0.4375, -0.4375, -0.0625, 0.5, 0.5}, -- NodeBox3
{0, 0.25, -0.5, 0.0625, 0.3125, -0.4375}, -- NodeBox4
{-0.125, 0.25, -0.5, -0.0625, 0.3125, -0.4375}, -- NodeBox5
{0, 0.25, -0.5, 0.0625, 0.5, -0.473029}, -- NodeBox6
{-0.125, 0.25, -0.5, -0.0625, 0.5, -0.473029}, -- NodeBox7
}
}
local fridge_model_top = {
type = "fixed",
fixed = {
{0, -0.5, -0.4375, 0.5, 0.5, 0.5}, -- NodeBox1
{-0.0625, -0.5, -0.42, 0, 0.5, 0.5}, -- NodeBox2
{-0.5, -0.5, -0.4375, -0.0625, -0.4375, 0.5}, -- NodeBox3
{-0.5, -0.5, -0.4375, -0.4375, 0.5, 0.5}, -- NodeBox4
{-0.5, -0.1875, -0.4375, -0.0625, 0.5, 0.5}, -- NodeBox5
{-0.4375, -0.4375, -0.125, -0.0625, -0.1875, 0.5}, -- NodeBox6
{-0.125, -0.4375, -0.4375, -0.0625, -0.1875, -0.125}, -- NodeBox7
{-0.3125, -0.3125, -0.307054, -0.25, -0.1875, -0.286307}, -- NodeBox8
{-0.125, 0, -0.5, -0.0625, 0.0625, -0.4375}, -- NodeBox9
{0, 0, -0.5, 0.0625, 0.0625, -0.4375}, -- NodeBox10
{0, -0.5, -0.5, 0.0625, 0.0625, -0.473029}, -- NodeBox11
{-0.125, -0.5, -0.5, -0.0625, 0.0625, -0.473029}, -- NodeBox12
}
}
-- steel-textured fridge -- steel-textured fridge
homedecor.register("refrigerator_steel_bottom", {
tiles = { homedecor.register("refrigerator_steel", {
"default_steel_block.png", mesh = "homedecor_refrigerator.obj",
"homedecor_refrigerator_steel_bottom.png", tiles = { "homedecor_refrigerator_steel.png" },
"homedecor_refrigerator_steel_sides1.png",
"homedecor_refrigerator_steel_sides1.png^[transformFX",
"homedecor_refrigerator_steel_back1.png",
"homedecor_refrigerator_steel_front2.png"
},
inventory_image = "homedecor_refrigerator_steel_inv.png", inventory_image = "homedecor_refrigerator_steel_inv.png",
description = S("Refrigerator (stainless steel)"), description = S("Refrigerator (stainless steel)"),
groups = {snappy=3}, groups = {snappy=3},
node_box = fridge_model_bottom,
selection_box = homedecor.nodebox.slab_y(2), selection_box = homedecor.nodebox.slab_y(2),
expand = { collision_box = homedecor.nodebox.slab_y(2),
top="homedecor:refrigerator_steel_top" expand = { top="air" },
},
infotext=S("Refrigerator"), infotext=S("Refrigerator"),
inventory = { inventory = {
size=50, size=50,
@ -60,39 +20,17 @@ homedecor.register("refrigerator_steel_bottom", {
}, },
}) })
homedecor.register("refrigerator_steel_top", {
tiles = {
"homedecor_refrigerator_steel_top.png",
"default_steel_block.png",
"homedecor_refrigerator_steel_sides1.png",
"homedecor_refrigerator_steel_sides1.png^[transformFX",
"homedecor_refrigerator_steel_back1.png",
"homedecor_refrigerator_steel_front1.png"
},
groups = {snappy=3},
node_box = fridge_model_top,
selection_box = homedecor.nodebox.null,
})
-- white, enameled fridge -- white, enameled fridge
homedecor.register("refrigerator_white_bottom", { homedecor.register("refrigerator_white", {
tiles = { mesh = "homedecor_refrigerator.obj",
"default_steel_block.png", tiles = { "homedecor_refrigerator_white.png" },
"homedecor_refrigerator_white_bottom.png",
"homedecor_refrigerator_white_sides1.png",
"homedecor_refrigerator_white_sides1.png^[transformFX",
"homedecor_refrigerator_white_back1.png",
"homedecor_refrigerator_white_front2.png"
},
inventory_image = "homedecor_refrigerator_white_inv.png", inventory_image = "homedecor_refrigerator_white_inv.png",
description = S("Refrigerator"), description = S("Refrigerator"),
groups = {snappy=3}, groups = {snappy=3},
node_box = fridge_model_bottom,
selection_box = homedecor.nodebox.slab_y(2), selection_box = homedecor.nodebox.slab_y(2),
expand = { collision_box = homedecor.nodebox.slab_y(2),
top="homedecor:refrigerator_white_top" expand = { top="air" },
},
infotext=S("Refrigerator"), infotext=S("Refrigerator"),
inventory = { inventory = {
size=50, size=50,
@ -100,71 +38,20 @@ homedecor.register("refrigerator_white_bottom", {
}, },
}) })
homedecor.register("refrigerator_white_top", { minetest.register_alias("homedecor:refrigerator_white_bottom", "homedecor:refrigerator_white")
tiles = { minetest.register_alias("homedecor:refrigerator_white_top", "air")
"homedecor_refrigerator_white_top.png",
"default_steel_block.png",
"homedecor_refrigerator_white_sides1.png",
"homedecor_refrigerator_white_sides1.png^[transformFX",
"homedecor_refrigerator_white_back1.png",
"homedecor_refrigerator_white_front1.png"
},
groups = {snappy=3},
node_box = fridge_model_top,
selection_box = homedecor.nodebox.null,
})
-- convert the old single-node fridges to the new two-node models minetest.register_alias("homedecor:refrigerator_steel_bottom", "homedecor:refrigerator_steel")
minetest.register_alias("homedecor:refrigerator_steel_top", "air")
minetest.register_abm({ minetest.register_alias("homedecor:refrigerator_white_bottom_locked", "homedecor:refrigerator_white_locked")
nodenames = { "homedecor:refrigerator" }, minetest.register_alias("homedecor:refrigerator_white_top_locked", "air")
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local fdir = node.param2
local p_top = { x=pos.x, y=pos.y+1, z=pos.z }
minetest.swap_node(pos, { name = "homedecor:refrigerator_white_bottom", param2 = fdir })
minetest.set_node(p_top, { name = "homedecor:refrigerator_white_top", param2 = fdir })
end
})
minetest.register_abm({ minetest.register_alias("homedecor:refrigerator_steel_bottom_locked", "homedecor:refrigerator_steel_locked")
nodenames = { "homedecor:refrigerator_locked" }, minetest.register_alias("homedecor:refrigerator_steel_top_locked", "air")
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local fdir = node.param2
local p_top = { x=pos.x, y=pos.y+1, z=pos.z }
minetest.swap_node(pos, { name = "homedecor:refrigerator_white_bottom_locked", param2 = fdir })
minetest.set_node(p_top, { name = "homedecor:refrigerator_white_top", param2 = fdir })
end
})
minetest.register_abm({
nodenames = { "homedecor:refrigerator_steel" },
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local fdir = node.param2
local p_top = { x=pos.x, y=pos.y+1, z=pos.z }
minetest.swap_node(pos, { name = "homedecor:refrigerator_steel_bottom", param2 = fdir })
minetest.set_node(p_top, { name = "homedecor:refrigerator_steel_top", param2 = fdir })
end
})
minetest.register_abm({
nodenames = { "homedecor:refrigerator_steel_locked" },
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local fdir = node.param2
local p_top = { x=pos.x, y=pos.y+1, z=pos.z }
minetest.swap_node(pos, { name = "homedecor:refrigerator_steel_bottom_locked", param2 = fdir })
minetest.set_node(p_top, { name = "homedecor:refrigerator_steel_top", param2 = fdir })
end
})
-- kitchen "furnaces" -- kitchen "furnaces"
homedecor.register_furnace("homedecor:oven", { homedecor.register_furnace("homedecor:oven", {
description = S("Oven"), description = S("Oven"),
tile_format = "homedecor_oven_%s%s.png", tile_format = "homedecor_oven_%s%s.png",

View File

@ -93,27 +93,19 @@ homedecor.register("copper_pans", {
on_place = minetest.rotate_node 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", { homedecor.register("kitchen_faucet", {
mesh = "homedecor_kitchen_faucet.obj",
tiles = { "homedecor_bright_metal.png" }, tiles = { "homedecor_bright_metal.png" },
inventory_image = "homedecor_kitchen_faucet_inv.png", inventory_image = "homedecor_kitchen_faucet_inv.png",
description = "Kitchen Faucet", description = "Kitchen Faucet",
groups = {snappy=3}, groups = {snappy=3},
node_box = { selection_box = kf_cbox,
type = "fixed", collision_box = kf_cbox,
fixed = {
{0, -0.5, 0.375, 0.0625, -0.1875, 0.4375}, -- NodeBox1
{0, -0.1875, 0.35, 0.0625, -0.15, 0.4375}, -- NodeBox2
{0, -0.15, 0.32, 0.0625, -0.11, 0.41}, -- NodeBox3
{0.007, -0.12, 0.17, 0.055, -0.11, 0.1285}, -- NodeBox4
{0, -0.11, 0.125, 0.0625, -0.07, 0.37}, -- NodeBox5
{-0.05, -0.48, 0.385, 0.115, -0.455, 0.43}, -- NodeBox6
{-0.05, -0.49, 0.395, 0.115, -0.445, 0.42}, -- NodeBox7
}
},
selection_box = {
type = "fixed",
fixed = { -0.055, -0.5, 0.125, 0.12, -0.065, 0.4375 }
},
}) })
homedecor.register("paper_towel", { homedecor.register("paper_towel", {

View File

@ -164,7 +164,7 @@ homedecor.register("fishtank", {
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
on_rightclick = function(pos, node, clicker) on_rightclick = function(pos, node, clicker)
fdir = minetest.get_node(pos).param2 fdir = minetest.get_node(pos).param2
minetest.add_node(pos, {name = "homedecor:fishtank_lighted", param2 = fdir}) minetest.set_node(pos, {name = "homedecor:fishtank_lighted", param2 = fdir})
end end
}) })
@ -178,7 +178,7 @@ homedecor.register("fishtank_lighted", {
"homedecor_fishtank_back_lighted.png", "homedecor_fishtank_back_lighted.png",
"homedecor_fishtank_front_lighted.png" "homedecor_fishtank_front_lighted.png"
}, },
light_source = default.LIGHT_MAX-4, light_source = LIGHT_MAX-4,
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
@ -200,7 +200,7 @@ homedecor.register("fishtank_lighted", {
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
on_rightclick = function(pos, node, clicker) on_rightclick = function(pos, node, clicker)
fdir = minetest.get_node(pos).param2 fdir = minetest.get_node(pos).param2
minetest.add_node(pos, {name = "homedecor:fishtank", param2 = fdir}) minetest.set_node(pos, {name = "homedecor:fishtank", param2 = fdir})
end end
}) })
@ -294,165 +294,29 @@ homedecor.register("filing_cabinet", {
}, },
}) })
homedecor.register("doghouse_base", { local pooltable_cbox = {
tiles = { type = "fixed",
"homedecor_doghouse_base_top.png", fixed = { -0.5, -0.5, -0.5, 0.5, 0.3125, 1.5 }
"homedecor_doghouse_base_bottom.png", }
"homedecor_doghouse_base_side.png",
"homedecor_doghouse_base_side.png",
"homedecor_doghouse_base_side.png",
"homedecor_doghouse_base_front.png"
},
description = "Doghouse",
inventory_image = "homedecor_doghouse_inv.png",
node_box = {
type = "fixed",
fixed = {
{0.3125, -0.5, -0.4375, 0.4375, -0.3125, -0.3125}, -- NodeBox1
{0.3125, -0.5, 0.3125, 0.4375, -0.3125, 0.4375}, -- NodeBox2
{-0.4375, -0.5, 0.3125, -0.3125, -0.3125, 0.4375}, -- NodeBox3
{-0.4375, -0.5, -0.4375, -0.3125, -0.3125, -0.3125}, -- NodeBox4
{-0.4375, -0.3125, -0.4375, -0.375, 0.5, 0.4375}, -- NodeBox5
{-0.4375, 0.3125, -0.375, 0.4375, 0.5, -0.3125}, -- NodeBox6
{-0.4375, -0.3125, -0.4375, 0.4375, -0.25, 0.4375}, -- NodeBox7
{-0.375, -0.3125, -0.375, -0.1875, 0.4375, -0.3125}, -- NodeBox8
{0.1875, -0.3125, -0.375, 0.4375, 0.5, -0.3125}, -- NodeBox9
{0.375, -0.25, -0.4375, 0.4375, 0.5, 0.4375}, -- NodeBox10
{-0.4375, -0.3125, 0.375, 0.4375, 0.5, 0.4375}, -- NodeBox11
}
},
selection_box = homedecor.nodebox.slab_y(1.5),
groups = {snappy=3},
expand = { top="homedecor:doghouse_roof" },
})
homedecor.register("doghouse_roof", {
tiles = {
"homedecor_doghouse_roof_top.png",
"homedecor_doghouse_roof_bottom.png",
"homedecor_doghouse_roof_side.png",
"homedecor_doghouse_roof_side.png",
"homedecor_doghouse_roof_front.png",
"homedecor_doghouse_roof_front.png"
},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, -0.4375, -0.4375, 0.5}, -- NodeBox17
{-0.4375, -0.4375, -0.5, -0.375, -0.375, 0.5}, -- NodeBox18
{-0.375, -0.375, -0.5, -0.3125, -0.3125, 0.5}, -- NodeBox19
{-0.3125, -0.3125, -0.5, -0.25, -0.25, 0.5}, -- NodeBox20
{-0.25, -0.25, -0.5, -0.1875, -0.1875, 0.5}, -- NodeBox21
{-0.1875, -0.1875, -0.5, -0.125, -0.125, 0.5}, -- NodeBox22
{-0.125, -0.125, -0.5, -0.0625, -0.0625, 0.5}, -- NodeBox23
{-0.0625, -0.0625, -0.5, 0.0625, 0, 0.5}, -- NodeBox24
{0.0625, -0.125, -0.5, 0.125, -0.0625, 0.5}, -- NodeBox25
{0.125, -0.1875, -0.5, 0.1875, -0.125, 0.5}, -- NodeBox26
{0.1875, -0.25, -0.5, 0.25, -0.1875, 0.5}, -- NodeBox27
{0.25, -0.3125, -0.5, 0.3125, -0.25, 0.5}, -- NodeBox28
{0.3125, -0.375, -0.5, 0.375, -0.3125, 0.5}, -- NodeBox29
{0.375, -0.4375, -0.5, 0.4375, -0.375, 0.5}, -- NodeBox30
{0.4375, -0.5, -0.5, 0.5, -0.4375, 0.5}, -- NodeBox31
{-0.4375, -0.5, -0.375, 0.4375, -0.4375, 0.4375}, -- NodeBox32
{-0.375, -0.4375, -0.375, 0.375, -0.375, 0.4375}, -- NodeBox33
{-0.3125, -0.375, -0.375, 0.3125, -0.3125, 0.4375}, -- NodeBox34
{-0.25, -0.3125, -0.375, 0.25, -0.25, 0.4375}, -- NodeBox35
{-0.1875, -0.25, -0.375, 0.1875, -0.1875, 0.4375}, -- NodeBox36
{-0.125, -0.1875, -0.375, 0.125, -0.125, 0.4375}, -- NodeBox37
{0.0625, -0.125, -0.375, -0.0625, -0.0625, 0.4375}, -- NodeBox38
}
},
selection_box = homedecor.nodebox.null,
groups = {snappy=3, not_in_creative_inventory=1},
})
homedecor.register("pool_table", { homedecor.register("pool_table", {
mesh = "homedecor_pool_table.obj",
tiles = { tiles = {
"homedecor_pool_table_top1.png", "homedecor_pool_table_cue.png",
"homedecor_pool_table_bottom1.png", "homedecor_pool_table_baize.png",
"homedecor_pool_table_sides1.png", "homedecor_pool_table_pockets.png",
"homedecor_pool_table_sides1.png^[transformFX", "homedecor_pool_table_balls.png",
"homedecor_pool_table_end1.png", "homedecor_pool_table_wood.png"
"homedecor_pool_table_end1.png"
}, },
description = "Pool Table", description = "Pool Table",
inventory_image = "homedecor_pool_table_inv.png", inventory_image = "homedecor_pool_table_inv.png",
groups = {snappy=3}, groups = {snappy=3},
node_box = { selection_box = pooltable_cbox,
type = "fixed", collision_box = pooltable_cbox,
fixed = { expand = { forward="air" },
{-0.375, -0.5, -0.375, -0.25, 0.1875, -0.25}, -- NodeBox1
{0.25, -0.5, -0.375, 0.375, 0.1875, -0.25}, -- NodeBox2
{-0.25, -0.125, -0.3125, 0.25, -0.0625, 0}, -- NodeBox3
{-0.3125, -0.0625, -0.3125, -0.25, 0.1875, 0}, -- NodeBox4
{0.25, -0.0625, -0.3125, 0.3125, 0.1875, 0}, -- NodeBox5
{-0.3125, -0.125, 0, 0.3125, 0.1875, 0.0625}, -- NodeBox6
{0.25, -0.125, -0.25, 0.3125, 0.1875, 0.5}, -- NodeBox7
{-0.3125, -0.125, -0.25, -0.25, 0.1875, 0.5}, -- NodeBox8
{-0.5, 0.1875, -0.5, -0.4375, 0.25, 0.5}, -- NodeBox9
{-0.5, 0.1875, -0.5, 0.5, 0.25, -0.4375}, -- NodeBox10
{0.4375, 0.1875, -0.5, 0.5, 0.25, 0.5}, -- NodeBox11
{-0.3125, 0.1875, -0.3125, 0.3125, 0.25, 0.5}, -- NodeBox12
{-0.4375, 0.1875, -0.3125, 0.4375, 0.25, 0.4375}, -- NodeBox13
{-0.3125, 0.1875, -0.5, 0.3125, 0.25, -0.3125}, -- NodeBox14
{-0.25, -0.125, -0.325, 0.25, 0, -0.3125}, -- NodeBox15
{0.25, 0.125, -0.4375, 0.4375, 0.1875, 0.5}, -- NodeBox16
{-0.4375, 0.125, -0.4375, -0.25, 0.1875, 0.5}, -- NodeBox17
{-0.5, 0.25, -0.5, -0.4375, 0.3125, 0.5}, -- NodeBox18
{-0.5, 0.25, -0.5, 0.5, 0.3125, -0.4375}, -- NodeBox19
{0.4375, 0.25, -0.5, 0.5, 0.3125, 0.5}, -- NodeBox20
{-0.4375, 0.25, -0.3125, -0.375, 0.3125, 0.4375}, -- NodeBox23
{-0.3125, 0.25, -0.4375, 0.3125, 0.3125, -0.375}, -- NodeBox24
{0.375, 0.25, -0.3125, 0.4375, 0.3125, 0.4375}, -- NodeBox25
}
},
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 0.3125, 1.5 }
},
expand = { forward="homedecor:pool_table_2" },
}) })
homedecor.register("pool_table_2", { minetest.register_alias("homedecor:pool_table_2", "air")
tiles = {
"homedecor_pool_table_top1.png^[transformR180",
"homedecor_pool_table_bottom1.png",
"homedecor_pool_table_sides1.png^[transformFX",
"homedecor_pool_table_sides1.png",
"homedecor_pool_table_end1.png",
"homedecor_pool_table_end1.png"
},
groups = {snappy=3, not_in_creative_inventory=1},
node_box = {
type = "fixed",
fixed = {
{-0.375, -0.5, 0.25, -0.25, 0.1875, 0.375}, -- NodeBox1
{0.25, -0.5, 0.25, 0.375, 0.1875, 0.375}, -- NodeBox2
{-0.25, -0.125, 0, 0.25, -0.0625, 0.3125}, -- NodeBox3
{-0.3125, -0.0625, 0, -0.25, 0.1875, 0.3125}, -- NodeBox4
{0.25, -0.0625, 0, 0.3125, 0.1875, 0.3125}, -- NodeBox5
{-0.3125, -0.125, -0.0625, 0.3125, 0.1875, 0}, -- NodeBox6
{0.25, -0.125, -0.5, 0.3125, 0.1875, 0.25}, -- NodeBox7
{-0.3125, -0.125, -0.5, -0.25, 0.1875, 0.25}, -- NodeBox8
{-0.5, 0.1875, -0.5, -0.4375, 0.25, 0.5}, -- NodeBox9
{-0.5, 0.1875, 0.4375, 0.5, 0.25, 0.5}, -- NodeBox10
{0.4375, 0.1875, -0.5, 0.5, 0.25, 0.5}, -- NodeBox11
{-0.3125, 0.1875, -0.5, 0.3125, 0.25, 0.3125}, -- NodeBox12
{-0.4375, 0.1875, -0.4375, 0.4375, 0.25, 0.3125}, -- NodeBox13
{-0.3125, 0.1875, 0.3125, 0.3125, 0.25, 0.5}, -- NodeBox14
{-0.25, -0.125, 0.3125, 0.25, 0, 0.325}, -- NodeBox15
{0.25, 0.125, -0.5, 0.4375, 0.1875, 0.4375}, -- NodeBox16
{-0.4375, 0.125, -0.5, -0.25, 0.1875, 0.4375}, -- NodeBox17
{-0.5, 0.25, -0.5, -0.4375, 0.3125, 0.5}, -- NodeBox18
{-0.5, 0.25, 0.4375, 0.5, 0.3125, 0.5}, -- NodeBox19
{0.4375, 0.25, -0.5, 0.5, 0.3125, 0.5}, -- NodeBox20
{-0.4375, 0.25, -0.4375, -0.375, 0.3125, 0.3125}, -- NodeBox23
{-0.3125, 0.25, 0.375, 0.3125, 0.3125, 0.4375}, -- NodeBox24
{0.375, 0.25, -0.4375, 0.4375, 0.3125, 0.3125}, -- NodeBox25
}
},
selection_box = homedecor.nodebox.null,
})
local trash_cbox = { local trash_cbox = {
type = "fixed", type = "fixed",
@ -470,101 +334,6 @@ homedecor.register("trash_can", {
collision_box = trash_cbox, collision_box = trash_cbox,
}) })
homedecor.register("well_base", {
tiles = {
"homedecor_well_base_top.png",
"default_cobble.png"
},
inventory_image = "homedecor_well_inv.png",
description = "Water well",
groups = { snappy = 3 },
node_box = {
type = "fixed",
fixed = {
{-0.3125, -0.5, -0.4375, 0.3125, 0.5, -0.3125}, -- NodeBox1
{0.3125, -0.5, -0.3125, 0.4375, 0.5, 0.3125}, -- NodeBox2
{-0.4375, -0.5, -0.3125, -0.3125, 0.5, 0.3125}, -- NodeBox3
{-0.3125, -0.5, 0.3125, 0.3125, 0.5, 0.4375}, -- NodeBox4
{0.25, -0.5, -0.375, 0.375, 0.5, -0.25}, -- NodeBox5
{0.25, -0.5, 0.25, 0.375, 0.5, 0.375}, -- NodeBox6
{-0.375, -0.5, -0.375, -0.25, 0.5, -0.25}, -- NodeBox7
{-0.375, -0.5, 0.25, -0.25, 0.5, 0.375}, -- NodeBox8
{-0.3125, -0.5, -0.5, 0.3125, -0.3125, -0.4375}, -- NodeBox9
{0.4375, -0.5, -0.3125, 0.5, -0.3125, 0.3125}, -- NodeBox10
{-0.3125, -0.5, 0.4375, 0.3125, -0.3125, 0.5}, -- NodeBox11
{-0.5, -0.5, -0.3125, -0.4375, -0.3125, 0.3125}, -- NodeBox12
{0.3125, -0.5, -0.4375, 0.4375, -0.3125, -0.3125}, -- NodeBox13
{0.3125, -0.5, 0.3125, 0.4375, -0.3125, 0.4375}, -- NodeBox14
{-0.4375, -0.5, 0.3125, -0.3125, -0.3125, 0.4375}, -- NodeBox15
{-0.4375, -0.5, -0.4375, -0.3125, -0.3125, -0.3125}, -- NodeBox16
{-0.3125, -0.5, -0.3125, 0.3125, 0, 0.3125}, -- NodeBox17
}
},
selection_box = homedecor.nodebox.slab_y(2),
expand = { top="homedecor:well_top" },
})
homedecor.register("well_top", {
tiles = {
"homedecor_well_roof_top.png",
"homedecor_well_roof_wood.png",
"homedecor_well_roof_side3.png",
"homedecor_well_roof_side3.png",
"homedecor_well_roof_side2.png",
"homedecor_well_roof_side1.png"
},
groups = { snappy = 3 },
node_box = {
type = "fixed",
fixed = {
{-0.0625, -0.5, 0.375, 0.0625, 0.4375, 0.4375}, -- NodeBox1
{-0.0625, -0.5, -0.4375, 0.0625, 0.4375, -0.375}, -- NodeBox2
{-0.125, 0.375, -0.5, 0.125, 0.4375, 0.5}, -- NodeBox3
{0.125, 0.3125, -0.5, 0.1875, 0.375, 0.5}, -- NodeBox4
{-0.1875, 0.3125, -0.5, -0.125, 0.375, 0.5}, -- NodeBox5
{0.1875, 0.25, -0.5, 0.25, 0.3125, 0.5}, -- NodeBox6
{-0.25, 0.25, -0.5, -0.1875, 0.3125, 0.5}, -- NodeBox7
{0.25, 0.1875, -0.5, 0.3125, 0.25, 0.5}, -- NodeBox8
{-0.3125, 0.1875, -0.5, -0.25, 0.25, 0.5}, -- NodeBox9
{0.3125, 0.125, -0.5, 0.375, 0.1875, 0.5}, -- NodeBox10
{-0.375, 0.125, -0.5, -0.3125, 0.1875, 0.5}, -- NodeBox11
{0.375, 0.0625, -0.5, 0.4375, 0.125, 0.5}, -- NodeBox12
{-0.375, 0.0625, -0.5, -0.4375, 0.125, 0.5}, -- NodeBox13
{0.4375, 0, -0.5, 0.5, 0.0625, 0.5}, -- NodeBox14
{-0.5, 0, -0.5, -0.4375, 0.0625, 0.5}, -- NodeBox15
{-0.0625, 0.4375, -0.5, 0.0625, 0.5, 0.5}, -- NodeBox16
{-0.125, 0.125, -0.4375, 0.125, 0.1875, -0.375}, -- NodeBox17
{0.125, 0.1875, -0.4375, 0.1875, 0.25, -0.375}, -- NodeBox18
{-0.1875, 0.1875, -0.4375, -0.125, 0.25, -0.375}, -- NodeBox19
{-0.125, 0.125, 0.375, 0.125, 0.1875, 0.4375}, -- NodeBox20
{0.125, 0.1875, 0.375, 0.1875, 0.25, 0.4375}, -- NodeBox21
{-0.1875, 0.1875, 0.375, -0.125, 0.25, 0.4375}, -- NodeBox22
{-0.0165975, -0.159751, -0.375, 0.0165974, -0.125, 0.375}, -- NodeBox23
{-0.00414942, -0.465, -0.008299, 0.008299, -0.159751, 0.004149}, -- NodeBox24
{-0.0625, -0.0625, -0.5, 0.0625, 0, -0.4646}, -- NodeBox25
{0.0625, -0.125, -0.5, 0.125, -0.0625, -0.4646}, -- NodeBox26
{0.125, -0.25, -0.5, 0.1875, -0.125, -0.4646}, -- NodeBox27
{0.0625, -0.3125, -0.5, 0.125, -0.25, -0.4646}, -- NodeBox28
{-0.0625, -0.375, -0.5, 0.0625, -0.3125, -0.4646}, -- NodeBox29
{-0.0625, -0.3125, -0.5, -0.125, -0.25, -0.4646}, -- NodeBox30
{-0.1875, -0.25, -0.5, -0.125, -0.125, -0.4646}, -- NodeBox31
{-0.125, -0.125, -0.5, -0.0625, -0.0625, -0.4646}, -- NodeBox32
{-0.016598, -0.3125, -0.48, 0.020747, -0.0625, -0.49}, -- NodeBox33
{-0.125, -0.209544, -0.48, 0.125, -0.172199, -0.49}, -- NodeBox34
{-0.0165975, -0.200, -0.477178, 0.020747, -0.175349, -0.435685}, -- NodeBox35
{0.1, -0.75, -0.125, 0.125, -0.5, 0.125}, -- NodeBox36
{-0.125, -0.75, -0.125, -0.1, -0.5, 0.125}, -- NodeBox37
{-0.125, -0.75, -0.125, 0.125, -0.729253, 0.125}, -- NodeBox38
{-0.125, -0.75, -0.125, 0.125, -0.5, -0.1}, -- NodeBox39
{-0.125, -0.75, 0.1, 0.125, -0.5, 0.125}, -- NodeBox40
{-0.0165975,-0.465, -0.125, 0.0165974, -0.451245, 0.125}, -- NodeBox41
{-0.0165975, -0.51, 0.112033, 0.0165974, -0.46, 0.125}, -- NodeBox42
{-0.0165975, -0.51, -0.125, 0.0165974, -0.46, -0.112033}, -- NodeBox43
}
},
selection_box = homedecor.nodebox.null,
})
homedecor.register("coatrack_wallmount", { homedecor.register("coatrack_wallmount", {
tiles = { "forniture_wood.png" }, tiles = { "forniture_wood.png" },
inventory_image = "homedecor_coatrack_wallmount_inv.png", inventory_image = "homedecor_coatrack_wallmount_inv.png",
@ -698,77 +467,28 @@ homedecor.register("dartboard", {
sounds = default.node_sound_defaults(), sounds = default.node_sound_defaults(),
}) })
homedecor.register("piano_left", { local piano_cbox = {
type = "fixed",
fixed = { -0.5, -0.5, -0.125, 1.5, 0.5, 0.5 }
}
homedecor.register("piano", {
mesh = "homedecor_piano.obj",
tiles = { tiles = {
"homedecor_piano_top_left.png", "homedecor_piano_keys.png",
"homedecor_piano_sides.png", "homedecor_tile_brass2.png",
"homedecor_piano_sides.png", "homedecor_piano_wood.png"
"homedecor_piano_sides.png",
"homedecor_piano_sides.png",
"homedecor_piano_front_left.png",
}, },
inventory_image = "homedecor_piano_inv.png", inventory_image = "homedecor_piano_inv.png",
description = "Piano", description = "Piano",
groups = { snappy = 3 }, groups = { snappy = 3 },
node_box = { selection_box = piano_cbox,
type = "fixed", collision_box = piano_cbox,
fixed = { expand = { right="air" },
{-0.5, -0.5, 0.1875, 0.5, 0.5, 0.5}, -- NodeBox1
{-0.5, 0.0625, -0.125, -0.4375, 0.25, 0.1875}, -- NodeBox2
{-0.5, -0.5, -0.125, -0.4375, -0.375, 0.1875}, -- NodeBox3
{-0.5, -0.375, -0.0625, -0.4375, 0.0625, 0}, -- NodeBox4
{-0.5, 0.0625, -0.0625, 0.5, 0.1875, 0.1875}, -- NodeBox5
{-0.4375, 0.1875, 0.15, 0.5, 0.4375, 0.1875}, -- NodeBox6
{0.3594, -0.5, 0, 0.4062, -0.46875, 0.25}, -- left-most pedal
{0.4844, -0.5, 0, 0.5, -0.46875, 0.25}, -- half of center pedal
}
},
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.125, 1.5, 0.5, 0.5 }
},
expand = { right="homedecor:piano_right" },
}) })
homedecor.register("piano_right", { minetest.register_alias("homedecor:piano_left", "homedecor:piano")
tiles = { minetest.register_alias("homedecor:piano_right", "air")
"homedecor_piano_top_right.png",
"homedecor_piano_sides.png",
"homedecor_piano_sides.png",
"homedecor_piano_sides.png",
"homedecor_piano_sides.png",
"homedecor_piano_front_right.png",
},
groups = { snappy = 3, not_in_creative_inventory=1 },
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0.1875, 0.5, 0.5, 0.5}, -- NodeBox1
{0.4375, -0.5, -0.125, 0.5, -0.375, 0.1875}, -- NodeBox2
{0.4375, 0.0625, -0.125, 0.5, 0.25, 0.1875}, -- NodeBox3
{0.4375, -0.375, -0.0625, 0.5, 0.0625, 0}, -- NodeBox4
{-0.5, 0.0625, -0.0625, 0.4375, 0.1875, 0.1875}, -- NodeBox5
{-0.5, 0.1875, 0.15, 0.4375, 0.4375, 0.1875}, -- NodeBox6
{-0.5, -0.5, 0, -0.4688, -0.46875, 0.25}, -- half of center pedal
{-0.3905, -0.5, 0, -0.3438, -0.46875, 0.25}, -- right-most pedal
}
},
selection_box = homedecor.nodebox.null
})
-- convert old pool tables into newer model
minetest.register_abm({
nodenames = { "homedecor:pool_table2" },
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local swap_fdir = { 2, 3, 0, 1 }
local fdir = swap_fdir[node.param2+1]
minetest.set_node(pos, {name = "homedecor:pool_table_2", param2 = fdir})
end
})
homedecor.register("trophy", { homedecor.register("trophy", {
description = "Trophy", description = "Trophy",
@ -836,112 +556,24 @@ homedecor.register("sportbench", {
} }
}) })
local skate_cbox = {
type = "fixed",
fixed = { -0.5, -0.5, -0.15, 0.5, -0.3, 0.15 }
}
homedecor.register("skateboard", { homedecor.register("skateboard", {
description = "Skateboard", drawtype = "mesh",
tiles = { mesh = "homedecor_skateboard.obj",
"homedecor_skateboard_top.png", tiles = { "homedecor_skateboard.png" },
"homedecor_skateboard_bottom.png",
"homedecor_skateboard_sides.png"
},
inventory_image = "homedecor_skateboard_inv.png", inventory_image = "homedecor_skateboard_inv.png",
groups = { snappy=3 }, description = "Skateboard",
node_box = { groups = {snappy=3},
type = "fixed", selection_box = skate_cbox,
fixed = { collision_box = skate_cbox,
{-0.4375, -0.4375, -0.1875, 0.4375, -0.415, 0.125}, -- NodeBox1 sounds = default.node_sound_wood_defaults(),
{-0.375, -0.5, 0.0625, -0.3125, -0.4375, 0.125}, -- NodeBox2
{-0.375, -0.5, -0.1875, -0.3125, -0.4375, -0.125}, -- NodeBox3
{0.3125, -0.5, 0.0625, 0.375, -0.4375, 0.125}, -- NodeBox4
{0.3125, -0.5, -0.1875, 0.375, -0.4375, -0.125}, -- NodeBox5
{-0.5, -0.4375, -0.16, -0.4375, -0.415, 0.0975}, -- NodeBox6
{0.4375, -0.4375, -0.16, 0.5, -0.415, 0.0975}, -- NodeBox7
}
},
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.2, 0.5, -0.40, 0.125 }
},
on_place = minetest.rotate_node on_place = minetest.rotate_node
}) })
homedecor.register("stonepath", {
description = "Garden stone path",
tiles = {
"default_stone.png"
},
inventory_image = "homedecor_stonepath_inv.png",
groups = { snappy=3 },
node_box = {
type = "fixed",
fixed = {
{-0.4375, -0.5, 0.3125, -0.3125, -0.48, 0.4375}, -- NodeBox1
{-0.25, -0.5, 0.125, 0, -0.48, 0.375}, -- NodeBox2
{0.125, -0.5, 0.125, 0.4375, -0.48, 0.4375}, -- NodeBox3
{-0.4375, -0.5, -0.125, -0.25, -0.48, 0.0625}, -- NodeBox4
{-0.0625, -0.5, -0.25, 0.25, -0.48, 0.0625}, -- NodeBox5
{0.3125, -0.5, -0.25, 0.4375, -0.48, -0.125}, -- NodeBox6
{-0.3125, -0.5, -0.375, -0.125, -0.48, -0.1875}, -- NodeBox7
{0.125, -0.5, -0.4375, 0.25, -0.48, -0.3125}, -- NodeBox8
}
},
selection_box = {
type = "fixed",
fixed = { -0.4375, -0.5, -0.4375, 0.4375, -0.4, 0.4375 }
}
})
homedecor.register("barbecue", {
description = "Barbecue",
tiles = {
{name="homedecor_barbecue_top.png", animation={type="vertical_frames",
aspect_w=16, aspect_h=16, length=2}},
"forniture_black_metal.png",
},
groups = { snappy=3 },
light_source = 9,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0.25, -0.4375, 0.0625, 0.3125}, -- NodeBox1
{0.4375, -0.5, 0.25, 0.5, 0.0625, 0.3125}, -- NodeBox2
{-0.5, -0.5, -0.3125, -0.4375, 0.0625, -0.25}, -- NodeBox3
{0.4375, -0.5, -0.3125, 0.5, 0.0625, -0.25}, -- NodeBox4
{-0.5, 0.0625, -0.3125, 0.5, 0.375, 0.3125}, -- NodeBox5
{-0.375, 0.5, -0.25, -0.313, 0.5, 0.251}, -- NodeBox6
{-0.25, 0.5, -0.25, -0.188, 0.5, 0.251}, -- NodeBox7
{-0.125, 0.5, -0.25, -0.063, 0.5, 0.251}, -- NodeBox8
{0, 0.5, -0.25, 0.062, 0.5, 0.251}, -- NodeBox9
{0.125, 0.5, -0.25, 0.187, 0.5, 0.251}, -- NodeBox10
{0.25, 0.5, -0.25, 0.312, 0.5, 0.251}, -- NodeBox11
{0.375, 0.5, -0.25, 0.437, 0.5, 0.251}, -- NodeBox12
{-0.5, 0.375, 0.251, 0.5, 0.5, 0.3125}, -- NodeBox13
{-0.5, 0.0625, -0.3125, 0.5, 0.5, -0.25}, -- NodeBox14
{-0.5, 0.0625, -0.3125, -0.438, 0.5, 0.3125}, -- NodeBox15
{0.4375, 0.0625, -0.3125, 0.5, 0.5, 0.3125}, -- NodeBox16
}
},
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.3125, 0.5, 0.625, 0.3125 }
},
expand = { top="homedecor:barbecue_meat" },
})
homedecor.register("barbecue_meat", {
tiles = {
"homedecor_barbecue_meat.png",
},
groups = { snappy=3, not_in_creative_inventory=1 },
node_box = {
type = "fixed",
fixed = {
{-0.25, -0.5, -0.125, -0.0625, -0.4375, 0.125}, -- NodeBox1
{0.125, -0.5, -0.125, 0.3125, -0.4375, 0.125}, -- NodeBox2
}
},
selection_box = homedecor.nodebox.null
})
homedecor.register("beer_tap", { homedecor.register("beer_tap", {
description = "Beer tap", description = "Beer tap",
tiles = { tiles = {
@ -1031,6 +663,9 @@ homedecor.register("tool_cabinet_bottom", {
}, },
selection_box = homedecor.nodebox.slab_y(2), selection_box = homedecor.nodebox.slab_y(2),
expand = { top="homedecor:tool_cabinet_top" }, expand = { top="homedecor:tool_cabinet_top" },
inventory = {
size=24,
}
}) })
homedecor.register("tool_cabinet_top", { homedecor.register("tool_cabinet_top", {
@ -1066,243 +701,6 @@ homedecor.register("tool_cabinet_top", {
selection_box = homedecor.nodebox.null selection_box = homedecor.nodebox.null
}) })
homedecor.register("swing", {
description = "Tree's swing",
tiles = {
"homedecor_swing_top.png",
"homedecor_swing_top.png^[transformR180",
"homedecor_swing_top.png"
},
inventory_image = "homedecor_swing_inv.png",
groups = { snappy=3, oddly_breakable_by_hand=3 },
node_box = {
type = "fixed",
fixed = {
{-0.3125, 0.33, -0.125, 0.3125, 0.376, 0.1875}, -- NodeBox1
{-0.3125, 0.376, 0.025, -0.3, 0.5, 0.0375}, -- NodeBox2
{ 0.3, 0.376, 0.025, 0.3125, 0.5, 0.0375}, -- NodeBox3
}
},
selection_box = {
type = "fixed",
fixed = { -0.3125, 0.33, -0.125, 0.3125, 0.5, 0.1875 }
},
on_place = function(itemstack, placer, pointed_thing)
isceiling, pos = homedecor.find_ceiling(itemstack, placer, pointed_thing)
if isceiling then
local height = 0
for i = 0, 4 do -- search up to 5 spaces downward from the ceiling for the first non-buildable-to node...
height = i
local testpos = { x=pos.x, y=pos.y-i-1, z=pos.z }
local testnode = minetest.get_node(testpos)
local testreg = core.registered_nodes[testnode.name]
if not testreg.buildable_to then
if i < 1 then
minetest.chat_send_player(placer:get_player_name(), "No room under there to hang a swing.")
return
else
break
end
end
end
for j = 0, height do -- then fill that space with ropes...
local testpos = { x=pos.x, y=pos.y-j, z=pos.z }
local testnode = minetest.get_node(testpos)
local testreg = core.registered_nodes[testnode.name]
minetest.set_node(testpos, { name = "homedecor:swing_rope", param2 = fdir })
end
minetest.set_node({ x=pos.x, y=pos.y-height, z=pos.z }, { name = "homedecor:swing", param2 = fdir })
if not homedecor.expect_infinite_stacks then
itemstack:take_item()
return itemstack
end
else
minetest.chat_send_player(placer:get_player_name(), "You have to point at the bottom side of an overhanging object to place a swing.")
end
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
for i = 0, 4 do
local testpos = { x=pos.x, y=pos.y+i+1, z=pos.z }
if minetest.get_node(testpos).name == "homedecor:swing_rope" then
minetest.remove_node(testpos)
else
return
end
end
end
})
homedecor.register("swing_rope", {
tiles = {
"homedecor_swingrope_sides.png"
},
groups = { not_in_creative_inventory=1 },
node_box = {
type = "fixed",
fixed = {
{-0.3125, -0.5, 0.025, -0.3, 0.5, 0.0375}, -- NodeBox1
{0.3, -0.5, 0.025, 0.3125, 0.5, 0.0375}, -- NodeBox2
}
},
selection_box = homedecor.nodebox.null
})
local bookcolors = {
"red",
"green",
"blue",
"violet",
"grey",
"brown"
}
local BOOK_FORMNAME = "homedecor:book_form"
for c in ipairs(bookcolors) do
local color = bookcolors[c]
local color_d = S(bookcolors[c])
local function book_dig(pos, node, digger)
if minetest.is_protected(pos, digger:get_player_name()) then return end
local meta = minetest.get_meta(pos)
local stack = ItemStack({
name = "homedecor:book_"..color,
metadata = meta:get_string("text"),
})
stack = digger:get_inventory():add_item("main", stack)
if not stack:is_empty() then
minetest.item_drop(stack, digger, pos)
end
minetest.remove_node(pos)
end
homedecor.register("book_"..color, {
description = S("Book (%s)"):format(color_d),
mesh = "homedecor_book.obj",
tiles = { "homedecor_book_"..color..".png" },
inventory_image = "homedecor_book_"..color.."_inv.png",
wield_image = "homedecor_book_"..color.."_inv.png",
groups = { snappy=3, oddly_breakable_by_hand=3, book=1 },
stack_max = 1,
on_rightclick = function(pos, node, clicker)
local fdir = node.param2
minetest.swap_node(pos, { name = "homedecor:book_open_"..color, param2 = fdir })
end,
on_place = function(itemstack, placer, pointed_thing)
local plname = placer:get_player_name()
local pos = pointed_thing.under
local node = minetest.get_node(pos)
local n = minetest.registered_nodes[node.name]
if not n.buildable_to then
pos = pointed_thing.above
node = minetest.get_node(pos)
n = minetest.registered_nodes[node.name]
if not n.buildable_to then return end
end
if minetest.is_protected(pos, plname) then return end
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
minetest.set_node(pos, {
name = "homedecor:book_"..color,
param2 = fdir,
})
local text = itemstack:get_metadata() or ""
local meta = minetest.get_meta(pos)
meta:set_string("text", text)
local data = minetest.deserialize(text) or {}
if data.title and data.title ~= "" then
meta:set_string("infotext", data.title)
end
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
end
return itemstack
end,
on_dig = book_dig,
on_use = function(itemstack, user, pointed_thing)
local player_name = user:get_player_name()
local data = minetest.deserialize(itemstack:get_metadata())
local title, text, owner = "", "", player_name
if data then
title, text, owner = data.title, data.text, data.owner
end
local formspec
if owner == player_name then
formspec = "size[8,8]"..default.gui_bg..default.gui_bg_img..
"field[0.5,1;7.5,0;title;Book title :;"..
minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;text;Book content :;"..
minetest.formspec_escape(text).."]"..
"button_exit[2.5,7.5;3,1;save;Save]"
else
formspec = "size[8,8]"..default.gui_bg..
"button_exit[7,0.25;1,0.5;close;X]"..
default.gui_bg_img..
"label[0.5,0.5;by "..owner.."]"..
"label[0.5,0;"..minetest.formspec_escape(title).."]"..
"textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]"
end
minetest.show_formspec(user:get_player_name(), BOOK_FORMNAME, formspec)
end,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.5, -0.25, 0.2, -0.35, 0.25}
},
collision_box = {
type = "fixed",
fixed = {-0.15, -0.5, -0.25, 0.15, -0.35, 0.25}
},
})
homedecor.register("book_open_"..color, {
mesh = "homedecor_book_open.obj",
tiles = { "homedecor_book_open_"..color..".png" },
groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1 },
drop = "homedecor:book_"..color,
on_dig = book_dig,
on_rightclick = function(pos, node, clicker)
local fdir = node.param2
minetest.swap_node(pos, { name = "homedecor:book_"..color, param2 = fdir })
minetest.sound_play("homedecor_book_close", {
pos=pos,
max_hear_distance = 3,
gain = 2,
})
end,
selection_box = {
type = "fixed",
fixed = {-0.35, -0.5, -0.25, 0.35, -0.4, 0.25}
},
collision_box = {
type = "fixed",
fixed = {-0.35, -0.5, -0.25, 0.35, -0.4, 0.25}
},
})
end
minetest.register_on_player_receive_fields(function(player, form_name, fields)
if form_name ~= BOOK_FORMNAME or not fields.save then
return
end
local stack = player:get_wielded_item()
if minetest.get_item_group(stack:get_name(), "book") == 0 then
return
end
local data = minetest.deserialize(stack:get_metadata()) or {}
data.title, data.text, data.owner =
fields.title, fields.text, player:get_player_name()
stack:set_metadata(minetest.serialize(data))
player:set_wielded_item(stack)
minetest.log("action", player:get_player_name().." has written in a book (title: \""..fields.title.."\"): \""..fields.text..
"\" at location: "..minetest.pos_to_string(player:getpos()))
end)
homedecor.register("calendar", { homedecor.register("calendar", {
description = "Calendar", description = "Calendar",
drawtype = "signlike", drawtype = "signlike",

View File

@ -192,57 +192,28 @@ homedecor.register("utility_table_legs", {
}, },
}) })
local desk_cbox = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 0.5 }
}
homedecor.register("desk", { homedecor.register("desk", {
description = "Desk", description = "Desk",
mesh = "homedecor_desk.obj",
tiles = { tiles = {
"forniture_wood.png", "homedecor_desk_drawers.png",
"forniture_wood.png", "forniture_black_metal.png",
"forniture_wood.png", "forniture_wood.png"
"forniture_wood.png",
"forniture_wood.png",
"homedecor_desk_front_l.png"
}, },
inventory_image = "homedecor_desk_inv.png", inventory_image = "homedecor_desk_inv.png",
node_box = { selection_box = desk_cbox,
type = "fixed", collision_box = desk_cbox,
fixed = {
{-0.5, -0.5, -0.4375, 0.375, 0.5, 0.5},
{-0.5, 0.4375, -0.4375, 0.5, 0.5, 0.5},
{-0.4375, -0.4375, -0.5, 0.3125, -0.0625, -0.4375},
{-0.4375, 0, -0.5, 0.3125, 0.375, 0.5},
{0.3125, -0.375, 0.4375, 0.5, 0.25, 0.5},
}
},
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 0.5 }
},
groups = { snappy = 3 }, groups = { snappy = 3 },
expand = { expand = { right="air" },
right="homedecor:desk_r" inventory = {
size=24,
}, },
}) })
homedecor.register("desk_r", { minetest.register_alias("homedecor:desk_r", "air")
tiles = {
"forniture_wood.png",
"forniture_wood.png",
"forniture_wood.png",
"forniture_wood.png",
"homedecor_desk_back_r.png",
"homedecor_desk_front_r.png"
},
node_box = {
type = "fixed",
fixed = {
{-0.5, 0.4375, -0.4375, 0.5, 0.5, 0.5},
{0.375, -0.5, -0.4375, 0.5, 0.5, 0.5},
{-0.5, 0.3125, -0.4375, 0.5, 0.375, 0.5},
{-0.5, 0.3125, -0.4375, -0.4375, 0.5, 0.5},
{-0.5, -0.375, 0.4375, 0.4375, 0.25, 0.5},
}
},
selection_box = homedecor.nodebox.null,
groups = { snappy = 3, not_in_creative_inventory=1 }
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 700 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 971 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 969 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 615 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 791 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 819 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 681 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 674 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 444 B

After

Width:  |  Height:  |  Size: 461 B

View File

@ -65,78 +65,42 @@ homedecor.register("window_plain", {
}, },
}) })
local wb1_cbox = {
type = "fixed",
fixed = { -8/16, -8/16, 5/16, 8/16, 8/16, 8/16 },
}
homedecor.register("blinds_thick", { homedecor.register("blinds_thick", {
description = "Window Blinds (thick)", description = "Window Blinds (thick)",
tiles = { "homedecor_windowblinds.png" }, mesh = "homedecor_windowblind_thick.obj",
tiles = {
"homedecor_windowblind_strings.png",
"homedecor_windowblinds.png"
},
walkable = false, walkable = false,
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
node_box = { selection_box = wb1_cbox,
type = "fixed", collision_box = wb1_cbox,
fixed = {
{-0.527123, 0.375, 0.3125, 0.523585, 0.5, 0.5}, -- NodeBox1
{-0.5, 0.304245, 0.3125, 0.5, 0.3125, 0.5}, -- NodeBox2
{-0.5, 0.244104, 0.3125, 0.5, 0.25, 0.5}, -- NodeBox3
{-0.5, 0.180424, 0.3125, 0.5, 0.1875, 0.5}, -- NodeBox4
{-0.5, 0.116745, 0.3125, 0.5, 0.125, 0.5}, -- NodeBox5
{-0.5, 0.0566037, 0.3125, 0.5, 0.0625, 0.5}, -- NodeBox6
{-0.5, -0.00707551, 0.3125, 0.5, 0, 0.5}, -- NodeBox7
{-0.5, -0.0707547, 0.3125, 0.5, -0.0625, 0.5}, -- NodeBox8
{-0.5, -0.130896, 0.3125, 0.5, -0.125, 0.5}, -- NodeBox9
{-0.5, -0.194576, 0.3125, 0.5, -0.1875, 0.5}, -- NodeBox10
{-0.5, -0.258255, 0.3125, 0.5, -0.25, 0.5}, -- NodeBox11
{-0.5, -0.318396, 0.3125, 0.5, -0.3125, 0.5}, -- NodeBox12
{-0.5, -0.5, 0.3125, 0.5, -0.4375, 0.5}, -- NodeBox13
{-0.5, -0.378538, 0.3125, 0.5, -0.375, 0.5}, -- NodeBox14
{-0.375, -0.5, 0.367925, -0.367925, 0.4375, 0.445755}, -- NodeBox15
{0.367924, -0.5, 0.367925, 0.375, 0.5, 0.445755}, -- NodeBox16
{0.375, 0.375, 0.25, 0.4375, 0.4375, 0.3125}, -- NodeBox17
{0.396226, -0.325, 0.268868, 0.417453, 0.375, 0.290094}, -- NodeBox18
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.527123, -0.5, 0.25, 0.523585, 0.5, 0.5}
},
},
}) })
local wb2_cbox = {
type = "fixed",
fixed = { -8/16, -8/16, 6/16, 8/16, 8/16, 8/16 },
}
homedecor.register("blinds_thin", { homedecor.register("blinds_thin", {
description = "Window Blinds (thin)", description = "Window Blinds (thin)",
tiles = { "homedecor_windowblinds.png" }, mesh = "homedecor_windowblind_thin.obj",
tiles = {
"homedecor_windowblind_strings.png",
"homedecor_windowblinds.png"
},
walkable = false, walkable = false,
groups = {snappy=3}, groups = {snappy=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
node_box = { selection_box = wb2_cbox,
type = "fixed", collision_box = wb2_cbox,
fixed = {
{-0.52, 0.375, 0.4375, 0.52, 0.5, 0.5}, -- NodeBox1
{-0.5, 0.304245, 0.4375, 0.5, 0.3125, 0.5}, -- NodeBox2
{-0.5, 0.244104, 0.4375, 0.5, 0.25, 0.5}, -- NodeBox3
{-0.5, 0.180424, 0.43755, 0.5, 0.1875, 0.5}, -- NodeBox4
{-0.5, 0.116745, 0.4375, 0.5, 0.125, 0.5}, -- NodeBox5
{-0.5, 0.0566037, 0.4375, 0.5, 0.0625, 0.5}, -- NodeBox6
{-0.5, -0.00707551, 0.4375, 0.5, 0, 0.5}, -- NodeBox7
{-0.5, -0.0707547, 0.4375, 0.5, -0.0625, 0.5}, -- NodeBox8
{-0.5, -0.130896, 0.4375, 0.5, -0.125, 0.5}, -- NodeBox9
{-0.5, -0.194576, 0.4375, 0.5, -0.1875, 0.5}, -- NodeBox10
{-0.5, -0.258255, 0.4375, 0.5, -0.25, 0.5}, -- NodeBox11
{-0.5, -0.318396, 0.4375, 0.5, -0.3125, 0.5}, -- NodeBox12
{-0.5, -0.5, 0.4375, 0.5, -0.4375, 0.5}, -- NodeBox13
{-0.5, -0.378538, 0.4375, 0.5, -0.375, 0.5}, -- NodeBox14
{-0.375, -0.49, 0.4575, -0.367925, 0.4375, 0.48}, -- NodeBox15
{0.367924, -0.49, 0.4575, 0.375, 0.5, 0.48}, -- NodeBox16
{0.375, 0.375, 0.375, 0.4375, 0.4375, 0.4375}, -- NodeBox17
{0.396226, -0.325, 0.4, 0.417453, 0.375, 0.42}, -- NodeBox18
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.52, -0.5, 0.375, 0.52, 0.5, 0.5}
},
},
}) })
local curtaincolors = { local curtaincolors = {