public void playerTick()
	{
		while (action > 0)
		{
			if (queue != null)
			{
				//System.out.println(queue);
				queueTurns--;
				if (queueTurns <= 0)
				{
					if (queue.equals("Road"))
						location.road = true;
					else
					{
						location.grid.addUnit(EntityData.get(queue), owner, location.row, location.col);
						queueTurns = 0; //just to be sure
						queue = null;
						//action = 0;
					}
				}
				action--;
			}
			else if (roadQueue.size() > 0)
			{
				if (location.equals(roadQueue.get(0)))
				{
					EntityData.queueTileImprovement(this, "Road");
				}
				else
				{
					if (queueTiles.size() > 0)
						super.waddle();
					else
						super.waddleToExact(roadQueue.get(0).row, roadQueue.get(0).col);
				}
			}
			else if (queueTiles.size() > 0)
			{
				//location.grid.moveTo(this, queueTiles.get(0).row, queueTiles.get(0).col);
				super.recordPos();
				passiveWaddle(queueTiles.get(queueTiles.size()-1).row - location.row, queueTiles.get(queueTiles.size()-1).col - location.col);
				if (moved())
				{
					queueTiles.remove(queueTiles.size()-1);
					//action--;
				}
				else
				{
					queueTiles.clear();
				}
			}
			else
			{
				action--;
			}
		}
	}