NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

localizationClient.py (2002B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\client\script\localization\localizationClient.py
      2 import blue
      3 from carbon.common.script.sys.service import Service, ROLE_QA
      4 import localization
      5 import localization.settings
      6 from player_messaging.client.ui_message import message_player
      7 from localization.logger import LogInfo
      8 from uthread2 import StartTasklet
      9 
     10 class LocalizationClient(Service):
     11     __guid__ = 'svc.localizationClient'
     12     __notifyevents__ = ['OnCharacterSessionChanged', 'OnUpdateLocalizationTextCache']
     13 
     14     def Run(self, memStream = None):
     15         super(LocalizationClient, self).Run(memStream)
     16         self.broadcasting = False
     17 
     18     def OnCharacterSessionChanged(self, oldCharacterID, _newCharacterID):
     19         if oldCharacterID is None:
     20             if session.role & ROLE_QA == ROLE_QA:
     21                 sm.RemoteSvc('localizationServer').UpdateLocalizationQAWrap(localization.settings.qaSettings.LocWrapSettingsActive())
     22             hashData = localization.GetHashDataDictionary()
     23             if len(hashData) > 0 and not blue.pyos.packaged:
     24                 LogInfo('Localization Client: preparing to load initial text and label data from server')
     25                 sm.RemoteSvc('localizationServer').GetAllTextChanges(hashData)
     26                 LogInfo('Localization Client: done asking for initial text and label data from server')
     27 
     28     def OnUpdateLocalizationTextCache(self, cacheData):
     29         messagePerLanguage, metaDataPerLanguage, labelsDict = cacheData
     30         if messagePerLanguage or metaDataPerLanguage or labelsDict:
     31             localization.UpdateTextCache(messagePerLanguage, metaDataPerLanguage, labelsDict)
     32             if not self.broadcasting:
     33                 self.broadcasting = True
     34                 StartTasklet(self.DeferredBroadcastMessage)
     35 
     36     def DeferredBroadcastMessage(self):
     37         blue.synchro.SleepWallclock(30000)
     38         message_player('Your localization content has been updated.')
     39         self.broadcasting = False