current_page.py (4607B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\pages\current_page.py 2 from carbonui import uiconst 3 from carbonui.uicore import uicore 4 from cosmetics.client.ships.skins.live_data import current_skin_design 5 from eve.client.script.ui.control.historyBuffer import HistoryBuffer 6 from eve.client.script.ui.cosmetics.ship.const import SkinrPage, CHILD_PAGES_BY_PARENT_PAGE 7 from eve.client.script.ui.cosmetics.ship.pages.studio import studioSignals 8 import math 9 from player_messaging.client.ui_message import prompt_player_fsd_dialog 10 _current_page_id = None 11 _current_page_args = None 12 _history_buffer = HistoryBuffer() 13 14 def get_page_id(): 15 global _current_page_id 16 return _current_page_id 17 18 19 def get_page_args(): 20 global _current_page_args 21 return _current_page_args 22 23 24 def set_sub_page(page_id, page_args, animate = True): 25 global _current_page_args 26 global _current_page_id 27 last_page_id = _current_page_id 28 if _current_page_id == page_id and _current_page_args is None: 29 _current_page_args = page_args 30 _history_buffer.UpdateCurrent((page_id, page_args)) 31 elif _current_page_args != page_args: 32 _current_page_id = page_id 33 _current_page_args = page_args 34 _history_buffer.Append((page_id, page_args)) 35 studioSignals.on_page_opened(page_id, page_args, last_page_id, animate=animate) 36 37 38 def set_page_id(page_id, page_args = None, append_history = True, animate = True): 39 if not can_leave_current_page(page_id): 40 return False 41 _set_page_id(page_id, page_args, append_history, animate) 42 return True 43 44 45 def _set_page_id(page_id, page_args, append_history, animate = True): 46 global _current_page_args 47 global _current_page_id 48 last_page_id = _current_page_id 49 _current_page_id = page_id 50 _current_page_args = page_args 51 if append_history: 52 _history_buffer.Append((page_id, page_args)) 53 studioSignals.on_page_opened(page_id, page_args, last_page_id, animate=animate) 54 55 56 def can_leave_current_page(next_page_id = None, page_args = None): 57 if _current_page_id == SkinrPage.STUDIO_DESIGNER: 58 if next_page_id == SkinrPage.STUDIO_SEQUENCING: 59 return True 60 return _is_ok_to_discard_unsaved_design() 61 if _current_page_id == SkinrPage.STUDIO_SEQUENCING: 62 if next_page_id == SkinrPage.STUDIO_DESIGNER: 63 return True 64 return _is_ok_to_discard_unsaved_design() 65 return True 66 67 68 def _is_ok_to_discard_unsaved_design(): 69 if current_skin_design.has_changes_from_snapshot(): 70 if prompt_player_fsd_dialog('SKINRUnsavedDesign', {}, uiconst.YESNO) != uiconst.ID_YES: 71 return False 72 return True 73 74 75 def is_back_enabled(): 76 return _history_buffer.IsBackEnabled() 77 78 79 def _can_go_back(): 80 if not is_back_enabled(): 81 return False 82 if not can_leave_current_page(*_history_buffer.GetPrevious()): 83 return False 84 return True 85 86 87 def go_back(): 88 if _can_go_back(): 89 page_id, page_args = _history_buffer.GoBack() 90 _set_page_id(page_id, page_args, append_history=False) 91 92 93 def is_forward_enabled(): 94 return _history_buffer.IsForwardEnabled() 95 96 97 def _can_go_forward(): 98 if not is_forward_enabled(): 99 return False 100 if not can_leave_current_page(*_history_buffer.GetNext()): 101 return False 102 return True 103 104 105 def go_forward(): 106 if _can_go_forward(): 107 page_id, page_args = _history_buffer.GoForward() 108 _set_page_id(page_id, page_args, append_history=False) 109 110 111 def reset_history(): 112 _history_buffer.Reset() 113 114 115 def get_content_right_padding(): 116 return 0 117 118 119 def get_camera_offset(): 120 page_id = get_page_id() 121 if page_id == SkinrPage.STUDIO: 122 return 0.5 123 elif page_id == SkinrPage.STORE or page_id in CHILD_PAGES_BY_PARENT_PAGE[SkinrPage.STORE]: 124 return 0.425 125 elif page_id == SkinrPage.COLLECTION or page_id in CHILD_PAGES_BY_PARENT_PAGE[SkinrPage.COLLECTION]: 126 return 0.55 127 else: 128 return 0.0 129 130 131 def get_camera_yaw(): 132 page_id = get_page_id() 133 if page_id == SkinrPage.STUDIO: 134 return -18 / 16.0 * math.pi 135 elif page_id == SkinrPage.STUDIO_DESIGNER: 136 return -19 / 16.0 * math.pi 137 elif page_id == SkinrPage.STUDIO_SEQUENCING: 138 return -20 / 16.0 * math.pi 139 elif page_id == SkinrPage.STORE or page_id in CHILD_PAGES_BY_PARENT_PAGE[SkinrPage.STORE]: 140 return -19 / 16.0 * math.pi 141 elif page_id == SkinrPage.COLLECTION or page_id in CHILD_PAGES_BY_PARENT_PAGE[SkinrPage.COLLECTION]: 142 return -20 / 16.0 * math.pi 143 else: 144 return -math.pi