/// <summary>
		/// Usuwa zasób z gry.
		/// Musimy zapewnić poprawny przebieg encji, więc dodajemy do kolejki oczekujących na usunięcie.
		/// </summary>
		/// <param name="resource">Zasób.</param>
		public void Gather(IResourceOnMap resource, IUnit by)
		{
			this.ToRemove.Add(resource);
		}
		/// <summary>
		/// Dodaje zasób do gry.
		/// </summary>
		/// <param name="resource">Zasób.</param>
		public void Add(IResourceOnMap resource)
		{
			resource.GameState = this;
			resource.ResourceId = this.Ids[2]++;
			this.Entities.Add(resource);
			this.Game.ResourceAdded(resource);
		}
		/// <summary>
		/// Dodaje zasób do gry.
		/// </summary>
		/// <param name="resource">Zasób.</param>
		public void Add(IResourceOnMap resource)
		{
			resource.GameState = this;
			this.Entities.Add(resource);
		}
		/// <summary>
		/// Metoda-zdarzenie odpowiedzialna za kolizje jednostki z zasobem na mapie.
		/// </summary>
		/// <param name="unit">Jednostka.</param>
		/// <param name="resource">Zasób.</param>
		public bool HandleCollision(IUnit unit, IResourceOnMap resource)
		{
			return false;
		}
		/// <summary>
		/// Wywoływane przy usunięciu zasobu przez <see cref="IGameState"/>.
		/// </summary>
		/// <param name="res"></param>
		public void ResourceRemoved(IResourceOnMap res, IUnit by)
		{
			this.Server.Clients.SendToAll(new Messages.ResourceGathered(res.ResourceId, by.Owner.Type == PlayerType.First ? (byte)0 : (byte)1, by.UnitId).ToMessage());
		}
		/// <summary>
		/// Wywoływane przy dodaniu nowego zasobu przez <see cref="IGameState"/>.
		/// </summary>
		/// <param name="res"></param>
		public void ResourceAdded(IResourceOnMap res)
		{
			this.Server.Clients.SendToAll(new Messages.ResourceAdded(res.Id, res.ResourceId, res.Value, res.Position.X).ToMessage());
		}
		/// <summary>
		/// Dodaje zasób do gry.
		/// </summary>
		/// <param name="resource">Zasób.</param>
		public void Add(IResourceOnMap resource)
		{
		}
		/// <summary>
		/// Usuwa zasób z gry.
		/// Musimy zapewnić poprawny przebieg encji, więc dodajemy do kolejki oczekujących na usunięcie.
		/// </summary>
		/// <param name="resource">Zasób.</param>
		public void Gather(IResourceOnMap resource, IUnit by)
		{
		}