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>() )); }
public EgoBundle(EgoComponent egoComponent, C1 component1, C2 component2, C3 component3) { this.egoComponent = egoComponent; this.component1 = component1; this.component2 = component2; this.component3 = component3; }
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); }
public static void DestroyGameObject(EgoComponent egoComponent) { var gameObject = egoComponent.gameObject; EgoEvents <DestroyedGameObject> .AddEvent(new DestroyedGameObject( gameObject, egoComponent )); EgoCleanUp.Destroy(egoComponent.gameObject); }
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 )); }
protected void CreateBundle(EgoComponent egoComponent) { if (Ego.CanUpdate(_mask, egoComponent.mask)) { var component1 = egoComponent.GetComponent <C1>(); CreateBundle(egoComponent, component1); } }
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); }
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); } }
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; }
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); } }
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); } }
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>() )); }
public void RemoveBundles(EgoComponent egoComponent) { if (egoComponent == null) { return; } RemoveChildBundles(this, egoComponent); RemoveParentBundles(this, egoComponent); rootBundles.Remove(egoComponent); }
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); }
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); } }
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); }
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); }
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); }
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); } }
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; }
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); }
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); } }
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>() )); }
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); } } }
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); }
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); } } }
public AddedGameObject( GameObject gameObject, EgoComponent egoComponent ) { this.gameObject = gameObject; this.egoComponent = egoComponent; }
public CollisionEnterEvent( EgoComponent egoComponent1, EgoComponent egoComponent2, Collision collision ) { this.egoComponent1 = egoComponent1; this.egoComponent2 = egoComponent2; this.collision = collision; }
public TriggerStay2DEvent( EgoComponent egoComponent1, EgoComponent egoComponent2, Collider2D collider ) { this.egoComponent1 = egoComponent1; this.egoComponent2 = egoComponent2; this.collider = collider; }
public CollisionStay2DEvent( EgoComponent egoComponent1, EgoComponent egoComponent2, Collision2D collision ) { this.egoComponent1 = egoComponent1; this.egoComponent2 = egoComponent2; this.collision = collision; }
public virtual void CreateBundles(EgoComponent[] egoComponents) { }
public TriggerExitEvent( EgoComponent egoComponent1, EgoComponent egoComponent2, Collider collider ) { this.egoComponent1 = egoComponent1; this.egoComponent2 = egoComponent2; this.collider = collider; }
void Awake() { egoComponent = GetComponent<EgoComponent>(); }