]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Reapply "Fix spawnpref" (#32018) (#32058)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Wed, 11 Sep 2024 04:23:24 +0000 (14:23 +1000)
committerGitHub <noreply@github.com>
Wed, 11 Sep 2024 04:23:24 +0000 (22:23 -0600)
This reverts commit 119dd610fa30edd3927cd51acbc68601f7d0b8e0.

Content.Server/Shuttles/Systems/ArrivalsSystem.cs
Content.Server/Spawners/EntitySystems/ContainerSpawnPointSystem.cs

index 9b94d6024e2a4072e44b95cb0b8c716705ec3e8d..82a38f5f00fe518c5ed55a9fe6123cf5dc67a065 100644 (file)
@@ -22,6 +22,7 @@ using Content.Shared.DeviceNetwork;
 using Content.Shared.Mobs.Components;
 using Content.Shared.Movement.Components;
 using Content.Shared.Parallax.Biomes;
+using Content.Shared.Preferences;
 using Content.Shared.Salvage;
 using Content.Shared.Shuttles.Components;
 using Content.Shared.Tiles;
@@ -334,6 +335,9 @@ public sealed class ArrivalsSystem : EntitySystem
         if (ev.SpawnResult != null)
             return;
 
+        if (ev.HumanoidCharacterProfile?.SpawnPriority != SpawnPriorityPreference.Arrivals)
+            return;
+
         // Only works on latejoin even if enabled.
         if (!Enabled || _ticker.RunLevel != GameRunLevel.InRound)
             return;
index ef0ece524c02023471370ddd60318db9b0838968..69baf591bcaa277c40d78c07a58b814bd478fbc7 100644 (file)
@@ -1,8 +1,11 @@
 using Content.Server.GameTicking;
 using Content.Server.Spawners.Components;
 using Content.Server.Station.Systems;
+using Content.Shared.Preferences;
+using Content.Shared.Roles;
 using Robust.Server.Containers;
 using Robust.Shared.Containers;
+using Robust.Shared.Prototypes;
 using Robust.Shared.Random;
 
 namespace Content.Server.Spawners.EntitySystems;
@@ -11,6 +14,7 @@ public sealed class ContainerSpawnPointSystem : EntitySystem
 {
     [Dependency] private readonly GameTicker _gameTicker = default!;
     [Dependency] private readonly IRobustRandom _random = default!;
+    [Dependency] private readonly IPrototypeManager _proto = default!;
     [Dependency] private readonly ContainerSystem _container = default!;
     [Dependency] private readonly StationSystem _station = default!;
     [Dependency] private readonly StationSpawningSystem _stationSpawning = default!;
@@ -26,6 +30,13 @@ public sealed class ContainerSpawnPointSystem : EntitySystem
         if (args.SpawnResult != null)
             return;
 
+        // If it's just a spawn pref check if it's for cryo (silly).
+        if (args.HumanoidCharacterProfile?.SpawnPriority != SpawnPriorityPreference.Cryosleep &&
+            (!_proto.TryIndex(args.Job?.Prototype, out var jobProto) || jobProto.JobEntity == null))
+        {
+            return;
+        }
+
         var query = EntityQueryEnumerator<ContainerSpawnPointComponent, ContainerManagerComponent, TransformComponent>();
         var possibleContainers = new List<Entity<ContainerSpawnPointComponent, ContainerManagerComponent, TransformComponent>>();