public void GetRangedObject(Object obj, int range, RangedObjectDelegate rangeFunction) { if (!obj.IsInWorld()) { return; } GetCells(obj.XOffset, obj.YOffset, range, cell => { for (int i = 0; i < cell.Objects.Count; ++i) { Object distObject; if ((distObject = cell.Objects[i]) == null) { cell.Objects.RemoveAt(i); i--; } else if (obj.Get2DDistanceToObject(distObject) <= MaxVisibilityRange) { rangeFunction(distObject); } } }); }
public void GetRangedObject(Object Obj, int Range, RangedObjectDelegate RangeFunction) { if (!Obj.IsInWorld()) { return; } GetCells(Obj.XOffset, Obj.YOffset, Range, (CellMgr Cell) => { Object DistObject = null; for (int i = 0; i < Cell._Objects.Count; ++i) { if ((DistObject = Cell._Objects[i]) == null) { Cell._Objects.RemoveAt(i); i--; } else if (Obj.GetDistance(DistObject) <= MAX_VISIBILITY_RANGE) { RangeFunction(DistObject); } } }); }
public void GetRangedObject(Object Obj, int Range, RangedObjectDelegate RangeFunction) { if (!Obj.IsInWorld()) return; GetCells(Obj.XOffset, Obj.YOffset, Range, (CellMgr Cell) => { Object DistObject = null; for(int i=0;i<Cell._Objects.Count;++i) { if ((DistObject = Cell._Objects[i]) == null) { Cell._Objects.RemoveAt(i); i--; } else if (Obj.GetDistance(DistObject) <= MAX_VISIBILITY_RANGE) RangeFunction(DistObject); } }); }