def __setstate__(self, dd):
     # Update the object's dd
     self.__dict__.update(dd)
     # Then, re-initialize the method handle and the object's execution thread
     self.callback = ObjectEngine.get(self.funcname)
     # Reload picture
     if self.imagefile is not None:
         self.image = pygame.image.load(self.imagefile).convert_alpha()
     else:
         self.image = None
     self.map = None
     self._conclude()
 def __init__(self, name, rect, methodname, m, image=None, imagefile=None, blocked=False):
     # Init attributes
     self.name = name
     self.rect = rect
     self.funcname = methodname
     self.blocked = blocked
     # Obtain the method handle from ObjectEngine
     self.callback = ObjectEngine.get(methodname)
     self.map = m
     self.image = image
     self.imagefile = imagefile
     # Prepare execution thread
     self._conclude()