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()