forked from Mirrorlandia_minetest/mesecons
Update code to standards of Minetest 0.4.8.
This commit is contained in:
parent
b4654cedb7
commit
16b4b79c51
@ -132,7 +132,7 @@ function mesecon:receptor_off_i(pos, rules)
|
||||
if not mesecon:connected_to_receptor(np, mesecon:invertRule(rule)) then
|
||||
mesecon:turnoff(np, rulename)
|
||||
else
|
||||
mesecon:changesignal(np, minetest.env:get_node(np), rulename, mesecon.state.off)
|
||||
mesecon:changesignal(np, minetest.get_node(np), rulename, mesecon.state.off)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -237,7 +237,7 @@ function execute_actions(dtime)
|
||||
local nactions = mesecon.to_update
|
||||
mesecon.to_update = {}
|
||||
for _,i in ipairs(nactions) do
|
||||
node = minetest.env:get_node(i.pos)
|
||||
node = minetest.get_node(i.pos)
|
||||
if node.name=="ignore" then
|
||||
add_action(i.pos, i.action, i.rname)
|
||||
else
|
||||
@ -395,7 +395,7 @@ end
|
||||
-- some more general high-level stuff
|
||||
|
||||
function mesecon:is_power_on(pos, rulename)
|
||||
local node = minetest.env:get_node(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
if mesecon:is_conductor_on(node.name, rulename) or mesecon:is_receptor_on(node.name) then
|
||||
return true
|
||||
end
|
||||
@ -403,7 +403,7 @@ function mesecon:is_power_on(pos, rulename)
|
||||
end
|
||||
|
||||
function mesecon:is_power_off(pos, rulename)
|
||||
local node = minetest.env:get_node(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
if mesecon:is_conductor_off(node.name, rulename) or mesecon:is_receptor_off(node.name) then
|
||||
return true
|
||||
end
|
||||
@ -411,7 +411,7 @@ function mesecon:is_power_off(pos, rulename)
|
||||
end
|
||||
|
||||
function mesecon:turnon(pos, rulename)
|
||||
local node = minetest.env:get_node(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
|
||||
if mesecon:is_conductor_off(node.name, rulename) then
|
||||
local rules = mesecon:conductor_get_rules(node)
|
||||
@ -425,7 +425,7 @@ function mesecon:turnon(pos, rulename)
|
||||
return
|
||||
end
|
||||
|
||||
minetest.env:add_node(pos, {name = mesecon:get_conductor_on(node.name, rulename), param2 = node.param2})
|
||||
minetest.add_node(pos, {name = mesecon:get_conductor_on(node.name, rulename), param2 = node.param2})
|
||||
|
||||
for _, rule in ipairs(mesecon:rule2meta(rulename, rules)) do
|
||||
local np = mesecon:addPosRule(pos, rule)
|
||||
@ -444,7 +444,7 @@ function mesecon:turnon(pos, rulename)
|
||||
end
|
||||
|
||||
function mesecon:turnoff(pos, rulename)
|
||||
local node = minetest.env:get_node(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
|
||||
if mesecon:is_conductor_on(node.name, rulename) then
|
||||
local rules = mesecon:conductor_get_rules(node)
|
||||
@ -458,7 +458,7 @@ function mesecon:turnoff(pos, rulename)
|
||||
return
|
||||
end
|
||||
--]]
|
||||
minetest.env:add_node(pos, {name = mesecon:get_conductor_off(node.name, rulename), param2 = node.param2})
|
||||
minetest.add_node(pos, {name = mesecon:get_conductor_off(node.name, rulename), param2 = node.param2})
|
||||
|
||||
for _, rule in ipairs(mesecon:rule2meta(rulename, rules)) do
|
||||
local np = mesecon:addPosRule(pos, rule)
|
||||
@ -479,7 +479,7 @@ end
|
||||
|
||||
|
||||
function mesecon:connected_to_receptor(pos, rulename)
|
||||
local node = minetest.env:get_node(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
|
||||
-- Check if conductors around are connected
|
||||
local rules = mesecon:get_any_inputrules(node)
|
||||
@ -507,7 +507,7 @@ function mesecon:find_receptor_on(pos, checked, rulename)
|
||||
|
||||
-- add current position to checked
|
||||
table.insert(checked, {x=pos.x, y=pos.y, z=pos.z})
|
||||
local node = minetest.env:get_node(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
|
||||
if mesecon:is_receptor_on(node.name) then
|
||||
return true
|
||||
@ -529,8 +529,8 @@ function mesecon:find_receptor_on(pos, checked, rulename)
|
||||
end
|
||||
|
||||
function mesecon:rules_link(output, input, dug_outputrules) --output/input are positions (outputrules optional, used if node has been dug), second return value: the name of the affected input rule
|
||||
local outputnode = minetest.env:get_node(output)
|
||||
local inputnode = minetest.env:get_node(input)
|
||||
local outputnode = minetest.get_node(output)
|
||||
local inputnode = minetest.get_node(input)
|
||||
local outputrules = dug_outputrules or mesecon:get_any_outputrules (outputnode)
|
||||
local inputrules = mesecon:get_any_inputrules (inputnode)
|
||||
if not outputrules or not inputrules then
|
||||
@ -556,14 +556,14 @@ function mesecon:rules_link_anydir(pos1, pos2)
|
||||
end
|
||||
|
||||
function mesecon:is_powered(pos, rule)
|
||||
local node = minetest.env:get_node(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
local rules = mesecon:get_any_inputrules(node)
|
||||
if not rules then return false end
|
||||
|
||||
if not rule then
|
||||
for _, rule in ipairs(mesecon:flattenrules(rules)) do
|
||||
local np = mesecon:addPosRule(pos, rule)
|
||||
local nn = minetest.env:get_node(np)
|
||||
local nn = minetest.get_node(np)
|
||||
|
||||
if (mesecon:is_conductor_on (nn.name, mesecon:invertRule(rule)) or mesecon:is_receptor_on (nn.name))
|
||||
and mesecon:rules_link(np, pos) then
|
||||
@ -572,7 +572,7 @@ function mesecon:is_powered(pos, rule)
|
||||
end
|
||||
else
|
||||
local np = mesecon:addPosRule(pos, rule)
|
||||
local nn = minetest.env:get_node(np)
|
||||
local nn = minetest.get_node(np)
|
||||
|
||||
if (mesecon:is_conductor_on (nn.name, mesecon:invertRule(rule)) or mesecon:is_receptor_on (nn.name))
|
||||
and mesecon:rules_link(np, pos) then
|
||||
|
@ -29,7 +29,7 @@ minetest.register_abm({
|
||||
interval = 1.0,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("heat",0)
|
||||
end,
|
||||
})
|
||||
|
@ -1,9 +1,9 @@
|
||||
function mesecon:move_node(pos, newpos)
|
||||
local node = minetest.env:get_node(pos)
|
||||
local meta = minetest.env:get_meta(pos):to_table()
|
||||
minetest.env:remove_node(pos)
|
||||
minetest.env:add_node(newpos, node)
|
||||
minetest.env:get_meta(pos):from_table(meta)
|
||||
local node = minetest.get_node(pos)
|
||||
local meta = minetest.get_meta(pos):to_table()
|
||||
minetest.remove_node(pos)
|
||||
minetest.add_node(newpos, node)
|
||||
minetest.get_meta(pos):from_table(meta)
|
||||
end
|
||||
|
||||
--[[ new functions:
|
||||
|
@ -207,7 +207,7 @@ function mesecon:update_autoconnect(pos, secondcall, replace_old)
|
||||
mesecon:update_autoconnect(zmympos, true)
|
||||
end
|
||||
|
||||
nodename = minetest.env:get_node(pos).name
|
||||
nodename = minetest.get_node(pos).name
|
||||
if string.find(nodename, "mesecons:wire_") == nil and not replace_old then return nil end
|
||||
|
||||
if mesecon:rules_link_anydir(pos, xppos) then xp = 1 else xp = 0 end
|
||||
@ -235,9 +235,9 @@ function mesecon:update_autoconnect(pos, secondcall, replace_old)
|
||||
|
||||
|
||||
if string.find(nodename, "_off") ~= nil then
|
||||
minetest.env:set_node(pos, {name = "mesecons:wire_"..nodeid.."_off"})
|
||||
minetest.set_node(pos, {name = "mesecons:wire_"..nodeid.."_off"})
|
||||
else
|
||||
minetest.env:set_node(pos, {name = "mesecons:wire_"..nodeid.."_on" })
|
||||
minetest.set_node(pos, {name = "mesecons:wire_"..nodeid.."_on" })
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -81,8 +81,8 @@ minetest.register_abm(
|
||||
interval = BLINKY_PLANT_INTERVAL,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
--minetest.env:remove_node(pos)
|
||||
minetest.env:add_node(pos, {name="mesecons_blinkyplant:blinky_plant_on"})
|
||||
--minetest.remove_node(pos)
|
||||
minetest.add_node(pos, {name="mesecons_blinkyplant:blinky_plant_on"})
|
||||
nodeupdate(pos)
|
||||
mesecon:receptor_on(pos)
|
||||
end,
|
||||
@ -93,8 +93,8 @@ minetest.register_abm({
|
||||
interval = BLINKY_PLANT_INTERVAL,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
--minetest.env:remove_node(pos)
|
||||
minetest.env:add_node(pos, {name="mesecons_blinkyplant:blinky_plant_off"})
|
||||
--minetest.remove_node(pos)
|
||||
minetest.add_node(pos, {name="mesecons_blinkyplant:blinky_plant_off"})
|
||||
nodeupdate(pos)
|
||||
mesecon:receptor_off(pos)
|
||||
end,
|
||||
|
@ -3,7 +3,7 @@
|
||||
-- and then turns off again
|
||||
|
||||
mesecon.button_turnoff = function (pos)
|
||||
local node = minetest.env:get_node(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
if node.name=="mesecons_button:button_on" then --has not been dug
|
||||
minetest.swap_node(pos, {name = "mesecons_button:button_off", param2=node.param2})
|
||||
minetest.sound_play("mesecons_button_pop", {pos=pos})
|
||||
|
@ -16,7 +16,7 @@ minetest.register_chatcommand("tell", {
|
||||
minetest.chat_send_player(name, "Invalid usage: " .. param)
|
||||
return
|
||||
end
|
||||
if not minetest.env:get_player_by_name(target) then
|
||||
if not minetest.get_player_by_name(target) then
|
||||
minetest.chat_send_player(name, "Invalid target: " .. target)
|
||||
end
|
||||
minetest.chat_send_player(target, name .. " whispers: " .. message, false)
|
||||
@ -41,7 +41,7 @@ minetest.register_chatcommand("hp", {
|
||||
minetest.chat_send_player(name, "Invalid usage: " .. param)
|
||||
return
|
||||
end
|
||||
local player = minetest.env:get_player_by_name(target)
|
||||
local player = minetest.get_player_by_name(target)
|
||||
if player then
|
||||
player:set_hp(value)
|
||||
else
|
||||
@ -72,7 +72,7 @@ local initialize_data = function(meta, player, command, param)
|
||||
end
|
||||
|
||||
local construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
||||
meta:set_string("player", "@nearest")
|
||||
meta:set_string("command", "time")
|
||||
@ -85,14 +85,14 @@ end
|
||||
|
||||
local after_place = function(pos, placer)
|
||||
if placer then
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("owner", placer:get_player_name())
|
||||
initialize_data(meta, "@nearest", "time", "7000")
|
||||
end
|
||||
end
|
||||
|
||||
local receive_fields = function(pos, formname, fields, sender)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if fields.nearest then
|
||||
initialize_data(meta, "@nearest", fields.command, fields.param)
|
||||
elseif fields.farthest then
|
||||
@ -146,7 +146,7 @@ local commandblock_action_on = function(pos, node)
|
||||
|
||||
minetest.swap_node(pos, {name = "mesecons_commandblock:commandblock_on"})
|
||||
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local command = minetest.chatcommands[meta:get_string("command")]
|
||||
if command == nil then
|
||||
return
|
||||
@ -179,7 +179,7 @@ minetest.register_node("mesecons_commandblock:commandblock_off", {
|
||||
after_place_node = after_place,
|
||||
on_receive_fields = receive_fields,
|
||||
can_dig = function(pos,player)
|
||||
local owner = minetest.env:get_meta(pos):get_string("owner")
|
||||
local owner = minetest.get_meta(pos):get_string("owner")
|
||||
return owner == "" or owner == player:get_player_name()
|
||||
end,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
@ -197,7 +197,7 @@ minetest.register_node("mesecons_commandblock:commandblock_on", {
|
||||
after_place_node = after_place,
|
||||
on_receive_fields = receive_fields,
|
||||
can_dig = function(pos,player)
|
||||
local owner = minetest.env:get_meta(pos):get_string("owner")
|
||||
local owner = minetest.get_meta(pos):get_string("owner")
|
||||
return owner == "" or owner == player:get_player_name()
|
||||
end,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
|
@ -38,27 +38,27 @@ function doors:register_door(name, def)
|
||||
local tb = def.tiles_bottom
|
||||
|
||||
local function after_dig_node(pos, name)
|
||||
if minetest.env:get_node(pos).name == name then
|
||||
minetest.env:remove_node(pos)
|
||||
if minetest.get_node(pos).name == name then
|
||||
minetest.remove_node(pos)
|
||||
end
|
||||
end
|
||||
|
||||
local function on_rightclick(pos, dir, check_name, replace, replace_dir, params)
|
||||
pos.y = pos.y+dir
|
||||
if not minetest.env:get_node(pos).name == check_name then
|
||||
if not minetest.get_node(pos).name == check_name then
|
||||
return
|
||||
end
|
||||
local p2 = minetest.env:get_node(pos).param2
|
||||
local p2 = minetest.get_node(pos).param2
|
||||
p2 = params[p2+1]
|
||||
|
||||
local meta = minetest.env:get_meta(pos):to_table()
|
||||
minetest.env:set_node(pos, {name=replace_dir, param2=p2})
|
||||
minetest.env:get_meta(pos):from_table(meta)
|
||||
local meta = minetest.get_meta(pos):to_table()
|
||||
minetest.set_node(pos, {name=replace_dir, param2=p2})
|
||||
minetest.get_meta(pos):from_table(meta)
|
||||
|
||||
pos.y = pos.y-dir
|
||||
meta = minetest.env:get_meta(pos):to_table()
|
||||
minetest.env:set_node(pos, {name=replace, param2=p2})
|
||||
minetest.env:get_meta(pos):from_table(meta)
|
||||
meta = minetest.get_meta(pos):to_table()
|
||||
minetest.set_node(pos, {name=replace, param2=p2})
|
||||
minetest.get_meta(pos):from_table(meta)
|
||||
end
|
||||
|
||||
local function on_mesecons_signal_open (pos, node)
|
||||
@ -73,7 +73,7 @@ function doors:register_door(name, def)
|
||||
if not def.only_placer_can_open then
|
||||
return true
|
||||
end
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local pn = player:get_player_name()
|
||||
return meta:get_string("doors_owner") == pn
|
||||
end
|
||||
|
@ -3,14 +3,14 @@
|
||||
-- The radius can be specified in mesecons/settings.lua
|
||||
|
||||
local object_detector_make_formspec = function (pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", "size[9,2.5]" ..
|
||||
"field[0.3, 0;9,2;scanname;Name of player to scan for (empty for any):;${scanname}]"..
|
||||
"field[0.3,1.5;4,2;digiline_channel;Digiline Channel (optional):;${digiline_channel}]")
|
||||
end
|
||||
|
||||
local object_detector_on_receive_fields = function (pos, formname, fields)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("scanname", fields.scanname)
|
||||
meta:set_string("digiline_channel", fields.digiline_channel)
|
||||
object_detector_make_formspec(pos)
|
||||
@ -18,10 +18,10 @@ end
|
||||
|
||||
-- returns true if player was found, false if not
|
||||
local object_detector_scan = function (pos)
|
||||
local objs = minetest.env:get_objects_inside_radius(pos, OBJECT_DETECTOR_RADIUS)
|
||||
local objs = minetest.get_objects_inside_radius(pos, OBJECT_DETECTOR_RADIUS)
|
||||
for k, obj in pairs(objs) do
|
||||
local isname = obj:get_player_name() -- "" is returned if it is not a player; "" ~= nil!
|
||||
local scanname = minetest.env:get_meta(pos):get_string("scanname")
|
||||
local scanname = minetest.get_meta(pos):get_string("scanname")
|
||||
if (isname == scanname and isname ~= "") or (isname ~= "" and scanname == "") then -- player with scanname found or not scanname specified
|
||||
return true
|
||||
end
|
||||
@ -33,7 +33,7 @@ end
|
||||
object_detector_digiline = {
|
||||
effector = {
|
||||
action = function (pos, node, channel, msg)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local active_channel = meta:get_string("digiline_channel")
|
||||
if channel == active_channel then
|
||||
meta:set_string("scanname", msg)
|
||||
|
@ -27,7 +27,7 @@ function update_gate(pos)
|
||||
gate = get_gate(pos)
|
||||
L = rotate_ports(
|
||||
yc_get_real_portstates(pos),
|
||||
minetest.env:get_node(pos).param2
|
||||
minetest.get_node(pos).param2
|
||||
)
|
||||
if gate == "diode" then
|
||||
set_gate(pos, L.a)
|
||||
@ -44,7 +44,7 @@ end
|
||||
|
||||
function set_gate(pos, on)
|
||||
gate = get_gate(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if on ~= gate_state(pos) then
|
||||
yc_heat(meta)
|
||||
--minetest.after(0.5, yc_cool, meta)
|
||||
@ -66,19 +66,19 @@ function set_gate(pos, on)
|
||||
end
|
||||
|
||||
function get_gate(pos)
|
||||
return minetest.registered_nodes[minetest.env:get_node(pos).name].mesecons_gate
|
||||
return minetest.registered_nodes[minetest.get_node(pos).name].mesecons_gate
|
||||
end
|
||||
|
||||
function gate_state(pos)
|
||||
name = minetest.env:get_node(pos).name
|
||||
name = minetest.get_node(pos).name
|
||||
return string.find(name, "_on") ~= nil
|
||||
end
|
||||
|
||||
function pop_gate(pos)
|
||||
gate = get_gate(pos)
|
||||
minetest.env:remove_node(pos)
|
||||
minetest.remove_node(pos)
|
||||
minetest.after(0.2, yc_overheat_off, pos)
|
||||
minetest.env:add_item(pos, "mesecons_gates:"..gate.."_off")
|
||||
minetest.add_item(pos, "mesecons_gates:"..gate.."_off")
|
||||
end
|
||||
|
||||
function rotate_ports(L, param2)
|
||||
@ -151,7 +151,7 @@ for _, gate in ipairs(gates) do
|
||||
node_box = node_box,
|
||||
walkable = true,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("heat", 0)
|
||||
update_gate(pos)
|
||||
end,
|
||||
|
@ -63,8 +63,8 @@ nodenames = {"mesecons_hydroturbine:hydro_turbine_off"},
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local waterpos={x=pos.x, y=pos.y+1, z=pos.z}
|
||||
if minetest.env:get_node(waterpos).name=="default:water_flowing" then
|
||||
minetest.env:add_node(pos, {name="mesecons_hydroturbine:hydro_turbine_on"})
|
||||
if minetest.get_node(waterpos).name=="default:water_flowing" then
|
||||
minetest.add_node(pos, {name="mesecons_hydroturbine:hydro_turbine_on"})
|
||||
nodeupdate(pos)
|
||||
mesecon:receptor_on(pos)
|
||||
end
|
||||
@ -77,8 +77,8 @@ nodenames = {"mesecons_hydroturbine:hydro_turbine_on"},
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local waterpos={x=pos.x, y=pos.y+1, z=pos.z}
|
||||
if minetest.env:get_node(waterpos).name~="default:water_flowing" then
|
||||
minetest.env:add_node(pos, {name="mesecons_hydroturbine:hydro_turbine_off"})
|
||||
if minetest.get_node(waterpos).name~="default:water_flowing" then
|
||||
minetest.add_node(pos, {name="mesecons_hydroturbine:hydro_turbine_off"})
|
||||
nodeupdate(pos)
|
||||
mesecon:receptor_off(pos)
|
||||
end
|
||||
|
@ -172,7 +172,7 @@ local getinterrupt = function(pos)
|
||||
local interrupt = function (time, iid) -- iid = interrupt id
|
||||
if type(time) ~= "number" then return end
|
||||
local iid = iid or math.random()
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local interrupts = minetest.deserialize(meta:get_string("lc_interrupts")) or {}
|
||||
local found = false
|
||||
local search = safe_serialize(iid)
|
||||
@ -202,7 +202,7 @@ end
|
||||
|
||||
local create_environment = function(pos, mem, event)
|
||||
-- Gather variables for the environment
|
||||
local vports = minetest.registered_nodes[minetest.env:get_node(pos).name].virtual_portstates
|
||||
local vports = minetest.registered_nodes[minetest.get_node(pos).name].virtual_portstates
|
||||
vports = {a = vports.a, b = vports.b, c = vports.c, d = vports.d}
|
||||
local rports = get_real_portstates(pos)
|
||||
|
||||
@ -288,7 +288,7 @@ local do_overheat = function (pos, meta)
|
||||
if overheat(meta) then
|
||||
local node = minetest.get_node(pos)
|
||||
minetest.swap_node(pos, {name = BASENAME.."_burnt", param2 = node.param2})
|
||||
minetest.env:get_meta(pos):set_string("lc_interrupts", "")
|
||||
minetest.get_meta(pos):set_string("lc_interrupts", "")
|
||||
minetest.after(0.2, overheat_off, pos) -- wait for pending operations
|
||||
return true
|
||||
end
|
||||
@ -328,7 +328,7 @@ end
|
||||
----------------------
|
||||
|
||||
lc_update = function (pos, event)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if not interrupt_allow(meta, event) then return end
|
||||
if do_overheat(pos, meta) then return end
|
||||
|
||||
@ -355,17 +355,10 @@ lc_update = function (pos, event)
|
||||
end
|
||||
|
||||
local reset_meta = function(pos, code, errmsg)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("code", code)
|
||||
if minetest.formspec_escape then
|
||||
code = minetest.formspec_escape(code or "")
|
||||
errmsg = minetest.formspec_escape(errmsg or "")
|
||||
else
|
||||
code = string.gsub(code or "", "%[", "(") -- would otherwise
|
||||
code = string.gsub(code, "%]", ")") -- corrupt formspec
|
||||
errmsg = string.gsub(errmsg or "", "%[", "(") -- would otherwise
|
||||
errmsg = string.gsub(errmsg, "%]", ")") -- corrupt formspec
|
||||
end
|
||||
code = minetest.formspec_escape(code or "")
|
||||
errmsg = minetest.formspec_escape(errmsg or "")
|
||||
meta:set_string("formspec", "size[10,8]"..
|
||||
"background[-0.2,-0.25;10.4,8.75;jeija_luac_background.png]"..
|
||||
"textarea[0.2,0.6;10.2,5;code;;"..code.."]"..
|
||||
@ -376,7 +369,7 @@ local reset_meta = function(pos, code, errmsg)
|
||||
end
|
||||
|
||||
local reset = function (pos)
|
||||
minetest.env:get_meta(pos):set_string("lc_interrupts", "")
|
||||
minetest.get_meta(pos):set_string("lc_interrupts", "")
|
||||
action(pos, {a=false, b=false, c=false, d=false}, true)
|
||||
end
|
||||
|
||||
|
@ -80,7 +80,7 @@ minetest.register_node(nodename, {
|
||||
}
|
||||
},
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("code", "")
|
||||
meta:set_string("formspec", "size[9,2.5]"..
|
||||
"field[0.256,-0.2;9,2;code;Code:;]"..
|
||||
@ -98,7 +98,7 @@ minetest.register_node(nodename, {
|
||||
meta:set_string("eeprom", r)
|
||||
end,
|
||||
on_receive_fields = function(pos, formanme, fields, sender)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if fields.band then
|
||||
fields.code = "sbi(C, A&B) :A and B are inputs, C is output"
|
||||
elseif fields.bxor then
|
||||
@ -151,7 +151,7 @@ minetest.register_craft({
|
||||
|
||||
function yc_reset(pos)
|
||||
yc_action(pos, {a=false, b=false, c=false, d=false})
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("heat", 0)
|
||||
meta:set_int("afterid", 0)
|
||||
local r = ""
|
||||
@ -160,13 +160,13 @@ function yc_reset(pos)
|
||||
end
|
||||
|
||||
function update_yc(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
yc_heat(meta)
|
||||
--minetest.after(0.5, yc_cool, meta)
|
||||
if (yc_overheat(meta)) then
|
||||
minetest.env:remove_node(pos)
|
||||
minetest.remove_node(pos)
|
||||
minetest.after(0.2, yc_overheat_off, pos) --wait for pending parsings
|
||||
minetest.env:add_item(pos, "mesecons_microcontroller:microcontroller0000")
|
||||
minetest.add_item(pos, "mesecons_microcontroller:microcontroller0000")
|
||||
end
|
||||
|
||||
local code = meta:get_string("code")
|
||||
@ -195,7 +195,7 @@ function yc_code_remove_commentary(code)
|
||||
end
|
||||
|
||||
function yc_parsecode(code, pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local endi = 1
|
||||
local Lreal = yc_get_real_portstates(pos)
|
||||
local Lvirtual = yc_get_virtual_portstates(pos)
|
||||
@ -243,7 +243,7 @@ function yc_parsecode(code, pos)
|
||||
end
|
||||
if Lvirtual == nil then return nil end
|
||||
if eeprom == nil then return nil else
|
||||
minetest.env:get_meta(pos):set_string("eeprom", eeprom) end
|
||||
minetest.get_meta(pos):set_string("eeprom", eeprom) end
|
||||
end
|
||||
yc_action(pos, Lvirtual)
|
||||
return true
|
||||
@ -429,14 +429,14 @@ function yc_command_after(params, pos)
|
||||
local code = string.sub(params[2], 2, #params[2] - 1)
|
||||
|
||||
local afterid = math.random(10000)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("afterid", afterid)
|
||||
minetest.after(time, yc_command_after_execute, {pos = pos, code = code, afterid = afterid})
|
||||
return true
|
||||
end
|
||||
|
||||
function yc_command_after_execute(params)
|
||||
local meta = minetest.env:get_meta(params.pos)
|
||||
local meta = minetest.get_meta(params.pos)
|
||||
if meta:get_int("afterid") == params.afterid then --make sure the node has not been changed
|
||||
if yc_parsecode(params.code, params.pos) == nil then
|
||||
meta:set_string("infotext", "Code in after() not valid!")
|
||||
@ -653,7 +653,7 @@ function yc_get_real_portstates(pos) -- port powered or not (by itself or from o
|
||||
end
|
||||
|
||||
function yc_get_virtual_portstates(pos) -- portstates according to the name
|
||||
name = minetest.env:get_node(pos).name
|
||||
name = minetest.get_node(pos).name
|
||||
b, a = string.find(name, ":microcontroller")
|
||||
if a == nil then return nil end
|
||||
a = a + 1
|
||||
|
@ -66,9 +66,9 @@ minetest.register_node("mesecons_movestones:movestone", {
|
||||
action_on = function (pos, node)
|
||||
local direction=mesecon:get_movestone_direction(pos)
|
||||
if not direction then return end
|
||||
minetest.env:remove_node(pos)
|
||||
minetest.remove_node(pos)
|
||||
mesecon:update_autoconnect(pos)
|
||||
minetest.env:add_entity(pos, "mesecons_movestones:movestone_entity")
|
||||
minetest.add_entity(pos, "mesecons_movestones:movestone_entity")
|
||||
end
|
||||
}}
|
||||
})
|
||||
@ -93,13 +93,13 @@ minetest.register_entity("mesecons_movestones:movestone_entity", {
|
||||
|
||||
if not direction then -- no mesecon power
|
||||
--push only solid nodes
|
||||
local name = minetest.env:get_node(pos).name
|
||||
local name = minetest.get_node(pos).name
|
||||
if name ~= "air" and name ~= "ignore"
|
||||
and ((not minetest.registered_nodes[name])
|
||||
or minetest.registered_nodes[name].liquidtype == "none") then
|
||||
mesecon:mvps_push(pos, self.lastdir, MOVESTONE_MAXIMUM_PUSH)
|
||||
end
|
||||
minetest.env:add_node(pos, {name="mesecons_movestones:movestone"})
|
||||
minetest.add_node(pos, {name="mesecons_movestones:movestone"})
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
@ -107,7 +107,7 @@ minetest.register_entity("mesecons_movestones:movestone_entity", {
|
||||
local success, stack, oldstack =
|
||||
mesecon:mvps_push(pos, direction, MOVESTONE_MAXIMUM_PUSH)
|
||||
if not success then -- Too large stack/stopper in the way
|
||||
minetest.env:add_node(pos, {name="mesecons_movestones:movestone"})
|
||||
minetest.add_node(pos, {name="mesecons_movestones:movestone"})
|
||||
self.object:remove()
|
||||
return
|
||||
else
|
||||
@ -145,9 +145,9 @@ minetest.register_node("mesecons_movestones:sticky_movestone", {
|
||||
action_on = function (pos, node)
|
||||
local direction=mesecon:get_movestone_direction(pos)
|
||||
if not direction then return end
|
||||
minetest.env:remove_node(pos)
|
||||
minetest.remove_node(pos)
|
||||
mesecon:update_autoconnect(pos)
|
||||
minetest.env:add_entity(pos, "mesecons_movestones:sticky_movestone_entity")
|
||||
minetest.add_entity(pos, "mesecons_movestones:sticky_movestone_entity")
|
||||
end
|
||||
}}
|
||||
})
|
||||
@ -179,7 +179,7 @@ minetest.register_entity("mesecons_movestones:sticky_movestone_entity", {
|
||||
|
||||
if not direction then -- no mesecon power
|
||||
--push only solid nodes
|
||||
local name = minetest.env:get_node(pos).name
|
||||
local name = minetest.get_node(pos).name
|
||||
if name ~= "air" and name ~= "ignore"
|
||||
and ((not minetest.registered_nodes[name])
|
||||
or minetest.registered_nodes[name].liquidtype == "none") then
|
||||
@ -187,7 +187,7 @@ minetest.register_entity("mesecons_movestones:sticky_movestone_entity", {
|
||||
--STICKY
|
||||
mesecon:mvps_pull_all(pos, self.lastdir)
|
||||
end
|
||||
minetest.env:add_node(pos, {name="mesecons_movestones:sticky_movestone"})
|
||||
minetest.add_node(pos, {name="mesecons_movestones:sticky_movestone"})
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
@ -195,7 +195,7 @@ minetest.register_entity("mesecons_movestones:sticky_movestone_entity", {
|
||||
local success, stack, oldstack =
|
||||
mesecon:mvps_push(pos, direction, MOVESTONE_MAXIMUM_PUSH)
|
||||
if not success then -- Too large stack/stopper in the way
|
||||
minetest.env:add_node(pos, {name="mesecons_movestones:sticky_movestone"})
|
||||
minetest.add_node(pos, {name="mesecons_movestones:sticky_movestone"})
|
||||
self.object:remove()
|
||||
return
|
||||
else
|
||||
|
@ -31,7 +31,7 @@ function mesecon:mvps_process_stack(stack)
|
||||
-- update mesecons for placed nodes ( has to be done after all nodes have been added )
|
||||
for _, n in ipairs(stack) do
|
||||
nodeupdate(n.pos)
|
||||
mesecon.on_placenode(n.pos, minetest.env:get_node(n.pos))
|
||||
mesecon.on_placenode(n.pos, minetest.get_node(n.pos))
|
||||
mesecon:update_autoconnect(n.pos)
|
||||
end
|
||||
end
|
||||
@ -41,7 +41,7 @@ function mesecon:mvps_get_stack(pos, dir, maximum)
|
||||
local np = {x = pos.x, y = pos.y, z = pos.z}
|
||||
local nodes = {}
|
||||
while true do
|
||||
local nn = minetest.env:get_node_or_nil(np)
|
||||
local nn = minetest.get_node_or_nil(np)
|
||||
if not nn or #nodes > maximum then
|
||||
-- don't push at all, something is in the way (unloaded map or too many nodes)
|
||||
return nil
|
||||
@ -73,8 +73,8 @@ function mesecon:mvps_push(pos, dir, maximum) -- pos: pos of mvps; dir: directio
|
||||
|
||||
-- remove all nodes
|
||||
for _, n in ipairs(nodes) do
|
||||
n.meta = minetest.env:get_meta(n.pos):to_table()
|
||||
minetest.env:remove_node(n.pos)
|
||||
n.meta = minetest.get_meta(n.pos):to_table()
|
||||
minetest.remove_node(n.pos)
|
||||
end
|
||||
|
||||
-- update mesecons for removed nodes ( has to be done after all nodes have been removed )
|
||||
@ -86,8 +86,8 @@ function mesecon:mvps_push(pos, dir, maximum) -- pos: pos of mvps; dir: directio
|
||||
-- add nodes
|
||||
for _, n in ipairs(nodes) do
|
||||
np = mesecon:addPosRule(n.pos, dir)
|
||||
minetest.env:add_node(np, n.node)
|
||||
minetest.env:get_meta(np):from_table(n.meta)
|
||||
minetest.add_node(np, n.node)
|
||||
minetest.get_meta(np):from_table(n.meta)
|
||||
end
|
||||
|
||||
local oldstack = mesecon:tablecopy(nodes)
|
||||
@ -105,15 +105,15 @@ end
|
||||
|
||||
function mesecon:mvps_pull_single(pos, dir) -- pos: pos of mvps; direction: direction of pull (matches push direction for sticky pistons)
|
||||
np = mesecon:addPosRule(pos, dir)
|
||||
nn = minetest.env:get_node(np)
|
||||
nn = minetest.get_node(np)
|
||||
|
||||
if ((not minetest.registered_nodes[nn.name]) --unregistered node
|
||||
or minetest.registered_nodes[nn.name].liquidtype == "none") --non-liquid node
|
||||
and not mesecon:is_mvps_stopper(nn, {x = -dir.x, y = -dir.y, z = -dir.z}, {{pos = np, node = nn}}, 1) then --non-stopper node
|
||||
local meta = minetest.env:get_meta(np):to_table()
|
||||
minetest.env:remove_node(np)
|
||||
minetest.env:add_node(pos, nn)
|
||||
minetest.env:get_meta(pos):from_table(meta)
|
||||
local meta = minetest.get_meta(np):to_table()
|
||||
minetest.remove_node(np)
|
||||
minetest.add_node(pos, nn)
|
||||
minetest.get_meta(pos):from_table(meta)
|
||||
|
||||
nodeupdate(np)
|
||||
nodeupdate(pos)
|
||||
@ -127,9 +127,9 @@ end
|
||||
|
||||
function mesecon:mvps_pull_all(pos, direction) -- pos: pos of mvps; direction: direction of pull
|
||||
local lpos = {x=pos.x-direction.x, y=pos.y-direction.y, z=pos.z-direction.z} -- 1 away
|
||||
local lnode = minetest.env:get_node(lpos)
|
||||
local lnode = minetest.get_node(lpos)
|
||||
local lpos2 = {x=pos.x-direction.x*2, y=pos.y-direction.y*2, z=pos.z-direction.z*2} -- 2 away
|
||||
local lnode2 = minetest.env:get_node(lpos2)
|
||||
local lnode2 = minetest.get_node(lpos2)
|
||||
|
||||
--avoid pulling solid nodes
|
||||
if lnode.name ~= "ignore"
|
||||
@ -149,19 +149,19 @@ function mesecon:mvps_pull_all(pos, direction) -- pos: pos of mvps; direction: d
|
||||
|
||||
local oldpos = {x=lpos2.x + direction.x, y=lpos2.y + direction.y, z=lpos2.z + direction.z}
|
||||
repeat
|
||||
lnode2 = minetest.env:get_node(lpos2)
|
||||
minetest.env:add_node(oldpos, {name=lnode2.name})
|
||||
lnode2 = minetest.get_node(lpos2)
|
||||
minetest.add_node(oldpos, {name=lnode2.name})
|
||||
nodeupdate(oldpos)
|
||||
oldpos = {x=lpos2.x, y=lpos2.y, z=lpos2.z}
|
||||
lpos2.x = lpos2.x-direction.x
|
||||
lpos2.y = lpos2.y-direction.y
|
||||
lpos2.z = lpos2.z-direction.z
|
||||
lnode = minetest.env:get_node(lpos2)
|
||||
lnode = minetest.get_node(lpos2)
|
||||
until lnode.name == "air"
|
||||
or lnode.name == "ignore"
|
||||
or (minetest.registered_nodes[lnode2.name]
|
||||
and minetest.registered_nodes[lnode2.name].liquidtype ~= "none")
|
||||
minetest.env:remove_node(oldpos)
|
||||
minetest.remove_node(oldpos)
|
||||
end
|
||||
|
||||
function mesecon:mvps_move_objects(pos, dir, nodestack)
|
||||
@ -174,7 +174,7 @@ function mesecon:mvps_move_objects(pos, dir, nodestack)
|
||||
z = dir.z * #nodestack})
|
||||
|
||||
|
||||
local objects = minetest.env:get_objects_inside_radius(pushpos, 1)
|
||||
local objects = minetest.get_objects_inside_radius(pushpos, 1)
|
||||
for _, obj in ipairs(objects) do
|
||||
table.insert(objects_to_move, obj)
|
||||
end
|
||||
@ -184,7 +184,7 @@ function mesecon:mvps_move_objects(pos, dir, nodestack)
|
||||
-- If gravity positive and dir horizontal, push players standing on the stack
|
||||
for _, n in ipairs(nodestack) do
|
||||
local p_above = mesecon:addPosRule(n.pos, {x=0, y=1, z=0})
|
||||
local objects = minetest.env:get_objects_inside_radius(p_above, 1)
|
||||
local objects = minetest.get_objects_inside_radius(p_above, 1)
|
||||
for _, obj in ipairs(objects) do
|
||||
table.insert(objects_to_move, obj)
|
||||
end
|
||||
@ -197,7 +197,7 @@ function mesecon:mvps_move_objects(pos, dir, nodestack)
|
||||
local np = mesecon:addPosRule(obj:getpos(), dir)
|
||||
|
||||
--move only if destination is not solid
|
||||
local nn = minetest.env:get_node(np)
|
||||
local nn = minetest.get_node(np)
|
||||
if not ((not minetest.registered_nodes[nn.name])
|
||||
or minetest.registered_nodes[nn.name].walkable) then
|
||||
obj:setpos(np)
|
||||
|
@ -6,12 +6,12 @@ minetest.register_node("mesecons_noteblock:noteblock", {
|
||||
visual_scale = 1.3,
|
||||
paramtype="light",
|
||||
after_place_node = function(pos)
|
||||
minetest.env:add_node(pos, {name="mesecons_noteblock:noteblock", param2=0})
|
||||
minetest.add_node(pos, {name="mesecons_noteblock:noteblock", param2=0})
|
||||
end,
|
||||
on_punch = function (pos, node) -- change sound when punched
|
||||
local param2 = node.param2+1
|
||||
if param2==12 then param2=0 end
|
||||
minetest.env:add_node(pos, {name = node.name, param2 = param2})
|
||||
minetest.add_node(pos, {name = node.name, param2 = param2})
|
||||
mesecon.noteblock_play(pos, param2)
|
||||
end,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
@ -58,7 +58,7 @@ mesecon.noteblock_play = function (pos, param2)
|
||||
elseif param2==7 then
|
||||
soundname="mesecons_noteblock_gsharp"
|
||||
end
|
||||
local block_below_name = minetest.env:get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
|
||||
local block_below_name = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
|
||||
if block_below_name == "default:glass" then
|
||||
soundname="mesecons_noteblock_hihat"
|
||||
end
|
||||
|
@ -62,9 +62,9 @@ local piston_remove_pusher = function(pos, node)
|
||||
|
||||
dir = piston_get_direction(pistonspec.dir, node)
|
||||
local pusherpos = mesecon:addPosRule(pos, dir)
|
||||
local pushername = minetest.env:get_node(pusherpos).name
|
||||
local pushername = minetest.get_node(pusherpos).name
|
||||
|
||||
minetest.env:remove_node(pusherpos)
|
||||
minetest.remove_node(pusherpos)
|
||||
minetest.sound_play("piston_retract", {
|
||||
pos = pos,
|
||||
max_hear_distance = 20,
|
||||
@ -80,8 +80,8 @@ local piston_on = function(pos, node)
|
||||
local np = mesecon:addPosRule(pos, dir)
|
||||
local success, stack, oldstack = mesecon:mvps_push(np, dir, PISTON_MAXIMUM_PUSH)
|
||||
if success then
|
||||
minetest.env:add_node(pos, {param2 = node.param2, name = pistonspec.onname})
|
||||
minetest.env:add_node(np, {param2 = node.param2, name = pistonspec.pusher})
|
||||
minetest.add_node(pos, {param2 = node.param2, name = pistonspec.onname})
|
||||
minetest.add_node(np, {param2 = node.param2, name = pistonspec.pusher})
|
||||
minetest.sound_play("piston_extend", {
|
||||
pos = pos,
|
||||
max_hear_distance = 20,
|
||||
@ -94,7 +94,7 @@ end
|
||||
|
||||
local piston_off = function(pos, node)
|
||||
local pistonspec = minetest.registered_nodes[node.name].mesecons_piston
|
||||
minetest.env:add_node(pos, {param2 = node.param2, name = pistonspec.offname})
|
||||
minetest.add_node(pos, {param2 = node.param2, name = pistonspec.offname})
|
||||
piston_remove_pusher(pos, node)
|
||||
|
||||
if pistonspec.sticky then
|
||||
@ -112,12 +112,12 @@ local piston_orientate = function(pos, placer)
|
||||
-- placer pitch in degrees
|
||||
local pitch = placer:get_look_pitch() * (180 / math.pi)
|
||||
|
||||
local node = minetest.env:get_node(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
local pistonspec = minetest.registered_nodes[node.name].mesecons_piston
|
||||
if pitch > 55 then --looking upwards
|
||||
minetest.env:add_node(pos, {name=pistonspec.piston_down})
|
||||
minetest.add_node(pos, {name=pistonspec.piston_down})
|
||||
elseif pitch < -55 then --looking downwards
|
||||
minetest.env:add_node(pos, {name=pistonspec.piston_up})
|
||||
minetest.add_node(pos, {name=pistonspec.piston_up})
|
||||
end
|
||||
end
|
||||
|
||||
@ -717,7 +717,7 @@ local piston_get_stopper = function (node, dir, stack, stackid)
|
||||
pistonspec = minetest.registered_nodes[node.name].mesecons_piston
|
||||
dir = piston_get_direction(pistonspec.dir, node)
|
||||
local pusherpos = mesecon:addPosRule(stack[stackid].pos, dir)
|
||||
local pushernode = minetest.env:get_node(pusherpos)
|
||||
local pushernode = minetest.get_node(pusherpos)
|
||||
|
||||
if minetest.registered_nodes[node.name].mesecons_piston.pusher == pushernode.name then
|
||||
for _, s in ipairs(stack) do
|
||||
|
@ -9,18 +9,18 @@ local pp_box_on = {
|
||||
}
|
||||
|
||||
pp_on_timer = function (pos, elapsed)
|
||||
local node = minetest.env:get_node(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
local ppspec = minetest.registered_nodes[node.name].pressureplate
|
||||
|
||||
-- This is a workaround for a strange bug that occurs when the server is started
|
||||
-- For some reason the first time on_timer is called, the pos is wrong
|
||||
if not ppspec then return end
|
||||
|
||||
local objs = minetest.env:get_objects_inside_radius(pos, 1)
|
||||
local objs = minetest.get_objects_inside_radius(pos, 1)
|
||||
local two_below = mesecon:addPosRule(pos, {x = 0, y = -2, z = 0})
|
||||
|
||||
if objs[1] == nil and node.name == ppspec.onstate then
|
||||
minetest.env:add_node(pos, {name = ppspec.offstate})
|
||||
minetest.add_node(pos, {name = ppspec.offstate})
|
||||
mesecon:receptor_off(pos)
|
||||
-- force deactivation of mesecon two blocks below (hacky)
|
||||
if not mesecon:connected_to_receptor(two_below) then
|
||||
@ -30,7 +30,7 @@ pp_on_timer = function (pos, elapsed)
|
||||
for k, obj in pairs(objs) do
|
||||
local objpos = obj:getpos()
|
||||
if objpos.y > pos.y-1 and objpos.y < pos.y then
|
||||
minetest.env:add_node(pos, {name=ppspec.onstate})
|
||||
minetest.add_node(pos, {name=ppspec.onstate})
|
||||
mesecon:receptor_on(pos)
|
||||
-- force activation of mesecon two blocks below (hacky)
|
||||
mesecon:turnon(two_below)
|
||||
@ -71,7 +71,7 @@ function mesecon:register_pressure_plate(offstate, onstate, description, texture
|
||||
state = mesecon.state.off
|
||||
}},
|
||||
on_construct = function(pos)
|
||||
minetest.env:get_node_timer(pos):start(PRESSURE_PLATE_INTERVAL)
|
||||
minetest.get_node_timer(pos):start(PRESSURE_PLATE_INTERVAL)
|
||||
end,
|
||||
})
|
||||
|
||||
@ -90,7 +90,7 @@ function mesecon:register_pressure_plate(offstate, onstate, description, texture
|
||||
state = mesecon.state.on
|
||||
}},
|
||||
on_construct = function(pos)
|
||||
minetest.env:get_node_timer(pos):start(PRESSURE_PLATE_INTERVAL)
|
||||
minetest.get_node_timer(pos):start(PRESSURE_PLATE_INTERVAL)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
local two_below = mesecon:addPosRule(pos, {x = 0, y = -2, z = 0})
|
||||
|
@ -8,7 +8,7 @@ minetest.register_node("mesecons_random:removestone", {
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
minetest.env:remove_node(pos)
|
||||
minetest.remove_node(pos)
|
||||
mesecon:update_autoconnect(pos)
|
||||
end
|
||||
}}
|
||||
@ -68,8 +68,8 @@ minetest.register_node("mesecons_random:ghoststone_active", {
|
||||
on_construct = function(pos)
|
||||
--remove shadow
|
||||
pos2 = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if ( minetest.env:get_node(pos2).name == "air" ) then
|
||||
minetest.env:dig_node(pos2)
|
||||
if ( minetest.get_node(pos2).name == "air" ) then
|
||||
minetest.dig_node(pos2)
|
||||
end
|
||||
end
|
||||
})
|
||||
|
@ -91,7 +91,7 @@ mesecon:add_rules("receiver_pos_all", {
|
||||
|
||||
function mesecon:receiver_get_pos_from_rcpt(pos, param2)
|
||||
local rules = mesecon:get_rules("receiver_pos")
|
||||
if param2 == nil then param2 = minetest.env:get_node(pos).param2 end
|
||||
if param2 == nil then param2 = minetest.get_node(pos).param2 end
|
||||
if param2 == 2 then
|
||||
rules = mesecon:rotate_rules_left(rules)
|
||||
elseif param2 == 3 then
|
||||
@ -107,17 +107,17 @@ function mesecon:receiver_get_pos_from_rcpt(pos, param2)
|
||||
end
|
||||
|
||||
function mesecon:receiver_place(rcpt_pos)
|
||||
local node = minetest.env:get_node(rcpt_pos)
|
||||
local node = minetest.get_node(rcpt_pos)
|
||||
local pos = mesecon:receiver_get_pos_from_rcpt(rcpt_pos, node.param2)
|
||||
local nn = minetest.env:get_node(pos)
|
||||
local nn = minetest.get_node(pos)
|
||||
|
||||
if string.find(nn.name, "mesecons:wire_") ~= nil then
|
||||
minetest.env:dig_node(pos)
|
||||
minetest.dig_node(pos)
|
||||
if mesecon:is_power_on(rcpt_pos) then
|
||||
minetest.env:add_node(pos, {name = "mesecons_receiver:receiver_on", param2 = node.param2})
|
||||
minetest.add_node(pos, {name = "mesecons_receiver:receiver_on", param2 = node.param2})
|
||||
mesecon:receptor_on(pos, receiver_get_rules(node))
|
||||
else
|
||||
minetest.env:add_node(pos, {name = "mesecons_receiver:receiver_off", param2 = node.param2})
|
||||
minetest.add_node(pos, {name = "mesecons_receiver:receiver_off", param2 = node.param2})
|
||||
end
|
||||
mesecon:update_autoconnect(pos)
|
||||
end
|
||||
@ -125,11 +125,11 @@ end
|
||||
|
||||
function mesecon:receiver_remove(rcpt_pos, dugnode)
|
||||
local pos = mesecon:receiver_get_pos_from_rcpt(rcpt_pos, dugnode.param2)
|
||||
local nn = minetest.env:get_node(pos)
|
||||
local nn = minetest.get_node(pos)
|
||||
if string.find(nn.name, "mesecons_receiver:receiver_") ~=nil then
|
||||
minetest.env:dig_node(pos)
|
||||
minetest.dig_node(pos)
|
||||
local node = {name = "mesecons:wire_00000000_off"}
|
||||
minetest.env:add_node(pos, node)
|
||||
minetest.add_node(pos, node)
|
||||
mesecon:update_autoconnect(pos)
|
||||
mesecon.on_placenode(pos, node)
|
||||
end
|
||||
@ -156,7 +156,7 @@ minetest.register_on_placenode(function (pos, node)
|
||||
x = pos.x + rules[i].x,
|
||||
y = pos.y + rules[i].y,
|
||||
z = pos.z + rules[i].z}
|
||||
if minetest.get_item_group(minetest.env:get_node(np).name, "mesecon_needs_receiver") == 1 then
|
||||
if minetest.get_item_group(minetest.get_node(np).name, "mesecon_needs_receiver") == 1 then
|
||||
mesecon:receiver_place(np)
|
||||
end
|
||||
i = i + 1
|
||||
|
@ -71,10 +71,10 @@ minetest.register_abm(
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local light = minetest.env:get_node_light(pos, nil)
|
||||
local light = minetest.get_node_light(pos, nil)
|
||||
|
||||
if light >= 12 then
|
||||
minetest.env:set_node(pos, {name="mesecons_solarpanel:solar_panel_on", param2=node.param2})
|
||||
minetest.set_node(pos, {name="mesecons_solarpanel:solar_panel_on", param2=node.param2})
|
||||
mesecon:receptor_on(pos)
|
||||
end
|
||||
end,
|
||||
@ -85,10 +85,10 @@ minetest.register_abm(
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local light = minetest.env:get_node_light(pos, nil)
|
||||
local light = minetest.get_node_light(pos, nil)
|
||||
|
||||
if light < 12 then
|
||||
minetest.env:set_node(pos, {name="mesecons_solarpanel:solar_panel_off", param2=node.param2})
|
||||
minetest.set_node(pos, {name="mesecons_solarpanel:solar_panel_off", param2=node.param2})
|
||||
mesecon:receptor_off(pos)
|
||||
end
|
||||
end,
|
||||
|
Loading…
Reference in New Issue
Block a user