Change api to support archetypes and move stuff to different namespaces
This commit is contained in:
parent
a8ac473666
commit
499cea5b44
10 changed files with 93 additions and 97 deletions
|
@ -1,5 +1,9 @@
|
|||
namespace Theater_ECS;
|
||||
|
||||
abstract class Archetype
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
interface IArchetypeable
|
||||
{
|
||||
public void Instantiate(ECS ecs, Entity e);
|
||||
}
|
5
src/Component.bf
Normal file
5
src/Component.bf
Normal file
|
@ -0,0 +1,5 @@
|
|||
namespace Theater_ECS;
|
||||
|
||||
using System;
|
||||
|
||||
typealias Component = int_cosize;
|
33
src/ECS.bf
33
src/ECS.bf
|
@ -1,41 +1,12 @@
|
|||
namespace Theater_ECS;
|
||||
using Theater_ECS.Containers;
|
||||
using Theater_ECS.Internal.Managers;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
class ECS
|
||||
{
|
||||
private EntityRegister _registry = new .() ~ delete _;
|
||||
|
||||
///Create a new Entity
|
||||
public Entity Entity_Create() => _registry.Create();
|
||||
|
||||
///Delete an Entity
|
||||
public void Entity_Delete(Entity e) => _registry.Remove(e);
|
||||
|
||||
///Returns wether the given entity is still alive
|
||||
public bool Entity_Alive(Entity e) => _registry.IsAlive(e);
|
||||
|
||||
//TODO: Entity_GetAllComponents
|
||||
|
||||
|
||||
private ComponentManager _compRegistry = new .() ~ delete _;
|
||||
|
||||
///Registers a component but hides some of the work behind generics
|
||||
public Component RegisterComponent<T>() => _compRegistry.RegisterComponent(typeof(T).GetFullName(.. scope .()), strideof(T));
|
||||
public Component RegisterComponent(StringView name, int_cosize size) => _compRegistry.RegisterComponent(name, size);
|
||||
|
||||
///Retrieves the id of a component
|
||||
public Result<Component> GetComponent<T>() => _compRegistry.GetComponent(typeof(T).GetFullName(.. scope .()));
|
||||
public Result<Component> GetComponent(StringView name) => _compRegistry.GetComponent(name);
|
||||
|
||||
public int_cosize GetComponentCount(Component c) => _compRegistry.Components[c].Count();
|
||||
|
||||
public Span<Entity> GetComponentEntities(Component c) => _compRegistry.Components[c].GetAll();
|
||||
|
||||
[Inline] public void* GetComponentData(Entity e, Component c) => _compRegistry.Components[c].[Unchecked]Get(e);
|
||||
|
||||
public SystemsManager Systems = new .(this) ~ delete _;
|
||||
public ComponentManager Components = new .() ~ delete _;
|
||||
public EntityManager Entities = new .(this) ~ delete _;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
namespace Theater_ECS;
|
||||
namespace Theater_ECS.Internal.Containers;
|
||||
|
||||
/*
|
||||
Not all actions can be done during the run of a system,
|
||||
|
@ -8,7 +8,7 @@ namespace Theater_ECS;
|
|||
class CommandBuffer
|
||||
{
|
||||
public void DeleteEntity(Entity e) {}
|
||||
public void CreateEntity(Archetype a) {}
|
||||
public void CreateEntity(IArchetypeable a) {}
|
||||
public void AddComponentToEntity(Entity e, Component c, void* data) {}
|
||||
public void RemoveComponentFromEntity(Entity e, Component c) {}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
namespace Theater_ECS.Containers;
|
||||
namespace Theater_ECS.Internal.Containers;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
|
@ -1,10 +1,9 @@
|
|||
namespace Theater_ECS.Containers;
|
||||
namespace Theater_ECS.Internal.Containers;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.Contracts;
|
||||
using System.Threading;
|
||||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
|
||||
//A variant of list, which has no type associated with it
|
|
@ -1,14 +1,11 @@
|
|||
namespace Theater_ECS;
|
||||
using Theater_ECS.Containers;
|
||||
namespace Theater_ECS.Internal.Managers;
|
||||
using Theater_ECS.Internal.Containers;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
typealias Component = int_cosize;
|
||||
|
||||
class ComponentManager
|
||||
{
|
||||
|
||||
private Dictionary<String, Component> _componentLookup = new .() ~ DeleteDictionaryAndKeys!(_);
|
||||
public List<PagedSparseSet> Components = new .() ~ DeleteContainerAndItems!(_);
|
||||
|
||||
|
@ -41,12 +38,19 @@ class ComponentManager
|
|||
return (.)(Components.Count-1);
|
||||
}
|
||||
|
||||
[Inline]
|
||||
public void* GetComponentData(Entity e, Component c) => Components[c].[Unchecked]Get(e);
|
||||
|
||||
///Retrieves the id of a component
|
||||
public Result<Component> GetComponent(StringView name)
|
||||
public Result<Component> GetId(StringView name)
|
||||
{
|
||||
if(!_componentLookup.ContainsKeyAlt<StringView>(name))
|
||||
return .Err;
|
||||
return _componentLookup[scope .(name)];
|
||||
}
|
||||
|
||||
public void AddComponentToEntity(Entity e, Component c, void* data)
|
||||
{
|
||||
Components[c].Add(e, data);
|
||||
}
|
||||
}
|
|
@ -1,14 +1,20 @@
|
|||
namespace Theater_ECS;
|
||||
namespace Theater_ECS.Internal.Managers;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
class EntityRegister
|
||||
class EntityManager
|
||||
{
|
||||
private ECS _owner;
|
||||
|
||||
private List<Entity> _entities = new .() ~ delete _;
|
||||
private int32 _available = 0;
|
||||
private Entity _next = .Null;
|
||||
|
||||
public this(ECS ecs)
|
||||
{
|
||||
_owner = ecs;
|
||||
}
|
||||
|
||||
public Entity Create()
|
||||
{
|
||||
|
@ -32,6 +38,13 @@ class EntityRegister
|
|||
}
|
||||
}
|
||||
|
||||
public Entity Create(IArchetypeable archetype)
|
||||
{
|
||||
var e = this.Create();
|
||||
archetype.Instantiate(_owner, e);
|
||||
return e;
|
||||
}
|
||||
|
||||
public void Remove(Entity e)
|
||||
{
|
||||
let temp = _next;
|
|
@ -1,4 +1,4 @@
|
|||
namespace Theater_ECS;
|
||||
namespace Theater_ECS.Internal.Managers;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
100
src/System.bf
100
src/System.bf
|
@ -1,5 +1,5 @@
|
|||
namespace Theater_ECS;
|
||||
using Theater_ECS.Containers;
|
||||
using Theater_ECS.Internal.Containers;
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
@ -13,7 +13,7 @@ abstract class System
|
|||
private List<Component> _Components = new .(10) ~ delete _;
|
||||
|
||||
///Get the compoent id and cache it inside of this system
|
||||
public void RegisterComponent<T>(ECS ecs) where T : struct => _Components.Add(ecs.RegisterComponent<T>());
|
||||
public void RegisterComponent<T>(ECS ecs) where T : struct => _Components.Add(ecs.Components.RegisterComponent(typeof(T).GetFullName(.. scope .()), strideof(T)));
|
||||
|
||||
public abstract void RegisterSystem(ECS ecs);
|
||||
|
||||
|
@ -34,15 +34,15 @@ abstract class System
|
|||
Component comp = _Components[0];
|
||||
|
||||
for (var c in _Components)
|
||||
if (ecs.GetComponentCount(c) < count)
|
||||
if (ecs.Components.Components[c].Count() < count)
|
||||
{
|
||||
count = ecs.GetComponentCount(c);
|
||||
count = ecs.Components.Components[c].Count();
|
||||
comp = c;
|
||||
}
|
||||
|
||||
//We now have the list of entities to loop through
|
||||
Span<Entity> entities = ecs.GetComponentEntities(comp);
|
||||
UList main = ecs.[Friend]_compRegistry.Components[comp].[Friend]_packedEntities;
|
||||
Span<Entity> entities = ecs.Components.Components[comp].GetAll();
|
||||
UList main = ecs.Components.Components[comp].[Friend]_packedEntities;
|
||||
var cun = entities.Length - 1;
|
||||
|
||||
#region DumbStatement
|
||||
|
@ -54,143 +54,143 @@ abstract class System
|
|||
case 2:
|
||||
if (comp == _Components[0])
|
||||
for (int ii < cun)
|
||||
this.Run(main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[1]));
|
||||
this.Run(main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[1]));
|
||||
else
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index]);
|
||||
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index]);
|
||||
case 3:
|
||||
if (comp == _Components[0])
|
||||
for (int ii < cun)
|
||||
this.Run(main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]));
|
||||
this.Run(main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[1]), ecs.Components.GetComponentData(entities[ii], _Components[2]));
|
||||
else if (comp == _Components[1])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]));
|
||||
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.Components.GetComponentData(entities[ii], _Components[2]));
|
||||
else
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index]);
|
||||
this.Run(ecs.Components.GetComponentData(entities[ii], _Components[0]), ecs.Components.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index]);
|
||||
case 4:
|
||||
if (comp == _Components[0])
|
||||
for (int ii < cun)
|
||||
this.Run(main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]));
|
||||
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]));
|
||||
else if (comp == _Components[1])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[2]));
|
||||
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]));
|
||||
else if (comp == _Components[2])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]));
|
||||
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]));
|
||||
else
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index]);
|
||||
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]);
|
||||
case 5:
|
||||
if (comp == _Components[0])
|
||||
for (int ii < cun)
|
||||
this.Run(main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]));
|
||||
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]));
|
||||
else if (comp == _Components[1])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[4]));
|
||||
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]));
|
||||
else if (comp == _Components[2])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[4]));
|
||||
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]));
|
||||
else if (comp == _Components[3])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[4]));
|
||||
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]));
|
||||
else
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), main[(.)entities[ii].Index]);
|
||||
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]);
|
||||
case 6:
|
||||
if (comp == _Components[0])
|
||||
for (int ii < cun)
|
||||
this.Run(main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]));
|
||||
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]));
|
||||
else if (comp == _Components[1])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]));
|
||||
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]));
|
||||
else if (comp == _Components[2])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]));
|
||||
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]));
|
||||
else if (comp == _Components[3])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]));
|
||||
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]));
|
||||
else if (comp == _Components[4])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[5]));
|
||||
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]));
|
||||
else
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), main[(.)entities[ii].Index]);
|
||||
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]);
|
||||
case 7:
|
||||
if (comp == _Components[0])
|
||||
for (int ii < cun)
|
||||
this.Run(main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]));
|
||||
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]));
|
||||
else if (comp == _Components[1])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]));
|
||||
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]));
|
||||
else if (comp == _Components[2])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]));
|
||||
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]));
|
||||
else if (comp == _Components[3])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]));
|
||||
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]));
|
||||
else if (comp == _Components[4])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]));
|
||||
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]));
|
||||
else if (comp == _Components[5])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[6]));
|
||||
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]));
|
||||
else
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), main[(.)entities[ii].Index]);
|
||||
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]);
|
||||
case 8:
|
||||
if (comp == _Components[0])
|
||||
for (int ii < cun)
|
||||
this.Run(main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[7]));
|
||||
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]));
|
||||
else if (comp == _Components[1])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[7]));
|
||||
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]));
|
||||
else if (comp == _Components[2])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[7]));
|
||||
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]));
|
||||
else if (comp == _Components[3])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[7]));
|
||||
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]));
|
||||
else if (comp == _Components[4])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[7]));
|
||||
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]));
|
||||
else if (comp == _Components[5])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[7]));
|
||||
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]));
|
||||
else if (comp == _Components[6])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[7]));
|
||||
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]));
|
||||
else
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), main[(.)entities[ii].Index]);
|
||||
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]);
|
||||
case 9:
|
||||
if (comp == _Components[0])
|
||||
for (int ii < cun)
|
||||
this.Run(main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[7]), ecs.GetComponentData(entities[ii], _Components[8]));
|
||||
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]));
|
||||
else if (comp == _Components[1])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[7]), ecs.GetComponentData(entities[ii], _Components[8]));
|
||||
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]));
|
||||
else if (comp == _Components[2])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[7]), ecs.GetComponentData(entities[ii], _Components[8]));
|
||||
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]));
|
||||
else if (comp == _Components[3])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[7]), ecs.GetComponentData(entities[ii], _Components[8]));
|
||||
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]));
|
||||
else if (comp == _Components[4])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[7]), ecs.GetComponentData(entities[ii], _Components[8]));
|
||||
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]));
|
||||
else if (comp == _Components[5])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[7]), ecs.GetComponentData(entities[ii], _Components[8]));
|
||||
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]));
|
||||
else if (comp == _Components[6])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[7]), ecs.GetComponentData(entities[ii], _Components[8]));
|
||||
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]));
|
||||
else if (comp == _Components[7])
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), main[(.)entities[ii].Index], ecs.GetComponentData(entities[ii], _Components[8]));
|
||||
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]));
|
||||
else
|
||||
for (int ii < cun)
|
||||
this.Run(ecs.GetComponentData(entities[ii], _Components[0]), ecs.GetComponentData(entities[ii], _Components[1]), ecs.GetComponentData(entities[ii], _Components[2]), ecs.GetComponentData(entities[ii], _Components[3]), ecs.GetComponentData(entities[ii], _Components[4]), ecs.GetComponentData(entities[ii], _Components[5]), ecs.GetComponentData(entities[ii], _Components[6]), ecs.GetComponentData(entities[ii], _Components[8]), main[(.)entities[ii].Index]);
|
||||
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]);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
|
Loading…
Add table
Reference in a new issue