Ignore:
Timestamp:
08/25/09 08:56:37 (10 years ago)
Author:
b0rland_parpg
Message:

Ticket #78, #80: Patch by superfluid. Moving the hud events and context menu code (and inventory code) from world.py to hud.py

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/game/scripts/inventory.py

    r208 r261  
    2121from scripts.items import item_image_dict 
    2222 
    23 class Inventory(): 
     23class Inventory(object): 
    2424    """Main inventory class""" 
    25     def __init__(self, engine, items, readyCallback): 
     25    def __init__(self, engine, items, readyCallback, toggleInventoryButtonCallback): 
    2626        """Initialise the instance. 
    2727           @type engine: fife.Engine 
     
    3434                                 ready slots on the HUD reflect those 
    3535                                 within the inventory 
     36           @type toggleInventoryButtonCallback: function 
     37           @param toggleInventoryButtonCallback: Function that will toggle the state of the inventory button 
    3638           @return: None""" 
    3739        pychan.init(engine, debug = True) 
    3840        self.engine = engine 
    3941        self.readyCallback = readyCallback 
     42        self.toggleInventoryButtonCallback = toggleInventoryButtonCallback 
    4043        self.original_cursor_id = self.engine.getCursor().getId() 
    4144        # TODO: remove hard-coded string? 
    4245        self.inventory = pychan.loadXML("gui/inventory.xml") 
     46        self.inventoryShown = False  
    4347        self.events_to_map = {} 
    4448        # the images that should be used for the buttons when they are "empty" 
     
    112116                ch.item = "" 
    113117 
     118        self.events_to_map['close_button'] = self.closeInventoryAndToggle 
    114119        self.inventory.mapEvents(self.events_to_map)    
    115120        self.resetMouseCursor() 
     
    119124           @return: None""" 
    120125        self.inventory.hide() 
     126 
     127    def closeInventoryAndToggle(self): 
     128        """Close the inventory screen. 
     129           @return: None""" 
     130        self.closeInventory() 
     131        self.toggleInventoryButtonCallback() 
     132        self.inventoryShown = False 
     133 
     134    def displayInventory(self, callFromHud): 
     135        """Pause the game and enter the inventory screen, or close the 
     136           inventory screen and resume the game. callFromHud should be true 
     137           (must be True?) if you call this function from the HUD script 
     138           @type callFromHud: boolean 
     139           @param callFromHud: Whether this function is being called  
     140                               from the HUD script 
     141           @return: None""" 
     142        if (self.inventoryShown == False): 
     143            self.showInventory() 
     144            self.inventoryShown = True 
     145        else: 
     146            self.closeInventory() 
     147            self.inventoryShown = False 
     148        if (callFromHud == False): 
     149            self.toggleInventoryButtonCallback() 
    121150 
    122151    def showInventory(self): 
Note: See TracChangeset for help on using the changeset viewer.