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

destructioneffectmanager.py (1164B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\destructionEffect\destructioneffectmanager.py
      2 import math
      3 import random
      4 import geo2
      5 
      6 class DestructionEffectManager(object):
      7 
      8     def __init__(self, spaceObject):
      9         self.spaceObject = spaceObject
     10 
     11     def PlayDissolveEffect(self):
     12         idx = self.GetLastHitDamageLocator()
     13         locatorsSets = self.spaceObject.model.locatorSets.FindByName('damage')
     14         if idx > -1:
     15             locatorPos = locatorsSets.locators[idx][0]
     16         else:
     17             locatorPos = random.choice(locatorsSets.locators)[0]
     18         self.spaceObject.SetControllerVariable('IsDissolving', 1.0)
     19 
     20     def GetLastHitDamageLocator(self):
     21         damageLocator = getattr(self.spaceObject.model, 'lastDamageLocatorHit', -1)
     22         return damageLocator
     23 
     24     def SetClipSphereCenter(self, locatorPos):
     25         unitLocatorPos = geo2.Vec3Normalize(locatorPos)
     26         radius = self.spaceObject.model.boundingSphereRadius
     27         x = unitLocatorPos[0] * radius
     28         y = unitLocatorPos[1] * radius
     29         z = unitLocatorPos[2] * radius
     30         self.spaceObject.model.clipSphereCenter = (x, y, z)