465 lines
13 KiB
Lua
465 lines
13 KiB
Lua
local S = minetest.get_translator("morelights_modern")
|
|
|
|
|
|
minetest.register_node("morelights_modern:block", {
|
|
description = S("Modern Light Block"),
|
|
tiles = {"morelights_metal_dark.png^morelights_modern_block.png"},
|
|
paramtype = "light",
|
|
light_source = minetest.LIGHT_MAX,
|
|
groups = {cracky = 2, oddly_breakable_by_hand = 3, handy = 1},
|
|
_mcl_hardness = 0.3,
|
|
sounds = morelights.sounds.glass
|
|
})
|
|
|
|
minetest.register_node("morelights_modern:smallblock", {
|
|
description = S("Modern Light Block (small)"),
|
|
drawtype = "nodebox",
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {-1/4, -1/2, -1/4, 1/4, 0, 1/4}
|
|
},
|
|
tiles = {
|
|
"morelights_metal_dark.png^morelights_modern_smallblock.png",
|
|
"morelights_metal_dark.png^morelights_modern_smallblock.png",
|
|
"[combine:16x16:0,0=morelights_metal_dark.png" ..
|
|
":0,4=morelights_modern_smallblock.png"
|
|
},
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
sunlight_propagates = true,
|
|
light_source = 12,
|
|
groups = {cracky = 3, oddly_breakable_by_hand = 3, handy = 1},
|
|
_mcl_hardness = 0.2,
|
|
sounds = morelights.sounds.glass,
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
return morelights.rotate_and_place(itemstack, placer, pointed_thing)
|
|
end
|
|
})
|
|
|
|
morelights.register_variants({
|
|
{
|
|
name = "morelights_modern:post_d",
|
|
description = S("Modern Post Light (@1)", S("dark")),
|
|
tiles = {
|
|
"morelights_metal_dark.png",
|
|
"morelights_metal_dark.png",
|
|
"morelights_metal_dark.png^morelights_modern_post.png"
|
|
}
|
|
},
|
|
{
|
|
name = "morelights_modern:post_l",
|
|
description = S("Modern Post Light (@1)", S("light")),
|
|
tiles = {
|
|
"morelights_metal_light.png",
|
|
"morelights_metal_light.png",
|
|
"morelights_metal_light.png^morelights_modern_post.png"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
drawtype = "nodebox",
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}
|
|
},
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
light_source = minetest.LIGHT_MAX,
|
|
groups = {cracky = 3, oddly_breakable_by_hand = 3, handy = 1},
|
|
_mcl_hardness = 0.3,
|
|
sounds = morelights.sounds.metal
|
|
})
|
|
|
|
morelights.register_variants({
|
|
{
|
|
name = "morelights_modern:streetpost_d",
|
|
description = S("Street Lamp Post (@1) - connects to bar lights",
|
|
S("dark")),
|
|
tiles = {"morelights_metal_dark.png"}
|
|
},
|
|
{
|
|
name = "morelights_modern:streetpost_l",
|
|
description = S("Street Lamp Post (@1) - connects to bar lights",
|
|
S("light")),
|
|
tiles = {"morelights_metal_light.png"}
|
|
}
|
|
},
|
|
{
|
|
drawtype = "nodebox",
|
|
node_box = {
|
|
type = "connected",
|
|
fixed = {-1/16, -1/2, -1/16, 1/16, 1/2, 1/16},
|
|
connect_front = {-1/16, 3/8, -1/2, 1/16, 7/16, -1/16},
|
|
connect_left = {-1/2, 3/8, -1/16, -1/16, 7/16, 1/16},
|
|
connect_back = {-1/16, 3/8, 1/16, 1/16, 7/16, 1/2},
|
|
connect_right = {1/16, 3/8, -1/16, 1/2, 7/16, 1/16},
|
|
},
|
|
connects_to = {
|
|
"morelights_modern:barlight_c",
|
|
"morelights_modern:barlight_s"
|
|
},
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
groups = {cracky = 2, oddly_breakable_by_hand = 3, handy = 1},
|
|
_mcl_hardness = 0.3,
|
|
sounds = morelights.sounds.metal
|
|
})
|
|
|
|
minetest.register_node("morelights_modern:barlight_c", {
|
|
description = S("Ceiling Bar Light (connecting)"),
|
|
drawtype = "nodebox",
|
|
node_box = {
|
|
type = "connected",
|
|
fixed = {-1/8, 3/8, -1/8, 1/8, 1/2, 1/8},
|
|
connect_front = {-1/8, 3/8, -1/2, 1/8, 1/2, -1/8},
|
|
connect_left = {-1/2, 3/8, -1/8, -1/8, 1/2, 1/8},
|
|
connect_back = {-1/8, 3/8, 1/8, 1/8, 1/2, 1/2},
|
|
connect_right = {1/8, 3/8, -1/8, 1/2, 1/2, 1/8},
|
|
},
|
|
connects_to = {
|
|
"morelights_modern:barlight_c",
|
|
"morelights_modern:barlight_s",
|
|
"morelights_modern:streetpost_d",
|
|
"morelights_modern:streetpost_l"
|
|
},
|
|
tiles = {
|
|
"morelights_metal_dark.png",
|
|
"morelights_modern_barlight.png",
|
|
"morelights_metal_dark.png"
|
|
},
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
light_source = minetest.LIGHT_MAX,
|
|
groups = {cracky = 2, oddly_breakable_by_hand = 3, handy = 1, not_blocking_trains = 1},
|
|
_mcl_hardness = 0.15,
|
|
sounds = morelights.sounds.glass
|
|
})
|
|
|
|
-- TODO: Determine orientation of bar lights from nearby nodes.
|
|
minetest.register_node("morelights_modern:barlight_s", {
|
|
description = S("Ceiling Bar Light (straight)"),
|
|
drawtype = "nodebox",
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {-1/2, 3/8, -1/8, 1/2, 1/2, 1/8},
|
|
},
|
|
tiles = {
|
|
"morelights_metal_dark.png",
|
|
"morelights_modern_barlight.png",
|
|
"morelights_metal_dark.png"
|
|
},
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
sunlight_propagates = true,
|
|
light_source = minetest.LIGHT_MAX,
|
|
groups = {cracky = 2, oddly_breakable_by_hand = 3, handy = 1, not_blocking_trains = 1},
|
|
_mcl_hardness = 0.15,
|
|
sounds = morelights.sounds.glass
|
|
})
|
|
|
|
minetest.register_node("morelights_modern:ceilinglight", {
|
|
description = S("Modern Ceiling Light"),
|
|
drawtype = "nodebox",
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {-1/4, 3/8, -1/4, 1/4, 1/2, 1/4}
|
|
},
|
|
tiles = {
|
|
"morelights_metal_dark.png",
|
|
"morelights_metal_dark.png^morelights_modern_block.png"
|
|
},
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
sunlight_propagates = true,
|
|
light_source = minetest.LIGHT_MAX,
|
|
groups = {cracky = 3, oddly_breakable_by_hand = 3, handy = 1, not_blocking_trains = 1},
|
|
_mcl_hardness = 0.2,
|
|
sounds = morelights.sounds.glass,
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
return morelights.rotate_and_place(itemstack, placer, pointed_thing,
|
|
{[0] = 0, 20, 12, 16, 4, 8})
|
|
end
|
|
})
|
|
|
|
morelights.register_variants({
|
|
{
|
|
name = "morelights_modern:canlight_d",
|
|
description = S("Modern Can Light (@1)", S("dark")),
|
|
tiles = {"morelights_metal_dark.png^morelights_modern_canlight.png"}
|
|
},
|
|
{
|
|
name = "morelights_modern:canlight_l",
|
|
description = S("Modern Can Light (@1)", S("light")),
|
|
tiles = {"morelights_metal_light.png^morelights_modern_canlight.png"}
|
|
},
|
|
},
|
|
{
|
|
drawtype = "mesh",
|
|
mesh = "morelights_modern_canlight.obj",
|
|
collision_box = {
|
|
type = "fixed",
|
|
fixed = {-1/8, 0, -1/8, 1/8, 1/2, 1/8}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-1/8, 0, -1/8, 1/8, 1/2, 1/8}
|
|
},
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
light_source = 12,
|
|
groups = {cracky = 2, oddly_breakable_by_hand = 3, handy = 1},
|
|
_mcl_hardness = 0.2,
|
|
sounds = morelights.sounds.metal
|
|
})
|
|
|
|
minetest.register_node("morelights_modern:walllamp", {
|
|
description = S("Modern Wall Lamp"),
|
|
drawtype = "mesh",
|
|
mesh = "morelights_modern_walllamp.obj",
|
|
collision_box = {
|
|
type = "fixed",
|
|
fixed = {-1/8, -3/8, 1/8, 1/8, 1/4, 1/2}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-1/8, -3/8, 1/8, 1/8, 1/4, 1/2}
|
|
},
|
|
tiles = {"morelights_metal_dark_32.png^morelights_modern_walllamp.png"},
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
sunlight_propagates = true,
|
|
light_source = 12,
|
|
groups = {cracky = 2, oddly_breakable_by_hand = 3, handy = 1},
|
|
_mcl_hardness = 0.2,
|
|
sounds = morelights.sounds.glass,
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
return morelights.rotate_and_place(itemstack, placer, pointed_thing,
|
|
{[0] = 6, 4, 1, 3, 0, 2})
|
|
end
|
|
})
|
|
|
|
morelights.register_variants({
|
|
{
|
|
name = "morelights_modern:tablelamp_d",
|
|
description = S("Modern Table Lamp (@1)", S("dark")),
|
|
tiles = {
|
|
"morelights_metal_light_32.png^morelights_modern_tablelamp_o.png",
|
|
"morelights_modern_tablelamp_d.png"
|
|
}
|
|
},
|
|
{
|
|
name = "morelights_modern:tablelamp_l",
|
|
description = S("Modern Table Lamp (@1)", S("light")),
|
|
tiles = {
|
|
"morelights_metal_dark_32.png^morelights_modern_tablelamp_o.png",
|
|
"morelights_modern_tablelamp_l.png"
|
|
}
|
|
},
|
|
},
|
|
{
|
|
drawtype = "mesh",
|
|
mesh = "morelights_modern_tablelamp.obj",
|
|
collision_box = {
|
|
type = "fixed",
|
|
fixed = {-1/4, -1/2, -1/4, 1/4, 7/16, 1/4}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-1/4, -1/2, -1/4, 1/4, 7/16, 1/4}
|
|
},
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
light_source = 10,
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 3, handy = 1},
|
|
_mcl_hardness = 0.2,
|
|
sounds = morelights.sounds.default
|
|
})
|
|
|
|
morelights.register_variants({
|
|
{
|
|
name = "morelights_modern:pathlight_d",
|
|
description = S("Modern Path Light (@1)", S("dark")),
|
|
tiles = {
|
|
"morelights_metal_dark_32.png^morelights_modern_pathlight.png"
|
|
}
|
|
},
|
|
{
|
|
name = "morelights_modern:pathlight_l",
|
|
description = S("Modern Path Light (@1)", S("light")),
|
|
tiles = {
|
|
"morelights_metal_light_32.png^morelights_modern_pathlight.png"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
drawtype = "nodebox",
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1/32, -8/16, -1/32, 1/32, 1/8, 1/32},
|
|
{-1/16, 1/8, -1/16, 1/16, 5/16, 1/16},
|
|
{-1/8, 5/16, -1/8, 1/8, 3/8, 1/8}
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-1/8, -1/2, -1/8, 1/8, 3/8, 1/8}
|
|
},
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
light_source = 8,
|
|
groups = {cracky = 3, oddly_breakable_by_hand = 3, handy = 1},
|
|
_mcl_hardness = 0.2,
|
|
sounds = morelights.sounds.metal
|
|
})
|
|
|
|
--
|
|
-- Craft recipes
|
|
--
|
|
|
|
local a = morelights.craft_items
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:block",
|
|
recipe = {
|
|
{"", a.steel, ""},
|
|
{a.glass_pane, "morelights:bulb", a.glass_pane},
|
|
{"", a.steel, ""}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:smallblock",
|
|
recipe = {
|
|
{"", a.glass_pane, ""},
|
|
{a.steel, "morelights:bulb", a.steel}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:post_d",
|
|
recipe = {
|
|
{a.dye_dark, a.steel, ""},
|
|
{"", "morelights:bulb", ""},
|
|
{"", a.steel, ""}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:post_l",
|
|
recipe = {
|
|
{a.dye_light, a.steel, ""},
|
|
{"", "morelights:bulb", ""},
|
|
{"", a.steel, ""}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:streetpost_d 2",
|
|
recipe = {
|
|
{a.dye_dark, a.steel, a.steel},
|
|
{"", a.steel, ""},
|
|
{"", a.steel, ""}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:streetpost_l 2",
|
|
recipe = {
|
|
{a.dye_light, a.steel, a.steel},
|
|
{"", a.steel, ""},
|
|
{"", a.steel, ""}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:barlight_c 4",
|
|
recipe = {
|
|
{a.steel, a.steel, a.steel},
|
|
{a.copper, a.glass, a.copper}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:barlight_c",
|
|
type = "shapeless",
|
|
recipe = {"morelights_modern:barlight_s"}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:barlight_s",
|
|
type = "shapeless",
|
|
recipe = {"morelights_modern:barlight_c"}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:ceilinglight",
|
|
recipe = {
|
|
{a.steel, "morelights:bulb", a.steel},
|
|
{"", a.glass_pane, ""},
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:canlight_d",
|
|
recipe = {
|
|
{a.dye_dark, a.steel, ""},
|
|
{a.steel, "morelights:bulb", a.steel},
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:canlight_l",
|
|
recipe = {
|
|
{a.dye_light, a.steel, ""},
|
|
{a.steel, "morelights:bulb", a.steel},
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:walllamp",
|
|
recipe = {
|
|
{"", a.glass_pane, ""},
|
|
{a.glass_pane, "morelights:bulb", a.steel},
|
|
{"", a.dye_dark, a.steel}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:tablelamp_d",
|
|
recipe = {
|
|
{"", a.steel, ""},
|
|
{a.wool_dark, "morelights:bulb", a.wool_dark},
|
|
{"", a.steel, ""}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:tablelamp_l",
|
|
recipe = {
|
|
{"", a.steel, ""},
|
|
{a.wool_light, "morelights:bulb", a.wool_light},
|
|
{"", a.steel, ""}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:pathlight_d",
|
|
recipe = {
|
|
{a.dye_dark, "morelights:bulb", ""},
|
|
{"", a.steel, ""},
|
|
{"", a.steel, ""}
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "morelights_modern:pathlight_l",
|
|
recipe = {
|
|
{a.dye_light, "morelights:bulb", ""},
|
|
{"", a.steel, ""},
|
|
{"", a.steel, ""}
|
|
}
|
|
})
|