121 lines
4.6 KiB
Lua
121 lines
4.6 KiB
Lua
local BioInd = require('common')('Bio_Industries')
|
|
------------------------------------------------------------------------------------
|
|
-- Restore hidden power poles and hidden lamps accidentally removed in the
|
|
-- previous version.
|
|
------------------------------------------------------------------------------------
|
|
|
|
local pole_name = "bi-hidden-power-pole"
|
|
local lamp_name = "bi-bio-farm-light"
|
|
|
|
local pole_count = 0
|
|
local lamp_count = 0
|
|
|
|
-- Restoring hidden power pole for solar boilers
|
|
for index, solar_boiler in pairs(global.bi_solar_boiler_table) do
|
|
-- Remove invalid solar boilers from list
|
|
if not solar_boiler.base.valid then
|
|
BioInd.writeDebug("Removing invalid solar boiler " .. tostring(index) .. " from global list.")
|
|
if solar_boiler.boiler.valid then
|
|
solar_boiler.boiler.destroy()
|
|
end
|
|
if solar_boiler.pole.valid then
|
|
solar_boiler.pole.destroy()
|
|
end
|
|
global.bi_solar_boiler_table = nil
|
|
|
|
-- Restore hidden power pole if necessary
|
|
elseif not solar_boiler.pole.valid then
|
|
BioInd.writeDebug("Creating new hidden power pole for solar boiler " .. tostring(index) .. ".")
|
|
local new_pole = solar_boiler.base.surface.create_entity({
|
|
name = pole_name,
|
|
position = solar_boiler.base.position,
|
|
direction = solar_boiler.base.direction,
|
|
force = solar_boiler.base.force
|
|
})
|
|
global.bi_solar_boiler_table[index].pole = new_pole
|
|
pole_count = pole_count + 1
|
|
end
|
|
end
|
|
log("Restored " .. tostring(pole_count) .. " hidden power poles for solar boilers.")
|
|
game.print("[Bio Industries] Restored " .. tostring(pole_count) .. " hidden power poles for solar boilers.")
|
|
|
|
|
|
-- Restoring hidden power pole for solar farms
|
|
pole_count = 0
|
|
|
|
for index, solar_farm in pairs(global.bi_solar_farm_table) do
|
|
-- Remove invalid solar boilers from list
|
|
if not solar_farm.base.valid then
|
|
BioInd.writeDebug("Removing invalid solar farm " .. tostring(index) .. " from global list.")
|
|
if solar_farm.pole.valid then
|
|
solar_farm.pole.destroy()
|
|
end
|
|
global.bi_solar_farm_table = nil
|
|
|
|
-- Restore hidden power pole if necessary
|
|
elseif not solar_farm.pole.valid then
|
|
BioInd.writeDebug("Creating new hidden power pole for solar farm " .. tostring(index) .. ".")
|
|
local new_pole = solar_farm.base.surface.create_entity({
|
|
name = pole_name,
|
|
position = solar_farm.base.position,
|
|
direction = solar_farm.base.direction,
|
|
force = solar_farm.base.force
|
|
})
|
|
global.bi_solar_farm_table[index].pole = new_pole
|
|
pole_count = pole_count + 1
|
|
end
|
|
end
|
|
log("Restored " .. tostring(pole_count) .. " hidden power poles for solar farms.")
|
|
game.print("[Bio Industries] Restored " .. tostring(pole_count) .. " hidden power poles for solar farms.")
|
|
|
|
|
|
-- Restoring hidden power pole and hidden lamps for bio farms
|
|
pole_count = 0
|
|
|
|
for index, bio_farm in pairs(global.bi_bio_farm_table) do
|
|
-- Remove invalid solar boilers from list
|
|
if not bio_farm.base.valid then
|
|
BioInd.writeDebug("Removing invalid solar farm " .. tostring(index) .. " from global list.")
|
|
if bio_farm.pole.valid then
|
|
bio_farm.pole.destroy()
|
|
end
|
|
if bio_farm.panel.valid then
|
|
bio_farm.panel.destroy()
|
|
end
|
|
if bio_farm.lamp.valid then
|
|
bio_farm.lamp.destroy()
|
|
end
|
|
global.bi_bio_farm_table = nil
|
|
|
|
-- Restore hidden entities if necessary
|
|
else
|
|
-- Restore hidden power pole
|
|
if not bio_farm.pole.valid then
|
|
BioInd.writeDebug("Creating new hidden power pole for solar farm " .. tostring(index) .. ".")
|
|
local new_pole = bio_farm.base.surface.create_entity({
|
|
name = pole_name,
|
|
position = bio_farm.base.position,
|
|
direction = bio_farm.base.direction,
|
|
force = bio_farm.base.force
|
|
})
|
|
global.bi_bio_farm_table[index].pole = new_pole
|
|
pole_count = pole_count + 1
|
|
end
|
|
-- Restore hidden lamp
|
|
if not bio_farm.lamp.valid then
|
|
BioInd.writeDebug("Creating new hidden lamp for solar farm " .. tostring(index) .. ".")
|
|
local new_lamp = bio_farm.base.surface.create_entity({
|
|
name = lamp_name,
|
|
position = bio_farm.base.position,
|
|
force = bio_farm.base.force
|
|
})
|
|
|
|
global.bi_bio_farm_table[index].lamp = new_lamp
|
|
lamp_count = lamp_count + 1
|
|
end
|
|
end
|
|
end
|
|
log("Restored " .. tostring(pole_count) .. " hidden power poles and " .. tostring(lamp_count) ..
|
|
" hidden lamps for bio farms.")
|
|
game.print("[Bio Industries] Restored " .. tostring(pole_count) .. " hidden power poles and " .. tostring(lamp_count) ..
|
|
" hidden lamps for bio farms.")
|