|  | @@ -29,6 +29,11 @@ class TMXMap(object):
 | 
	
		
			
			| 29 | 29 |      xyz_tile_class = XYZTile
 | 
	
		
			
			| 30 | 30 |      transform_zero_y_to_bottom = True
 | 
	
		
			
			| 31 | 31 |  
 | 
	
		
			
			|  | 32 | +    """
 | 
	
		
			
			|  | 33 | +    Define default tileset name for layer. key: layer name, value: tileset name
 | 
	
		
			
			|  | 34 | +    """
 | 
	
		
			
			|  | 35 | +    default_layer_tilesets = {}  # type: typing.Dict[str, str]
 | 
	
		
			
			|  | 36 | +
 | 
	
		
			
			| 32 | 37 |      def __init__(self, map_file_path: str) -> None:
 | 
	
		
			
			| 33 | 38 |          self.tmx_map = tmx.TileMap.load(map_file_path)
 | 
	
		
			
			| 34 | 39 |          self.tmx_layers = {}  # type: typing.Dict[str, tmx.Layer]
 | 
	
	
		
			
			|  | @@ -48,8 +53,18 @@ class TMXMap(object):
 | 
	
		
			
			| 48 | 53 |      def get_default_tileset(self) -> tmx.Tileset:
 | 
	
		
			
			| 49 | 54 |          return list(self.tmx_tilesets.values())[0]
 | 
	
		
			
			| 50 | 55 |  
 | 
	
		
			
			| 51 |  | -    def get_default_tile(self) -> XYZTile:
 | 
	
		
			
			| 52 |  | -        tileset = self.get_default_tileset()
 | 
	
		
			
			|  | 56 | +    def get_default_tile(self, layer_name: str=None) -> XYZTile:
 | 
	
		
			
			|  | 57 | +        """
 | 
	
		
			
			|  | 58 | +        Return thirst tile of default tileset or thirst tile of given layer default tileset.
 | 
	
		
			
			|  | 59 | +        :param layer: if layer given, thirst tile of it's default tileset will be returned
 | 
	
		
			
			|  | 60 | +        :return: a Tile
 | 
	
		
			
			|  | 61 | +        """
 | 
	
		
			
			|  | 62 | +        if layer_name and layer_name in self.default_layer_tilesets:
 | 
	
		
			
			|  | 63 | +            tileset_name = self.default_layer_tilesets[layer_name]
 | 
	
		
			
			|  | 64 | +            tileset = self.tileset(tileset_name)
 | 
	
		
			
			|  | 65 | +        else:
 | 
	
		
			
			|  | 66 | +            tileset = self.get_default_tileset()
 | 
	
		
			
			|  | 67 | +
 | 
	
		
			
			| 53 | 68 |          return self.xyz_tile_class(tileset.tiles[0])
 | 
	
		
			
			| 54 | 69 |  
 | 
	
		
			
			| 55 | 70 |      def _load(self) -> None:
 | 
	
	
		
			
			|  | @@ -89,10 +104,10 @@ class TMXMap(object):
 | 
	
		
			
			| 89 | 104 |                  position_key = '{}.{}'.format(x, y)
 | 
	
		
			
			| 90 | 105 |  
 | 
	
		
			
			| 91 | 106 |                  if not layer_tile.gid:
 | 
	
		
			
			| 92 |  | -                    tile = self.get_default_tile()
 | 
	
		
			
			|  | 107 | +                    tile = self.get_default_tile(layer_name=layer_name)
 | 
	
		
			
			| 93 | 108 |                  elif not layer_tile.gid in self.tmx_tiles:
 | 
	
		
			
			| 94 | 109 |                      # tile = UnconstructedTile()
 | 
	
		
			
			| 95 |  | -                    tile = self.get_default_tile()
 | 
	
		
			
			|  | 110 | +                    tile = self.get_default_tile(layer_name=layer_name)
 | 
	
		
			
			| 96 | 111 |                  else:
 | 
	
		
			
			| 97 | 112 |                      tile = self.tmx_tiles[layer_tile.gid]
 | 
	
		
			
			| 98 | 113 |  
 |