namespace SepCore.Simulation { internal sealed class PickupStore : EntityComponentStore { private Column _identity; private Column _transform; private Column _radius; private Column _state; public Column Identity => _identity; public Column Transform => _transform; public Column Radius => _radius; public Column State => _state; public void Initialize(int capacity) { if (IsCreated) { return; } Dispose(); _identity = Register(capacity); _transform = Register(capacity); _radius = Register(capacity); _state = Register(capacity); MarkInitialized(); } public int Add(in PickupIdentitySim identity, in PickupTransformSim transform, in PickupRadiusSim radius, in PickupStateSim state = default) { int index = AppendRow(identity.EntityId); _identity.Data.Add(identity); _transform.Data.Add(transform); _radius.Data.Add(radius); _state.Data.Add(state); return index; } public override void Dispose() { base.Dispose(); _identity = null; _transform = null; _radius = null; _state = null; } } }