Fix broken takable update
parent
85e7caaa4b
commit
ee05696fd7
|
@ -133,12 +133,14 @@ local register_element = function(subname, def, options)
|
|||
def_takable.groups.takable = 1
|
||||
def_takable.groups.dig_immediate = 3
|
||||
def_takable.description = S("@1 (takable)", def.description)
|
||||
def_takable._lzr_active = "lzr_laser:"..subname.."_takable_on"
|
||||
local def_takable_on = table.copy(def_core_on)
|
||||
def_takable_on.tiles = def.tiles_takable_on
|
||||
def_takable_on.groups.takable = 1
|
||||
def_takable_on.groups.dig_immediate = 3
|
||||
def_takable_on.description = S("@1 (takable, active)", def.description)
|
||||
def_takable_on.drop = "lzr_laser:"..subname.."_takable"
|
||||
def_takable_on._lzr_inactive = "lzr_laser:"..subname.."_takable"
|
||||
minetest.register_node("lzr_laser:"..subname.."_takable", def_takable)
|
||||
minetest.register_node("lzr_laser:"..subname.."_takable_on", def_takable_on)
|
||||
end
|
||||
|
@ -187,7 +189,7 @@ register_element("mirror", {
|
|||
}, { allow_take = true })
|
||||
|
||||
register_element("transmissive_mirror", {
|
||||
description = S("Transissive Mirror"),
|
||||
description = S("Transmissive Mirror"),
|
||||
paramtype2 = "facedir",
|
||||
tiles_takable_off = {
|
||||
"lzr_laser_transmissive_mirror_top.png",
|
||||
|
|
|
@ -28,8 +28,10 @@ function lzr_laser.add_laser(pos, dir)
|
|||
elseif minetest.get_item_group(node.name, "mirror") > 0 then
|
||||
local mirror_dir = lzr_laser.get_mirrored_laser_dir(pos, dir)
|
||||
if mirror_dir then
|
||||
local def = minetest.registered_nodes[node.name]
|
||||
local active = def._lzr_active
|
||||
-- Activate mirror node
|
||||
minetest.set_node(pos, {name="lzr_laser:mirror_on", param2 = node.param2})
|
||||
minetest.set_node(pos, {name=def._lzr_active, param2 = node.param2})
|
||||
-- Set new pos and dir
|
||||
pos = vector.add(pos, mirror_dir)
|
||||
dir = mirror_dir
|
||||
|
@ -41,8 +43,10 @@ function lzr_laser.add_laser(pos, dir)
|
|||
elseif minetest.get_item_group(node.name, "transmissive_mirror") > 0 then
|
||||
local mirror_dir = lzr_laser.get_mirrored_laser_dir(pos, dir)
|
||||
if mirror_dir then
|
||||
local def = minetest.registered_nodes[node.name]
|
||||
local active = def._lzr_active
|
||||
-- Activate mirror node
|
||||
minetest.set_node(pos, {name="lzr_laser:transmissive_mirror_on", param2 = node.param2})
|
||||
minetest.set_node(pos, {name=active, param2 = node.param2})
|
||||
-- Set new pos and dir
|
||||
local pos_straight = vector.add(pos, dir)
|
||||
local dir_straight = dir
|
||||
|
@ -58,8 +62,10 @@ function lzr_laser.add_laser(pos, dir)
|
|||
elseif minetest.get_item_group(node.name, "detector") > 0 then
|
||||
local detected = lzr_laser.check_detector(pos, dir)
|
||||
if detected then
|
||||
local def = minetest.registered_nodes[node.name]
|
||||
local active = def._lzr_active
|
||||
-- Activate node
|
||||
minetest.set_node(pos, {name="lzr_laser:detector_on", param2 = node.param2})
|
||||
minetest.set_node(pos, {name=active, param2 = node.param2})
|
||||
local done = lzr_laser.check_detectors_in_area(lzr_globals.PLAYFIELD_START, lzr_globals.PLAYFIELD_END)
|
||||
if done then
|
||||
lzr_levels.next_level()
|
||||
|
|
Loading…
Reference in New Issue