mirror of
https://github.com/minetest-mods/technic.git
synced 2024-12-28 08:27:34 +01:00
Fix power monitor instability (#654)
This fixes the power monitor instability where it was switching between having and not having network infotext. The cause was that the power monitor is LV MV and HV machine at the same time, and each tier has a countdown. If any of these countdowns were 0 it treated the machine as having no network. This was changed so that it only treats a machine as having no network if it is timed out in all tiers that it is a part of.
This commit is contained in:
parent
18df2813a0
commit
87e512ff24
@ -468,22 +468,29 @@ minetest.register_abm({
|
|||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
local has_network = false
|
||||||
|
local technic_machine = false
|
||||||
for tier, machines in pairs(technic.machines) do
|
for tier, machines in pairs(technic.machines) do
|
||||||
if machines[node.name] and switching_station_timeout_count(pos, tier) then
|
if machines[node.name] then
|
||||||
|
technic_machine = true
|
||||||
|
if not switching_station_timeout_count(pos, tier) then
|
||||||
|
has_network = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if technic_machine and not has_network then
|
||||||
local nodedef = minetest.registered_nodes[node.name]
|
local nodedef = minetest.registered_nodes[node.name]
|
||||||
if nodedef then
|
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("infotext", S("%s Has No Network"):format(nodedef.description))
|
meta:set_string("infotext", S("%s Has No Network"):format(nodedef.description))
|
||||||
end
|
if nodedef.technic_disabled_machine_name then
|
||||||
if nodedef and nodedef.technic_disabled_machine_name then
|
|
||||||
node.name = nodedef.technic_disabled_machine_name
|
node.name = nodedef.technic_disabled_machine_name
|
||||||
minetest.swap_node(pos, node)
|
minetest.swap_node(pos, node)
|
||||||
end
|
end
|
||||||
if nodedef and nodedef.technic_on_disable then
|
if nodedef.technic_on_disable then
|
||||||
nodedef.technic_on_disable(pos, node)
|
nodedef.technic_on_disable(pos, node)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user