using System.Linq;
using Robust.Shared.Prototypes;
namespace Content.Shared.EntityTable.EntitySelectors;
///
/// Gets spawns from all of the child selectors
///
public sealed partial class AllSelector : EntityTableSelector
{
[DataField(required: true)]
public List Children;
protected override IEnumerable GetSpawnsImplementation(System.Random rand,
IEntityManager entMan,
IPrototypeManager proto,
EntityTableContext ctx)
{
foreach (var child in Children)
{
foreach (var spawn in child.GetSpawns(rand, entMan, proto, ctx))
{
yield return spawn;
}
}
}
protected override IEnumerable<(EntProtoId spawn, double)> ListSpawnsImplementation(IEntityManager entMan, IPrototypeManager proto, EntityTableContext ctx)
{
foreach (var child in Children)
{
foreach (var (spawn, prob) in child.ListSpawns(entMan, proto, ctx))
{
yield return (spawn, prob);
}
}
}
protected override IEnumerable<(EntProtoId spawn, double)> AverageSpawnsImplementation(IEntityManager entMan, IPrototypeManager proto, EntityTableContext ctx)
{
foreach (var child in Children)
{
foreach (var (spawn, prob) in child.AverageSpawns(entMan, proto, ctx))
{
yield return (spawn, prob);
}
}
}
}