Ignore:
Timestamp:
02/03/10 14:54:21 (10 years ago)
Author:
maximinus_parpg
Message:

Added Beliars patch for loading / saving.

Location:
trunk/game/scripts/objects
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/game/scripts/objects/actors.py

    r477 r478  
    126126        self.layer_id = agent_layer.getId() 
    127127        self.createBehaviour(agent_layer) 
     128     
     129    def __getstate__(self): 
     130        odict = self.__dict__.copy() 
     131        del odict["behaviour"] 
     132        return odict; 
     133     
     134    def __setstate__(self, state): 
     135        self.__dict__.update(state) 
    128136     
    129137    def meet(self, npc): 
     
    281289        self.dialogue = kwargs.get('dialogue') 
    282290 
     291    def __getstate__(self): 
     292        odict = self.__dict__.copy() 
     293        del odict["behaviour"] 
     294        return odict; 
     295     
     296    def __setstate__(self, state): 
     297        self.__dict__.update(state)         
     298 
    283299    def createBehaviour(self, layer): 
    284300        """Creates the behaviour for this actor. 
  • trunk/game/scripts/objects/containers.py

    r477 r478  
    3535        self.placeItem(CarryableItem(ID=987,name="Dagger456")) 
    3636         
    37 class Footlocker(ImmovableContainer, fife.InstanceActionListener): 
    38     def __init__ (self, ID, agent_layer=None, name = 'Footlocker', 
    39                   text = 'A Footlocker', gfx = 'lock_box_metal01', **kwargs): 
    40         ImmovableContainer.__init__(self, ID = ID, name = name, gfx = gfx, 
    41                                     text = text, **kwargs) 
    42         self.placeItem(CarryableItem(ID=987,name="Dagger456")) 
     37class ContainerBehaviour(fife.InstanceActionListener): 
     38    def __init__(self, parent = None, agent_layer = None): 
     39        fife.InstanceActionListener.__init__(self) 
     40        self.parent = parent 
     41        self.layer = agent_layer 
     42        self.state = _AGENT_STATE_CLOSED 
     43        self.agent = None 
    4344 
    44         fife.InstanceActionListener.__init__(self) 
    45         self.layer = agent_layer 
    46         self.agent = self.layer.getInstance(self.ID) 
     45    def attachToLayer(self, agent_ID): 
     46        """ Attaches to a certain layer 
     47            @type agent_ID: String 
     48            @param agent_ID: ID of the layer to attach to. 
     49            @return: None""" 
     50        self.agent = self.layer.getInstance(agent_ID) 
    4751        self.agent.addActionListener(self) 
    4852        self.state = _AGENT_STATE_CLOSED 
     
    6670         
    6771    def open (self): 
    68         super (Footlocker,self).open() 
    6972        if self.state != _AGENT_STATE_OPENED and self.state != _AGENT_STATE_OPENING: 
    7073            self.agent.act('open', self.agent.getLocation()) 
     
    7275 
    7376    def close(self): 
    74         super (Footlocker,self).close() 
    7577        if self.state != _AGENT_STATE_CLOSED and self.state != _AGENT_STATE_CLOSING: 
    7678            self.agent.act('close', self.agent.getLocation()) 
    77             self.state = _AGENT_STATE_CLOSING 
     79            self.state = _AGENT_STATE_CLOSING   
     80     
     81class Footlocker(ImmovableContainer): 
     82    def __init__ (self, ID, agent_layer=None, name = 'Footlocker', 
     83                  text = 'A Footlocker', gfx = 'lock_box_metal01', **kwargs): 
     84        ImmovableContainer.__init__(self, ID = ID, name = name, gfx = gfx, 
     85                                    text = text, **kwargs) 
     86        self.placeItem(CarryableItem(ID=987,name="Dagger456")) 
     87 
     88        self.is_AnimatedContainer = True 
     89        self.createBehaviour(agent_layer)         
     90         
     91    def __getstate__(self): 
     92        odict = self.__dict__.copy() 
     93        del odict["behaviour"] 
     94        return odict; 
     95     
     96    def __setstate__(self, state): 
     97        self.__dict__.update(state) 
     98     
     99    def createBehaviour(self, layer): 
     100        self.behaviour = ContainerBehaviour(self, layer) 
     101 
     102    def setup(self): 
     103        """@return: None""" 
     104        self.behaviour.attachToLayer(self.ID) 
     105 
     106    def open (self): 
     107        super (Footlocker,self).open() 
     108        self.behaviour.open() 
     109 
     110    def close(self): 
     111        super (Footlocker,self).close() 
     112        self.behaviour.close() 
Note: See TracChangeset for help on using the changeset viewer.