@@ -10,7 +10,7 @@ def convert(_dir, version, edition ='pc'):
1010 ret = {}
1111 for datum in ('recipes' , 'materials' , 'protocol' , 'version' ,
1212 'blockCollisionShapes' , 'protocolComments' , 'loginPacket' ,
13- 'commands' ):
13+ 'commands' , 'tints' ):
1414 if datum in data :
1515 ret [datum ] = data [datum ]
1616 for datum in ('blocks' , 'items' , 'windows' , 'effects' , 'particles' ,
@@ -19,6 +19,10 @@ def convert(_dir, version, edition ='pc'):
1919 ret [datum ] = _by_id (data [datum ])
2020 ret [f"{ datum } _name" ] = _by_name (data [datum ])
2121 ret [f"{ datum } _list" ] = data [datum ]
22+ for datum in ('blockLoot' , 'entityLoot' ):
23+ if datum in data :
24+ ret [datum ] = _parse_loot (data [datum ], datum )
25+ ret [f"{ datum } _list" ] = data [datum ]
2226 if 'entities' in data :
2327 ret ['mobs' ] = _by_id (_filter ('type' , 'mob' , data ['entities' ]))
2428 ret ['objects' ] = _by_id (_filter ('type' , 'object' , data ['entities' ]))
@@ -52,6 +56,9 @@ def _by_id(data):
5256def _by_name (data ):
5357 return _by ('name' , data )
5458
59+ def _parse_loot (data , loot_string ):
60+ field = loot_string [:loot_string .rfind ('Loot' )]
61+ return {d [field ]: d ['drops' ] for d in data }
5562
5663def _by (key , data ):
5764 return {item [key ]: item for item in data }
0 commit comments