mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-08 00:39:30 +02:00
177 lines
4.7 KiB
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
|