Fixing up the component api to be more useable

This commit is contained in:
Booklordofthedings 2024-11-19 14:14:19 +01:00
parent 499cea5b44
commit 34b929c4e7
4 changed files with 84 additions and 49 deletions

View file

@ -29,11 +29,11 @@ class PagedSparseSet
_sparse[e.Index/PageSize][e.Index % PageSize] = (.)_packed.Count-1; _sparse[e.Index/PageSize][e.Index % PageSize] = (.)_packed.Count-1;
} }
public void Remove(Entity e) public bool Remove(Entity e)
{ {
EnsurePage(e.Index/PageSize); EnsurePage(e.Index/PageSize);
if(_sparse[e.Index/PageSize] == null) if(_sparse[e.Index/PageSize] == null)
return; return false;
let toRm = _packed[_sparse[e.Index/PageSize][e.Index % PageSize].Index]; let toRm = _packed[_sparse[e.Index/PageSize][e.Index % PageSize].Index];
let b = _packed.Back; let b = _packed.Back;
@ -44,6 +44,7 @@ class PagedSparseSet
_sparse[e.Index/PageSize][e.Index % PageSize] = Entity.Null; _sparse[e.Index/PageSize][e.Index % PageSize] = Entity.Null;
_packed.PopBack(); _packed.PopBack();
return true;
} }
[Inline, Unchecked] [Inline, Unchecked]

View file

@ -39,7 +39,7 @@ class ComponentManager
} }
[Inline] [Inline]
public void* GetComponentData(Entity e, Component c) => Components[c].[Unchecked]Get(e); public void* GetData(Entity e, Component c) => Components[c].[Unchecked]Get(e);
///Retrieves the id of a component ///Retrieves the id of a component
public Result<Component> GetId(StringView name) public Result<Component> GetId(StringView name)
@ -49,8 +49,18 @@ class ComponentManager
return _componentLookup[scope .(name)]; return _componentLookup[scope .(name)];
} }
public void AddComponentToEntity(Entity e, Component c, void* data) public void AddToEntity(Entity e, Component c, void* data) => Components[c].Add(e, data);
///Remove a component from the given entity
public bool RemoveFromEntity(Entity e, Component c) => Components[c].Remove(e);
///Remove a component from the given entity and return it
public Result<void*> GetAndRemoveFromEntity(Entity e, Component c)
{ {
Components[c].Add(e, data); if(!Components[c].Contains(e))
return .Err;
var data = [Unchecked]Components[c].Get(e);
Components[c].Remove(e);
return .Ok(data);
} }
} }

View file

@ -0,0 +1,24 @@
namespace Theater_ECS.Internal;
using System;
//Indicates when systems should be run in relation to each other
//Higher = Later
//Can be extended with own types
//Not all types have to be used
struct SystemSection : uint8
{
public const SystemSection TECS_Input = 0;
public const SystemSection TECS_EarlyUpdate = 5;
public const SystemSection TECS_Update = 10;
public const SystemSection TECS_LateUpdate = 15;
public const SystemSection TECS_EarlyRendering = 20;
public const SystemSection TECS_Rendering = 25;
public const SystemSection TECS_LateRendering = 30;
public const SystemSection TECS_Last = 40;
private this() {}
}

View file

@ -54,143 +54,143 @@ abstract class System
case 2: case 2:
if (comp == _Components[0]) if (comp == _Components[0])
for (int ii < cun) for (int ii < cun)
this.Run(main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[1])); this.Run(main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[1]));
else else
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index]); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), main[(.)entities[ii].Index]);
case 3: case 3:
if (comp == _Components[0]) if (comp == _Components[0])
for (int ii < cun) for (int ii < cun)
this.Run(main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2])); this.Run(main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]));
else if (comp == _Components[1]) else if (comp == _Components[1])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]));
else else
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index]); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), main[(.)entities[ii].Index]);
case 4: case 4:
if (comp == _Components[0]) if (comp == _Components[0])
for (int ii < cun) for (int ii < cun)
this.Run(main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3])); this.Run(main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]));
else if (comp == _Components[1]) else if (comp == _Components[1])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[2])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[2]));
else if (comp == _Components[2]) else if (comp == _Components[2])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]));
else else
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index]); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), main[(.)entities[ii].Index]);
case 5: case 5:
if (comp == _Components[0]) if (comp == _Components[0])
for (int ii < cun) for (int ii < cun)
this.Run(main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4])); this.Run(main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]));
else if (comp == _Components[1]) else if (comp == _Components[1])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[4])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[4]));
else if (comp == _Components[2]) else if (comp == _Components[2])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[4])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[4]));
else if (comp == _Components[3]) else if (comp == _Components[3])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[4])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[4]));
else else
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), main[(.)entities[ii].Index]); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), main[(.)entities[ii].Index]);
case 6: case 6:
if (comp == _Components[0]) if (comp == _Components[0])
for (int ii < cun) for (int ii < cun)
this.Run(main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5])); this.Run(main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]));
else if (comp == _Components[1]) else if (comp == _Components[1])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]));
else if (comp == _Components[2]) else if (comp == _Components[2])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]));
else if (comp == _Components[3]) else if (comp == _Components[3])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]));
else if (comp == _Components[4]) else if (comp == _Components[4])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[5])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[5]));
else else
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), main[(.)entities[ii].Index]); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), main[(.)entities[ii].Index]);
case 7: case 7:
if (comp == _Components[0]) if (comp == _Components[0])
for (int ii < cun) for (int ii < cun)
this.Run(main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6])); this.Run(main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]));
else if (comp == _Components[1]) else if (comp == _Components[1])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]));
else if (comp == _Components[2]) else if (comp == _Components[2])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]));
else if (comp == _Components[3]) else if (comp == _Components[3])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]));
else if (comp == _Components[4]) else if (comp == _Components[4])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]));
else if (comp == _Components[5]) else if (comp == _Components[5])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[6])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[6]));
else else
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), main[(.)entities[ii].Index]); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), main[(.)entities[ii].Index]);
case 8: case 8:
if (comp == _Components[0]) if (comp == _Components[0])
for (int ii < cun) for (int ii < cun)
this.Run(main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[7])); this.Run(main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[7]));
else if (comp == _Components[1]) else if (comp == _Components[1])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[7])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[7]));
else if (comp == _Components[2]) else if (comp == _Components[2])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[7])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[7]));
else if (comp == _Components[3]) else if (comp == _Components[3])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[7])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[7]));
else if (comp == _Components[4]) else if (comp == _Components[4])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[7])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[7]));
else if (comp == _Components[5]) else if (comp == _Components[5])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[7])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[7]));
else if (comp == _Components[6]) else if (comp == _Components[6])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[7])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[7]));
else else
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), main[(.)entities[ii].Index]); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), main[(.)entities[ii].Index]);
case 9: case 9:
if (comp == _Components[0]) if (comp == _Components[0])
for (int ii < cun) for (int ii < cun)
this.Run(main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[7]), ecs.Components.GetComponentData(entities[ii], _Components[8])); this.Run(main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[7]), ecs.Components.GetData(entities[ii], _Components[8]));
else if (comp == _Components[1]) else if (comp == _Components[1])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[7]), ecs.Components.GetComponentData(entities[ii], _Components[8])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[7]), ecs.Components.GetData(entities[ii], _Components[8]));
else if (comp == _Components[2]) else if (comp == _Components[2])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[7]), ecs.Components.GetComponentData(entities[ii], _Components[8])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[7]), ecs.Components.GetData(entities[ii], _Components[8]));
else if (comp == _Components[3]) else if (comp == _Components[3])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[7]), ecs.Components.GetComponentData(entities[ii], _Components[8])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[7]), ecs.Components.GetData(entities[ii], _Components[8]));
else if (comp == _Components[4]) else if (comp == _Components[4])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[7]), ecs.Components.GetComponentData(entities[ii], _Components[8])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[7]), ecs.Components.GetData(entities[ii], _Components[8]));
else if (comp == _Components[5]) else if (comp == _Components[5])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[7]), ecs.Components.GetComponentData(entities[ii], _Components[8])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[7]), ecs.Components.GetData(entities[ii], _Components[8]));
else if (comp == _Components[6]) else if (comp == _Components[6])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[7]), ecs.Components.GetComponentData(entities[ii], _Components[8])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[7]), ecs.Components.GetData(entities[ii], _Components[8]));
else if (comp == _Components[7]) else if (comp == _Components[7])
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[8])); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), main[(.)entities[ii].Index], ecs.Components.GetData(entities[ii], _Components[8]));
else else
for (int ii < cun) for (int ii < cun)
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]), ecs.Components.GetComponentData(entities[ii], _Components[3]), ecs.Components.GetComponentData(entities[ii], _Components[4]), ecs.Components.GetComponentData(entities[ii], _Components[5]), ecs.Components.GetComponentData(entities[ii], _Components[6]), ecs.Components.GetComponentData(entities[ii], _Components[8]), main[(.)entities[ii].Index]); this.Run(ecs.Components.GetData(entities[ii], _Components[0]), ecs.Components.GetData(entities[ii], _Components[1]), ecs.Components.GetData(entities[ii], _Components[2]), ecs.Components.GetData(entities[ii], _Components[3]), ecs.Components.GetData(entities[ii], _Components[4]), ecs.Components.GetData(entities[ii], _Components[5]), ecs.Components.GetData(entities[ii], _Components[6]), ecs.Components.GetData(entities[ii], _Components[8]), main[(.)entities[ii].Index]);
} }
} }
#endregion #endregion