简单重构拆分 SimulationWorld
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user