diff options
author | Teravus Ovares | 2008-02-06 09:38:14 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-02-06 09:38:14 +0000 |
commit | 9d6ea497e27bb2c93211fe2899e609ea9ea18623 (patch) | |
tree | 930777aa2d9cf39c8ba54dc81d89771c21b969d4 /OpenSim/Region/Environment | |
parent | Cleaned up some unreachable code warnings. (diff) | |
download | opensim-SC-9d6ea497e27bb2c93211fe2899e609ea9ea18623.zip opensim-SC-9d6ea497e27bb2c93211fe2899e609ea9ea18623.tar.gz opensim-SC-9d6ea497e27bb2c93211fe2899e609ea9ea18623.tar.bz2 opensim-SC-9d6ea497e27bb2c93211fe2899e609ea9ea18623.tar.xz |
* Added the ability to start and stop all scripts in the simulator using the debug tab on the estate tools. This along with the disable physics via the debug tab are persistant across reboots. That means that if it's disabled when you shut down the simulator, the simulator will come up again when you start it up without loading the scripts. Turning them back on is as simple as unchecking 'disable scripts' in the debug tab of the estate tools.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/EstateManager.cs | 20 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 48 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs | 10 |
3 files changed, 75 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/EstateManager.cs b/OpenSim/Region/Environment/EstateManager.cs index 860bd93..96baf21 100644 --- a/OpenSim/Region/Environment/EstateManager.cs +++ b/OpenSim/Region/Environment/EstateManager.cs | |||
@@ -237,6 +237,26 @@ namespace OpenSim.Region.Environment | |||
237 | bool scripted = convertParamStringToBool(packet.ParamList[0].Parameter); | 237 | bool scripted = convertParamStringToBool(packet.ParamList[0].Parameter); |
238 | bool collisionEvents = convertParamStringToBool(packet.ParamList[1].Parameter); | 238 | bool collisionEvents = convertParamStringToBool(packet.ParamList[1].Parameter); |
239 | bool physics = convertParamStringToBool(packet.ParamList[2].Parameter); | 239 | bool physics = convertParamStringToBool(packet.ParamList[2].Parameter); |
240 | |||
241 | if (physics) | ||
242 | { | ||
243 | m_scene.RegionInfo.EstateSettings.regionFlags |= Simulator.RegionFlags.SkipPhysics; | ||
244 | } | ||
245 | else | ||
246 | { | ||
247 | m_scene.RegionInfo.EstateSettings.regionFlags &= ~Simulator.RegionFlags.SkipPhysics; | ||
248 | } | ||
249 | |||
250 | if (scripted) | ||
251 | { | ||
252 | m_scene.RegionInfo.EstateSettings.regionFlags |= Simulator.RegionFlags.SkipScripts; | ||
253 | } | ||
254 | else | ||
255 | { | ||
256 | m_scene.RegionInfo.EstateSettings.regionFlags &= ~Simulator.RegionFlags.SkipScripts; | ||
257 | } | ||
258 | |||
259 | |||
240 | m_scene.SetSceneCoreDebug(scripted, collisionEvents, physics); | 260 | m_scene.SetSceneCoreDebug(scripted, collisionEvents, physics); |
241 | } | 261 | } |
242 | 262 | ||
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index d0acded..40a80c4 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -283,6 +283,23 @@ namespace OpenSim.Region.Environment.Scenes | |||
283 | httpListener = httpServer; | 283 | httpListener = httpServer; |
284 | m_dumpAssetsToFile = dumpAssetsToFile; | 284 | m_dumpAssetsToFile = dumpAssetsToFile; |
285 | 285 | ||
286 | if ((RegionInfo.EstateSettings.regionFlags & Simulator.RegionFlags.SkipScripts) == Simulator.RegionFlags.SkipScripts) | ||
287 | { | ||
288 | m_scripts_enabled = false; | ||
289 | } | ||
290 | else | ||
291 | { | ||
292 | m_scripts_enabled = true; | ||
293 | } | ||
294 | if ((RegionInfo.EstateSettings.regionFlags & Simulator.RegionFlags.SkipPhysics) == Simulator.RegionFlags.SkipPhysics) | ||
295 | { | ||
296 | m_physics_enabled = false; | ||
297 | } | ||
298 | else | ||
299 | { | ||
300 | m_physics_enabled = true; | ||
301 | } | ||
302 | |||
286 | m_statsReporter = new SimStatsReporter(regInfo); | 303 | m_statsReporter = new SimStatsReporter(regInfo); |
287 | m_statsReporter.OnSendStatsResult += SendSimStatsPackets; | 304 | m_statsReporter.OnSendStatsResult += SendSimStatsPackets; |
288 | } | 305 | } |
@@ -483,6 +500,37 @@ namespace OpenSim.Region.Environment.Scenes | |||
483 | if (m_scripts_enabled != !ScriptEngine) | 500 | if (m_scripts_enabled != !ScriptEngine) |
484 | { | 501 | { |
485 | // Tedd! Here's the method to disable the scripting engine! | 502 | // Tedd! Here's the method to disable the scripting engine! |
503 | if (ScriptEngine) | ||
504 | { | ||
505 | m_log.Info("Stopping all Scripts in Scene"); | ||
506 | lock (Entities) | ||
507 | { | ||
508 | foreach (EntityBase ent in Entities.Values) | ||
509 | { | ||
510 | if (ent is SceneObjectGroup) | ||
511 | { | ||
512 | ((SceneObjectGroup)ent).StopScripts(); | ||
513 | } | ||
514 | } | ||
515 | } | ||
516 | } | ||
517 | else | ||
518 | { | ||
519 | m_log.Info("Starting all Scripts in Scene"); | ||
520 | lock (Entities) | ||
521 | { | ||
522 | foreach (EntityBase ent in Entities.Values) | ||
523 | { | ||
524 | if (ent is SceneObjectGroup) | ||
525 | { | ||
526 | ((SceneObjectGroup)ent).StartScripts(); | ||
527 | } | ||
528 | } | ||
529 | } | ||
530 | |||
531 | |||
532 | } | ||
533 | m_scripts_enabled = !ScriptEngine; | ||
486 | m_log.Info("[TOTEDD]: Here is the method to trigger disabling of the scripting engine"); | 534 | m_log.Info("[TOTEDD]: Here is the method to trigger disabling of the scripting engine"); |
487 | } | 535 | } |
488 | if (m_physics_enabled != !PhysicsEngine) | 536 | if (m_physics_enabled != !PhysicsEngine) |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs index 1e99079..6bd0575 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -88,10 +88,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
88 | /// </summary> | 88 | /// </summary> |
89 | public void StartScripts() | 89 | public void StartScripts() |
90 | { | 90 | { |
91 | foreach (SceneObjectPart part in m_parts.Values) | 91 | // Don't start scripts if they're turned off in the region! |
92 | if (!((m_scene.RegionInfo.EstateSettings.regionFlags & Simulator.RegionFlags.SkipScripts) == Simulator.RegionFlags.SkipScripts)) | ||
92 | { | 93 | { |
93 | part.StartScripts(); | 94 | foreach (SceneObjectPart part in m_parts.Values) |
94 | } | 95 | { |
96 | part.StartScripts(); | ||
97 | } | ||
98 | } | ||
95 | } | 99 | } |
96 | 100 | ||
97 | public void StopScripts() | 101 | public void StopScripts() |