bracket.py (2815B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\spacecomponents\client\ui\jumpbridge\bracket.py 2 import threadutils 3 from carbon.common.script.sys.serviceManager import ServiceManager 4 from dynamicresources.client.ess.bracket.camera import InFlightCameraReference 5 from dynamicresources.client.ess.bracket.state_machine import State 6 from spacecomponents.client.ui.baseBracket import BaseBracket 7 from spacecomponents.client.ui.jumpbridge.states import Online 8 from spacecomponents.client.ui.rootTransformController import RootTransformController 9 10 class JumpBridgeBracket(BaseBracket): 11 __notifyevents__ = ('OnWarpActive', 'OnClientEvent_WarpFinished', 'OnSessionChanged') 12 13 def __init__(self, item_id, type_id, content_class, panel_name = 'JumpBridgeBracket', offset_y = 5500.0, collapse_at_camera_distance = 150000.0, tether_name = 'jumpbridge_tether', tether_width = 50): 14 super(JumpBridgeBracket, self).__init__(item_id, type_id) 15 self._content_class = content_class 16 self._panel_name = panel_name 17 self._offset_y = offset_y 18 self._collapse_at_camera_distance = collapse_at_camera_distance 19 self._tether_name = tether_name 20 self._tether_width = tether_width 21 self._init() 22 23 @property 24 def content_class(self): 25 return self._content_class 26 27 @property 28 def panel_name(self): 29 return self._panel_name 30 31 @property 32 def offset_y(self): 33 return self._offset_y 34 35 @property 36 def collapse_at_camera_distance(self): 37 return self._collapse_at_camera_distance 38 39 @property 40 def tether_name(self): 41 return self._tether_name 42 43 @property 44 def tether_width(self): 45 return self._tether_width 46 47 @threadutils.threaded 48 def _init(self): 49 ball = self._wait_for_ball() 50 scene = self._scene_manager.GetRegisteredScene('default') 51 self._root = RootTransformController(ball=ball, scene=scene) 52 self._camera = InFlightCameraReference(self._scene_manager) 53 self._on_state_changed() 54 ServiceManager.Instance().RegisterNotify(self) 55 56 def _on_state_changed(self, *_args): 57 if self._closed: 58 return 59 if self._michelle.InWarp(): 60 self._state_machine.move_to(Hidden()) 61 elif session.structureid: 62 self._state_machine.move_to(Hidden()) 63 else: 64 self._state_machine.move_to(Online(self)) 65 66 def OnWarpActive(self, _warp_to_item_id, _warp_to_type_id): 67 self._on_state_changed() 68 69 def OnClientEvent_WarpFinished(self, _warp_to_item_id, _warp_to_type_id): 70 self._on_state_changed() 71 72 def OnSessionChanged(self, isRemote, sess, change): 73 if 'shipid' in change: 74 self._on_state_changed() 75 76 77 class Hidden(State): 78 pass