sofService.py (2181B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\environment\sofService.py 2 import trinity 3 import blue 4 import uthread2 5 from carbon.common.script.sys.service import Service 6 7 def GetSofService(): 8 return sm.GetService('sofService') 9 10 11 class sofService(Service): 12 __guid__ = 'svc.sofService' 13 __displayname__ = 'Space Object Factory' 14 __servicename__ = 'sofService' 15 16 def Run(self, memStream = None): 17 Service.Run(self, memStream) 18 self.spaceObjectFactory = SpaceObjectFactoryWrapper() 19 self.spaceObjectFactory.Load() 20 21 def Stop(self, stream): 22 Service.Stop(self) 23 self.spaceObjectFactory = None 24 25 26 class SpaceObjectFactoryWrapper(object): 27 28 def __init__(self): 29 self._dataFile = 'res:/dx9/model/spaceobjectfactory/data.red' 30 self._sof = trinity.EveSOF() 31 self._loaded = False 32 self._loadingTasklet = None 33 self.sofDB = None 34 35 def Load(self): 36 self._loadingTasklet = uthread2.start_tasklet(self._Load) 37 38 def _Load(self): 39 self.sofDB = trinity.Load(self._dataFile) 40 self._sof.dataMgr.SetData(self.sofDB) 41 self._loaded = True 42 self._loadingTasklet = None 43 44 def GetSofDB(self): 45 self._LoadOrYield() 46 return self.sofDB 47 48 def _LoadOrYield(self): 49 if self._loaded: 50 return 51 if not self._loadingTasklet: 52 self.Load() 53 uthread2.wait([self._loadingTasklet], 300) 54 55 def Build(self, *args, **kwargs): 56 self._LoadOrYield() 57 return self._sof.Build(*args, **kwargs) 58 59 def BuildFromDNA(self, *args, **kwargs): 60 self._LoadOrYield() 61 return self._sof.BuildFromDNA(*args, **kwargs) 62 63 def ValidateDNA(self, *args, **kwargs): 64 self._LoadOrYield() 65 return self._sof.ValidateDNA(*args, **kwargs) 66 67 def SetupTurretMaterialFromDNA(self, *args, **kwargs): 68 self._LoadOrYield() 69 return self._sof.SetupTurretMaterialFromDNA(*args, **kwargs) 70 71 def SetupTurretMaterialFromFaction(self, *args, **kwargs): 72 self._LoadOrYield() 73 return self._sof.SetupTurretMaterialFromFaction(*args, **kwargs)