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)
|
local connectionMeta=minetest.get_meta(conn)
|
||||||
if industrialtest.api.isNetworkMaster(connectionMeta) then
|
if industrialtest.api.isNetworkMaster(connectionMeta) then
|
||||||
industrialtest.api.createNetworkMapForNode(conn)
|
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
|
else
|
||||||
local def=minetest.registered_nodes[minetest.get_node(conn).name]
|
local def=minetest.registered_nodes[minetest.get_node(conn).name]
|
||||||
if def.groups._industrialtest_cable then
|
if def.groups._industrialtest_cable then
|
||||||
@ -35,7 +41,13 @@ function industrialtest.ElectricMachine.onConstruct(self,pos)
|
|||||||
if networks then
|
if networks then
|
||||||
for _,network in ipairs(networks) do
|
for _,network in ipairs(networks) do
|
||||||
industrialtest.api.createNetworkMapForNode(network)
|
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
|
end
|
||||||
end
|
end
|
||||||
@ -124,10 +136,11 @@ function industrialtest.ElectricMachine.requestPower(self,pos)
|
|||||||
if meta:get_int("industrialtest.powerAmount")<=0 then
|
if meta:get_int("industrialtest.powerAmount")<=0 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local spaceAvailable,flowTransferred=industrialtest.api.powerFlow(pos)
|
local _,flowTransferred=industrialtest.api.powerFlow(pos)
|
||||||
if (spaceAvailable and meta:get_int("industrialtest.powerAmount")>0) or self:canUpdate(pos) then
|
if flowTransferred then
|
||||||
minetest.get_node_timer(pos):start(industrialtest.updateDelay)
|
self:updateFormspec(pos)
|
||||||
end
|
end
|
||||||
|
self:triggerIfNeeded(pos)
|
||||||
end
|
end
|
||||||
|
|
||||||
function industrialtest.ElectricMachine.powerExchange(self,pos)
|
function industrialtest.ElectricMachine.powerExchange(self,pos)
|
||||||
|
@ -64,14 +64,20 @@ function industrialtest.Machine.canUpdate(self,pos)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
function industrialtest.Machine.triggerIfNeeded(self,pos)
|
function industrialtest.Machine.trigger(self,pos)
|
||||||
local timer=minetest.get_node_timer(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))
|
minetest.debug("updating "..minetest.serialize(pos))
|
||||||
timer:start(industrialtest.updateDelay)
|
timer:start(industrialtest.updateDelay)
|
||||||
end
|
end
|
||||||
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)
|
function industrialtest.Machine.onTimer(self,pos,elapsed)
|
||||||
local meta=minetest.get_meta(pos)
|
local meta=minetest.get_meta(pos)
|
||||||
local inv=meta:get_inventory()
|
local inv=meta:get_inventory()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user