Move vending restocks to EntityTableContainerFills (#41442)
* Move vending restocks to EntityTableContainerFills * Glad I can actually see that fail now * I could of just gone back to checking all the containers but nooo had to be stubborn * Apply changes from code review
This commit is contained in:
@@ -3,11 +3,13 @@ using System.Collections.Generic;
|
||||
using Content.Server.VendingMachines;
|
||||
using Content.Server.Wires;
|
||||
using Content.Shared.Cargo.Prototypes;
|
||||
using Content.Shared.Containers;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Damage.Prototypes;
|
||||
using Content.Shared.Damage.Systems;
|
||||
using Content.Shared.EntityTable;
|
||||
using Content.Shared.Prototypes;
|
||||
using Content.Shared.Storage.Components;
|
||||
using Content.Shared.Storage.EntitySystems;
|
||||
using Content.Shared.VendingMachines;
|
||||
using Content.Shared.Wires;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -115,6 +117,7 @@ namespace Content.IntegrationTests.Tests
|
||||
|
||||
var prototypeManager = server.ResolveDependency<IPrototypeManager>();
|
||||
var compFact = server.ResolveDependency<IComponentFactory>();
|
||||
var entityTable = server.EntMan.System<EntityTableSystem>();
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
@@ -134,17 +137,23 @@ namespace Content.IntegrationTests.Tests
|
||||
restocks.Add(proto.ID);
|
||||
}
|
||||
|
||||
// Collect all the prototypes with StorageFills referencing those entities.
|
||||
// Collect all the prototypes with EntityTableContainerFills referencing those entities.
|
||||
foreach (var proto in prototypeManager.EnumeratePrototypes<EntityPrototype>())
|
||||
{
|
||||
if (!proto.TryGetComponent<StorageFillComponent>(out var storage, compFact))
|
||||
if (!proto.TryGetComponent<EntityTableContainerFillComponent>(out var storage, compFact))
|
||||
continue;
|
||||
|
||||
var containers = storage.Containers;
|
||||
|
||||
if (!containers.TryGetValue(SharedEntityStorageSystem.ContainerName, out var container)) // We only care about this container type.
|
||||
continue;
|
||||
|
||||
List<string> restockStore = new();
|
||||
foreach (var spawnEntry in storage.Contents)
|
||||
|
||||
foreach (var spawnEntry in entityTable.GetSpawns(container))
|
||||
{
|
||||
if (spawnEntry.PrototypeId != null && restocks.Contains(spawnEntry.PrototypeId))
|
||||
restockStore.Add(spawnEntry.PrototypeId);
|
||||
if (restocks.Contains(spawnEntry))
|
||||
restockStore.Add(spawnEntry);
|
||||
}
|
||||
|
||||
if (restockStore.Count > 0)
|
||||
@@ -153,7 +162,7 @@ namespace Content.IntegrationTests.Tests
|
||||
|
||||
// Iterate through every CargoProduct and make sure each
|
||||
// prototype with a restock component is referenced in a
|
||||
// purchaseable entity with a StorageFill.
|
||||
// purchaseable entity with an EntityTableContianerFill.
|
||||
foreach (var proto in prototypeManager.EnumeratePrototypes<CargoProductPrototype>())
|
||||
{
|
||||
if (restockStores.ContainsKey(proto.Product))
|
||||
|
||||
Reference in New Issue
Block a user