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

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