Transportable.py 812B

123456789101112131415161718192021222324252627
  1. from xyzworld.SynergyObject import SynergyObject as XyzSynergyObject
  2. from intelligine.cst import TRANSPORTABLE
  3. class Transportable(XyzSynergyObject):
  4. def __init__(self, collection, context):
  5. super().__init__(collection, context)
  6. self._carried_by = None
  7. def set_carried_by(self, obj):
  8. if obj is not None:
  9. assert self._carried_by is None
  10. self._carried_by = obj
  11. self._context.metas.states.remove(self.get_id(), TRANSPORTABLE)
  12. else:
  13. assert self._carried_by is not None
  14. self._carried_by = None
  15. self._context.metas.states.add(self.get_id(), TRANSPORTABLE)
  16. def is_carried(self):
  17. if self._carried_by:
  18. return True
  19. return False
  20. def get_carry(self):
  21. return self