Changeset 600


Ignore:
Timestamp:
07/27/10 10:20:23 (9 years ago)
Author:
beliar
Message:

Patch by Beliar.

  • Dropping items menu action now only shows when right-clicking on an item in the players inventory
  • Actions that are supposed to happen when a key is pressed now work again.
Location:
trunk/game/scripts
Files:
5 edited

Legend:

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

    r595 r600  
    1717 
    1818from controllerbase import ControllerBase 
    19 from datetime import date, time 
     19from datetime import datetime 
    2020from fife import fife 
    2121from scripts.gui.hud import Hud 
     
    5757        # Last saved mouse coords         
    5858        self.last_mousecoords = None 
    59          
     59        self.action_number = 1 
     60 
    6061        self.mouse_callback = None 
    6162 
     
    9091        if(key_val == key.Q): 
    9192            # we need to quit the game 
    92             self.hud.quitGame() 
     93            self.view.hud.quitGame() 
    9394        if(key_val == key.T): 
    94             self.active_map.toggleRenderer('GridRenderer') 
     95            self.model.active_map.toggleRenderer('GridRenderer') 
    9596        if(key_val == key.F1): 
    9697            # display the help screen and pause the game 
    97             self.hud.displayHelp() 
     98            self.view.hud.displayHelp() 
    9899        if(key_val == key.F5): 
    99             self.active_map.toggleRenderer('CoordinateRenderer') 
     100            self.model.active_map.toggleRenderer('CoordinateRenderer') 
    100101        if(key_val == key.F7): 
    101102            # F7 saves a screenshot to fife/clients/parpg/screenshots 
    102             screenshot_file = "screenshots/screen-%s-%s.png" % \ 
    103                     (date.today().strftime('%Y-%m-%d'),\ 
    104                     time.strftime('%H-%M-%S')) 
     103             
     104            screenshot_file = "screenshots/screen-%s.png" % \ 
     105                    (datetime.now().strftime('%Y-%m-%d-%H-%M-%S')) 
    105106            print "PARPG: Saved:", screenshot_file 
    106107            self.engine.getRenderBackend().captureScreen(screenshot_file) 
     
    110111        if(key_val == key.I): 
    111112            # I opens and closes the inventory 
    112             self.hud.toggleInventory() 
     113            self.view.hud.toggleInventory() 
    113114        if(key_val == key.A): 
    114115            # A adds a test action to the action box 
     
    116117            # Action 2, etc. 
    117118            self.view.hud.addAction("Action " + str(self.action_number)) 
    118             self.view.action_number += 1 
     119            self.action_number += 1 
    119120        if(key_val == key.ESCAPE): 
    120121            # Escape brings up the main menu 
  • trunk/game/scripts/gamesceneview.py

    r598 r600  
    2929           """ 
    3030        super(GameSceneView, self).__init__(engine, model) 
    31  
    32         self.action_number = 1 
    3331 
    3432        # init the sound 
  • trunk/game/scripts/gui/containergui_base.py

    r596 r600  
    9393        pass     
    9494     
     95 
     96    def createMenuItems(self, item, actions): 
     97        """Creates context menu items for all classes based on ContainerGUI""" 
     98        menu_actions = [] 
     99        for action_name in actions: 
     100            display_name = action_name 
     101            if action_name in ACTIONS: 
     102                param_dict = {} 
     103                param_dict["controller"] = self.controller 
     104                param_dict["commands"] = {} 
     105                if action_name == "Look": 
     106                    param_dict["examine_name"] = item.name 
     107                    param_dict["examine_desc"] = actions[action_name].\ 
     108                                                                pop("text") 
     109                if action_name == "Read": 
     110                    param_dict["text_name"] = item.name 
     111                    param_dict["text"] = "" 
     112                if action_name == "Use": 
     113                    param_dict["item"] = item 
     114                    display_name = actions[action_name].pop("text") 
     115                param_dict.update(actions[action_name]) 
     116                menu_actions.append([action_name,  
     117                                     display_name,  
     118                                     self.executeMenuItem,  
     119                                     ACTIONS[action_name]\ 
     120                                                (**param_dict)])         
     121        return menu_actions 
     122 
    95123    def showContextMenu(self, event, widget): 
    96124        """Decide whether to drag or drop the image. 
     
    105133                if not actions: 
    106134                    return 
    107                 menu_actions = [] 
    108135                x_pos, y_pos = widget.getAbsolutePos() 
    109136                x_pos += event.getX() 
    110137                y_pos += event.getY() 
    111                 for action_name in actions: 
    112                     display_name = action_name 
    113                     if action_name in ACTIONS: 
    114                         param_dict = {}  
    115                         param_dict["controller"] = self.controller 
    116                         param_dict["commands"] = {} 
    117                         if action_name == "Look": 
    118                             param_dict["examine_name"] = item.name 
    119                             param_dict["examine_desc"] = actions[action_name].pop("text") 
    120                         if action_name == "Read": 
    121                             param_dict["text_name"] = item.name 
    122                             param_dict["text"] = "" 
    123                         if action_name == "Use": 
    124                             param_dict["item"] = item 
    125                             display_name = actions[action_name].pop("text") 
    126                         param_dict.update(actions[action_name]) 
    127                         menu_actions.append([action_name, display_name,  
    128                                             self.executeMenuItem, 
    129                                             ACTIONS[action_name](**param_dict)]) 
    130                 param_dict = {}  
    131                 param_dict["controller"] = self.controller 
    132                 param_dict["commands"] = {} 
    133                 param_dict["item"] = item 
    134                 param_dict["container_gui"] = self 
    135                 menu_actions.append(["Drop", "Drop", 
    136                                             self.executeMenuItem, 
    137                                             ACTIONS["Drop"](**param_dict)]) 
     138                menu_actions = self.createMenuItems(item, actions) 
     139                self.controller.view.hud.hideContextMenu() 
    138140                self.controller.view.hud.showContextMenu(menu_actions, 
    139141                                                 (x_pos,  
  • trunk/game/scripts/gui/hud.py

    r584 r600  
    121121    def addAction(self, action): 
    122122        """Add an action to the actions box. 
    123            @type action: string 
     123           @type action: (unicode) string 
    124124           @param action: The text that you want to display in the actions box 
    125            @return: None""" 
     125           @return: None"""         
     126        if not type(action) is unicode: 
     127            action = unicode(action) 
    126128        action_label = pychan.widgets.Label(text = action, wrap_text = True) 
    127129        action_label.max_width = self.actions_box.width 
  • trunk/game/scripts/gui/inventorygui.py

    r596 r600  
    2121from scripts.objects.base import Container 
    2222from scripts.gui.containergui_base import ContainerGUIBase 
     23from scripts.objects.action import ACTIONS 
    2324 
    2425class InventoryGUI(ContainerGUIBase): 
     
    200201        self.updateInventoryButtons() 
    201202               
     203    def createMenuItems(self, item, actions): 
     204        """Creates context menu items for the InventoryGUI""" 
     205        menu_actions = super(InventoryGUI, self).createMenuItems(item, actions) 
     206        param_dict = {} 
     207        param_dict["controller"] = self.controller 
     208        param_dict["commands"] = {} 
     209        param_dict["item"] = item 
     210        param_dict["container_gui"] = self 
     211        menu_actions.append(["Drop", 
     212                             "Drop",  
     213                             self.executeMenuItem,  
     214                             ACTIONS["Drop"](**param_dict)])         
     215        return menu_actions 
     216     
    202217    def getImage(self, name): 
    203218        """Return a current image from the inventory 
Note: See TracChangeset for help on using the changeset viewer.