public boolean Step(int direction)
	{
		// Get the offset
		int offset_x = Directions.getOffsetX(direction);
		int offset_y = Directions.getOffsetY(direction);
		
		// Get the new tile by adding the offset to the current location
		int other_x = this.getX() + offset_x;
		int other_y = this.getY() + offset_y;
		
		// TODO: properly handle z coordinates(and possibly directions)
		Tile move_to = Server.current.getTile(other_x, other_y, 0);
		
		// If the tile doesn't exist, failure
		if(move_to == null)
		{
			return false;
		}
		
		// If the tile does exist, see if we can move into it.
		return this.Move(move_to);
	}