17
17
from pytiled_parser .tiled_map import TiledMap , TilesetDict
18
18
from pytiled_parser .util import check_format , parse_color
19
19
20
- RawTilesetMapping = TypedDict ("RawTilesetMapping" , {
21
- "firstgid" : int ,
22
- "source" : str
23
- })
24
-
25
-
26
- RawTiledMap = TypedDict ( "RawTiledMap" , {
27
- "backgroundcolor " : str ,
28
- "compressionlevel " : int ,
29
- "height " : int ,
30
- "hexsidelength " : int ,
31
- "infinite " : bool ,
32
- "layers " : List [ RawLayer ] ,
33
- "nextlayerid " : int ,
34
- "nextobjectid " : int ,
35
- "orientation " : str ,
36
- "properties " : List [ RawProperty ] ,
37
- "renderorder " : str ,
38
- "staggeraxis " : str ,
39
- "staggerindex " : str ,
40
- "tiledversion " : str ,
41
- "tileheight " : int ,
42
- "tilesets " : List [ RawTilesetMapping ] ,
43
- "tilewidth " : int ,
44
- "class " : str ,
45
- "type " : str ,
46
- "version " : Union [ str , float ] ,
47
- "width" : int
48
- } )
20
+ RawTilesetMapping = TypedDict ("RawTilesetMapping" , {"firstgid" : int , "source" : str })
21
+
22
+
23
+ RawTiledMap = TypedDict (
24
+ "RawTiledMap" ,
25
+ {
26
+ "backgroundcolor" : str ,
27
+ "compressionlevel " : int ,
28
+ "height " : int ,
29
+ "hexsidelength " : int ,
30
+ "infinite " : bool ,
31
+ "layers " : List [ RawLayer ] ,
32
+ "nextlayerid " : int ,
33
+ "nextobjectid " : int ,
34
+ "orientation " : str ,
35
+ "properties " : List [ RawProperty ] ,
36
+ "renderorder " : str ,
37
+ "staggeraxis " : str ,
38
+ "staggerindex " : str ,
39
+ "tiledversion " : str ,
40
+ "tileheight " : int ,
41
+ "tilesets " : List [ RawTilesetMapping ] ,
42
+ "tilewidth " : int ,
43
+ "class " : str ,
44
+ "type " : str ,
45
+ "version " : Union [ str , float ] ,
46
+ "width " : int ,
47
+ },
48
+ )
49
49
RawTiledMap .__doc__ = """
50
50
The keys and their types that appear in a Tiled JSON Map Object.
51
51
@@ -102,7 +102,7 @@ def parse(file: Path) -> TiledMap:
102
102
raw_tileset , raw_tileset ["firstgid" ]
103
103
)
104
104
105
- if isinstance (raw_tiled_map ["version" ], float ): # pragma: no cover
105
+ if isinstance (raw_tiled_map ["version" ], float ): # pragma: no cover
106
106
version = str (raw_tiled_map ["version" ])
107
107
else :
108
108
version = raw_tiled_map ["version" ]
@@ -128,30 +128,31 @@ def parse(file: Path) -> TiledMap:
128
128
for my_layer in layers :
129
129
for tiled_object in my_layer .tiled_objects : # type: ignore
130
130
if hasattr (tiled_object , "new_tileset" ):
131
- already_loaded = None
132
- for val in map_ .tilesets .values ():
133
- if val .name == tiled_object .new_tileset ["name" ]:
134
- already_loaded = val
135
- break
136
-
137
- if not already_loaded :
138
- highest_firstgid = max (map_ .tilesets .keys ())
139
- last_tileset_count = map_ .tilesets [highest_firstgid ].tile_count
140
- new_firstgid = highest_firstgid + last_tileset_count
141
- map_ .tilesets [new_firstgid ] = parse_json_tileset (
142
- tiled_object .new_tileset ,
143
- new_firstgid ,
144
- tiled_object .new_tileset_path ,
145
- )
146
- tiled_object .gid = tiled_object .gid + (new_firstgid - 1 )
131
+ if tiled_object .new_tileset is not None :
132
+ already_loaded = None
133
+ for val in map_ .tilesets .values ():
134
+ if val .name == tiled_object .new_tileset ["name" ]:
135
+ already_loaded = val
136
+ break
137
+
138
+ if not already_loaded :
139
+ highest_firstgid = max (map_ .tilesets .keys ())
140
+ last_tileset_count = map_ .tilesets [highest_firstgid ].tile_count
141
+ new_firstgid = highest_firstgid + last_tileset_count
142
+ map_ .tilesets [new_firstgid ] = parse_json_tileset (
143
+ tiled_object .new_tileset ,
144
+ new_firstgid ,
145
+ tiled_object .new_tileset_path ,
146
+ )
147
+ tiled_object .gid = tiled_object .gid + (new_firstgid - 1 )
147
148
148
- else :
149
- tiled_object .gid = tiled_object .gid + (
150
- already_loaded .firstgid - 1
151
- )
149
+ else :
150
+ tiled_object .gid = tiled_object .gid + (
151
+ already_loaded .firstgid - 1
152
+ )
152
153
153
- tiled_object .new_tileset = None
154
- tiled_object .new_tileset_path = None
154
+ tiled_object .new_tileset = None
155
+ tiled_object .new_tileset_path = None
155
156
156
157
if raw_tiled_map .get ("class" ) is not None :
157
158
map_ .class_ = raw_tiled_map ["class" ]
0 commit comments