source: trunk/game/scripts/gamestate.py @ 356

Revision 356, 1.9 KB checked in by Kaydeth_parpg, 10 years ago (diff)

Ticket #73. Patch by Kaydeth. Most of the changes were made to the map loading logic in the Engine, World, and Map classes to make sure it could handle loading maps after the game state has been restored by a load game. Also added a floating door back to both maps so map changing can still be tested in game. fixes[s:trac, t:73]

  • Property svn:eol-style set to native
Line 
1#!/usr/bin/python
2
3#   This file is part of PARPG.
4
5#   PARPG is free software: you can redistribute it and/or modify
6#   it under the terms of the GNU General Public License as published by
7#   the Free Software Foundation, either version 3 of the License, or
8#   (at your option) any later version.
9
10#   PARPG is distributed in the hope that it will be useful,
11#   but WITHOUT ANY WARRANTY; without even the implied warranty of
12#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13#   GNU General Public License for more details.
14
15#   You should have received a copy of the GNU General Public License
16#   along with PARPG.  If not, see <http://www.gnu.org/licenses/>.
17
18from objects import base
19
20class GameState(object):
21    """This class holds the current state of the game."""
22    def __init__(self):
23        """initialize attributes"""
24        self.PC = None
25        self.objects = {}
26        self.current_map_file = None
27        self.current_map_name = None
28        #these coordinates are only used for saving and loading the game.
29        #They do not represent the pc's active location
30        self.saved_pc_coordinates = (0,0)
31       
32    def getObjectsFromMap(self, map_id):
33        """Gets all objects that are currently on the given map.
34           @type map: String
35           @param map: The map name.
36           @returns: The list of objects on this map."""
37        return [i for i in self.objects[map_id].values() if map_id in self.objects]
38   
39    def getObjectById(self, obj_id, map_id):
40        """Gets an object by its object id and map id
41           @type obj_id: String
42           @param obj_id: The id of the object.
43           @type map_id: String
44           @param map_id: It id of the map containing the object.
45           @returns: The object or None."""
46        if not map_id in self.objects:
47            self.objects[map_id] = {}
48        if obj_id in self.objects[map_id]:
49            return self.objects[map_id][obj_id]
50       
Note: See TracBrowser for help on using the repository browser.