protected override void Update() { base.Update(); for (int i = 0; i < this._collisions.Count; i++) { CollisionEntry entry = this._collisions[i]; if (entry != null) { entry.timer -= Time.deltaTime * this.TimeScale; if ((entry.collider == null) || (entry.timer <= 0f)) { Singleton <EffectManager> .Instance.SetDestroyIndexedEffectPattern(entry.patternIx); this._collisions[i] = null; } else { for (int j = 0; j < entry.effectLs.Count; j++) { entry.effectLs[j].transform.position = this.GetCollisoinPointOnWall(entry.collider.transform); entry.effectLs[j].transform.forward = base.transform.forward; } } } } }
private void CreateOrRefreshCollisionEntry(Collision collision) { for (int i = 0; i < this._collisions.Count; i++) { CollisionEntry entry = this._collisions[i]; if ((entry != null) && (entry.collider == collision.collider)) { entry.timer = 0.5f; return; } } int patternIx = Singleton <EffectManager> .Instance.CreateIndexedEntityEffectPattern(this.CollisionEffectPattern, this.GetCollisoinPointOnWall(collision.collider.transform), base.transform.forward, Vector3.one, this); List <MonoEffect> indexedEntityEffectPattern = Singleton <EffectManager> .Instance.GetIndexedEntityEffectPattern(patternIx); int num3 = this._collisions.SeekAddPosition <CollisionEntry>(); CollisionEntry entry2 = new CollisionEntry { collider = collision.collider, timer = 0.5f, patternIx = patternIx, effectLs = indexedEntityEffectPattern }; this._collisions[num3] = entry2; }
/** * Creates a child rule to this node by applying the rule to its current entries * Open to method name suggestions. */ internal Node ChildByRule(Rule rule) { List <CollisionEntry> passed = new List <CollisionEntry>(); List <CollisionEntry> failed = new List <CollisionEntry>(); CollisionEntry.EvaluateEntries(currentEntries, failed, passed, rule); List <Rule> childRules = new List <Rule>(usedRules) { rule }; headersToIgnore.Add(rule.v1); Node child = new Node(passed, depth + 1, childRules, this, headersToIgnore); if (children == null) { children = new List <Node>() { child } } ; else { children.Add(child); } return(child); }
public void createChildrenFromRule(Rule rule) { List <CollisionEntry> failed = new List <CollisionEntry>(); List <CollisionEntry> passed = new List <CollisionEntry>(); CollisionEntry.EvaluateEntries(currentEntries, failed, passed, rule); if (failed.Count < 1) { return; } currentEntries = null; Rule failedRule = rule.Invert(); List <Rule> failedRules = new List <Rule>(usedRules) { failedRule }; List <Rule> passedRules = new List <Rule>(usedRules) { rule }; children = new List <Node>(); Node c1 = new Node(failed, depth + 1, failedRules, this, this.headersToIgnore); Node c2 = new Node(passed, depth + 1, passedRules, this, this.headersToIgnore); children.Add(c1); children.Add(c2); C4p5.nextIterationNodes.Add(c1); C4p5.nextIterationNodes.Add(c2); }
/// <summary> /// Add a member to the group /// </summary> /// <param name="collider">Collider used to test the collision</param> /// <param name="action">Action to perform when collision occurs. May be null.</param> public void Add(Collider collider, OnCollision action) { CollisionEntry entry = new CollisionEntry(); entry.collider = collider; entry.onCollision = action; m_entries.Add(entry); collider.m_groups.Add(this); }
internal void ApplyAllRules(List <Rule> rules) { List <CollisionEntry> passed; List <CollisionEntry> failed; foreach (Rule rule in rules) { headersToIgnore.Add(rule.v1); passed = new List <CollisionEntry>(); failed = new List <CollisionEntry>(); //Console.WriteLine("Applying rule " + rule.ToString()); CollisionEntry.EvaluateEntries(currentEntries, failed, passed, rule); currentEntries = passed; } }
public void add(GameEntity instance) { CollisionEntry entry = new CollisionEntry(); entry.owner = instance; if(instance is Player){ entry.type = CollisionEntityType.Player; } else if (instance is Cell){ entry.type = CollisionEntityType.Cell; } else if (instance is WinSection || instance is TrashCan){ entry.type = CollisionEntityType.Sensor; } entry.center = instance.GetCenter; entry.radius = instance.GetRadius; collisionEntries.Add(entry); }
public void createChildrenFromEntropy() { if (C4p5.Header_To_Predict == -1) { throw new Exception("You forgot to se the Header to predict"); } //If they are all the same class we are done if (Helper.AllSame(currentEntries, C4p5.Header_To_Predict)) { return; } int Header_To_Split = Helper.AttributeWithBestInfoGain(currentEntries, C4p5.Header_To_Predict); int[] values = Helper.GetValuesOfHeaders(currentEntries)[Header_To_Split]; children = new List <Node>(); foreach (int v in values) { Rule rule = new Rule(Header_To_Split, v, HValType.HeaderCompVal, Operator.Equals); List <CollisionEntry> passed = new List <CollisionEntry>(); List <CollisionEntry> failed = new List <CollisionEntry>(); CollisionEntry.EvaluateEntries(currentEntries, failed, passed, rule); if (passed.Count < 1) { continue; } List <Rule> passedRules = new List <Rule>(usedRules) { rule }; Node n = new Node(passed, depth + 1, passedRules, this, this.headersToIgnore); children.Add(n); C4p5.nextIterationNodes.Add(n); } if (children.Count == 0) { children = null; } return; }
public void Add(CollisionEntry entry) { List<CollisionEntry> entries = typed_entries [(int)entry.type]; entries.Add (entry); }
public void Add(CollisionEntityType type, GameEntity owner, GetCenterDelegate center, GetRadiusDelegate radius) { CollisionEntry entry = new CollisionEntry () { type = type, owner = owner, center = center, radius = radius }; List<CollisionEntry> entries = typed_entries [(int)type]; entries.Add (entry); }
public void Add(CollisionEntityType type, GameEntity owner, Node collider, GetCenterDelegate center, GetRadiusDelegate radius) { CollisionEntry entry = new CollisionEntry() { type = type, owner = owner, collider = collider, center = center, radius = radius }; Add (entry); }