public static EgoComponent GenerateGun()
        {
            EntityBuilder entity = EntityBuilder.Generate().WithPhysics(typeof(BoxCollider2D), .5f).WithGraphics("Images/gun");
            Interactive   c      = Ego.AddComponent <Interactive>(entity);

            c.InteractAction = e => EgoEvents <AttachEvent> .AddEvent(new AttachEvent(c.GetComponent <EgoComponent>(), e));

            Ego.AddComponent <Mountpoint>(entity);
            Useable u = Ego.AddComponent <Useable>(entity);

            u.UseAction = e => {
                Transform transform = u.transform;
                double    theta     = transform.rotation.eulerAngles.z * Mathf.Deg2Rad;
                Vector2   force     = new Vector2((float)Math.Cos(theta), (float)Math.Sin(theta));
                force.Normalize();
                // generate new projectile, add motion in direction at speed

                EgoComponent bullet = Ego.AddGameObject(GenerateBullet().gameObject);
                bullet.transform.rotation = transform.rotation;
                bullet.transform.position = transform.position;
                bullet.gameObject.SetActive(true);
                EgoEvents <SetVelocityByEvent> .AddEvent(new SetVelocityByEvent(bullet, force));
            };
            return(entity);
        }
 protected override EgoBundle CreateBundle(EgoComponent egoComponent)
 {
     return(new EgoBundle <C1, C2>(
                egoComponent.GetComponent <C1>(),
                egoComponent.GetComponent <C2>()
                ));
 }
Exemplo n.º 3
0
 public EgoBundle(EgoComponent egoComponent, C1 component1, C2 component2, C3 component3)
 {
     this.egoComponent = egoComponent;
     this.component1   = component1;
     this.component2   = component2;
     this.component3   = component3;
 }
Exemplo n.º 4
0
    public void SetParent(EgoComponent newParent, EgoComponent child, bool worldPositionStays)
    {
        if (child.parent == newParent)
        {
            return;
        }

        var currentParent = child.parent;

        if (currentParent != null)
        {
            RemoveBundles(currentParent);
        }

        if (newParent != null)
        {
            child.transform.SetParent(newParent.transform, worldPositionStays);
        }
        else
        {
            child.transform.SetParent(null, worldPositionStays);
        }

        CreateBundles(child);
    }
Exemplo n.º 5
0
    public static void DestroyGameObject(EgoComponent egoComponent)
    {
        var gameObject = egoComponent.gameObject;

        EgoEvents <DestroyedGameObject> .AddEvent(new DestroyedGameObject( gameObject, egoComponent ));

        EgoCleanUp.Destroy(egoComponent.gameObject);
    }
Exemplo n.º 6
0
 public static void SetParent(EgoComponent parent, EgoComponent child)
 {
     if (child == null)
     {
         Debug.LogWarning("Cannot set the Parent of a null Child");
     }
     EgoEvents <SetParent> .AddEvent(new SetParent( parent, child ));
 }
Exemplo n.º 7
0
 protected void CreateBundle(EgoComponent egoComponent)
 {
     if (Ego.CanUpdate(_mask, egoComponent.mask))
     {
         var component1 = egoComponent.GetComponent <C1>();
         CreateBundle(egoComponent, component1);
     }
 }
Exemplo n.º 8
0
 public CheckEndOfLineEvent(EgoComponent carComponent)
 {
     //
     // Position of the cars as they approach the End of Line
     // The event alerts the End of line system
     //
     this.car = carComponent;
 }
 public override CompletionState Act(EgoComponent root)
 {
     if (Input.GetButtonDown(Button))
     {
         return(Child.Act(root));
     }
     return(CompletionState.FAIL);
 }
Exemplo n.º 10
0
 protected void CreateBundle(EgoComponent egoComponent, C2 component2)
 {
     if (Ego.CanUpdate(_mask, egoComponent.mask))
     {
         var component1 = egoComponent.GetComponent <C1>();
         var component3 = egoComponent.GetComponent <C3>();
         CreateBundle(egoComponent, component1, component2, component3);
     }
 }
Exemplo n.º 11
0
 public EgoBundle(EgoComponent egoComponent, C1 component1, C2 component2, C3 component3, C4 component4, C5 component5)
 {
     this.egoComponent = egoComponent;
     this.component1   = component1;
     this.component2   = component2;
     this.component3   = component3;
     this.component4   = component4;
     this.component5   = component5;
 }
Exemplo n.º 12
0
 protected void CreateBundle(EgoComponent egoComponent, C3 component3)
 {
     if (Ego.CanUpdate(_mask, egoComponent.mask))
     {
         var component1 = egoComponent.GetComponent <C1>();
         var component2 = egoComponent.GetComponent <C2>();
         var component4 = egoComponent.GetComponent <C4>();
         CreateBundle(egoComponent, component1, component2, component3, component4);
     }
 }
Exemplo n.º 13
0
 protected void CreateBundle(EgoComponent egoComponent, C1 component1)
 {
     if (Ego.CanUpdate(_mask, egoComponent.mask))
     {
         var component2 = egoComponent.GetComponent <C2>();
         var component3 = egoComponent.GetComponent <C3>();
         var component4 = egoComponent.GetComponent <C4>();
         var component5 = egoComponent.GetComponent <C5>();
         CreateBundle(egoComponent, component1, component2, component3, component4, component5);
     }
 }
Exemplo n.º 14
0
 protected override EgoBundle CreateBundle(EgoComponent egoComponent)
 {
     return(new EgoBundle <C1, C2, C3, C4, C5, C6>(
                egoComponent.GetComponent <C1>(),
                egoComponent.GetComponent <C2>(),
                egoComponent.GetComponent <C3>(),
                egoComponent.GetComponent <C4>(),
                egoComponent.GetComponent <C5>(),
                egoComponent.GetComponent <C6>()
                ));
 }
Exemplo n.º 15
0
    public void RemoveBundles(EgoComponent egoComponent)
    {
        if (egoComponent == null)
        {
            return;
        }

        RemoveChildBundles(this, egoComponent);
        RemoveParentBundles(this, egoComponent);
        rootBundles.Remove(egoComponent);
    }
Exemplo n.º 16
0
 public EgoBundle(EgoComponent egoComponent, C1 component1, C2 component2, C3 component3, C4 component4, C5 component5, C6 component6, C7 component7)
 {
     this.egoComponent = egoComponent;
     this.component1   = component1;
     this.component2   = component2;
     this.component3   = component3;
     this.component4   = component4;
     this.component5   = component5;
     this.component6   = component6;
     this.component7   = component7;
 }
    void DealWithCollision(EgoComponent obstacle, EgoComponent vulnerable)
    {
        SnakePartComponent spc;

        if (vulnerable.TryGetComponents <SnakePartComponent> (out spc))
        {
            spc.childPart.GetComponent <MovementComponent> ().nextMovement    = Vector3.zero;
            spc.childPart.GetComponent <MovementComponent> ().currentMovement = Vector3.zero;
        }
        Ego.DestroyGameObject(vulnerable);
    }
Exemplo n.º 18
0
 protected void CreateBundle(EgoComponent egoComponent, C4 component4)
 {
     if (Ego.CanUpdate(_mask, egoComponent.mask))
     {
         var component1 = egoComponent.GetComponent <C1>();
         var component2 = egoComponent.GetComponent <C2>();
         var component3 = egoComponent.GetComponent <C3>();
         var component5 = egoComponent.GetComponent <C5>();
         var component6 = egoComponent.GetComponent <C6>();
         CreateBundle(egoComponent, component1, component2, component3, component4, component5, component6);
     }
 }
Exemplo n.º 19
0
        public override CompletionState Act(EgoComponent root)
        {
            Hardpoint hardpoint;

            if (root.TryGetComponents(out hardpoint) && hardpoint.Attached != null)
            {
                EgoEvents <DetachEvent> .AddEvent(new DetachEvent(hardpoint.Attached));

                return(CompletionState.SUCCESS);
            }
            return(CompletionState.FAIL);
        }
Exemplo n.º 20
0
        public override CompletionState Act(EgoComponent root)
        {
            bool successFlag = false;

            foreach (TreeNode child in Children)
            {
                if (child.Act(root) == CompletionState.SUCCESS)
                {
                    successFlag = true;
                }
            }
            return(successFlag ? CompletionState.SUCCESS : CompletionState.FAIL);
        }
Exemplo n.º 21
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);
    }
Exemplo n.º 22
0
 protected void CreateBundle(EgoComponent egoComponent, C6 component6)
 {
     if (Ego.CanUpdate(_mask, egoComponent.mask))
     {
         var component1 = egoComponent.GetComponent <C1>();
         var component2 = egoComponent.GetComponent <C2>();
         var component3 = egoComponent.GetComponent <C3>();
         var component4 = egoComponent.GetComponent <C4>();
         var component5 = egoComponent.GetComponent <C5>();
         var component7 = egoComponent.GetComponent <C7>();
         var component8 = egoComponent.GetComponent <C8>();
         CreateBundle(egoComponent, component1, component2, component3, component4, component5, component6, component7, component8);
     }
 }
Exemplo n.º 23
0
 public EgoBundle(EgoComponent egoComponent, C1 component1, C2 component2, C3 component3, C4 component4, C5 component5, C6 component6, C7 component7, C8 component8, C9 component9, C10 component10)
 {
     this.egoComponent = egoComponent;
     this.component1   = component1;
     this.component2   = component2;
     this.component3   = component3;
     this.component4   = component4;
     this.component5   = component5;
     this.component6   = component6;
     this.component7   = component7;
     this.component8   = component8;
     this.component9   = component9;
     this.component10  = component10;
 }
Exemplo n.º 24
0
        public override CompletionState Act(EgoComponent root)
        {
            // TODO: Generify for use by non-player entities
            // Add Focused component to detail object entity is currently considering
            Vector2      cursorPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            RaycastHit2D clicked   = Physics2D.Raycast(cursorPos, Vector2.zero, 0f);

            if (clicked.collider != null && Mathf.Abs((root.transform.position - clicked.collider.transform.position).magnitude) < 5)
            {
                EgoEvents <InteractEvent> .AddEvent(new InteractEvent(root, clicked.transform.GetComponent <EgoComponent>()));

                return(CompletionState.SUCCESS);
            }
            return(CompletionState.FAIL);
        }
Exemplo n.º 25
0
 protected void CreateBundle(EgoComponent egoComponent, C8 component8)
 {
     if (Ego.CanUpdate(_mask, egoComponent.mask))
     {
         var component1  = egoComponent.GetComponent <C1>();
         var component2  = egoComponent.GetComponent <C2>();
         var component3  = egoComponent.GetComponent <C3>();
         var component4  = egoComponent.GetComponent <C4>();
         var component5  = egoComponent.GetComponent <C5>();
         var component6  = egoComponent.GetComponent <C6>();
         var component7  = egoComponent.GetComponent <C7>();
         var component9  = egoComponent.GetComponent <C9>();
         var component10 = egoComponent.GetComponent <C10>();
         CreateBundle(egoComponent, component1, component2, component3, component4, component5, component6, component7, component8, component9, component10);
     }
 }
Exemplo n.º 26
0
    void RemoveParentBundles(EgoConstraint childConstraint, EgoComponent childEgoComponent)
    {
        var parentConstraint   = childConstraint.parentConstraint;
        var parentEgoComponent = childEgoComponent.parent;

        if (parentConstraint != null && parentEgoComponent != null && parentConstraint.childBundles.ContainsKey(parentEgoComponent))
        {
            parentConstraint.childBundles[parentEgoComponent].Remove(childEgoComponent);
            if (parentConstraint.childBundles[parentEgoComponent].Count <= 0)
            {
                parentConstraint.childBundles.Remove(parentEgoComponent);
            }

            RemoveParentBundles(parentConstraint, parentEgoComponent);
        }
    }
 protected override EgoBundle CreateBundle(EgoComponent egoComponent)
 {
     return(new EgoBundle <C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12>(
                egoComponent.GetComponent <C1>(),
                egoComponent.GetComponent <C2>(),
                egoComponent.GetComponent <C3>(),
                egoComponent.GetComponent <C4>(),
                egoComponent.GetComponent <C5>(),
                egoComponent.GetComponent <C6>(),
                egoComponent.GetComponent <C7>(),
                egoComponent.GetComponent <C8>(),
                egoComponent.GetComponent <C9>(),
                egoComponent.GetComponent <C10>(),
                egoComponent.GetComponent <C11>(),
                egoComponent.GetComponent <C12>()
                ));
 }
Exemplo n.º 28
0
    void DealWithCollision(EgoComponent roomswitch, EgoComponent agent)
    {
        RoomSwitchComponent      rsc;
        RoomSwitchAgentComponent rsca;

        if (roomswitch.TryGetComponents <RoomSwitchComponent> (out rsc) && agent.TryGetComponents <RoomSwitchAgentComponent> (out rsca))
        {
            if (rsca.autoCam.Target == rsc.room1)
            {
                rsca.autoCam.SetTarget(rsc.room2);
            }
            else
            {
                rsca.autoCam.SetTarget(rsc.room1);
            }
        }
    }
Exemplo n.º 29
0
    public static bool DestroyComponent <C>(EgoComponent egoComponent) where C : Component
    {
        C component = null;

        if (!egoComponent.TryGetComponents <C>(out component))
        {
            return(false);
        }

        var e = new DestroyedComponent <C>(component, egoComponent);

        EgoEvents <DestroyedComponent <C> > .AddEvent(e);

        EgoCleanUp <C> .Destroy(egoComponent, component);

        return(true);
    }
Exemplo n.º 30
0
 void RemoveChildBundles(EgoConstraint constraint, EgoComponent egoComponent)
 {
     if (constraint.childBundles.ContainsKey(egoComponent))
     {
         if (constraint.childConstraint != null)
         {
             var lookup = constraint.childBundles[egoComponent];
             foreach (var childEgoComponent in lookup.Keys)
             {
                 RemoveChildBundles(constraint.childConstraint, childEgoComponent);
             }
             lookup.Clear();
         }
         else
         {
             constraint.childBundles.Remove(egoComponent);
         }
     }
 }
Exemplo n.º 31
0
 public AddedGameObject( GameObject gameObject, EgoComponent egoComponent )
 {
     this.gameObject = gameObject;
     this.egoComponent = egoComponent;
 }
Exemplo n.º 32
0
 public CollisionEnterEvent( EgoComponent egoComponent1, EgoComponent egoComponent2, Collision collision )
 {
     this.egoComponent1 = egoComponent1;
     this.egoComponent2 = egoComponent2;
     this.collision = collision;
 }
Exemplo n.º 33
0
 public TriggerStay2DEvent( EgoComponent egoComponent1, EgoComponent egoComponent2, Collider2D collider )
 {
     this.egoComponent1 = egoComponent1;
     this.egoComponent2 = egoComponent2;
     this.collider = collider;
 }
Exemplo n.º 34
0
 public CollisionStay2DEvent( EgoComponent egoComponent1, EgoComponent egoComponent2, Collision2D collision )
 {
     this.egoComponent1 = egoComponent1;
     this.egoComponent2 = egoComponent2;
     this.collision = collision;
 }
Exemplo n.º 35
0
 public virtual void CreateBundles(EgoComponent[] egoComponents)
 {
 }
Exemplo n.º 36
0
 public TriggerExitEvent( EgoComponent egoComponent1, EgoComponent egoComponent2, Collider collider )
 {
     this.egoComponent1 = egoComponent1;
     this.egoComponent2 = egoComponent2;
     this.collider = collider;
 }
Exemplo n.º 37
0
 void Awake()
 {
     egoComponent = GetComponent<EgoComponent>();
 }