Add light_api, Toggle Lights At Night
parent
f67a10971e
commit
f6c19dc083
|
@ -26,7 +26,7 @@ minetest.register_globalstep(function(dtime)
|
||||||
|
|
||||||
if store_tod == 0 and old_time == 1 then
|
if store_tod == 0 and old_time == 1 then
|
||||||
minetest.sound_play("day_night_power_down", {
|
minetest.sound_play("day_night_power_down", {
|
||||||
name = "day_night_power_down.ogg",
|
name = "day_night_power_down",
|
||||||
gain = 1.0,
|
gain = 1.0,
|
||||||
pitch = 1.0,
|
pitch = 1.0,
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
light = {}
|
||||||
|
|
||||||
|
function light.toggle_light(pos, node, play_sound)
|
||||||
|
local store_tod = day_night.get_storetime()
|
||||||
|
local is_off = false
|
||||||
|
if node.name:sub(-4) == "_off" then
|
||||||
|
is_off = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if is_off and store_tod == 1 then
|
||||||
|
minetest.swap_node(pos, {name = node.name:sub(0,-5)})
|
||||||
|
|
||||||
|
if play_sound then
|
||||||
|
minetest.sound_play("light_api_toggle", {
|
||||||
|
name = "light_api_toggle",
|
||||||
|
pos = pos,
|
||||||
|
max_hear_distance = 150,
|
||||||
|
gain = 1.0,
|
||||||
|
pitch = 1.0,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif not is_off and store_tod == 0 then
|
||||||
|
minetest.swap_node(pos, {name = node.name.."_off"})
|
||||||
|
|
||||||
|
if play_sound then
|
||||||
|
minetest.sound_play("light_api_toggle", {
|
||||||
|
name = "light_api_toggle",
|
||||||
|
pos = pos,
|
||||||
|
max_hear_distance = 150,
|
||||||
|
gain = 1.0,
|
||||||
|
pitch = 1.0,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local light_default = {
|
||||||
|
description = "Default Description For Lights",
|
||||||
|
mesh = "error.obj",
|
||||||
|
tiles = {"unknown_node.png^[colorize:#ff0000:255"},
|
||||||
|
collision_box = nil,
|
||||||
|
selection_box = nil,
|
||||||
|
light_source = minetest.LIGHT_MAX,
|
||||||
|
}
|
||||||
|
|
||||||
|
function light.register_light(name, def)
|
||||||
|
local def = {
|
||||||
|
description = (def.description or light_default.description),
|
||||||
|
paramtype = "light",
|
||||||
|
drawtype = "mesh",
|
||||||
|
mesh = (def.mesh or light_default.mesh),
|
||||||
|
tiles = (def.tiles or light_default.tiles),
|
||||||
|
collision_box = (def.collision_box or light_default.collision_box),
|
||||||
|
selection_box = (def.selection_box or light_default.selection_box),
|
||||||
|
light_source = (def.light_source or light_default.light_source),
|
||||||
|
groups = {static = 1, light = 1},
|
||||||
|
}
|
||||||
|
|
||||||
|
minetest.register_node(":" .. name, def)
|
||||||
|
|
||||||
|
local def_off = def
|
||||||
|
def_off.light_source = 0
|
||||||
|
|
||||||
|
minetest.register_node(":" .. name .. "_off", def_off)
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"group:light"},
|
||||||
|
interval = 1.0,
|
||||||
|
chance = 1,
|
||||||
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
light.toggle_light(pos, node, true)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_lbm({
|
||||||
|
label = "Light Updater LBM",
|
||||||
|
name = "light_api:light_toggle",
|
||||||
|
nodenames = {"group:light"},
|
||||||
|
run_at_every_load = true,
|
||||||
|
|
||||||
|
action = function(pos, node)
|
||||||
|
light.toggle_light(pos, node, false)
|
||||||
|
end,
|
||||||
|
})
|
Binary file not shown.
|
@ -1,2 +1,2 @@
|
||||||
name = warehouse
|
name = warehouse
|
||||||
depends = mapgen
|
depends = mapgen,light_api
|
||||||
|
|
|
@ -16,15 +16,11 @@ minetest.register_node("warehouse:rack", {
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("warehouse:light", {
|
light.register_light("warehouse:light", {
|
||||||
description = "Lights That Light The Warehouse",
|
description = "Lights That Light The Warehouse",
|
||||||
drawtype = "mesh",
|
|
||||||
mesh = "warehouse_light.obj",
|
mesh = "warehouse_light.obj",
|
||||||
tiles = {name = "warehouse_light.png"},
|
tiles = {name = "warehouse_light.png"},
|
||||||
paramtype = "light",
|
|
||||||
light_source = minetest.LIGHT_MAX,
|
light_source = minetest.LIGHT_MAX,
|
||||||
is_ground_content = true,
|
|
||||||
groups = {static = 1},
|
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("warehouse:rack_filler", {
|
minetest.register_node("warehouse:rack_filler", {
|
||||||
|
|
Loading…
Reference in New Issue