diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneManager.cs | 474 |
1 files changed, 237 insertions, 237 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneManager.cs b/OpenSim/Region/Environment/Scenes/SceneManager.cs index dfac406..4a99a80 100644 --- a/OpenSim/Region/Environment/Scenes/SceneManager.cs +++ b/OpenSim/Region/Environment/Scenes/SceneManager.cs | |||
@@ -1,237 +1,237 @@ | |||
1 | using System.Collections.Generic; | 1 | using System.Collections.Generic; |
2 | using System; | 2 | using System; |
3 | using OpenSim.Framework.Console; | 3 | using OpenSim.Framework.Console; |
4 | using OpenSim.Framework.Types; | 4 | using OpenSim.Framework.Types; |
5 | 5 | ||
6 | namespace OpenSim.Region.Environment.Scenes | 6 | namespace OpenSim.Region.Environment.Scenes |
7 | { | 7 | { |
8 | public class SceneManager | 8 | public class SceneManager |
9 | { | 9 | { |
10 | private readonly List<Scene> m_localScenes; | 10 | private readonly List<Scene> m_localScenes; |
11 | private Scene m_currentScene = null; | 11 | private Scene m_currentScene = null; |
12 | public Scene CurrentScene | 12 | public Scene CurrentScene |
13 | { | 13 | { |
14 | get | 14 | get |
15 | { | 15 | { |
16 | return m_currentScene; | 16 | return m_currentScene; |
17 | } | 17 | } |
18 | } | 18 | } |
19 | 19 | ||
20 | private Scene CurrentOrFirstScene | 20 | private Scene CurrentOrFirstScene |
21 | { | 21 | { |
22 | get | 22 | get |
23 | { | 23 | { |
24 | if (m_currentScene == null) | 24 | if (m_currentScene == null) |
25 | { | 25 | { |
26 | return m_localScenes[0]; | 26 | return m_localScenes[0]; |
27 | } | 27 | } |
28 | else | 28 | else |
29 | { | 29 | { |
30 | return m_currentScene; | 30 | return m_currentScene; |
31 | } | 31 | } |
32 | } | 32 | } |
33 | } | 33 | } |
34 | 34 | ||
35 | public SceneManager() | 35 | public SceneManager() |
36 | { | 36 | { |
37 | m_localScenes = new List<Scene>(); | 37 | m_localScenes = new List<Scene>(); |
38 | } | 38 | } |
39 | 39 | ||
40 | public void Close() | 40 | public void Close() |
41 | { | 41 | { |
42 | for (int i = 0; i < m_localScenes.Count; i++) | 42 | for (int i = 0; i < m_localScenes.Count; i++) |
43 | { | 43 | { |
44 | m_localScenes[i].Close(); | 44 | m_localScenes[i].Close(); |
45 | } | 45 | } |
46 | } | 46 | } |
47 | 47 | ||
48 | public void Add(Scene scene) | 48 | public void Add(Scene scene) |
49 | { | 49 | { |
50 | m_localScenes.Add(scene); | 50 | m_localScenes.Add(scene); |
51 | } | 51 | } |
52 | 52 | ||
53 | public void SavePrimsToXml(string filename) | 53 | public void SavePrimsToXml(string filename) |
54 | { | 54 | { |
55 | CurrentOrFirstScene.SavePrimsToXml(filename); | 55 | CurrentOrFirstScene.SavePrimsToXml(filename); |
56 | } | 56 | } |
57 | 57 | ||
58 | public void LoadPrimsFromXml(string filename) | 58 | public void LoadPrimsFromXml(string filename) |
59 | { | 59 | { |
60 | CurrentOrFirstScene.LoadPrimsFromXml(filename); | 60 | CurrentOrFirstScene.LoadPrimsFromXml(filename); |
61 | } | 61 | } |
62 | 62 | ||
63 | public bool RunTerrainCmd(string[] cmdparams, ref string result) | 63 | public bool RunTerrainCmd(string[] cmdparams, ref string result) |
64 | { | 64 | { |
65 | if (m_currentScene == null) | 65 | if (m_currentScene == null) |
66 | { | 66 | { |
67 | bool success = true; | 67 | bool success = true; |
68 | foreach (Scene scene in m_localScenes) | 68 | foreach (Scene scene in m_localScenes) |
69 | { | 69 | { |
70 | if (!scene.Terrain.RunTerrainCmd(cmdparams, ref result, scene.RegionInfo.RegionName)) | 70 | if (!scene.Terrain.RunTerrainCmd(cmdparams, ref result, scene.RegionInfo.RegionName)) |
71 | { | 71 | { |
72 | success = false; | 72 | success = false; |
73 | } | 73 | } |
74 | } | 74 | } |
75 | 75 | ||
76 | return success; | 76 | return success; |
77 | } | 77 | } |
78 | else | 78 | else |
79 | { | 79 | { |
80 | return m_currentScene.Terrain.RunTerrainCmd(cmdparams, ref result, m_currentScene.RegionInfo.RegionName); | 80 | return m_currentScene.Terrain.RunTerrainCmd(cmdparams, ref result, m_currentScene.RegionInfo.RegionName); |
81 | } | 81 | } |
82 | } | 82 | } |
83 | 83 | ||
84 | public void SendCommandToScripts(string[] cmdparams) | 84 | public void SendCommandToScripts(string[] cmdparams) |
85 | { | 85 | { |
86 | ForEach(delegate(Scene scene) | 86 | ForEach(delegate(Scene scene) |
87 | { | 87 | { |
88 | scene.SendCommandToScripts(cmdparams); | 88 | scene.SendCommandToScripts(cmdparams); |
89 | }); | 89 | }); |
90 | } | 90 | } |
91 | 91 | ||
92 | public void BypassPermissions(bool bypassPermissions) | 92 | public void BypassPermissions(bool bypassPermissions) |
93 | { | 93 | { |
94 | ForEach(delegate(Scene scene) | 94 | ForEach(delegate(Scene scene) |
95 | { | 95 | { |
96 | scene.PermissionsMngr.BypassPermissions = bypassPermissions; | 96 | scene.PermissionsMngr.BypassPermissions = bypassPermissions; |
97 | }); | 97 | }); |
98 | } | 98 | } |
99 | 99 | ||
100 | private void ForEach(Action<Scene> func) | 100 | private void ForEach(Action<Scene> func) |
101 | { | 101 | { |
102 | if (m_currentScene == null) | 102 | if (m_currentScene == null) |
103 | { | 103 | { |
104 | m_localScenes.ForEach(func); | 104 | m_localScenes.ForEach(func); |
105 | } | 105 | } |
106 | else | 106 | else |
107 | { | 107 | { |
108 | func(m_currentScene); | 108 | func(m_currentScene); |
109 | } | 109 | } |
110 | } | 110 | } |
111 | 111 | ||
112 | public void Backup() | 112 | public void Backup() |
113 | { | 113 | { |
114 | ForEach(delegate(Scene scene) | 114 | ForEach(delegate(Scene scene) |
115 | { | 115 | { |
116 | scene.Backup(); | 116 | scene.Backup(); |
117 | }); | 117 | }); |
118 | } | 118 | } |
119 | 119 | ||
120 | public void HandleAlertCommand(string[] cmdparams) | 120 | public void HandleAlertCommand(string[] cmdparams) |
121 | { | 121 | { |
122 | ForEach(delegate(Scene scene) | 122 | ForEach(delegate(Scene scene) |
123 | { | 123 | { |
124 | scene.HandleAlertCommand(cmdparams); | 124 | scene.HandleAlertCommand(cmdparams); |
125 | }); | 125 | }); |
126 | } | 126 | } |
127 | 127 | ||
128 | public bool TrySetCurrentRegion(string regionName) | 128 | public bool TrySetCurrentRegion(string regionName) |
129 | { | 129 | { |
130 | if ((String.Compare(regionName, "root") == 0) || (String.Compare(regionName, "..") == 0)) | 130 | if ((String.Compare(regionName, "root") == 0) || (String.Compare(regionName, "..") == 0)) |
131 | { | 131 | { |
132 | m_currentScene = null; | 132 | m_currentScene = null; |
133 | return true; | 133 | return true; |
134 | } | 134 | } |
135 | else | 135 | else |
136 | { | 136 | { |
137 | Console.WriteLine("Searching for Region: '" + regionName + "'"); | 137 | Console.WriteLine("Searching for Region: '" + regionName + "'"); |
138 | Scene foundScene = null; | 138 | Scene foundScene = null; |
139 | 139 | ||
140 | foreach (Scene scene in m_localScenes) | 140 | foreach (Scene scene in m_localScenes) |
141 | { | 141 | { |
142 | if (String.Compare(scene.RegionInfo.RegionName, regionName, true) == 0) | 142 | if (String.Compare(scene.RegionInfo.RegionName, regionName, true) == 0) |
143 | { | 143 | { |
144 | m_currentScene = scene; | 144 | m_currentScene = scene; |
145 | return true; | 145 | return true; |
146 | } | 146 | } |
147 | } | 147 | } |
148 | 148 | ||
149 | return false; | 149 | return false; |
150 | } | 150 | } |
151 | } | 151 | } |
152 | 152 | ||
153 | public void DebugPacket(LogBase log, int newDebug) | 153 | public void DebugPacket(LogBase log, int newDebug) |
154 | { | 154 | { |
155 | ForEach(delegate(Scene scene) | 155 | ForEach(delegate(Scene scene) |
156 | { | 156 | { |
157 | foreach (EntityBase entity in scene.Entities.Values) | 157 | foreach (EntityBase entity in scene.Entities.Values) |
158 | { | 158 | { |
159 | if (entity is ScenePresence) | 159 | if (entity is ScenePresence) |
160 | { | 160 | { |
161 | ScenePresence scenePrescence = entity as ScenePresence; | 161 | ScenePresence scenePrescence = entity as ScenePresence; |
162 | if (!scenePrescence.childAgent) | 162 | if (!scenePrescence.childAgent) |
163 | { | 163 | { |
164 | log.Error(String.Format("Packet debug for {0} {1} set to {2}", | 164 | log.Error(String.Format("Packet debug for {0} {1} set to {2}", |
165 | scenePrescence.Firstname, scenePrescence.Lastname, | 165 | scenePrescence.Firstname, scenePrescence.Lastname, |
166 | newDebug)); | 166 | newDebug)); |
167 | 167 | ||
168 | scenePrescence.ControllingClient.SetDebug(newDebug); | 168 | scenePrescence.ControllingClient.SetDebug(newDebug); |
169 | } | 169 | } |
170 | } | 170 | } |
171 | } | 171 | } |
172 | }); | 172 | }); |
173 | } | 173 | } |
174 | 174 | ||
175 | public List<ScenePresence> GetAvatars() | 175 | public List<ScenePresence> GetAvatars() |
176 | { | 176 | { |
177 | List<ScenePresence> avatars = new List<ScenePresence>(); | 177 | List<ScenePresence> avatars = new List<ScenePresence>(); |
178 | 178 | ||
179 | ForEach(delegate(Scene scene) | 179 | ForEach(delegate(Scene scene) |
180 | { | 180 | { |
181 | foreach (EntityBase entity in scene.Entities.Values) | 181 | foreach (EntityBase entity in scene.Entities.Values) |
182 | { | 182 | { |
183 | if (entity is ScenePresence) | 183 | if (entity is ScenePresence) |
184 | { | 184 | { |
185 | ScenePresence scenePrescence = entity as ScenePresence; | 185 | ScenePresence scenePrescence = entity as ScenePresence; |
186 | if (!scenePrescence.childAgent) | 186 | if (!scenePrescence.childAgent) |
187 | { | 187 | { |
188 | avatars.Add(scenePrescence); | 188 | avatars.Add(scenePrescence); |
189 | } | 189 | } |
190 | } | 190 | } |
191 | } | 191 | } |
192 | }); | 192 | }); |
193 | 193 | ||
194 | return avatars; | 194 | return avatars; |
195 | } | 195 | } |
196 | 196 | ||
197 | public RegionInfo GetRegionInfo(ulong regionHandle) | 197 | public RegionInfo GetRegionInfo(ulong regionHandle) |
198 | { | 198 | { |
199 | foreach (Scene scene in m_localScenes) | 199 | foreach (Scene scene in m_localScenes) |
200 | { | 200 | { |
201 | if (scene.RegionInfo.RegionHandle == regionHandle) | 201 | if (scene.RegionInfo.RegionHandle == regionHandle) |
202 | { | 202 | { |
203 | return scene.RegionInfo; | 203 | return scene.RegionInfo; |
204 | } | 204 | } |
205 | } | 205 | } |
206 | 206 | ||
207 | return null; | 207 | return null; |
208 | } | 208 | } |
209 | 209 | ||
210 | public void SetTimePhase(int timePhase) | 210 | public void SetTimePhase(int timePhase) |
211 | { | 211 | { |
212 | ForEach(delegate(Scene scene) | 212 | ForEach(delegate(Scene scene) |
213 | { | 213 | { |
214 | scene.SetTimePhase( | 214 | scene.SetTimePhase( |
215 | timePhase) | 215 | timePhase) |
216 | ; | 216 | ; |
217 | }); | 217 | }); |
218 | } | 218 | } |
219 | 219 | ||
220 | 220 | ||
221 | public void ForceClientUpdate() | 221 | public void ForceClientUpdate() |
222 | { | 222 | { |
223 | ForEach(delegate(Scene scene) | 223 | ForEach(delegate(Scene scene) |
224 | { | 224 | { |
225 | scene.ForceClientUpdate(); | 225 | scene.ForceClientUpdate(); |
226 | }); | 226 | }); |
227 | } | 227 | } |
228 | 228 | ||
229 | public void HandleEditCommand(string[] cmdparams) | 229 | public void HandleEditCommand(string[] cmdparams) |
230 | { | 230 | { |
231 | ForEach(delegate(Scene scene) | 231 | ForEach(delegate(Scene scene) |
232 | { | 232 | { |
233 | scene.HandleEditCommand(cmdparams); | 233 | scene.HandleEditCommand(cmdparams); |
234 | }); | 234 | }); |
235 | } | 235 | } |
236 | } | 236 | } |
237 | } | 237 | } |