public void AddToZone(PlayerPeer player) { if (m_playersInZone.TryAdd(player.ID, player)) { lock (m_playerArray) { m_playerListIsDirty = true; } } }
public void RemoveFromZone(PlayerPeer player) { PlayerPeer removedPlayer = default(PlayerPeer); if (m_playersInZone.TryRemove(player.ID, out removedPlayer)) { lock (m_playerArray) { m_playerListIsDirty = true; } } }
public Task <IEntity> GetTarget(int id) { return(m_fiber.Enqueue(() => { PlayerPeer player = default(PlayerPeer); NPCInstance npc = default(NPCInstance); IEntity target = default(IEntity); if (m_playersInZone.TryGetValue(id, out player)) { target = (IEntity)player; } else if (m_npcs.TryGetValue(id, out npc)) { target = (IEntity)npc; } return target; }, false)); }