mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2026-09-21 17:04:00 +00:00
The spectate and follow module moves to exp_scenario/module/control/spectate.lua in the event_handler shape the other control modules use, and the copy in exp_legacy is removed. Follow state is a typed record rather than a positional table, the follow label caption is localised, and the escape handler marks the record to stop on the next tick instead of poking an invalid position into it. The LuaPlayer.close_map call is gone: it does not exist in Factorio 2.0, where the map is the remote controller and set_controller replaces it.
30 lines
1.0 KiB
Lua
30 lines
1.0 KiB
Lua
--[[-- Commands - Spectate
|
|
Adds commands relating to spectate and follow
|
|
]]
|
|
|
|
local Commands = require("modules/exp_commands")
|
|
local Spectate = require("modules/exp_scenario/control/spectate")
|
|
|
|
--- Toggles spectator mode for the caller
|
|
Commands.new("spectate", { "exp-commands_spectate.description-spectate" })
|
|
:register(function(player)
|
|
if Spectate.is_spectating(player) then
|
|
Spectate.stop_spectate(player)
|
|
else
|
|
Spectate.start_spectate(player)
|
|
end
|
|
end)
|
|
|
|
--- Enters follow mode for the caller, following the given player.
|
|
Commands.new("follow", { "exp-commands_spectate.description-follow" })
|
|
:argument("player", { "exp-commands_spectate.arg-player" }, Commands.types.player_online)
|
|
:add_aliases{ "f" }
|
|
:register(function(player, other_player)
|
|
--- @cast other_player LuaPlayer
|
|
if player == other_player then
|
|
return Commands.status.invalid_input{ "exp-commands_spectate.follow-self" }
|
|
else
|
|
Spectate.start_follow(player, other_player)
|
|
end
|
|
end)
|