def update(self): assert self.manager.ghost is not None if IGhostAsset.providedBy(self.manager.ghost): self.manager.ghost.set_haunted( self.target, auto_delete=self.manager.auto_delete) else: self.recreate() return self.manager.ghost
def need_update(self): if IGhostAsset.providedBy(self.manager.ghost): return self.target != self.manager.ghost.get_haunted() # Only update if the invalid ghost is an asset. return IAsset.providedBy(self.manager.ghost)