Changeset 65 for trunk/PARPG/scripts


Ignore:
Timestamp:
05/12/09 16:48:19 (11 years ago)
Author:
maximinus_parpg
Message:

Cleaned some code in /scripts/inventory.py
Optimised some logic in /scripts/world.py

Location:
trunk/PARPG/scripts
Files:
2 edited

Legend:

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

    r64 r65  
    11#!/usr/bin/python 
    22 
    3 import sys, os 
    4  
    5  
    6 # Add fife modules to the path and import them 
    7 def _jp(path): 
    8     return os.path.sep.join(path.split('/')) 
    9  
    10 _paths = ('../../../engine/swigwrappers/python', '../../../engine/extensions') 
    11 for p in _paths: 
    12     if p not in sys.path: 
    13         sys.path.append(_jp(p)) 
     3import sys,os 
    144 
    155import fife 
     
    188from pychan.tools import callbackWithArguments as cbwa 
    199 
    20 #Main inventory class 
    2110class Inventory(): 
    22  
     11    """Main inventory class""" 
    2312    def __init__(self, engine): 
    2413        pychan.init(engine,debug=True) 
    25  
    2614        self.engine = engine 
    27      
    2815        self.dragging = False 
    2916        self.dragged_image = None 
     
    3118        self.dragged_item = None 
    3219        self.dropped_type = None 
    33          
    34      
    3520        self.inventory = pychan.loadXML("gui/inventory.xml") 
    36      
    3721        events_to_map = {'close_button':self.inventory.hide, 
    3822                         'reset_button':self.resetImages} 
    39  
    4023        self.empty_images = {} 
    41  
    42  
    4324        # every button on the inventory and its category 
    4425        self.buttons = {'A1':'main_inv', 'A2':'main_inv', 'A3':'main_inv', 
     
    5536                        'Ready4':'ready', 'Belt':'belt', 'LeftHeld':'held', 
    5637                        'RightHeld':'held', 'Body':'body'} 
    57          
    5838        # all possible categories 
    59         self.locations = ['ready', 'head', 'foot', 'hand', 'belt', 'held', 'body'] 
    60          
     39        self.locations = ['ready','head','foot','hand','belt','held','body'] 
    6140        for button in self.buttons: 
    6241            # make every button's callback be self.dragDrop 
    6342            events_to_map[button] = cbwa(self.dragDrop, button) 
    64             ch = self.inventory.findChild(name=button) 
    65              
    66             #make every slot's item be empty 
    67             ch.item = "" 
    68             self.empty_images[button] = ch._getUpImage() 
    69  
    70  
     43            ch=self.inventory.findChild(name=button) 
     44            # make every slot's item be empty 
     45            ch.item="" 
     46            self.empty_images[button]=ch._getUpImage() 
    7147        self.inventory.mapEvents(events_to_map)    
    7248        self.resetMouseCursor() 
     
    7450 
    7551    def closeInventory(self): 
     52        """Close the inventory""" 
    7653        self.inventory.hide() 
    7754 
    7855    def showInventory(self): 
     56        """Show the inventory""" 
    7957        self.inventory.show() 
    8058 
    81     # resets all images in the program to the way they were when the program 
    82     # was first launched (will be taken out on release) 
    8359    def resetImages(self): 
     60        """Reset all images in the program to the way they were when the  
     61           program was first launched 
     62           TODO: should be taken out on release (WHY?)""" 
    8463        for image in self.empty_images: 
    85             child = self.inventory.findChild(name=image) 
    86             original_image = self.empty_images[image] 
    87              
     64            child=self.inventory.findChild(name=image) 
     65            original_image=self.empty_images[image] 
    8866            child._setUpImage(original_image) 
    8967            child._setDownImage(original_image) 
    9068            child._setHoverImage(original_image) 
    9169 
    92  
    93     # set the mouse cursor to an image 
    94     def setMouseCursor(self, image, dummy_image, type="native"):  
     70    def setMouseCursor(self,image,dummy_image,type="native"):  
     71        """Set the mouse cursor to an image""" 
     72        cursor=self.engine.getCursor() 
     73        cursor_type=fife.CURSOR_IMAGE 
     74        img_pool=self.engine.getImagePool() 
     75        if(type=="target"): 
     76            target_cursor_id=img_pool.addResourceFromFile(image)   
     77            dummy_cursor_id=img_pool.addResourceFromFile(dummy_image) 
     78            cursor.set(cursor_type,target_dummy_cursor_id) 
     79            cursor.setDrag(cursor_type,target_cursor_id,-16,-16) 
     80        else: 
     81            cursor_type=fife.CURSOR_IMAGE 
     82            zero_cursor_id=img_pool.addResourceFromFile(image) 
     83            cursor.set(cursor_type,zero_cursor_id) 
     84            cursor.setDrag(cursor_type,zero_cursor_id) 
    9585             
    96         cursor = self.engine.getCursor() 
    97         cursor_type = fife.CURSOR_IMAGE 
    98         img_pool = self.engine.getImagePool() 
    99          
    100         if(type == "target"): 
    101             target_cursor_id = img_pool.addResourceFromFile(image)   
    102             dummy_cursor_id = img_pool.addResourceFromFile(dummy_image) 
    103             cursor.set(cursor_type, target_dummy_cursor_id) 
    104             cursor.setDrag(cursor_type, target_cursor_id, -16, -16) 
    105              
    106         else: 
    107             cursor_type = fife.CURSOR_IMAGE 
    108             zero_cursor_id = img_pool.addResourceFromFile(image) 
    109             cursor.set(cursor_type, zero_cursor_id) 
    110             cursor.setDrag(cursor_type, zero_cursor_id) 
    111              
    112     # reset mouse cursor to default image ("gui/inv_images/cursor.png") 
    11386    def resetMouseCursor(self): 
    114         c = self.engine.getCursor() 
    115          
    116         img_pool = self.engine.getImagePool() 
    117          
    118         cursor_type = fife.CURSOR_IMAGE 
    119         cursor_id = img_pool.addResourceFromFile("gui/inv_images/cursor.png") 
    120         c.setDrag(cursor_type, cursor_id) 
    121         c.set(cursor_type, cursor_id) 
     87        """Reset cursor to default image""" 
     88        c=self.engine.getCursor() 
     89        img_pool=self.engine.getImagePool() 
     90        cursor_type=fife.CURSOR_IMAGE 
     91        # this is the path to the default image 
     92        cursor_id=img_pool.addResourceFromFile("gui/inv_images/cursor.png") 
     93        c.setDrag(cursor_type,cursor_id) 
     94        c.set(cursor_type,cursor_id) 
    12295         
    12396    # decide whether to drag or drop the image 
    124     def dragDrop(self, obj): 
    125         if(self.dragging == True): 
     97    def dragDrop(self,obj): 
     98        if(self.dragging==True): 
    12699            self.dropObject(obj) 
    127              
    128         elif(self.dragging == False): 
     100        elif(self.dragging==False): 
    129101            self.dragObject(obj) 
    130102                 
    131103    # drag the selected object 
    132     def dragObject(self, obj): 
    133      
    134         drag_widget = self.inventory.findChild(name=obj) 
     104    def dragObject(self,obj): 
     105        drag_widget=self.inventory.findChild(name=obj) 
     106        self.dragged_type=self.buttons[obj] 
     107        self.dragged_item=drag_widget.item 
     108        up_image=drag_widget._getUpImage() 
     109        down_image=drag_widget._getDownImage() 
     110        self.setMouseCursor(up_image,down_image) 
     111        self.dragged_image=up_image 
     112        self.dragging=True 
    135113         
    136         self.dragged_type = self.buttons[obj] 
    137         self.dragged_item = drag_widget.item 
    138          
    139         up_image = drag_widget._getUpImage() 
    140         down_image = drag_widget._getDownImage() 
    141         self.setMouseCursor(up_image, down_image) 
    142         self.dragged_image = up_image 
    143         self.dragging = True 
    144          
    145     #drop the object being currently dragged 
    146     def dropObject(self, obj): 
     114    def dropObject(self,obj): 
     115        """Drops the object being dropped""" 
    147116        self.dropped_type = self.buttons[obj] 
    148          
    149         if((self.dragged_type == 'main_inv') or 
    150            (self.dropped_type == 'main_inv')): 
     117        if((self.dragged_type=='main_inv') or 
     118           (self.dropped_type=='main_inv')): 
    151119            drag_widget = self.inventory.findChild(name=obj) 
    152120            drag_widget._setUpImage(self.dragged_image) 
     
    156124            self.dragging = False 
    157125            self.resetMouseCursor() 
    158              
    159          
    160         elif((self.dragged_type == self.dropped_type) and 
     126        elif((self.dragged_type==self.dropped_type) and 
    161127             (self.dragged_type in self.locations)): 
    162128            drag_widget = self.inventory.findChild(name=obj) 
     
    165131            drag_widget._setDownImage(self.dragged_image) 
    166132            drag_widget.item = self.dragged_item 
    167             self.dragging = False 
     133            self.dragging=False 
    168134            self.resetMouseCursor() 
    169      
    170  
    171135        else: 
    172136            self.resetMouseCursor() 
    173             self.dragging = False 
     137            self.dragging=False 
  • trunk/PARPG/scripts/world.py

    r63 r65  
    146146        if(keyval==key.I): 
    147147            # show the inventory 
    148             if (self.firstInventory == True): 
    149                 self.inventory = inventory.Inventory(self.engine) 
    150                 self.firstInventory = False 
    151                 self.inventoryShown = True 
    152  
    153             elif ((self.firstInventory == False) and  
    154                   (self.inventoryShown == True)): 
     148            if(self.firstInventory==True): 
     149                self.inventory=inventory.Inventory(self.engine) 
     150                self.firstInventory=False 
     151                self.inventoryShown=True 
     152            # logically firstInventory is false here 
     153            elif(self.inventoryShown==True): 
    155154                self.inventory.closeInventory() 
    156                 self.inventoryShown = False 
    157  
    158             elif ((self.firstInventory == False) and 
    159                   (self.inventoryShown == False)): 
     155                self.inventoryShown=False 
     156            # and here inventoryShown must be false 
     157            else: 
    160158                self.inventory.showInventory() 
    161                 self.inventoryShown = True 
     159                self.inventoryShown=True 
    162160 
    163161    def mousePressed(self, evt): 
Note: See TracChangeset for help on using the changeset viewer.