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

defaultoverview.py (5034B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\parklife\overview\default\defaultoverview.py
      2 import abc
      3 import localization
      4 from eve.client.script.parklife.overview.default import categories
      5 from overviewPresets.overviewSettingsConst import PRESET_SETTINGS_GROUPS, PRESET_SETTINGS_ALWAYS_SHOWN_STATES, PRESET_SETTINGS_FILTERED_STATES
      6 
      7 class BaseDefaultOverview(object):
      8     __metaclass__ = abc.ABCMeta
      9 
     10     def __init__(self, should_inform_of_update):
     11         self._is_loaded = False
     12         self._default_preset = None
     13         self._default_tabs = None
     14         self._all_presets = None
     15         self._sorted_preset_names = None
     16         self.should_inform_of_update = should_inform_of_update
     17 
     18     @property
     19     def all_presets(self):
     20         if self._all_presets is None:
     21             self._load_data()
     22         return self._all_presets
     23 
     24     @property
     25     def sorted_preset_names(self):
     26         if self._sorted_preset_names is None:
     27             self._load_data()
     28         return self._sorted_preset_names
     29 
     30     @property
     31     def default_preset(self):
     32         if self._default_preset is None:
     33             self._load_data()
     34         return self._default_preset
     35 
     36     @property
     37     def default_tabs(self):
     38         if self._default_tabs is None:
     39             self._load_data()
     40         return self._default_tabs
     41 
     42     def activate(self):
     43         pass
     44 
     45     def _load_data(self):
     46         if self._is_loaded:
     47             return
     48         self._do_load()
     49         self._is_loaded = True
     50 
     51     def get_name(self, name):
     52         try:
     53             return self.all_presets[name].name
     54         except KeyError:
     55             return None
     56 
     57     def get_name_with_category(self, preset_name):
     58         name = self.get_name(preset_name)
     59         if not name:
     60             return None
     61         category_name = categories.get_name(self.get_category_id(preset_name))
     62         return '%s: %s' % (category_name, name)
     63 
     64     def get_description(self, name):
     65         try:
     66             description_id = self.all_presets[name].description_id
     67             if description_id:
     68                 return localization.GetByMessageID(description_id)
     69         except KeyError:
     70             return None
     71 
     72     def get_category_id(self, preset_name):
     73         try:
     74             return self.all_presets[preset_name].category_id
     75         except KeyError:
     76             return categories.CATEGORY_NONE
     77 
     78     def get_default_preset_data(self):
     79         return {self.default_preset: self.get_data(self.default_preset)}
     80 
     81     def get_all_presets_data(self):
     82         return {preset_name:self.get_data(preset_name) for preset_name in self.all_presets.keys()}
     83 
     84     def get_data(self, name):
     85         try:
     86             preset = self.all_presets[name]
     87             return {PRESET_SETTINGS_GROUPS: preset.groups,
     88              PRESET_SETTINGS_FILTERED_STATES: preset.filtered_states,
     89              PRESET_SETTINGS_ALWAYS_SHOWN_STATES: preset.always_shown_states}
     90         except (AttributeError, KeyError):
     91             return {PRESET_SETTINGS_GROUPS: [],
     92              PRESET_SETTINGS_FILTERED_STATES: [],
     93              PRESET_SETTINGS_ALWAYS_SHOWN_STATES: []}
     94 
     95     @abc.abstractmethod
     96     def _do_load(self):
     97         raise NotImplementedError
     98 
     99 
    100 class PresetData(object):
    101 
    102     def __init__(self, name, short_name, name_id, groups, description_id = None, category_id = categories.CATEGORY_NONE, always_shown_states = None, filtered_states = None):
    103         self.name = name
    104         self.short_name = short_name
    105         self.name_id = name_id
    106         self.description_id = description_id
    107         self.category_id = category_id
    108         self.groups = sorted(groups)
    109         self.always_shown_states = always_shown_states or []
    110         self.filtered_states = filtered_states or []
    111 
    112     def __eq__(self, other):
    113         a = (self.name,
    114          self.short_name,
    115          self.name_id,
    116          self.groups,
    117          self.always_shown_states,
    118          self.filtered_states)
    119         b = (other.name,
    120          other.short_name,
    121          other.name_id,
    122          other.groups,
    123          other.always_shown_states,
    124          other.filtered_states)
    125         return a == b
    126 
    127     def __repr__(self):
    128         return 'name: {name}, name ID: {nameID}, short name: {shortName}, groups: {groups}'.format(name=self.name, nameID=self.name_id, shortName=self.short_name, groups=self.groups)
    129 
    130 
    131 class TabData(object):
    132 
    133     def __init__(self, name, color, overview_preset, bracket_preset):
    134         self.name = name
    135         self.color = color
    136         self.overview_preset = overview_preset
    137         self.bracket_preset = bracket_preset
    138 
    139     def __eq__(self, other):
    140         a = (self.name,
    141          self.color,
    142          self.overview_preset,
    143          self.bracket_preset)
    144         b = (other.name,
    145          other.color,
    146          other.overview_preset,
    147          other.bracket_preset)
    148         return a == b
    149 
    150     def __repr__(self):
    151         return 'name: {name}, color: {color}, overview: {overview}, bracket: {bracket}'.format(name=self.name, color=self.color, overview=self.overview_preset, bracket=self.bracket_preset)