Changeset 137


Ignore:
Timestamp:
06/15/09 03:27:19 (10 years ago)
Author:
maximinus_parpg
Message:

Add interior of shanty building.
You can easily enter and leave the building.
Tidied up door objects data.
Added some wall objects.

Location:
trunk/PARPG
Files:
9 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/PARPG/maps/map.xml

    r129 r137  
    3737        <import file="../objects/buildings/windmill/windmilld.xml"></import> 
    3838        <import file="../objects/buildings/windmill/windmille.xml"></import> 
    39          
     39 
     40    <!-- Import the purely visual objects --> 
     41    <import file="../objects/ground/walls/wall_rear/wall-up.xml"></import> 
     42 
    4043        <!-- Import the tile transition tiles --> 
    4144        <import file="../objects/ground/grass/transition/grass-tc01.xml"></import> 
  • trunk/PARPG/maps/map_objects.xml

    r133 r137  
    2020    <object display="False" gfx="NONE" owner="crate02" id="battery" 
    2121            carry="1" contain="0" text="An old battery"></object> 
     22    <!-- Some objects are just plain visual aids --> 
     23    <visual xpos="-3.0" ypos="-4.0" gfx="wall-up"></visual> 
     24    <visual xpos="-2.0" ypos="-4.0" gfx="wall-up"></visual> 
    2225    <!-- There can be a number of doors, which serve as transition triggers --> 
    2326    <door display="True" gfx="shanty-door" xpos="-2.0" ypos="6.0" 
    24         id="sh-door" carry="0" contain="0" text="Door" map="map2" 
    25         txpos="-5" typos="-5"></door> 
     27        id="sh-door" text="Enter building" map="shanty" 
     28        txpos="-1" typos="1"></door> 
    2629    <door display="True" gfx="snow02" xpos="-14" ypos="10" 
    27           id="tt01" carry="0" contain="0" text="New Map" map="map2" 
    28           txpos="-14" typos="-17"></door> 
     30        id="tt01" text="New Map" map="map2" 
     31        txpos="-14" typos="-17"></door> 
    2932</objects> 
    3033 
  • trunk/PARPG/scripts/engine.py

    r134 r137  
    8989        self.addObjects(cur_handler.objects) 
    9090        self.addDoors(cur_handler.doors) 
     91        self.addVisuals(cur_handler.visuals) 
    9192        objects_file.close() 
    9293        return True 
     
    130131        for i in doors: 
    131132            self.doors.append(MapDoor(i[0], i[1], i[2])) 
     133 
     134    def addVisuals(self, visuals): 
     135        """Add all the non-interacting objects""" 
     136        for i in visuals: 
     137            self.view.addObject(float(i[0]),float(i[1]),i[2],i[3]) 
    132138 
    133139    def objectActive(self, ident): 
  • trunk/PARPG/scripts/objLoader.py

    r133 r137  
    2929        self.npcs = [] 
    3030        self.doors = [] 
     31        self.visuals = [] 
     32        # create unique names for all of the visuals 
     33        self.visual_count = 0 
    3134     
    3235    def getParser(self): 
     
    5861            self.objects.append([False, gfx, ident, text, 
    5962                                 owner, contain, carry]) 
     63 
     64    def getDoor(self, attrs): 
     65        """Grab door data""" 
     66        try: 
     67            display = attrs.getValue("display") 
     68            if(display == "True"): 
     69                xpos = attrs.getValue("xpos") 
     70                ypos = attrs.getValue("ypos") 
     71            else: 
     72                owner = attrs.getValue("owner") 
     73            gfx = attrs.getValue("gfx") 
     74            ident = attrs.getValue("id") 
     75            text = attrs.getValue("text") 
     76        except(KeyError): 
     77            sys.stderr.write("Error: Data missing in door definition\n") 
     78            sys.exit(False) 
     79        # now we have the data, save it for later 
     80        if(display == "True"): 
     81            self.objects.append([True, xpos, ypos, gfx, ident, 
     82                                 text, "0", "0"]) 
     83        else: 
     84            self.objects.append([False, gfx, ident, text, 
     85                                 owner, "0", "0"]) 
     86 
     87    def getVisual(self, attrs): 
     88        """Visual elements are there just for the eye candy""" 
     89        try: 
     90            xpos = attrs.getValue("xpos") 
     91            ypos = attrs.getValue("ypos") 
     92            gfx = attrs.getValue("gfx") 
     93        except(KeyError): 
     94            sys.stderr.write("Error: Data missing in visual definition\n") 
     95            sys.exit(False) 
     96        name = "visual-"+str(self.visual_count) 
     97        self.visual_count += 1 
     98        self.visuals.append([xpos,ypos,gfx,name]) 
    6099   
    61100    def startElement(self, name, attrs): 
     
    92131            # same old same old 
    93132            self.getObject(attrs) 
     133        elif(name == "visual"): 
     134            self.getVisual(attrs) 
    94135        elif(name == "door"): 
    95136            # firstly, add the object 
    96             self.getObject(attrs) 
     137            self.getDoor(attrs) 
    97138            # then save the other data 
    98139            try: 
  • trunk/PARPG/scripts/world.py

    r135 r137  
    139139        # attach the main camera to the PC 
    140140        self.cameras['main'].attach(agent) 
    141      
     141 
    142142    def addObject(self, xpos, ypos, gfx, name): 
    143143        """Add an object or an NPC to the map 
Note: See TracChangeset for help on using the changeset viewer.