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

distance_thresholded_camera_facing_ui_container.py (1928B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\battleground_capture_point_ui\client\distance_thresholded_camera_facing_ui_container.py
      2 import eveui
      3 import uthread2
      4 from battleground_capture_point_ui.client.camera_facing_container import CameraFacingUiContainer
      5 from battleground_capture_point_ui.client.const import SCALING_BILLBOARD_THRESHOLD
      6 from carbonui import uiconst
      7 from carbonui.uicore import uicore
      8 
      9 class DistanceThreasholdedCameraFacingUiContainer(CameraFacingUiContainer):
     10 
     11     def __init__(self, parent, ball, camera, scene):
     12         super(DistanceThreasholdedCameraFacingUiContainer, self).__init__(parent, ball, camera, scene)
     13         self._ui.state = uiconst.UI_HIDDEN
     14         self.cameraThresholdingEnabled = True
     15         uthread2.start_tasklet(self._camera_update_loop)
     16 
     17     def SetCameraThresholdingEnabled(self, enabled):
     18         self.cameraThresholdingEnabled = enabled
     19 
     20     def hide_gauge(self):
     21         if self.is_showing:
     22             uicore.animations.Tr2DScaleOut(self._ui, startScale=(1.0, 1.0), endScale=(0.0, 0.0), duration=0.25, sleep=True)
     23         self._ui.state = uiconst.UI_HIDDEN
     24         self.is_showing = False
     25 
     26     def show_gauge(self):
     27         if not self.is_showing:
     28             uicore.animations.Tr2DScaleIn(self._ui, duration=0.25)
     29         self._ui.state = uiconst.UI_DISABLED
     30         self.is_showing = True
     31 
     32     def _camera_update_loop(self):
     33         while self.run_camera_update_loop:
     34             if not self.cameraThresholdingEnabled:
     35                 self.hide_gauge()
     36             else:
     37                 distance = self._camera.distance_from_transform(self._transform)
     38                 if distance > SCALING_BILLBOARD_THRESHOLD and not self.is_showing:
     39                     self.show_gauge()
     40                 elif distance < SCALING_BILLBOARD_THRESHOLD and self.is_showing:
     41                     self.hide_gauge()
     42             eveui.wait_for_next_frame()