Files

51 lines
1.6 KiB
C#

namespace SepCore.Simulation
{
internal sealed class PickupStore : EntityComponentStore
{
private Column<PickupIdentitySim> _identity;
private Column<PickupTransformSim> _transform;
private Column<PickupRadiusSim> _radius;
private Column<PickupStateSim> _state;
public Column<PickupIdentitySim> Identity => _identity;
public Column<PickupTransformSim> Transform => _transform;
public Column<PickupRadiusSim> Radius => _radius;
public Column<PickupStateSim> State => _state;
public void Initialize(int capacity)
{
if (IsCreated)
{
return;
}
Dispose();
_identity = Register<PickupIdentitySim>(capacity);
_transform = Register<PickupTransformSim>(capacity);
_radius = Register<PickupRadiusSim>(capacity);
_state = Register<PickupStateSim>(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;
}
}
}