简单重构拆分 SimulationWorld

This commit is contained in:
2026-09-18 17:43:41 +08:00
parent 1e4d3ef8d7
commit 92e1ea0d55
109 changed files with 2605 additions and 1817 deletions
@@ -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;
}
}
}