Changeset 74


Ignore:
Timestamp:
05/26/09 16:09:26 (10 years ago)
Author:
bretzel_parpg
Message:

Added the first version of the HUD. Also updated the inventory so that when there is a different image then the normal one is dragged around, the imagebutton it was dragged from is restored to it's original "empty" image

Location:
trunk/PARPG
Files:
4 added
2 edited

Legend:

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

    r66 r74  
    1818        self.dragged_item = None 
    1919        self.dropped_type = None 
     20        self.original_cursor_id = self.engine.getCursor().getId() 
     21 
    2022        self.inventory = pychan.loadXML("gui/inventory.xml") 
    2123        events_to_map = {'close_button':self.inventory.hide, 
    2224                         'reset_button':self.resetImages} 
    23         self.empty_images = {} 
     25 
     26        # the images that should be used for the buttons when they are "empty" 
     27        self.empty_images = {'A1':'gui/inv_images/inv_backpack.png', 
     28                             'A2':'gui/inv_images/inv_backpack.png', 
     29                             'A3':'gui/inv_images/inv_backpack.png', 
     30                             'A4':'gui/inv_images/inv_backpack.png', 
     31                             'A5':'gui/inv_images/inv_backpack.png', 
     32                             'B1':'gui/inv_images/inv_backpack.png', 
     33                             'B2':'gui/inv_images/inv_backpack.png', 
     34                             'B3':'gui/inv_images/inv_backpack.png', 
     35                             'B4':'gui/inv_images/inv_backpack.png', 
     36                             'B5':'gui/inv_images/inv_backpack.png', 
     37                             'C1':'gui/inv_images/inv_backpack.png', 
     38                             'C2':'gui/inv_images/inv_backpack.png', 
     39                             'C3':'gui/inv_images/inv_backpack.png', 
     40                             'C4':'gui/inv_images/inv_backpack.png', 
     41                             'C5':'gui/inv_images/inv_backpack.png', 
     42                             'D1':'gui/inv_images/inv_backpack.png', 
     43                             'D2':'gui/inv_images/inv_backpack.png', 
     44                             'D3':'gui/inv_images/inv_backpack.png', 
     45                             'D4':'gui/inv_images/inv_backpack.png', 
     46                             'D5':'gui/inv_images/inv_backpack.png', 
     47                             'Head':'gui/inv_images/inv_head.png', 
     48                             'LeftHeld':'gui/inv_images/inv_litem.png', 
     49                             'RightHeld':'gui/inv_images/inv_ritem.png', 
     50                             'LeftHand':'gui/inv_images/inv_lhand.png', 
     51                             'RightHand':'gui/inv_images/inv_rhand.png', 
     52                             'Body':'gui/inv_images/inv_torso.png', 
     53                             'Belt':'gui/inv_images/inv_belt.png', 
     54                             'Ready1':'gui/inv_images/inv_belt_pouches.png', 
     55                             'Ready2':'gui/inv_images/inv_belt_pouches.png', 
     56                             'Ready3':'gui/inv_images/inv_belt_pouches.png', 
     57                             'Ready4':'gui/inv_images/inv_belt_pouches.png', 
     58                             'LeftFoot':'gui/inv_images/inv_lfoot.png', 
     59                             'RightFoot':'gui/inv_images/inv_rfoot.png'} 
     60 
    2461        # every button on the inventory and its category 
    2562        self.buttons = {'A1':'main_inv', 'A2':'main_inv', 'A3':'main_inv', 
     
    4279            # make every button's callback be self.dragDrop 
    4380            events_to_map[button] = cbwa(self.dragDrop, button) 
    44             ch=self.inventory.findChild(name = button) 
     81            ch = self.inventory.findChild(name = button) 
    4582            # make every slot's item be empty 
    4683            ch.item = "" 
    47             self.empty_images[button] = ch._getUpImage() 
     84 
    4885        self.inventory.mapEvents(events_to_map)    
    4986        self.resetMouseCursor() 
     
    89126        c = self.engine.getCursor() 
    90127        img_pool = self.engine.getImagePool() 
    91         cursor_type = fife.CURSOR_IMAGE 
     128        cursor_type = fife.CURSOR_NATIVE 
    92129        # this is the path to the default image 
    93         cursor_id = img_pool.addResourceFromFile("gui/inv_images/cursor.png") 
    94         c.setDrag(cursor_type,cursor_id) 
    95         c.set(cursor_type,cursor_id) 
     130        cursor_id = self.original_cursor_id 
     131        c.setDrag(cursor_type, cursor_id) 
     132        c.set(cursor_type, cursor_id) 
    96133         
    97134    # decide whether to drag or drop the image 
     
    112149        self.dragged_image = up_image 
    113150        self.dragging = True 
     151 
     152        drag_widget._setUpImage(self.empty_images[obj]) 
     153        drag_widget._setDownImage(self.empty_images[obj]) 
     154        drag_widget._setHoverImage(self.empty_images[obj]) 
    114155         
    115156    def dropObject(self, obj): 
  • trunk/PARPG/scripts/world.py

    r73 r74  
    2525from settings import Setting 
    2626from scripts import inventory 
     27from scripts import hud 
     28from pychan.tools import callbackWithArguments as cbwa 
    2729 
    2830TDS = Setting() 
     
    7173        self.mouseCallback = None 
    7274 
     75        self.hud = hud.Hud(self.engine) 
     76        self.hud.events_to_map["inventoryButton"] = cbwa(self.displayInventory, True) 
     77        self.hud.hud.mapEvents(self.hud.events_to_map) 
     78 
     79        self.hud.menu_events["quitButton"] = self.quitGame 
     80        self.hud.main_menu.mapEvents(self.hud.menu_events) 
     81 
     82        self.action_number = 1 
     83 
    7384    def reset(self): 
    7485        """Rest the map to default settings""" 
     
    123134        fife.InstanceVisual.create(obj) 
    124135 
    125     def displayInventory(self): 
     136    def displayInventory(self, callFromHud): 
    126137        """Pause the game and enter the inventory screen 
    127            or close the inventory screen and resume the game""" 
     138           or close the inventory screen and resume the game 
     139           callFromHud should be set to true if you call this 
     140           function from the hud script""" 
    128141        # show the inventory 
    129142        if(self.firstInventory == True): 
     
    131144            self.firstInventory = False 
    132145            self.inventoryShown = True 
     146            if (callFromHud == False): 
     147                self.hud.toggleInventory() 
    133148        # logically firstInventory is false here 
    134149        elif(self.inventoryShown == True): 
    135150            self.inventory.closeInventory() 
    136151            self.inventoryShown = False 
     152            if (callFromHud == False): 
     153                self.hud.toggleInventory() 
    137154        # and here inventoryShown must be false 
    138155        else: 
    139156            self.inventory.showInventory() 
    140157            self.inventoryShown = True 
     158            if (callFromHud == False): 
     159                self.hud.toggleInventory() 
    141160 
    142161    # all key / mouse event handling routines go here 
     
    165184        if(keyval == key.I): 
    166185            # I opens and closes the inventory 
    167             self.displayInventory() 
     186            self.displayInventory(callFromHud=False) 
     187        if(keyval == key.A): 
     188            # A adds a test action to the action box 
     189            # The test actions will follow this format: Action 1, Action 2, etc. 
     190            self.hud.addAction("Action " + str(self.action_number)) 
     191            self.action_number += 1 
     192        if(keyval == key.ESCAPE): 
     193            # Escape brings up the main menu 
     194            self.hud.displayMenu() 
    168195 
    169196    def getCoords(self, click): 
Note: See TracChangeset for help on using the changeset viewer.