@Override
	public final void Paint(Graphics PanelGraphics)
	{
		Graphics2D Graphics = this.GameImage.createGraphics();
		GeneralHelper.DrawBackground(Graphics, this.GetPanelWidth(), this.GetPanelHeight(), this.GameSize, this.GameStopped);
		if (!this.GameStopped)
		{
			if (this.GameStarted)
			{
				if (this.Direction == GameDirection.UP) this.Location.MinY();
				if (this.Direction == GameDirection.RIGHT) this.Location.PlusX();
				if (this.Direction == GameDirection.DOWN) this.Location.PlusY();
				if (this.Direction == GameDirection.LEFT) this.Location.MinX();
				if (this.GameField.IsOutside(this.Location)) this.Location = this.GameField.GetReversedVector(this.Location);
				this.DrawImage(Graphics, this.Location);
				this.PushData(new SneekDataPlayer(new NetworkVectorPlayer(this.Location)));
			}
		}
		else
		{
			if (!this.GameOver)
			{
				new Thread(new ServerGameOverFrame(this.Winner, this)).start();
				this.GameOver = true;
			}
			this.DrawRandomImage(Graphics, ImageHelper.GetCoolFace(), 50, 50);
		}
		PanelGraphics.drawImage(this.GameImage, 0, 0, this.GetPanelWidth(), this.GetPanelHeight(), null);
	}