2024-08-09 22:12:40 -04:00
|
|
|
using Content.Shared.EntityTable.EntitySelectors;
|
|
|
|
|
using Robust.Shared.Prototypes;
|
|
|
|
|
using Robust.Shared.Random;
|
|
|
|
|
|
|
|
|
|
namespace Content.Shared.EntityTable;
|
|
|
|
|
|
|
|
|
|
public sealed class EntityTableSystem : EntitySystem
|
|
|
|
|
{
|
|
|
|
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
|
|
|
|
[Dependency] private readonly IRobustRandom _random = default!;
|
|
|
|
|
|
2025-05-18 03:10:30 +10:00
|
|
|
public IEnumerable<EntProtoId> GetSpawns(EntityTablePrototype entTableProto, System.Random? rand = null)
|
|
|
|
|
{
|
|
|
|
|
// convenient
|
|
|
|
|
return GetSpawns(entTableProto.Table, rand);
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-09 22:12:40 -04:00
|
|
|
public IEnumerable<EntProtoId> GetSpawns(EntityTableSelector? table, System.Random? rand = null)
|
|
|
|
|
{
|
|
|
|
|
if (table == null)
|
|
|
|
|
return new List<EntProtoId>();
|
|
|
|
|
|
|
|
|
|
rand ??= _random.GetRandom();
|
|
|
|
|
return table.GetSpawns(rand, EntityManager, _prototypeManager);
|
|
|
|
|
}
|
|
|
|
|
}
|