public FieldObject FindForward(FieldObject self, OverlapEventType overlapEvent) { SearchCondition condition = delegate(FieldObject sample, ref bool stopSearch) { if (sample.ToLeft != self.ToLeft) { if (sample.overlapEvent == overlapEvent) { return true; } } return false; }; return Find(self, condition, self.ToLeft); }
public FieldObject(OverlapEventType overlapEvent, float width, float height, WorldAnchor anchor) : base(width, height, anchor) { this.overlapEvent = overlapEvent; vectorControl = new VectorControl(this); }
public IEnumerable<FieldObject> FindContacts(FieldObject self, OverlapEventType overlapEvent) { SearchCondition condition = delegate(FieldObject sample, ref bool stopSearch) { if (sample.PosX == self.PosX) { if (sample.ToLeft != self.ToLeft) { if (sample.overlapEvent == overlapEvent) { return true; } } } else { stopSearch = true; } return false; }; List<FieldObject> ret = new List<FieldObject>(); ret.AddRange(FindAll(self, condition, true)); ret.AddRange(FindAll(self, condition, false)); return ret; }