2 """
3 singleton class of the used game scene to hold all the created objects
4
5 @ivar objectsActive: all objects that are active like player and the universe sphere
6 @type objectsActive: List
7 @ivar objectsPassive: all stairs and platforms in the game scene
8 @type objectsPassive: List
9 @ivar objectsCamera: all cameras in the game scene
10 @type objectsCamera: List
11 @ivar objectsLight: all the lights in the game scene
12 @type objectsLight: List
13 @ivar objectsActiveTemp: all objects that are temporary available in the game scene like items, hurdle, gauge
14 @type objectsActiveTemp: List
15 @ivar objectsMerch: all objects that are classified as xItem and were spawned into game scene
16 @type objectsMerch: List
17 @ivar scene: holds the blender game scene
18 @type scene: KX_Scene
19 """
20
21 __instance = None
22
24 if self.__instance is None:
25 self.__instance = object.__new__(self, *args, **kargs)
26
27
28 self.objectsActive = []
29 self.objectsPassive = []
30 self.objectsCamera = []
31 self.objectsLight = []
32 self.objectsActiveTemp = []
33 self.objectsMerch = []
34 self.scene = 0
35
36 return self.__instance
37
40
42 """
43 adds a given object to his predefined list
44
45 @type my_object: MY_GameObject
46 @param my_object: the object that shall be added to the scene
47 """
48
49 if my_object.type == "objectActive":
50 self.objectsActive.append(my_object)
51 elif my_object.type == "objectPassive":
52 self.objectsPassive.append(my_object)
53 elif my_object.type == "objectCamera":
54 self.objectsCamera.append(my_object)
55 elif my_object.type == "objectLight":
56 self.objectsLight.append(my_object)
57 elif my_object.type == "objectActiveTemp":
58 self.objectsActiveTemp.append(my_object)
59 elif my_object == None:
60 print "no object added"
61
63 """
64 removes an object from his scene list
65
66 @type my_object: MY_GameObject
67 @param my_object: the object that shall be removed from the scene
68 """
69
70 if my_object.type == "objectActive":
71 self.objectsActive.remove(my_object)
72 elif my_object.type == "objectPassive":
73 self.objectsPassive.remove(my_object)
74 elif my_object.type == "objectCamera":
75 self.objectsCamera.remove(my_object)
76 elif my_object.type == "objectLight":
77 self.objectsLight.remove(my_object)
78 elif my_object.type == "objectActiveTemp":
79 self.objectsActiveTemp.remove(my_object)
80 elif my_object == None:
81 print "no object deleted"
82
84 """
85 only for non passive elements, passive lements can be searched by id (.getMyPassiveObjectById())
86 """
87
88 for element in self.objectsActive:
89 if element.name == item:
90 return element
91
92 for element in self.objectsCamera:
93 if element.name == item:
94 return element
95
96 for element in self.objectsLight:
97 if element.name == item:
98 return element
99
100 for element in self.objectsActiveTemp:
101 if element.name == item:
102 return element
103
105 """
106 gets a passive object by it's given id, like platforms and stairs
107
108 @type object_id: Integer
109 @param object_id: the id of a passive object
110
111 @rtype: MY_GameObject
112 @return: returns the passive object that goes with the given id
113 """
114
115 result = None
116
117 for index, element in enumerate(self.objectsPassive):
118 if element.elementId == object_id:
119 result = element
120 return result
121
123 """
124 gets a temporary active object by it's given id, like items
125
126 @type item_id: Integer
127 @param item_id: the id of a temporary active object
128
129 @rtype: MY_GameObject
130 @return: returns the temporary active object that goes with the given id
131 """
132
133 result = None
134
135 for index, element in enumerate(self.objectsActiveTemp):
136 if element.elementId == item_id:
137 result = element
138
139 return result
140
142 """
143 free the lists and destroy all game objects (when game is over for example)
144 """
145
146 temp_list = self.objectsActive[:]
147 for i in temp_list:
148 i.deleteObject()
149 temp_list = self.objectsPassive[:]
150 for i in temp_list:
151 i.deleteObject(True, False)
152 temp_list = self.objectsCamera[:]
153 for i in temp_list:
154 i.deleteObject()
155 temp_list = self.objectsLight[:]
156 for i in temp_list:
157 i.deleteObject()
158 temp_list = self.objectsActiveTemp[:]
159 for i in temp_list:
160 i.deleteObject()
161 while self.objectsMerch != []:
162 self.objectsMerch[0].deleteObject()
163 del temp_list
164
165 print self.objectsActive
166 print self.objectsPassive
167 print self.objectsCamera
168 print self.objectsLight
169 print self.objectsActiveTemp
170 print self.objectsMerch
171