mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-22 10:31:06 +01:00
Added colored redstone lamps
This commit is contained in:
parent
ce56f396b1
commit
cd930365b0
2 changed files with 72 additions and 10 deletions
|
@ -2,7 +2,24 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
local light = minetest.LIGHT_MAX
|
local light = minetest.LIGHT_MAX
|
||||||
|
|
||||||
minetest.register_node("mesecons_lightstone:lightstone_off", {
|
local function generate_action_on(color)
|
||||||
|
local n = "mesecons_lightstone:lightstone_on"
|
||||||
|
if color then n = n .. "_" .. color end
|
||||||
|
return function(pos, node)
|
||||||
|
minetest.swap_node(pos, {name=n, param2 = node.param2})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function generate_action_off(color)
|
||||||
|
local n = "mesecons_lightstone:lightstone_off"
|
||||||
|
if color then n = n .. "_" .. color end
|
||||||
|
return function(pos, node)
|
||||||
|
minetest.swap_node(pos, {name=n, param2 = node.param2})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local ls_off_name = "mesecons_lightstone:lightstone_off"
|
||||||
|
local ls_off_def = {
|
||||||
tiles = {"jeija_lightstone_gray_off.png"},
|
tiles = {"jeija_lightstone_gray_off.png"},
|
||||||
groups = {handy=1, mesecon_effector_off = 1, mesecon = 2},
|
groups = {handy=1, mesecon_effector_off = 1, mesecon = 2},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
|
@ -11,16 +28,16 @@ minetest.register_node("mesecons_lightstone:lightstone_off", {
|
||||||
_doc_items_longdesc = S("Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.", light),
|
_doc_items_longdesc = S("Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.", light),
|
||||||
sounds = mcl_sounds.node_sound_glass_defaults(),
|
sounds = mcl_sounds.node_sound_glass_defaults(),
|
||||||
mesecons = {effector = {
|
mesecons = {effector = {
|
||||||
action_on = function(pos, node)
|
action_on = generate_action_on(),
|
||||||
minetest.swap_node(pos, {name="mesecons_lightstone:lightstone_on", param2 = node.param2})
|
|
||||||
end,
|
|
||||||
rules = mesecon.rules.alldirs,
|
rules = mesecon.rules.alldirs,
|
||||||
}},
|
}},
|
||||||
_mcl_blast_resistance = 0.3,
|
_mcl_blast_resistance = 0.3,
|
||||||
_mcl_hardness = 0.3,
|
_mcl_hardness = 0.3,
|
||||||
})
|
}
|
||||||
|
minetest.register_node(ls_off_name, ls_off_def)
|
||||||
|
|
||||||
minetest.register_node("mesecons_lightstone:lightstone_on", {
|
local ls_on_name = "mesecons_lightstone:lightstone_on"
|
||||||
|
local ls_on_def = {
|
||||||
tiles = {"jeija_lightstone_gray_on.png"},
|
tiles = {"jeija_lightstone_gray_on.png"},
|
||||||
groups = {handy=1, not_in_creative_inventory=1, mesecon = 2, opaque = 1},
|
groups = {handy=1, not_in_creative_inventory=1, mesecon = 2, opaque = 1},
|
||||||
drop = "node mesecons_lightstone:lightstone_off",
|
drop = "node mesecons_lightstone:lightstone_off",
|
||||||
|
@ -29,14 +46,59 @@ minetest.register_node("mesecons_lightstone:lightstone_on", {
|
||||||
light_source = light,
|
light_source = light,
|
||||||
sounds = mcl_sounds.node_sound_glass_defaults(),
|
sounds = mcl_sounds.node_sound_glass_defaults(),
|
||||||
mesecons = {effector = {
|
mesecons = {effector = {
|
||||||
action_off = function(pos, node)
|
action_off = generate_action_off(),
|
||||||
minetest.swap_node(pos, {name="mesecons_lightstone:lightstone_off", param2 = node.param2})
|
|
||||||
end,
|
|
||||||
rules = mesecon.rules.alldirs,
|
rules = mesecon.rules.alldirs,
|
||||||
}},
|
}},
|
||||||
_mcl_blast_resistance = 0.3,
|
_mcl_blast_resistance = 0.3,
|
||||||
_mcl_hardness = 0.3,
|
_mcl_hardness = 0.3,
|
||||||
|
}
|
||||||
|
minetest.register_node(ls_on_name, ls_on_def)
|
||||||
|
|
||||||
|
local colored_lamps = {
|
||||||
|
{"white", S("White Redstone Lamp"), "white"},
|
||||||
|
{"grey", S("Grey Redstone Lamp"), "dark_grey"},
|
||||||
|
{"silver", S("Light Grey Redstone Lamp"), "grey"},
|
||||||
|
{"black", S("Black Redstone Lamp"), "black"},
|
||||||
|
{"red", S("Red Redstone Lamp"), "red"},
|
||||||
|
{"yellow", S("Yellow Redstone Lamp"), "yellow"},
|
||||||
|
{"green", S("Green Redstone Lamp"), "dark_green"},
|
||||||
|
{"cyan", S("Cyan Redstone Lamp"), "cyan"},
|
||||||
|
{"blue", S("Blue Redstone Lamp"), "blue"},
|
||||||
|
{"magenta", S("Magenta Redstone Lamp"), "magenta"},
|
||||||
|
{"orange", S("Orange Redstone Lamp"), "orange"},
|
||||||
|
{"purple", S("Purple Redstone Lamp"), "violet"},
|
||||||
|
{"brown", S("Brown Redstone Lamp"), "brown"},
|
||||||
|
{"pink", S("Pink Redstone Lamp"), "pink"},
|
||||||
|
{"lime", S("Lime Redstone Lamp"), "green"},
|
||||||
|
{"lightblue", S("Light Blue Redstone Lamp"), "lightblue"},
|
||||||
|
}
|
||||||
|
for _, row in ipairs(colored_lamps) do
|
||||||
|
local name = row[1]
|
||||||
|
local desc = row[2]
|
||||||
|
local dye = row[3]
|
||||||
|
local mask = "^[hsl:0:-100^(mcl_lightstone_mask.png^[multiply:" .. name .. "^[opacity:100)"
|
||||||
|
if name == "lightblue" then
|
||||||
|
mask = "^[hsl:0:-100^(mcl_lightstone_mask.png^[multiply:" .. name .. "^[hsl:0:200^[opacity:100)"
|
||||||
|
end
|
||||||
|
local name_off = ls_off_name .. "_" .. name
|
||||||
|
local def_off = table.copy(ls_off_def)
|
||||||
|
def_off.description = desc
|
||||||
|
def_off._doc_items_longdesc = nil
|
||||||
|
def_off._doc_items_create_entry = false
|
||||||
|
def_off.mesecons.effector.action_on = generate_action_on(name)
|
||||||
|
def_off.tiles[1] = def_off.tiles[1] .. mask
|
||||||
|
local def_on = table.copy(ls_on_def)
|
||||||
|
def_on.drop = name_off
|
||||||
|
def_on.tiles[1] = def_on.tiles[1] .. mask
|
||||||
|
def_on.mesecons.effector.action_off = generate_action_off(name)
|
||||||
|
minetest.register_node(name_off, def_off)
|
||||||
|
minetest.register_node(ls_on_name.."_"..name, def_on)
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shapeless",
|
||||||
|
output = name_off,
|
||||||
|
recipe = {ls_off_name, "mcl_dye:" .. dye}
|
||||||
})
|
})
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "mesecons_lightstone:lightstone_off",
|
output = "mesecons_lightstone:lightstone_off",
|
||||||
|
|
BIN
textures/mcl_lightstone_mask.png
Normal file
BIN
textures/mcl_lightstone_mask.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 151 B |
Loading…
Reference in a new issue