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

extraStarParticles.py (3249B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\extraStarParticles.py
      2 import trinity
      3 from eve.client.script.ui.shared.mapView.mapViewSolarSystem import PARTICLE_EFFECT
      4 from eve.client.script.ui.shared.mapView.mapViewUtil import PARTICLE_SPRITE_DATA_TEXTURE_TEST
      5 
      6 class BaseExtraStarParticleController(object):
      7 
      8     def __init__(self):
      9         self._extraMapStars = None
     10         self._extraStarParticles = None
     11         self._extraStarDataTexture = None
     12 
     13     @property
     14     def extraMapStars(self):
     15         return self._extraMapStars
     16 
     17     @property
     18     def extraStarParticles(self):
     19         return self._extraStarParticles
     20 
     21     def UpdateBounds(self):
     22         if not self._extraStarParticles or not self._extraMapStars:
     23             return
     24         self._extraStarParticles.UpdateBoundingBox()
     25         self._extraMapStars.mesh.minBounds = self._extraStarParticles.aabbMin
     26         self._extraMapStars.mesh.maxBounds = self._extraStarParticles.aabbMax
     27 
     28     def CreateStarParticles(self, starParticleData):
     29         pass
     30 
     31     def ConstructStarDataTexture(self):
     32         pass
     33 
     34     def SetItemElement(self, particleID, idx, value):
     35         pass
     36 
     37     def UpdateStarParticleData(self):
     38         pass
     39 
     40     def ResetVariables(self):
     41         self._extraMapStars = None
     42         self._extraStarParticles = None
     43 
     44     def ChangeDisplayState(self, displayState):
     45         if self._extraMapStars:
     46             self._extraMapStars.display = displayState
     47 
     48 
     49 class WorldMapExtraDataTextureController(BaseExtraStarParticleController):
     50 
     51     def CreateStarParticles(self, starParticleData):
     52         self._extraMapStars = trinity.EveTransform()
     53         self._extraMapStars.name = 'extraMapStars'
     54         self._extraMapStars.sortValueMultiplier = 0.0
     55         self._extraStarParticles = trinity.Tr2RuntimeInstanceData()
     56         self._extraStarParticles.SetElementLayout([(trinity.PARTICLE_ELEMENT_TYPE.POSITION, 0, 3),
     57          (trinity.PARTICLE_ELEMENT_TYPE.POSITION, 1, 3),
     58          (trinity.PARTICLE_ELEMENT_TYPE.CUSTOM, 0, 1),
     59          (trinity.PARTICLE_ELEMENT_TYPE.CUSTOM, 1, 4),
     60          (trinity.PARTICLE_ELEMENT_TYPE.CUSTOM, 2, 1),
     61          (trinity.PARTICLE_ELEMENT_TYPE.CUSTOM, 3, 1)])
     62         extraMesh = trinity.Tr2InstancedMesh()
     63         extraMesh.geometryResPath = 'res:/Graphics/Generic/UnitPlane/UnitPlane.gr2'
     64         extraMesh.instanceGeometryResource = self._extraStarParticles
     65         self._extraMapStars.mesh = extraMesh
     66         extraArea = trinity.Tr2MeshArea()
     67         extraArea.effect = trinity.Tr2Effect()
     68         extraArea.effect.effectFilePath = PARTICLE_EFFECT
     69         extraArea.effect.resources.append(self._extraStarDataTexture)
     70         extraMesh.transparentAreas.append(extraArea)
     71         self._extraStarParticles.SetData(starParticleData)
     72 
     73     def ConstructStarDataTexture(self):
     74         heattex = trinity.TriTextureParameter()
     75         heattex.name = 'HeatTexture'
     76         heattex.resourcePath = PARTICLE_SPRITE_DATA_TEXTURE_TEST
     77         self._extraStarDataTexture = heattex
     78 
     79     def SetItemElement(self, particleID, idx, value):
     80         self._extraStarParticles.SetItemElement(particleID, idx, value)
     81 
     82     def UpdateStarParticleData(self):
     83         self._extraStarParticles.UpdateData()