public bool HasComponents <C1, C2>()
     where C1 : Component
     where C2 : Component
 {
     return(mask[ComponentIDs.Get(typeof(C1))] &&
            mask[ComponentIDs.Get(typeof(C2))]);
 }
Пример #2
0
    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));
    }
Пример #3
0
    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);
    }
Пример #4
0
        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;
        }
    }
Пример #6
0
    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))]);
 }
Пример #8
0
    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))]);
 }