diff options
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Region')
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 | } |