Use Machine.triggerIfNeeded
to request power
This commit is contained in:
parent
8e30412515
commit
abfb829cea
@ -27,7 +27,13 @@ function industrialtest.ElectricMachine.onConstruct(self,pos)
|
||||
local connectionMeta=minetest.get_meta(conn)
|
||||
if industrialtest.api.isNetworkMaster(connectionMeta) then
|
||||
industrialtest.api.createNetworkMapForNode(conn)
|
||||
minetest.get_node_timer(conn):start(industrialtest.updateDelay)
|
||||
local def=minetest.get_node(conn)
|
||||
if def and def._industrialtest_self then
|
||||
def._industrialtest_self:requestPower(conn)
|
||||
else
|
||||
-- Support for bare definitions that don't use industrialtest pseudo-OOP
|
||||
minetest.get_node_timer(conn):start(industrialtest.updateDelay)
|
||||
end
|
||||
else
|
||||
local def=minetest.registered_nodes[minetest.get_node(conn).name]
|
||||
if def.groups._industrialtest_cable then
|
||||
@ -35,7 +41,13 @@ function industrialtest.ElectricMachine.onConstruct(self,pos)
|
||||
if networks then
|
||||
for _,network in ipairs(networks) do
|
||||
industrialtest.api.createNetworkMapForNode(network)
|
||||
minetest.get_node_timer(network):start(industrialtest.updateDelay)
|
||||
local def=minetest.get_node(network)
|
||||
if def and def._industrialtest_self then
|
||||
def._industrialtest_self:requestPower(network)
|
||||
else
|
||||
-- Support for bare definitions that don't use industrialtest pseudo-OOP
|
||||
minetest.get_node_timer(conn):start(industrialtest.updateDelay)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -124,10 +136,11 @@ function industrialtest.ElectricMachine.requestPower(self,pos)
|
||||
if meta:get_int("industrialtest.powerAmount")<=0 then
|
||||
return
|
||||
end
|
||||
local spaceAvailable,flowTransferred=industrialtest.api.powerFlow(pos)
|
||||
if (spaceAvailable and meta:get_int("industrialtest.powerAmount")>0) or self:canUpdate(pos) then
|
||||
minetest.get_node_timer(pos):start(industrialtest.updateDelay)
|
||||
local _,flowTransferred=industrialtest.api.powerFlow(pos)
|
||||
if flowTransferred then
|
||||
self:updateFormspec(pos)
|
||||
end
|
||||
self:triggerIfNeeded(pos)
|
||||
end
|
||||
|
||||
function industrialtest.ElectricMachine.powerExchange(self,pos)
|
||||
|
@ -64,14 +64,20 @@ function industrialtest.Machine.canUpdate(self,pos)
|
||||
return false
|
||||
end
|
||||
|
||||
function industrialtest.Machine.triggerIfNeeded(self,pos)
|
||||
function industrialtest.Machine.trigger(self,pos)
|
||||
local timer=minetest.get_node_timer(pos)
|
||||
if not timer:is_started() and self:canUpdate(pos) then
|
||||
if not timer:is_started() then
|
||||
minetest.debug("updating "..minetest.serialize(pos))
|
||||
timer:start(industrialtest.updateDelay)
|
||||
end
|
||||
end
|
||||
|
||||
function industrialtest.Machine.triggerIfNeeded(self,pos)
|
||||
if self:canUpdate(pos) then
|
||||
self:trigger(pos)
|
||||
end
|
||||
end
|
||||
|
||||
function industrialtest.Machine.onTimer(self,pos,elapsed)
|
||||
local meta=minetest.get_meta(pos)
|
||||
local inv=meta:get_inventory()
|
||||
|
Loading…
x
Reference in New Issue
Block a user