public IEnumerable <Game_Server.Player> QueryPlayers(ILocatableObject objCenter) { var area = GetEntityScreenArea(objCenter); var query = from x in Objects.Values where area.AreaContains(x.Location) && x is Game_Server.Player select x as Game_Server.Player; return(query); }
public IEnumerable <T> QueryBox <T>(ILocatableObject _objCenter, int _size) { var area = new Rectangle(new Point(_objCenter.Location.X - _size, _objCenter.Location.Y - _size), _size * 2, _size * 2); var query = from x in Objects.Values where area.AreaContains(x.Location) && x is T select(T) x; return(query); }
public IEnumerable <T> QueryScreen <T>(ILocatableObject objCenter) { var area = GetEntityScreenArea(objCenter); var query = from x in Objects.Values where area.AreaContains(x.Location) && x is T select(T) x; return(query); }
public bool Insert(ILocatableObject obj) { if (obj == null) { return(false); } if (Objects.ContainsKey(obj.UID)) { return(false); } obj.Map = this; Objects.TryAdd(obj.UID, obj); return(true); }
public bool Remove(ILocatableObject obj, bool updatelocal = true) { if (updatelocal) { if (obj is Entity) { var entity = obj as Entity; entity.SendToScreen(new Packets.Game.GeneralActionPacket() { UID = entity.UID, Action = Enum.DataAction.RemoveEntity }); foreach (var id in entity.VisibleObjects.Keys) { Managers.MapManager.DespawnByUID(entity, id); } } } return(Objects.TryRemove(obj.UID, out obj)); }
public Rectangle GetEntityScreenArea(ILocatableObject objCenter) { return(new Rectangle(new Point(objCenter.Location.X - 18, objCenter.Location.Y - 18), 36, 36)); }