mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-22 10:31:06 +01:00
speedup mcl_observer
This commit is contained in:
parent
138a3cd154
commit
00063cde73
2 changed files with 46 additions and 42 deletions
|
@ -2,6 +2,10 @@ local S = minetest.get_translator("mcl_observers")
|
||||||
|
|
||||||
mcl_observers = {}
|
mcl_observers = {}
|
||||||
|
|
||||||
|
local string = string
|
||||||
|
|
||||||
|
local get_node = get_node
|
||||||
|
|
||||||
-- Warning! TODO: Remove this message.
|
-- Warning! TODO: Remove this message.
|
||||||
-- 'realtime' is experimental feature! It can slow down the everything!
|
-- 'realtime' is experimental feature! It can slow down the everything!
|
||||||
-- Please set it to false and restart the game if something's wrong:
|
-- Please set it to false and restart the game if something's wrong:
|
||||||
|
@ -24,7 +28,7 @@ local rules_up = {{ x = 0, y = -1, z = 0, spread = true }}
|
||||||
|
|
||||||
function mcl_observers.observer_activate(pos)
|
function mcl_observers.observer_activate(pos)
|
||||||
minetest.after(mcl_vars.redstone_tick, function(pos)
|
minetest.after(mcl_vars.redstone_tick, function(pos)
|
||||||
local node = minetest.get_node(pos)
|
local node = get_node(pos)
|
||||||
if not node then
|
if not node then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -47,7 +51,7 @@ end
|
||||||
-- TODO: Also scan metadata changes.
|
-- TODO: Also scan metadata changes.
|
||||||
-- TODO: Ignore some node changes.
|
-- TODO: Ignore some node changes.
|
||||||
local function observer_scan(pos, initialize)
|
local function observer_scan(pos, initialize)
|
||||||
local node = minetest.get_node(pos)
|
local node = get_node(pos)
|
||||||
local front
|
local front
|
||||||
if node.name == "mcl_observers:observer_up_off" or node.name == "mcl_observers:observer_up_on" then
|
if node.name == "mcl_observers:observer_up_off" or node.name == "mcl_observers:observer_up_on" then
|
||||||
front = vector.add(pos, {x=0, y=1, z=0})
|
front = vector.add(pos, {x=0, y=1, z=0})
|
||||||
|
@ -56,7 +60,7 @@ local function observer_scan(pos, initialize)
|
||||||
else
|
else
|
||||||
front = vector.add(pos, minetest.facedir_to_dir(node.param2))
|
front = vector.add(pos, minetest.facedir_to_dir(node.param2))
|
||||||
end
|
end
|
||||||
local frontnode = minetest.get_node(front)
|
local frontnode = get_node(front)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local oldnode = meta:get_string("node_name")
|
local oldnode = meta:get_string("node_name")
|
||||||
local oldparam2 = meta:get_string("node_param2")
|
local oldparam2 = meta:get_string("node_param2")
|
||||||
|
@ -94,7 +98,7 @@ local function observer_orientate(pos, placer)
|
||||||
-- Placer pitch in degrees
|
-- Placer pitch in degrees
|
||||||
local pitch = placer:get_look_vertical() * (180 / math.pi)
|
local pitch = placer:get_look_vertical() * (180 / math.pi)
|
||||||
|
|
||||||
--local node = minetest.get_node(pos)
|
--local node = get_node(pos)
|
||||||
if pitch > 55 then -- player looking upwards
|
if pitch > 55 then -- player looking upwards
|
||||||
-- Observer looking downwards
|
-- Observer looking downwards
|
||||||
minetest.set_node(pos, {name="mcl_observers:observer_down_off"})
|
minetest.set_node(pos, {name="mcl_observers:observer_down_off"})
|
||||||
|
@ -156,7 +160,7 @@ mesecon.register_node("mcl_observers:observer", {
|
||||||
timer:start(mcl_vars.redstone_tick)
|
timer:start(mcl_vars.redstone_tick)
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
local node = minetest.get_node(pos)
|
local node = get_node(pos)
|
||||||
minetest.set_node(pos, {name = "mcl_observers:observer_off", param2 = node.param2})
|
minetest.set_node(pos, {name = "mcl_observers:observer_off", param2 = node.param2})
|
||||||
mesecon.receptor_off(pos, get_rules_flat(node))
|
mesecon.receptor_off(pos, get_rules_flat(node))
|
||||||
end,
|
end,
|
||||||
|
@ -208,7 +212,7 @@ mesecon.register_node("mcl_observers:observer_down", {
|
||||||
timer:start(mcl_vars.redstone_tick)
|
timer:start(mcl_vars.redstone_tick)
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
local node = minetest.get_node(pos)
|
local node = get_node(pos)
|
||||||
minetest.set_node(pos, {name = "mcl_observers:observer_down_off", param2 = node.param2})
|
minetest.set_node(pos, {name = "mcl_observers:observer_down_off", param2 = node.param2})
|
||||||
mesecon.receptor_off(pos, rules_down)
|
mesecon.receptor_off(pos, rules_down)
|
||||||
end,
|
end,
|
||||||
|
@ -291,138 +295,138 @@ if realtime then
|
||||||
mcl_observers.remove_node = minetest.remove_node
|
mcl_observers.remove_node = minetest.remove_node
|
||||||
mcl_observers.bulk_set_node = minetest.bulk_set_node
|
mcl_observers.bulk_set_node = minetest.bulk_set_node
|
||||||
|
|
||||||
minetest.add_node=function(pos,node)
|
function minetest.add_node(pos,node)
|
||||||
mcl_observers.add_node(pos,node)
|
mcl_observers.add_node(pos,node)
|
||||||
local n=minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z})
|
local n = get_node({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==-1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==-1 then
|
||||||
mcl_observers.observer_activate({x=pos.x+1,y=pos.y,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z})
|
n = get_node({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==1 then
|
||||||
mcl_observers.observer_activate({x=pos.x-1,y=pos.y,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1})
|
n = get_node({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==-1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==-1 then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z+1})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})
|
n = get_node({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==1 then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z-1})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
n = get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_u" then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_u" then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y-1,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
n = get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_d" then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_d" then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y+1,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
minetest.set_node=function(pos,node)
|
function minetest.set_node(pos,node)
|
||||||
mcl_observers.set_node(pos,node)
|
mcl_observers.set_node(pos,node)
|
||||||
local n=minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z})
|
local n = get_node({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==-1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==-1 then
|
||||||
mcl_observers.observer_activate({x=pos.x+1,y=pos.y,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z})
|
n = get_node({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==1 then
|
||||||
mcl_observers.observer_activate({x=pos.x-1,y=pos.y,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1})
|
n = get_node({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==-1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==-1 then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z+1})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})
|
n = get_node({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==1 then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z-1})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
n = get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_u" then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_u" then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y-1,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
n = get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_d" then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_d" then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y+1,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
minetest.swap_node=function(pos,node)
|
function minetest.swap_node(pos,node)
|
||||||
mcl_observers.swap_node(pos,node)
|
mcl_observers.swap_node(pos,node)
|
||||||
local n=minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z})
|
local n = get_node({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==-1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==-1 then
|
||||||
mcl_observers.observer_activate({x=pos.x+1,y=pos.y,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z})
|
n = get_node({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==1 then
|
||||||
mcl_observers.observer_activate({x=pos.x-1,y=pos.y,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1})
|
n = get_node({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==-1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==-1 then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z+1})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})
|
n = get_node({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==1 then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z-1})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
n = get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_u" then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_u" then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y-1,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
n = get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_d" then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_d" then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y+1,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
minetest.remove_node=function(pos)
|
function minetest.remove_node(pos)
|
||||||
mcl_observers.remove_node(pos)
|
mcl_observers.remove_node(pos)
|
||||||
local n=minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z})
|
local n = get_node({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==-1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==-1 then
|
||||||
mcl_observers.observer_activate({x=pos.x+1,y=pos.y,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z})
|
n = get_node({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==1 then
|
||||||
mcl_observers.observer_activate({x=pos.x-1,y=pos.y,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1})
|
n = get_node({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==-1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==-1 then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z+1})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})
|
n = get_node({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==1 then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z-1})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
n = get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_u" then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_u" then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y-1,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
n = get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_d" then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_d" then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y+1,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
minetest.bulk_set_node=function(lst, node)
|
function minetest.bulk_set_node(lst, node)
|
||||||
mcl_observers.bulk_set_node(lst, node)
|
mcl_observers.bulk_set_node(lst, node)
|
||||||
for _, pos in pairs(lst) do
|
for _, pos in pairs(lst) do
|
||||||
local n=minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z})
|
local n = get_node({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==-1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==-1 then
|
||||||
mcl_observers.observer_activate({x=pos.x+1,y=pos.y,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x+1,y=pos.y,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z})
|
n = get_node({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).x==1 then
|
||||||
mcl_observers.observer_activate({x=pos.x-1,y=pos.y,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x-1,y=pos.y,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1})
|
n = get_node({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==-1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==-1 then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z+1})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z+1})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1})
|
n = get_node({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==1 then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_o" and minetest.facedir_to_dir(n.param2).z==1 then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z-1})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y,z=pos.z-1})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
n = get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_u" then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_u" then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y-1,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y-1,z=pos.z})
|
||||||
end
|
end
|
||||||
n=minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
n = get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_d" then
|
if n and n.name and string.sub(n.name,1,24)=="mcl_observers:observer_d" then
|
||||||
mcl_observers.observer_activate({x=pos.x,y=pos.y+1,z=pos.z})
|
mcl_observers.observer_activate({x=pos.x,y=pos.y+1,z=pos.z})
|
||||||
end
|
end
|
||||||
|
|
|
@ -1869,7 +1869,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||||
mcl_vars.add_chunk(minp)
|
mcl_vars.add_chunk(minp)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_on_generated=function(node_function)
|
function minetest.register_on_generated(node_function)
|
||||||
mcl_mapgen_core.register_generator("mod_"..tostring(#registered_generators+1), nil, node_function)
|
mcl_mapgen_core.register_generator("mod_"..tostring(#registered_generators+1), nil, node_function)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue