1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-08 00:39:30 +02:00
ComfyFactorio/maps/chronosphere/table.lua

177 lines
4.7 KiB
Lua

-- one table to rule them all!
local Global = require 'utils.global'
local Event = require 'utils.event'
local chronosphere = {}
local bitersphere = {}
local schedulesphere = {}
local playersphere = {}
local productionsphere = {}
local Public = {}
Public.events = {
comfylatron_damaged = Event.generate_event_name('comfylatron_damaged'),
update_gui = Event.generate_event_name('update_gui'),
update_upgrades_gui = Event.generate_event_name('update_upgrades_gui'),
update_world_gui = Event.generate_event_name('update_world_gui'),
reset_map = Event.generate_event_name('reset_map'),
chronojump = Event.generate_event_name('chronojump'),
}
Global.register(
chronosphere,
function(tbl)
chronosphere = tbl
end
)
Global.register(
bitersphere,
function(tbl)
bitersphere = tbl
end
)
Global.register(
schedulesphere,
function(tbl)
schedulesphere = tbl
end
)
Global.register(
playersphere,
function(tbl)
playersphere = tbl
end
)
Global.register(
productionsphere,
function(tbl)
productionsphere = tbl
end
)
function Public.reset_production_table()
for k, _ in pairs(productionsphere) do
productionsphere[k] = nil
end
productionsphere.experience = {}
productionsphere.assemblers = {}
productionsphere.train_assemblers = {}
end
function Public.reset_player_table()
for k, _ in pairs(playersphere) do
playersphere[k] = nil
end
playersphere.icw = {}
playersphere.icw.players = {}
playersphere.flame_boots = {}
playersphere.offline_players = {}
playersphere.active_upgrades_gui = {}
playersphere.guimode = {}
end
function Public.reset_schedule_table()
for k, _ in pairs(schedulesphere) do
schedulesphere[k] = nil
end
schedulesphere.lab_cells = {}
schedulesphere.chunks_to_generate = {}
end
function Public.reset_biter_table()
for k, _ in pairs(bitersphere) do
bitersphere[k] = nil
end
bitersphere.active_biters = {}
bitersphere.unit_groups = {}
bitersphere.biter_raffle = {}
bitersphere.free_biters = 0
end
function Public.reset_table()
for k, _ in pairs(chronosphere) do
chronosphere[k] = nil
end
chronosphere.computermessage = 0
chronosphere.config = {}
chronosphere.chronojumps = 0
chronosphere.game_lost = true
chronosphere.game_won = false
chronosphere.warmup = true
chronosphere.max_health = 0
chronosphere.health = 0
chronosphere.poisontimeout = 0
chronosphere.chronocharges = 0
chronosphere.passive_chronocharge_rate = 0
chronosphere.passivetimer = 0
chronosphere.overstaycount = 0
chronosphere.chronochargesneeded = 0
chronosphere.jump_countdown_start_time = 0
chronosphere.jump_countdown_length = 0
chronosphere.mainscore = 0
chronosphere.dangertimer = 0
chronosphere.dangers = {}
chronosphere.looted_nukes = 0
chronosphere.nextsurface = nil
chronosphere.upgrades = {}
chronosphere.outchests = {}
chronosphere.outcombinators = {}
chronosphere.upgradechest = {}
chronosphere.fishchest = {}
chronosphere.comfylatron = {}
chronosphere.accumulators = {}
chronosphere.comfychests = {}
chronosphere.comfychests2 = {}
chronosphere.comfychest_invs = {}
chronosphere.comfychest_invs2 = {}
chronosphere.locomotive_cargo = {}
chronosphere.world = {}
chronosphere.research_tokens = {}
chronosphere.research_tokens.biters = 0
chronosphere.research_tokens.ammo = 0
chronosphere.research_tokens.tech = 0
chronosphere.research_tokens.ecology = 0
chronosphere.research_tokens.weapons = 0
chronosphere.laser_battery = 0
chronosphere.last_artillery_event = 0
chronosphere.poison_mastery_unlocked = 0
chronosphere.gen_speed = 2
chronosphere.giftmas_enabled = true
chronosphere.giftmas_lamps = {}
chronosphere.giftmas_delivered = 0
chronosphere.restart_confirm = nil
chronosphere.restart_hard = false
end
function Public.get_table()
return chronosphere
end
function Public.get_player_table()
return playersphere
end
function Public.get_schedule_table()
return schedulesphere
end
function Public.get_biter_table()
return bitersphere
end
function Public.get_production_table()
return productionsphere
end
local on_init = function()
Public.reset_table()
Public.reset_biter_table()
Public.reset_player_table()
Public.reset_schedule_table()
Public.reset_production_table()
end
Event.on_init(on_init)
return Public