aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/LightShare/LightShareModule.cs3
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs1
-rw-r--r--OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs1
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs18
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILS_Api.cs1
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs10
6 files changed, 33 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs b/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs
index 412dbb6..88f392d 100644
--- a/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs
+++ b/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs
@@ -194,7 +194,8 @@ namespace OpenSim.Region.CoreModules.World.LightShare
194 } 194 }
195 private void EventManager_OnSaveNewWindlightProfile() 195 private void EventManager_OnSaveNewWindlightProfile()
196 { 196 {
197 m_scene.ForEachScenePresence(SendProfileToClient); 197 if (m_scene.RegionInfo.WindlightSettings.valid)
198 m_scene.ForEachScenePresence(SendProfileToClient);
198 } 199 }
199 200
200 public void PostInitialise() 201 public void PostInitialise()
diff --git a/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs b/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs
index edaa07c..5295a72 100644
--- a/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs
+++ b/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs
@@ -94,5 +94,6 @@ namespace OpenSim.Region.Framework.Interfaces
94 RegionSettings LoadRegionSettings(UUID regionUUID); 94 RegionSettings LoadRegionSettings(UUID regionUUID);
95 RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID); 95 RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID);
96 void StoreRegionWindlightSettings(RegionLightShareData wl); 96 void StoreRegionWindlightSettings(RegionLightShareData wl);
97 void RemoveRegionWindlightSettings(UUID regionID);
97 } 98 }
98} 99}
diff --git a/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs b/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs
index 0a4d531..615f377 100644
--- a/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs
+++ b/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs
@@ -105,6 +105,7 @@ namespace OpenSim.Region.Framework.Interfaces
105 RegionSettings LoadRegionSettings(UUID regionUUID); 105 RegionSettings LoadRegionSettings(UUID regionUUID);
106 RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID); 106 RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID);
107 void StoreRegionWindlightSettings(RegionLightShareData wl); 107 void StoreRegionWindlightSettings(RegionLightShareData wl);
108 void RemoveRegionWindlightSettings(UUID regionID);
108 109
109 void Shutdown(); 110 void Shutdown();
110 } 111 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
index 665b39f..645566e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
@@ -455,6 +455,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
455 if (LightShareModule.EnableWindlight) 455 if (LightShareModule.EnableWindlight)
456 { 456 {
457 RegionLightShareData wl = getWindlightProfileFromRules(rules); 457 RegionLightShareData wl = getWindlightProfileFromRules(rules);
458 wl.valid = true;
458 m_host.ParentGroup.Scene.StoreWindlightProfile(wl); 459 m_host.ParentGroup.Scene.StoreWindlightProfile(wl);
459 success = 1; 460 success = 1;
460 } 461 }
@@ -465,6 +466,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
465 } 466 }
466 return success; 467 return success;
467 } 468 }
469 public void lsClearWindlightScene()
470 {
471 if (!m_LSFunctionsEnabled)
472 {
473 LSShoutError("LightShare functions are not enabled.");
474 return;
475 }
476 if (!World.RegionInfo.EstateSettings.IsEstateManager(m_host.OwnerID) && World.GetScenePresence(m_host.OwnerID).GodLevel < 200)
477 {
478 LSShoutError("lsSetWindlightScene can only be used by estate managers or owners.");
479 return;
480 }
481
482 m_host.ParentGroup.Scene.RegionInfo.WindlightSettings.valid = false;
483 if (m_host.ParentGroup.Scene.SimulationDataService != null)
484 m_host.ParentGroup.Scene.SimulationDataService.RemoveRegionWindlightSettings(m_host.ParentGroup.Scene.RegionInfo.RegionID);
485 }
468 /// <summary> 486 /// <summary>
469 /// Set the current Windlight scene to a target avatar 487 /// Set the current Windlight scene to a target avatar
470 /// </summary> 488 /// </summary>
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILS_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILS_Api.cs
index 9aa437b..f2df094 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILS_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILS_Api.cs
@@ -44,5 +44,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
44 LSL_List lsGetWindlightScene(LSL_List rules); 44 LSL_List lsGetWindlightScene(LSL_List rules);
45 int lsSetWindlightScene(LSL_List rules); 45 int lsSetWindlightScene(LSL_List rules);
46 int lsSetWindlightSceneTargeted(LSL_List rules, key target); 46 int lsSetWindlightSceneTargeted(LSL_List rules, key target);
47 void lsClearWindlightScene();
47 } 48 }
48} 49}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs
index 8280ca5..2e27f16 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs
@@ -73,6 +73,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
73 return m_LS_Functions.lsSetWindlightSceneTargeted(rules, target); 73 return m_LS_Functions.lsSetWindlightSceneTargeted(rules, target);
74 } 74 }
75 75
76 public void lsClearWindlightScene()
77 {
78 m_LS_Functions.lsClearWindlightScene();
79 }
80
76 public LSL_List cmGetWindlightScene(LSL_List rules) 81 public LSL_List cmGetWindlightScene(LSL_List rules)
77 { 82 {
78 return m_LS_Functions.lsGetWindlightScene(rules); 83 return m_LS_Functions.lsGetWindlightScene(rules);
@@ -87,5 +92,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
87 { 92 {
88 return m_LS_Functions.lsSetWindlightSceneTargeted(rules, target); 93 return m_LS_Functions.lsSetWindlightSceneTargeted(rules, target);
89 } 94 }
95
96 public void cmClearWindlightScene()
97 {
98 m_LS_Functions.lsClearWindlightScene();
99 }
90 } 100 }
91} 101}