예제 #1
0
        public void GetRangedObject(Object obj, int range, RangedObjectDelegate rangeFunction)
        {
            if (!obj.IsInWorld())
            {
                return;
            }

            GetCells(obj.XOffset, obj.YOffset, range, cell =>
            {
                for (var 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);
                    }
                }
            });
        }