示例#1
0
        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);
                    }
                }
            });
        }
示例#2
0
        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);
                    }
                }
            });
        }
示例#3
0
        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);
                }
            });
        }