public bool HasComponents <C1, C2>() where C1 : Component where C2 : Component { return(mask[ComponentIDs.Get(typeof(C1))] && mask[ComponentIDs.Get(typeof(C2))]); }
public EgoParentConstraint() { childConstraint = new CS1(); childConstraint.parentConstraint = this; _mask[ComponentIDs.Get(typeof(C1))] = true; _mask[ComponentIDs.Get(typeof(C2))] = true; _mask[ComponentIDs.Get(typeof(C3))] = true; _mask[ComponentIDs.Get(typeof(C4))] = true; _mask[ComponentIDs.Get(typeof(C5))] = true; _mask[ComponentIDs.Get(typeof(EgoComponent))] = true; EgoEvents <AddedComponent <C1> > .AddHandler(e => CreateBundles(e.egoComponent)); EgoEvents <DestroyedComponent <C1> > .AddHandler(e => RemoveBundles(e.egoComponent)); EgoEvents <AddedComponent <C2> > .AddHandler(e => CreateBundles(e.egoComponent)); EgoEvents <DestroyedComponent <C2> > .AddHandler(e => RemoveBundles(e.egoComponent)); EgoEvents <AddedComponent <C3> > .AddHandler(e => CreateBundles(e.egoComponent)); EgoEvents <DestroyedComponent <C3> > .AddHandler(e => RemoveBundles(e.egoComponent)); EgoEvents <AddedComponent <C4> > .AddHandler(e => CreateBundles(e.egoComponent)); EgoEvents <DestroyedComponent <C4> > .AddHandler(e => RemoveBundles(e.egoComponent)); EgoEvents <AddedComponent <C5> > .AddHandler(e => CreateBundles(e.egoComponent)); EgoEvents <DestroyedComponent <C5> > .AddHandler(e => RemoveBundles(e.egoComponent)); EgoEvents <SetParent> .AddHandler(e => SetParent(e.parent, e.child, e.worldPositionStays)); }
public EgoSystem() { _mask[ComponentIDs.Get(typeof(C1))] = true; _mask[ComponentIDs.Get(typeof(C2))] = true; _mask[ComponentIDs.Get(typeof(C3))] = true; _mask[ComponentIDs.Get(typeof(C4))] = true; _mask[ComponentIDs.Get(typeof(EgoComponent))] = true; // Attach built-in Event Handlers EgoEvents <AddedGameObject> .AddHandler(Handle); EgoEvents <DestroyedGameObject> .AddHandler(Handle); EgoEvents <AddedComponent <C1> > .AddHandler(Handle); EgoEvents <AddedComponent <C2> > .AddHandler(Handle); EgoEvents <AddedComponent <C3> > .AddHandler(Handle); EgoEvents <AddedComponent <C4> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C1> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C2> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C3> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C4> > .AddHandler(Handle); }
public EgoConstraint() { _mask[ComponentIDs.Get(typeof(C1))] = true; _mask[ComponentIDs.Get(typeof(C2))] = true; _mask[ComponentIDs.Get(typeof(C3))] = true; _mask[ComponentIDs.Get(typeof(C4))] = true; _mask[ComponentIDs.Get(typeof(C5))] = true; _mask[ComponentIDs.Get(typeof(EgoComponent))] = true; EgoEvents <AddedComponent <C1> > .AddHandler(e => CreateBundles(e.egoComponent)); EgoEvents <DestroyedComponent <C1> > .AddHandler(e => RemoveBundles(e.egoComponent)); EgoEvents <AddedComponent <C2> > .AddHandler(e => CreateBundles(e.egoComponent)); EgoEvents <DestroyedComponent <C2> > .AddHandler(e => RemoveBundles(e.egoComponent)); EgoEvents <AddedComponent <C3> > .AddHandler(e => CreateBundles(e.egoComponent)); EgoEvents <DestroyedComponent <C3> > .AddHandler(e => RemoveBundles(e.egoComponent)); EgoEvents <AddedComponent <C4> > .AddHandler(e => CreateBundles(e.egoComponent)); EgoEvents <DestroyedComponent <C4> > .AddHandler(e => RemoveBundles(e.egoComponent)); EgoEvents <AddedComponent <C5> > .AddHandler(e => CreateBundles(e.egoComponent)); EgoEvents <DestroyedComponent <C5> > .AddHandler(e => RemoveBundles(e.egoComponent)); }
public void CreateMask() { mask.SetAll(false); // Initialize the ECSInterface's mask from each attached Component var components = gameObject.GetComponents <Component>(); foreach (var component in components) { mask[ComponentIDs.Get(component.GetType())] = true; } }
public static C AddComponent <C>(EgoComponent egoComponent) where C : Component { C component = null; if (!egoComponent.TryGetComponents <C>(out component)) { component = egoComponent.gameObject.AddComponent <C>(); egoComponent.mask[ComponentIDs.Get(typeof(C))] = true; EgoEvents <AddedComponent <C> > .AddEvent(new AddedComponent <C>(component, egoComponent)); } return(component); }
public bool HasComponents <C1, C2, C3, C4, C5>() where C1 : Component where C2 : Component where C3 : Component where C4 : Component where C5 : Component { return(mask[ComponentIDs.Get(typeof(C1))] && mask[ComponentIDs.Get(typeof(C2))] && mask[ComponentIDs.Get(typeof(C3))] && mask[ComponentIDs.Get(typeof(C4))] && mask[ComponentIDs.Get(typeof(C5))]); }
public EgoSystem() { _mask[ComponentIDs.Get(typeof(C1))] = true; _mask[ComponentIDs.Get(typeof(C2))] = true; _mask[ComponentIDs.Get(typeof(C3))] = true; _mask[ComponentIDs.Get(typeof(C4))] = true; _mask[ComponentIDs.Get(typeof(C5))] = true; _mask[ComponentIDs.Get(typeof(C6))] = true; _mask[ComponentIDs.Get(typeof(C7))] = true; _mask[ComponentIDs.Get(typeof(C8))] = true; _mask[ComponentIDs.Get(typeof(C9))] = true; _mask[ComponentIDs.Get(typeof(C10))] = true; _mask[ComponentIDs.Get(typeof(C11))] = true; _mask[ComponentIDs.Get(typeof(C12))] = true; _mask[ComponentIDs.Get(typeof(EgoComponent))] = true; // Attach built-in Event Handlers EgoEvents <AddedGameObject> .AddHandler(Handle); EgoEvents <DestroyedGameObject> .AddHandler(Handle); EgoEvents <AddedComponent <C1> > .AddHandler(Handle); EgoEvents <AddedComponent <C2> > .AddHandler(Handle); EgoEvents <AddedComponent <C3> > .AddHandler(Handle); EgoEvents <AddedComponent <C4> > .AddHandler(Handle); EgoEvents <AddedComponent <C5> > .AddHandler(Handle); EgoEvents <AddedComponent <C6> > .AddHandler(Handle); EgoEvents <AddedComponent <C7> > .AddHandler(Handle); EgoEvents <AddedComponent <C8> > .AddHandler(Handle); EgoEvents <AddedComponent <C9> > .AddHandler(Handle); EgoEvents <AddedComponent <C10> > .AddHandler(Handle); EgoEvents <AddedComponent <C11> > .AddHandler(Handle); EgoEvents <AddedComponent <C12> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C1> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C2> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C3> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C4> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C5> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C6> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C7> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C8> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C9> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C10> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C11> > .AddHandler(Handle); EgoEvents <DestroyedComponent <C12> > .AddHandler(Handle); }
public bool HasComponents <C1>() where C1 : Component { return(mask[ComponentIDs.Get(typeof(C1))]); }