1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-04 00:15:45 +02:00
ComfyFactorio/maps/chronosphere/commands.lua

73 lines
2.4 KiB
Lua

local Color = require 'utils.color_presets'
local Server = require 'utils.server'
local Chrono_table = require 'maps.chronosphere.table'
local function scenario(p, parameter)
local objective = Chrono_table.get_table()
if parameter == 'resetmap' then
if objective.restart_confirm == 'resetmap' then
game.print({'chronosphere.cmd_game_restarting'}, Color.warning)
objective.game_lost = true
script.raise_event(Chrono_table.events['reset_map'], {})
return
else
p({'chronosphere.cmd_reset_map_confirm'}, Color.warning)
objective.restart_confirm = 'resetmap'
return
end
elseif parameter == 'hardreset' then
if objective.restart_hard then
p({'chronosphere.cmd_hardreset_disabled'}, Color.success)
objective.restart_hard = false
return
else
p({'chronosphere.cmd_hardreset_enabled'}, Color.success)
objective.restart_hard = true
return
end
elseif parameter == 'hardresetnow' then
if objective.restart_confirm == 'hardreset' then
game.print({'chronosphere.cmd_server_restarting'}, Color.warning)
Server.start_scenario('Chronosphere')
return
else
p({'chronosphere.cmd_hardreset_confirm'}, Color.warning)
objective.restart_confirm = 'hardreset'
return
end
else
p({'chronosphere.command_scenario'}, Color.info)
objective.restart_confirm = nil
end
end
local function cmd_handler(cmd)
local p
if not cmd.player_index then
p = log
else
local player = game.get_player(cmd.player_index)
if not player or not player.valid then
p = log
else
p = player.print
if not player.admin then
p({'chronosphere.cmd_not_admin'}, Color.fail)
return
end
end
end
local command_name = cmd.name
if command_name == 'scenario' then
scenario(p, cmd.parameter)
elseif command_name == 'chronojump' then
script.raise_event(Chrono_table.events['chronojump'], {cmd.parameter})
end
end
commands.add_command('scenario', {'chronosphere.command_scenario'}, function(cmd) cmd_handler(cmd) end)
if _DEBUG then
commands.add_command('chronojump', 'Weeeeee!', function(cmd) cmd_handler(cmd) end)
end