@@ -408,6 +408,74 @@ def write(self, file):
408408 f .write (text + '\n ' )
409409
410410
411+ class IslandTechnology :
412+ def __init__ (self , item ):
413+ self .id = item ['id' ]
414+ self .tech_belong = item ['tech_belong' ]
415+ self .axis_x = item ['axis' ][0 ]
416+ self .axis_y = item ['axis' ][1 ]
417+ self .island_level = item ['island_level' ]
418+
419+ def encode (self ):
420+ data = {
421+ 'name' : {
422+ 'cn' : '' ,
423+ 'en' : '' ,
424+ 'jp' : '' ,
425+ # 'tw': '',
426+ },
427+ 'tech_belong' : self .tech_belong ,
428+ 'axis' : (self .axis_x , self .axis_y ),
429+ 'island_level' : self .island_level ,
430+ }
431+ return data
432+
433+ class IslandTechnologyExtractor :
434+ def __init__ (self ):
435+ self .item = {}
436+
437+ data = LOADER .load ('sharecfg/island_technology_template.lua' , keyword = 'pg.base.island_technology_template' )
438+ for index , item in data .items ():
439+ if not isinstance (index , int ) or item ['tech_belong' ] == 1 :
440+ continue
441+
442+ self .item [item ['id' ]] = IslandTechnology (item ).encode ()
443+
444+ for index , name in self .extract_item_name ('zh-CN' ).items ():
445+ self .item [index ]['name' ]['cn' ] = name
446+ for index , name in self .extract_item_name ('en-US' ).items ():
447+ self .item [index ]['name' ]['en' ] = name
448+ for index , name in self .extract_item_name ('ja-JP' ).items ():
449+ self .item [index ]['name' ]['jp' ] = name
450+ # for index, name in self.extract_item_name('zh-TW').items():
451+ # self.item[index]['name']['tw'] = name
452+
453+ def extract_item_name (self , server ):
454+ LOADER .server = server
455+ data = LOADER .load ('sharecfg/island_technology_template.lua' , keyword = 'pg.base.island_technology_template' )
456+ out = {}
457+ for index , item in data .items ():
458+ if not isinstance (index , int ) or item ['tech_belong' ] == 1 :
459+ continue
460+ out [item ['id' ]] = item ['tech_name' ]
461+
462+ return out
463+
464+ def encode (self ):
465+ lines = []
466+ lines .append ('DIC_ISLAND_TECHNOLOGY = {' )
467+ for index , item in self .item .items ():
468+ lines .append (f' { index } : { item } ,' )
469+ lines .append ('}' )
470+ return lines
471+
472+ def write (self , file ):
473+ print (f'writing { file } ' )
474+ with open (file , 'w' , encoding = 'utf-8' ) as f :
475+ for text in self .encode ():
476+ f .write (text + '\n ' )
477+
478+
411479if __name__ == '__main__' :
412480 FILE = '../AzurLaneLuaScripts'
413481 LOADER = LuaLoader (FILE , server = 'CN' )
@@ -466,6 +534,8 @@ def write(self, file):
466534 lines += IslandSeasonalTaskExtractor ().encode ()
467535 lines .append ('' )
468536 lines += IslandRestaurantExtractor ().encode ()
537+ lines .append ('' )
538+ lines += IslandTechnologyExtractor ().encode ()
469539 with open (save , 'w' , encoding = 'utf-8' ) as f :
470540 for text in lines :
471541 f .write (text + '\n ' )
0 commit comments