Fix startingGear storage (#33394)

* fix starting gear storage

* removal of unused

---------

Co-authored-by: MetalSage <metalsage.official@gmail.com>
This commit is contained in:
MetalSage
2024-11-23 09:54:35 +03:00
committed by GitHub
parent 1e93e12330
commit a42bacd3a9

View File

@@ -2,6 +2,7 @@ using System.Linq;
using Content.Shared.Hands.Components; using Content.Shared.Hands.Components;
using Content.Shared.Hands.EntitySystems; using Content.Shared.Hands.EntitySystems;
using Content.Shared.Inventory; using Content.Shared.Inventory;
using Content.Shared.Item;
using Content.Shared.Preferences.Loadouts; using Content.Shared.Preferences.Loadouts;
using Content.Shared.Roles; using Content.Shared.Roles;
using Content.Shared.Storage; using Content.Shared.Storage;
@@ -145,27 +146,23 @@ public abstract class SharedStationSpawningSystem : EntitySystem
if (startingGear.Storage.Count > 0) if (startingGear.Storage.Count > 0)
{ {
var coords = _xformSystem.GetMapCoordinates(entity); var coords = _xformSystem.GetMapCoordinates(entity);
var ents = new ValueList<EntityUid>();
_inventoryQuery.TryComp(entity, out var inventoryComp); _inventoryQuery.TryComp(entity, out var inventoryComp);
foreach (var (slot, entProtos) in startingGear.Storage) foreach (var (slotName, entProtos) in startingGear.Storage)
{ {
ents.Clear(); if (entProtos == null || entProtos.Count == 0)
if (entProtos.Count == 0)
continue; continue;
if (inventoryComp != null && if (inventoryComp != null &&
InventorySystem.TryGetSlotEntity(entity, slot, out var slotEnt, inventoryComponent: inventoryComp) && InventorySystem.TryGetSlotEntity(entity, slotName, out var slotEnt, inventoryComponent: inventoryComp) &&
_storageQuery.TryComp(slotEnt, out var storage)) _storageQuery.TryComp(slotEnt, out var storage))
{ {
foreach (var ent in entProtos)
{
ents.Add(Spawn(ent, coords));
}
foreach (var ent in ents) foreach (var entProto in entProtos)
{ {
_storage.Insert(slotEnt.Value, ent, out _, storageComp: storage, playSound: false); var spawnedEntity = Spawn(entProto, coords);
_storage.Insert(slotEnt.Value, spawnedEntity, out _, storageComp: storage, playSound: false);
} }
} }
} }