コード例 #1
0
ファイル: environment.py プロジェクト: Ebag333/eos
 def __init__(self, cache_handler):
     self.source = Source(cache_handler)
     self._link_tracker = LinkTracker(self)
     self.__ship = None
     self.__character = None
     self.items = HolderContainer(self)
コード例 #2
0
 def __init__(self, cache_handler):
     self.source = Source(cache_handler)
     self._link_tracker = LinkTracker(self)
     self.__ship = None
     self.__character = None
     self.items = HolderContainer(self)
コード例 #3
0
ファイル: environment.py プロジェクト: Ebag333/eos
class Fit:

    def __init__(self, cache_handler):
        self.source = Source(cache_handler)
        self._link_tracker = LinkTracker(self)
        self.__ship = None
        self.__character = None
        self.items = HolderContainer(self)

    @property
    def ship(self):
        return self.__ship

    @ship.setter
    def ship(self, ship):
        if self.__ship is not None:
            self._remove_holder(self.__ship)
        self.__ship = ship
        if ship is not None:
            self._add_holder(self.__ship)

    @property
    def character(self):
        return self.__character

    @character.setter
    def character(self, character):
        if self.__character is not None:
            self._remove_holder(self.__character)
        self.__character = character
        if character is not None:
            self._add_holder(self.__character)

    def _add_holder(self, holder):
        if holder._fit is not None:
            raise Exception
        holder._fit = self
        self._link_tracker.add_holder(holder)
        enabled_states = set(filter(lambda s: s <= holder.state, State))
        self._link_tracker.enable_states(holder, enabled_states)

    def _remove_holder(self, holder):
        if holder._fit is not self:
            raise Exception
        disabled_states = set(filter(lambda s: s <= holder.state, State))
        self._link_tracker.disable_states(holder, disabled_states)
        self._link_tracker.remove_holder(holder)
        holder._fit = None

    def _holder_state_switch(self, holder, new_state):
        enabled_states = set(filter(lambda s: holder.state < s <= new_state, State))
        disabled_states = set(filter(lambda s: new_state < s <= holder.state, State))
        self._link_tracker.enable_states(holder, enabled_states)
        self._link_tracker.disable_states(holder, disabled_states)
コード例 #4
0
class Fit:
    def __init__(self, cache_handler):
        self.source = Source(cache_handler)
        self._link_tracker = LinkTracker(self)
        self.__ship = None
        self.__character = None
        self.items = HolderContainer(self)

    @property
    def ship(self):
        return self.__ship

    @ship.setter
    def ship(self, ship):
        if self.__ship is not None:
            self._remove_holder(self.__ship)
        self.__ship = ship
        if ship is not None:
            self._add_holder(self.__ship)

    @property
    def character(self):
        return self.__character

    @character.setter
    def character(self, character):
        if self.__character is not None:
            self._remove_holder(self.__character)
        self.__character = character
        if character is not None:
            self._add_holder(self.__character)

    def _add_holder(self, holder):
        if holder._fit is not None:
            raise Exception
        holder._fit = self
        self._link_tracker.add_holder(holder)
        enabled_states = set(filter(lambda s: s <= holder.state, State))
        self._link_tracker.enable_states(holder, enabled_states)

    def _remove_holder(self, holder):
        if holder._fit is not self:
            raise Exception
        disabled_states = set(filter(lambda s: s <= holder.state, State))
        self._link_tracker.disable_states(holder, disabled_states)
        self._link_tracker.remove_holder(holder)
        holder._fit = None

    def _holder_state_switch(self, holder, new_state):
        enabled_states = set(filter(lambda s: holder.state < s <= new_state, State))
        disabled_states = set(filter(lambda s: new_state < s <= holder.state, State))
        self._link_tracker.enable_states(holder, enabled_states)
        self._link_tracker.disable_states(holder, disabled_states)