Fixup playerspawn stuff (#31546)
* Fixup playerspawn stuff - Also removed arrivals forcing, this should just turn containerspawnpoint off. * fix this one * test fix * really fix
This commit is contained in:
@@ -56,27 +56,11 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem
|
||||
|
||||
private bool _randomizeCharacters;
|
||||
|
||||
private Dictionary<SpawnPriorityPreference, Action<PlayerSpawningEvent>> _spawnerCallbacks = new();
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
Subs.CVar(_configurationManager, CCVars.ICRandomCharacters, e => _randomizeCharacters = e, true);
|
||||
|
||||
_spawnerCallbacks = new Dictionary<SpawnPriorityPreference, Action<PlayerSpawningEvent>>()
|
||||
{
|
||||
{ SpawnPriorityPreference.Arrivals, _arrivalsSystem.HandlePlayerSpawning },
|
||||
{
|
||||
SpawnPriorityPreference.Cryosleep, ev =>
|
||||
{
|
||||
if (_arrivalsSystem.Forced)
|
||||
_arrivalsSystem.HandlePlayerSpawning(ev);
|
||||
else
|
||||
_containerSpawnPointSystem.HandlePlayerSpawning(ev);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -98,33 +82,7 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem
|
||||
|
||||
var ev = new PlayerSpawningEvent(job, profile, station);
|
||||
|
||||
if (station != null && profile != null)
|
||||
{
|
||||
// Try to call the character's preferred spawner first.
|
||||
if (_spawnerCallbacks.TryGetValue(profile.SpawnPriority, out var preferredSpawner))
|
||||
{
|
||||
preferredSpawner(ev);
|
||||
|
||||
foreach (var (key, remainingSpawner) in _spawnerCallbacks)
|
||||
{
|
||||
if (key == profile.SpawnPriority)
|
||||
continue;
|
||||
|
||||
remainingSpawner(ev);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Call all of them in the typical order.
|
||||
foreach (var typicalSpawner in _spawnerCallbacks.Values)
|
||||
{
|
||||
typicalSpawner(ev);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RaiseLocalEvent(ev);
|
||||
|
||||
DebugTools.Assert(ev.SpawnResult is { Valid: true } or null);
|
||||
|
||||
return ev.SpawnResult;
|
||||
|
||||
Reference in New Issue
Block a user