コード例 #1
0
ファイル: unit.py プロジェクト: zamronypj/unknown-horizons
    def __init(self, x, y, owner):
        self.owner = owner

        class Tmp(fife.InstanceActionListener):
            pass

        self.InstanceActionListener = Tmp()
        self.InstanceActionListener.onInstanceActionFinished = \
          WeakMethod(self.onInstanceActionFinished)
        self.InstanceActionListener.onInstanceActionCancelled = \
          WeakMethod(self.onInstanceActionCancelled)
        self.InstanceActionListener.onInstanceActionFrame = lambda *args: None
        self.InstanceActionListener.thisown = 0  # fife will claim ownership of this

        self._instance = self.session.view.layers[
            LAYERS.OBJECTS].createInstance(
                self.__class__._fife_object,
                fife.ModelCoordinate(int(x), int(y), 0), str(self.worldid))
        fife.InstanceVisual.create(self._instance)
        location = fife.Location(self._instance.getLocation().getLayer())
        location.setExactLayerCoordinates(
            fife.ExactModelCoordinate(x + x, y + y, 0))
        self.act(self._action, location, True)
        self._instance.addActionListener(self.InstanceActionListener)

        self.loading_area = self.position

        self._health_displayed = False

        if self.has_component(HealthComponent):
            self.get_component(HealthComponent).add_damage_dealt_listener(
                self._on_damage)
コード例 #2
0
 def append(self, callback):
     """Just like list.append, except it can also handle lists and discards None-values"""
     if callback is None:
         pass
     elif callable(callback):
         list.append(self, WeakMethod(callback))
     elif isinstance(callback, list, tuple):
         for i in callback:
             self.append(i)
     else:
         assert False
コード例 #3
0
 def __contains__(self, elem):
     if isinstance(elem, WeakMethod):
         return list.__contains__(self, elem)
     else:
         return WeakMethod(elem) in self
コード例 #4
0
 def remove(self, elem):
     if not isinstance(elem, WeakMethod):
         elem = WeakMethod(elem)
     list.remove(self, elem)