mirror of
https://github.com/LmeSzinc/StarRailCopilot.git
synced 2024-09-28 06:45:03 +00:00
Fix: Handle random suffix in plane name
This commit is contained in:
parent
fdcd2feb47
commit
8452e91312
@ -40,6 +40,31 @@ class MainPage(PopupHandler):
|
||||
|
||||
_lang_checked = False
|
||||
|
||||
def get_plane(self, lang=None) -> Optional[MapPlane]:
|
||||
"""
|
||||
Pages:
|
||||
in: page_main
|
||||
"""
|
||||
if lang is None:
|
||||
lang = server.lang
|
||||
ocr = OcrPlaneName(OCR_MAP_NAME, lang=lang)
|
||||
result = ocr.ocr_single_line(self.device.image)
|
||||
# Try to match
|
||||
keyword = ocr._match_result(result, keyword_classes=MapPlane, lang=lang)
|
||||
if keyword is not None:
|
||||
self.plane = keyword
|
||||
logger.attr('CurrentPlane', keyword)
|
||||
return keyword
|
||||
# Try to remove suffix
|
||||
for suffix in range(1, 5):
|
||||
keyword = ocr._match_result(result[:-suffix], keyword_classes=MapPlane, lang=lang)
|
||||
if keyword is not None:
|
||||
self.plane = keyword
|
||||
logger.attr('CurrentPlane', keyword)
|
||||
return keyword
|
||||
|
||||
return None
|
||||
|
||||
def check_lang_from_map_plane(self) -> Optional[str]:
|
||||
logger.info('check_lang_from_map_plane')
|
||||
lang_unknown = self.config.Emulator_GameLanguage == 'auto'
|
||||
@ -52,12 +77,8 @@ class MainPage(PopupHandler):
|
||||
|
||||
for lang in lang_list:
|
||||
logger.info(f'Try ocr in lang {lang}')
|
||||
ocr = OcrPlaneName(OCR_MAP_NAME, lang=lang)
|
||||
result = ocr.ocr_single_line(self.device.image)
|
||||
keyword = ocr._match_result(result, keyword_classes=MapPlane, lang=lang)
|
||||
keyword = self.get_plane(lang)
|
||||
if keyword is not None:
|
||||
self.plane = keyword
|
||||
logger.attr('CurrentPlane', self.plane)
|
||||
logger.info(f'check_lang_from_map_plane matched lang: {lang}')
|
||||
if lang_unknown or lang != server.lang:
|
||||
self.config.Emulator_GameLanguage = lang
|
||||
|
Loading…
Reference in New Issue
Block a user