33from glob import glob
44
55
6- def convert (dir ):
7- data = _grabdata (dir )
8- ret = {
9- 'blocks' : _by_id (data ['blocks' ]),
10- 'blocks_name' : _by_name (data ['blocks' ]),
11- 'blocks_list' : data ['blocks' ],
12- 'items' : _by_id (data ['items' ]),
13- 'items_name' : _by_name (data ['items' ]),
14- 'items_list' : data ['items' ],
15- 'biomes' : _by_id (data ['biomes' ]),
16- 'biomes_list' : data ['biomes' ],
17- 'recipes' : data ['recipes' ],
18- 'instruments' : _by_id (data ['instruments' ]),
19- 'instruments_list' : data ['instruments' ],
20- 'materials' : data ['materials' ],
21- 'mobs' : _by_id (_filter ('type' , 'mob' , data ['entities' ])),
22- 'objects' : _by_id (_filter ('type' , 'object' , data ['entities' ])),
23- 'entities_name' : _by_name (data ['entities' ]),
24- 'entities_list' : data ['entities' ],
25- 'protocol' : data ['protocol' ],
26- 'windows' : _by_id (data ['windows' ]),
27- 'windows_name' : _by_name (data ['windows' ]),
28- 'windows_list' : data ['windows' ],
29- 'effects' : _by_id (data ['effects' ]),
30- 'effects_name' : _by_name (data ['effects' ]),
31- 'effects_list' : data ['effects' ],
32- 'version' : data ['version' ]
33- }
6+ def convert (_dir , version ):
7+ fp = open (os .path .join (_dir , 'dataPaths.json' ))
8+ datapaths = json .load (fp )
9+ fp .close ()
10+ data = _grabdata (_dir , datapaths ['pc' ][version ])
11+ ret = {}
12+ if 'blocks' in data :
13+ ret .update ({
14+ 'blocks' : _by_id (data ['blocks' ]),
15+ 'blocks_name' : _by_name (data ['blocks' ]),
16+ 'blocks_list' : data ['blocks' ],
17+ })
18+ if 'items' in data :
19+ ret .update ({
20+ 'items' : _by_id (data ['items' ]),
21+ 'items_name' : _by_name (data ['items' ]),
22+ 'items_list' : data ['items' ],
23+ })
24+ if 'biomes' in data :
25+ ret .update ({
26+ 'biomes' : _by_id (data ['biomes' ]),
27+ 'biomes_list' : data ['biomes' ],
28+ })
29+ if 'recipes' in data :
30+ ret .update ({
31+ 'recipes' : data ['recipes' ],
32+ })
33+ if 'instruments' in data :
34+ ret .update ({
35+ 'instruments' : _by_id (data ['instruments' ]),
36+ 'instruments_list' : data ['instruments' ],
37+ })
38+ if 'materials' in data :
39+ ret .update ({
40+ 'materials' : data ['materials' ],
41+ })
42+ if 'entities' in data :
43+ ret .update ({
44+ 'mobs' : _by_id (_filter ('type' , 'mob' , data ['entities' ])),
45+ 'objects' : _by_id (_filter ('type' , 'object' , data ['entities' ])),
46+ 'entities_name' : _by_name (data ['entities' ]),
47+ 'entities_list' : data ['entities' ],
48+ })
49+ if 'protocol' in data :
50+ ret .update ({
51+ 'protocol' : data ['protocol' ],
52+ })
53+ if 'windows' in data :
54+ ret .update ({
55+ 'windows' : _by_id (data ['windows' ]),
56+ 'windows_name' : _by_name (data ['windows' ]),
57+ 'windows_list' : data ['windows' ],
58+ })
59+ if 'effects' in data :
60+ ret .update ({
61+ 'effects' : _by_id (data ['effects' ]),
62+ 'effects_name' : _by_name (data ['effects' ]),
63+ 'effects_list' : data ['effects' ],
64+ })
65+ if 'version' in data :
66+ ret .update ({
67+ 'version' : data ['version' ],
68+ })
3469
3570 def find_item_or_block (find ):
3671 if isinstance (find , int ): # by id
@@ -43,13 +78,11 @@ def find_item_or_block(find):
4378 return ret
4479
4580
46- def _grabdata (dir ):
47- data = dict ()
48- for filename in glob (os .path .join (dir , '*.json' )):
49- with open (filename ) as fp :
50- base = os .path .splitext (os .path .basename (filename ))[0 ]
51- doc = json .load (fp )
52- data [base ] = doc
81+ def _grabdata (_dir , datapaths ):
82+ data = {}
83+ for category , folder in datapaths .items ():
84+ with open (os .path .join (_dir , folder , f'{ category } .json' )) as fp :
85+ data [category ] = json .load (fp )
5386 return data
5487
5588
0 commit comments