From b64f42fa4142a71dffa2639769b9bf2d4584ec30 Mon Sep 17 00:00:00 2001
From: Melanie Thielker
Date: Fri, 11 Jun 2010 17:04:54 +0200
Subject: Clone cmGetAvatarList into osGetAvatarList for more generic use.
---
.../Shared/Api/Implementation/OSSL_Api.cs | 27 ++++++++++++++++++++++
.../ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 1 +
.../ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 5 ++++
3 files changed, 33 insertions(+)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index dde664e..cd6d3a3 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -2202,5 +2202,32 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_LSL_Api.SetPrimitiveParamsEx(prim, rules);
}
+
+ ///
+ /// Like osGetAgents but returns enough info for a radar
+ ///
+ /// Strided list of the UUID, position and name of each avatar in the region
+ public LSL_List osGetAvatarList()
+ {
+ CheckThreatLevel(ThreatLevel.None, "osGetAvatarList");
+
+ LSL_List result = new LSL_List();
+ World.ForEachScenePresence(delegate (ScenePresence avatar)
+ {
+ if (avatar != null && avatar.UUID != m_host.OwnerID)
+ {
+ if (avatar.IsChildAgent == false)
+ {
+ if (avatar.PhysicsActor != null && avatar.PhysicsActor.Position != null)
+ {
+ result.Add(avatar.UUID);
+ result.Add(avatar.PhysicsActor.Position);
+ result.Add(avatar.Name);
+ }
+ }
+ }
+ });
+ return result;
+ }
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 9785b24..78ee43c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -176,6 +176,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
void osCauseDamage(string avatar, double damage);
LSL_List osGetPrimitiveParams(LSL_Key prim, LSL_List rules);
void osSetPrimitiveParams(LSL_Key prim, LSL_List rules);
+ LSL_List osGetAvatarList();
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index 7af5d43..6cc5f51 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -687,5 +687,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
{
m_OSSL_Functions.osSetPrimitiveParams(prim, rules);
}
+
+ public LSL_List osGetAvatarList()
+ {
+ return m_OSSL_Functions.osGetAvatarList();
+ }
}
}
--
cgit v1.1
From ad87bab27192a54249eecde0260ccda565d87e5c Mon Sep 17 00:00:00 2001
From: Melanie Thielker
Date: Fri, 11 Jun 2010 17:23:06 +0200
Subject: Rename cm* function set to ls* (for LightShare)
---
.../Shared/Api/Implementation/CM_Api.cs | 18 +++++++++---------
.../ScriptEngine/Shared/Api/Interface/ICM_Api.cs | 6 +++---
.../ScriptEngine/Shared/Api/Runtime/CM_Stub.cs | 21 ++++++++++++++++++---
3 files changed, 30 insertions(+), 15 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/CM_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/CM_Api.cs
index 880ca1b..9a99f5e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/CM_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/CM_Api.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_localID = localID;
m_itemID = itemID;
- if (m_ScriptEngine.Config.GetBoolean("AllowCareminsterFunctions", false))
+ if (m_ScriptEngine.Config.GetBoolean("AllowLightShareFunctions", false))
m_CMFunctionsEnabled = true;
m_comms = m_ScriptEngine.World.RequestModuleInterface();
@@ -116,11 +116,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
/// Get the current Windlight scene
///
/// List of windlight parameters
- public LSL_List cmGetWindlightScene(LSL_List rules)
+ public LSL_List lsGetWindlightScene(LSL_List rules)
{
if (!m_CMFunctionsEnabled)
{
- CMShoutError("Careminster functions are not enabled.");
+ CMShoutError("LightShare functions are not enabled.");
return new LSL_List();
}
m_host.AddScriptLPS(1);
@@ -440,16 +440,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
///
///
/// success: true or false
- public int cmSetWindlightScene(LSL_List rules)
+ public int lsSetWindlightScene(LSL_List rules)
{
if (!m_CMFunctionsEnabled)
{
- CMShoutError("Careminster functions are not enabled.");
+ CMShoutError("LightShare functions are not enabled.");
return 0;
}
if (!World.RegionInfo.EstateSettings.IsEstateManager(m_host.OwnerID) && World.GetScenePresence(m_host.OwnerID).GodLevel < 200)
{
- CMShoutError("cmSetWindlightScene can only be used by estate managers or owners.");
+ CMShoutError("lsSetWindlightScene can only be used by estate managers or owners.");
return 0;
}
int success = 0;
@@ -472,16 +472,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
///
///
/// success: true or false
- public int cmSetWindlightSceneTargeted(LSL_List rules, LSL_Key target)
+ public int lsSetWindlightSceneTargeted(LSL_List rules, LSL_Key target)
{
if (!m_CMFunctionsEnabled)
{
- CMShoutError("Careminster functions are not enabled.");
+ CMShoutError("LightShare functions are not enabled.");
return 0;
}
if (!World.RegionInfo.EstateSettings.IsEstateManager(m_host.OwnerID) && World.GetScenePresence(m_host.OwnerID).GodLevel < 200)
{
- CMShoutError("cmSetWindlightSceneTargeted can only be used by estate managers or owners.");
+ CMShoutError("lsSetWindlightSceneTargeted can only be used by estate managers or owners.");
return 0;
}
int success = 0;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ICM_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ICM_Api.cs
index f13b6e5..f47ae7d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ICM_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ICM_Api.cs
@@ -41,8 +41,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
public interface ICM_Api
{
// Windlight Functions
- LSL_List cmGetWindlightScene(LSL_List rules);
- int cmSetWindlightScene(LSL_List rules);
- int cmSetWindlightSceneTargeted(LSL_List rules, key target);
+ LSL_List lsGetWindlightScene(LSL_List rules);
+ int lsSetWindlightScene(LSL_List rules);
+ int lsSetWindlightSceneTargeted(LSL_List rules, key target);
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/CM_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/CM_Stub.cs
index c0edaae..92c3d98 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/CM_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/CM_Stub.cs
@@ -58,19 +58,34 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
m_CM_Functions = (ICM_Api)api;
}
+ public LSL_List lsGetWindlightScene(LSL_List rules)
+ {
+ return m_CM_Functions.lsGetWindlightScene(rules);
+ }
+
+ public int lsSetWindlightScene(LSL_List rules)
+ {
+ return m_CM_Functions.lsSetWindlightScene(rules);
+ }
+
+ public int lsSetWindlightSceneTargeted(LSL_List rules, key target)
+ {
+ return m_CM_Functions.lsSetWindlightSceneTargeted(rules, target);
+ }
+
public LSL_List cmGetWindlightScene(LSL_List rules)
{
- return m_CM_Functions.cmGetWindlightScene(rules);
+ return m_CM_Functions.lsGetWindlightScene(rules);
}
public int cmSetWindlightScene(LSL_List rules)
{
- return m_CM_Functions.cmSetWindlightScene(rules);
+ return m_CM_Functions.lsSetWindlightScene(rules);
}
public int cmSetWindlightSceneTargeted(LSL_List rules, key target)
{
- return m_CM_Functions.cmSetWindlightSceneTargeted(rules, target);
+ return m_CM_Functions.lsSetWindlightSceneTargeted(rules, target);
}
}
}
--
cgit v1.1
From 7c4cf46bacadae56e7cfcc07d243b1c5f5cb98ce Mon Sep 17 00:00:00 2001
From: Melanie Thielker
Date: Fri, 11 Jun 2010 17:42:16 +0200
Subject: Rename CM files to LS
---
.../Shared/Api/Implementation/CM_Api.cs | 504 ---------------------
.../Shared/Api/Implementation/LS_Api.cs | 504 +++++++++++++++++++++
.../ScriptEngine/Shared/Api/Interface/ICM_Api.cs | 48 --
.../ScriptEngine/Shared/Api/Interface/ILS_Api.cs | 48 ++
.../ScriptEngine/Shared/Api/Runtime/CM_Stub.cs | 91 ----
.../ScriptEngine/Shared/Api/Runtime/LS_Stub.cs | 91 ++++
6 files changed, 643 insertions(+), 643 deletions(-)
delete mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Implementation/CM_Api.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
delete mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Interface/ICM_Api.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILS_Api.cs
delete mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/CM_Stub.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/CM_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/CM_Api.cs
deleted file mode 100644
index 9a99f5e..0000000
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/CM_Api.cs
+++ /dev/null
@@ -1,504 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Reflection;
-using System.Collections;
-using System.Collections.Generic;
-using System.Runtime.Remoting.Lifetime;
-using OpenMetaverse;
-using Nini.Config;
-using OpenSim;
-using OpenSim.Framework;
-using OpenSim.Region.CoreModules.World.LightShare;
-using OpenSim.Region.Framework.Interfaces;
-using OpenSim.Region.Framework.Scenes;
-using OpenSim.Region.ScriptEngine.Shared;
-using OpenSim.Region.ScriptEngine.Shared.Api.Plugins;
-using OpenSim.Region.ScriptEngine.Shared.ScriptBase;
-using OpenSim.Region.ScriptEngine.Interfaces;
-using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
-
-using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
-using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
-using LSL_Key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
-using LSL_List = OpenSim.Region.ScriptEngine.Shared.LSL_Types.list;
-using LSL_Rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
-using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
-using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
-
-namespace OpenSim.Region.ScriptEngine.Shared.Api
-{
- [Serializable]
- public class CM_Api : MarshalByRefObject, ICM_Api, IScriptApi
- {
- internal IScriptEngine m_ScriptEngine;
- internal SceneObjectPart m_host;
- internal uint m_localID;
- internal UUID m_itemID;
- internal bool m_CMFunctionsEnabled = false;
- internal IScriptModuleComms m_comms = null;
-
- public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, uint localID, UUID itemID)
- {
- m_ScriptEngine = ScriptEngine;
- m_host = host;
- m_localID = localID;
- m_itemID = itemID;
-
- if (m_ScriptEngine.Config.GetBoolean("AllowLightShareFunctions", false))
- m_CMFunctionsEnabled = true;
-
- m_comms = m_ScriptEngine.World.RequestModuleInterface();
- if (m_comms == null)
- m_CMFunctionsEnabled = false;
- }
-
- public override Object InitializeLifetimeService()
- {
- ILease lease = (ILease)base.InitializeLifetimeService();
-
- if (lease.CurrentState == LeaseState.Initial)
- {
- lease.InitialLeaseTime = TimeSpan.FromMinutes(0);
- // lease.RenewOnCallTime = TimeSpan.FromSeconds(10.0);
- // lease.SponsorshipTimeout = TimeSpan.FromMinutes(1.0);
- }
- return lease;
- }
-
- public Scene World
- {
- get { return m_ScriptEngine.World; }
- }
-
- //
- //Dumps an error message on the debug console.
- //
-
- internal void CMShoutError(string message)
- {
- if (message.Length > 1023)
- message = message.Substring(0, 1023);
-
- World.SimChat(Utils.StringToBytes(message),
- ChatTypeEnum.Shout, ScriptBaseClass.DEBUG_CHANNEL, m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, true);
-
- IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface();
- wComm.DeliverMessage(ChatTypeEnum.Shout, ScriptBaseClass.DEBUG_CHANNEL, m_host.Name, m_host.UUID, message);
- }
-
- ///
- /// Get the current Windlight scene
- ///
- /// List of windlight parameters
- public LSL_List lsGetWindlightScene(LSL_List rules)
- {
- if (!m_CMFunctionsEnabled)
- {
- CMShoutError("LightShare functions are not enabled.");
- return new LSL_List();
- }
- m_host.AddScriptLPS(1);
- RegionLightShareData wl = m_host.ParentGroup.Scene.RegionInfo.WindlightSettings;
-
- LSL_List values = new LSL_List();
- int idx = 0;
- while (idx < rules.Length)
- {
- uint rule = (uint)rules.GetLSLIntegerItem(idx);
- LSL_List toadd = new LSL_List();
-
- switch (rule)
- {
- case (int)ScriptBaseClass.WL_AMBIENT:
- toadd.Add(new LSL_Rotation(wl.ambient.X, wl.ambient.Y, wl.ambient.Z, wl.ambient.W));
- break;
- case (int)ScriptBaseClass.WL_BIG_WAVE_DIRECTION:
- toadd.Add(new LSL_Vector(wl.bigWaveDirection.X, wl.bigWaveDirection.Y, 0.0f));
- break;
- case (int)ScriptBaseClass.WL_BLUE_DENSITY:
- toadd.Add(new LSL_Rotation(wl.blueDensity.X, wl.blueDensity.Y, wl.blueDensity.Z, wl.blueDensity.W));
- break;
- case (int)ScriptBaseClass.WL_BLUR_MULTIPLIER:
- toadd.Add(new LSL_Float(wl.blurMultiplier));
- break;
- case (int)ScriptBaseClass.WL_CLOUD_COLOR:
- toadd.Add(new LSL_Rotation(wl.cloudColor.X, wl.cloudColor.Y, wl.cloudColor.Z, wl.cloudColor.W));
- break;
- case (int)ScriptBaseClass.WL_CLOUD_COVERAGE:
- toadd.Add(new LSL_Float(wl.cloudCoverage));
- break;
- case (int)ScriptBaseClass.WL_CLOUD_DETAIL_XY_DENSITY:
- toadd.Add(new LSL_Vector(wl.cloudDetailXYDensity.X, wl.cloudDetailXYDensity.Y, wl.cloudDetailXYDensity.Z));
- break;
- case (int)ScriptBaseClass.WL_CLOUD_SCALE:
- toadd.Add(new LSL_Float(wl.cloudScale));
- break;
- case (int)ScriptBaseClass.WL_CLOUD_SCROLL_X:
- toadd.Add(new LSL_Float(wl.cloudScrollX));
- break;
- case (int)ScriptBaseClass.WL_CLOUD_SCROLL_X_LOCK:
- toadd.Add(new LSL_Integer(wl.cloudScrollXLock ? 1 : 0));
- break;
- case (int)ScriptBaseClass.WL_CLOUD_SCROLL_Y:
- toadd.Add(new LSL_Float(wl.cloudScrollY));
- break;
- case (int)ScriptBaseClass.WL_CLOUD_SCROLL_Y_LOCK:
- toadd.Add(new LSL_Integer(wl.cloudScrollYLock ? 1 : 0));
- break;
- case (int)ScriptBaseClass.WL_CLOUD_XY_DENSITY:
- toadd.Add(new LSL_Vector(wl.cloudXYDensity.X, wl.cloudXYDensity.Y, wl.cloudXYDensity.Z));
- break;
- case (int)ScriptBaseClass.WL_DENSITY_MULTIPLIER:
- toadd.Add(new LSL_Float(wl.densityMultiplier));
- break;
- case (int)ScriptBaseClass.WL_DISTANCE_MULTIPLIER:
- toadd.Add(new LSL_Float(wl.distanceMultiplier));
- break;
- case (int)ScriptBaseClass.WL_DRAW_CLASSIC_CLOUDS:
- toadd.Add(new LSL_Integer(wl.drawClassicClouds ? 1 : 0));
- break;
- case (int)ScriptBaseClass.WL_EAST_ANGLE:
- toadd.Add(new LSL_Float(wl.eastAngle));
- break;
- case (int)ScriptBaseClass.WL_FRESNEL_OFFSET:
- toadd.Add(new LSL_Float(wl.fresnelOffset));
- break;
- case (int)ScriptBaseClass.WL_FRESNEL_SCALE:
- toadd.Add(new LSL_Float(wl.fresnelScale));
- break;
- case (int)ScriptBaseClass.WL_HAZE_DENSITY:
- toadd.Add(new LSL_Float(wl.hazeDensity));
- break;
- case (int)ScriptBaseClass.WL_HAZE_HORIZON:
- toadd.Add(new LSL_Float(wl.hazeHorizon));
- break;
- case (int)ScriptBaseClass.WL_HORIZON:
- toadd.Add(new LSL_Rotation(wl.horizon.X, wl.horizon.Y, wl.horizon.Z, wl.horizon.W));
- break;
- case (int)ScriptBaseClass.WL_LITTLE_WAVE_DIRECTION:
- toadd.Add(new LSL_Vector(wl.littleWaveDirection.X, wl.littleWaveDirection.Y, 0.0f));
- break;
- case (int)ScriptBaseClass.WL_MAX_ALTITUDE:
- toadd.Add(new LSL_Integer(wl.maxAltitude));
- break;
- case (int)ScriptBaseClass.WL_NORMAL_MAP_TEXTURE:
- toadd.Add(new LSL_Key(wl.normalMapTexture.ToString()));
- break;
- case (int)ScriptBaseClass.WL_REFLECTION_WAVELET_SCALE:
- toadd.Add(new LSL_Vector(wl.reflectionWaveletScale.X, wl.reflectionWaveletScale.Y, wl.reflectionWaveletScale.Z));
- break;
- case (int)ScriptBaseClass.WL_REFRACT_SCALE_ABOVE:
- toadd.Add(new LSL_Float(wl.refractScaleAbove));
- break;
- case (int)ScriptBaseClass.WL_REFRACT_SCALE_BELOW:
- toadd.Add(new LSL_Float(wl.refractScaleBelow));
- break;
- case (int)ScriptBaseClass.WL_SCENE_GAMMA:
- toadd.Add(new LSL_Float(wl.sceneGamma));
- break;
- case (int)ScriptBaseClass.WL_STAR_BRIGHTNESS:
- toadd.Add(new LSL_Float(wl.starBrightness));
- break;
- case (int)ScriptBaseClass.WL_SUN_GLOW_FOCUS:
- toadd.Add(new LSL_Float(wl.sunGlowFocus));
- break;
- case (int)ScriptBaseClass.WL_SUN_GLOW_SIZE:
- toadd.Add(new LSL_Float(wl.sunGlowSize));
- break;
- case (int)ScriptBaseClass.WL_SUN_MOON_COLOR:
- toadd.Add(new LSL_Rotation(wl.sunMoonColor.X, wl.sunMoonColor.Y, wl.sunMoonColor.Z, wl.sunMoonColor.W));
- break;
- case (int)ScriptBaseClass.WL_UNDERWATER_FOG_MODIFIER:
- toadd.Add(new LSL_Float(wl.underwaterFogModifier));
- break;
- case (int)ScriptBaseClass.WL_WATER_COLOR:
- toadd.Add(new LSL_Vector(wl.waterColor.X, wl.waterColor.Y, wl.waterColor.Z));
- break;
- case (int)ScriptBaseClass.WL_WATER_FOG_DENSITY_EXPONENT:
- toadd.Add(new LSL_Float(wl.waterFogDensityExponent));
- break;
- }
-
- if (toadd.Length > 0)
- {
- values.Add(rule);
- values.Add(toadd.Data[0]);
- }
- idx++;
- }
-
-
- return values;
-
- }
-
- private RegionLightShareData getWindlightProfileFromRules(LSL_List rules)
- {
- RegionLightShareData wl = (RegionLightShareData)m_host.ParentGroup.Scene.RegionInfo.WindlightSettings.Clone();
-
- LSL_List values = new LSL_List();
- int idx = 0;
- while (idx < rules.Length)
- {
- uint rule = (uint)rules.GetLSLIntegerItem(idx);
- LSL_Types.Quaternion iQ;
- LSL_Types.Vector3 iV;
- switch (rule)
- {
- case (int)ScriptBaseClass.WL_SUN_MOON_POSITION:
- idx++;
- wl.sunMoonPosition = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_AMBIENT:
- idx++;
- iQ = rules.GetQuaternionItem(idx);
- wl.ambient = new Vector4((float)iQ.x, (float)iQ.y, (float)iQ.z, (float)iQ.s);
- break;
- case (int)ScriptBaseClass.WL_BIG_WAVE_DIRECTION:
- idx++;
- iV = rules.GetVector3Item(idx);
- wl.bigWaveDirection = new Vector2((float)iV.x, (float)iV.y);
- break;
- case (int)ScriptBaseClass.WL_BLUE_DENSITY:
- idx++;
- iQ = rules.GetQuaternionItem(idx);
- wl.blueDensity = new Vector4((float)iQ.x, (float)iQ.y, (float)iQ.z, (float)iQ.s);
- break;
- case (int)ScriptBaseClass.WL_BLUR_MULTIPLIER:
- idx++;
- wl.blurMultiplier = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_CLOUD_COLOR:
- idx++;
- iQ = rules.GetQuaternionItem(idx);
- wl.cloudColor = new Vector4((float)iQ.x, (float)iQ.y, (float)iQ.z, (float)iQ.s);
- break;
- case (int)ScriptBaseClass.WL_CLOUD_COVERAGE:
- idx++;
- wl.cloudCoverage = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_CLOUD_DETAIL_XY_DENSITY:
- idx++;
- iV = rules.GetVector3Item(idx);
- wl.cloudDetailXYDensity = new Vector3((float)iV.x, (float)iV.y, (float)iV.z);
- break;
- case (int)ScriptBaseClass.WL_CLOUD_SCALE:
- idx++;
- wl.cloudScale = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_CLOUD_SCROLL_X:
- idx++;
- wl.cloudScrollX = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_CLOUD_SCROLL_X_LOCK:
- idx++;
- wl.cloudScrollXLock = rules.GetLSLIntegerItem(idx).value == 1 ? true : false;
- break;
- case (int)ScriptBaseClass.WL_CLOUD_SCROLL_Y:
- idx++;
- wl.cloudScrollY = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_CLOUD_SCROLL_Y_LOCK:
- idx++;
- wl.cloudScrollYLock = rules.GetLSLIntegerItem(idx).value == 1 ? true : false;
- break;
- case (int)ScriptBaseClass.WL_CLOUD_XY_DENSITY:
- idx++;
- iV = rules.GetVector3Item(idx);
- wl.cloudXYDensity = new Vector3((float)iV.x, (float)iV.y, (float)iV.z);
- break;
- case (int)ScriptBaseClass.WL_DENSITY_MULTIPLIER:
- idx++;
- wl.densityMultiplier = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_DISTANCE_MULTIPLIER:
- idx++;
- wl.distanceMultiplier = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_DRAW_CLASSIC_CLOUDS:
- idx++;
- wl.drawClassicClouds = rules.GetLSLIntegerItem(idx).value == 1 ? true : false;
- break;
- case (int)ScriptBaseClass.WL_EAST_ANGLE:
- idx++;
- wl.eastAngle = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_FRESNEL_OFFSET:
- idx++;
- wl.fresnelOffset = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_FRESNEL_SCALE:
- idx++;
- wl.fresnelScale = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_HAZE_DENSITY:
- idx++;
- wl.hazeDensity = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_HAZE_HORIZON:
- idx++;
- wl.hazeHorizon = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_HORIZON:
- idx++;
- iQ = rules.GetQuaternionItem(idx);
- wl.horizon = new Vector4((float)iQ.x, (float)iQ.y, (float)iQ.z, (float)iQ.s);
- break;
- case (int)ScriptBaseClass.WL_LITTLE_WAVE_DIRECTION:
- idx++;
- iV = rules.GetVector3Item(idx);
- wl.littleWaveDirection = new Vector2((float)iV.x, (float)iV.y);
- break;
- case (int)ScriptBaseClass.WL_MAX_ALTITUDE:
- idx++;
- wl.maxAltitude = (ushort)rules.GetLSLIntegerItem(idx).value;
- break;
- case (int)ScriptBaseClass.WL_NORMAL_MAP_TEXTURE:
- idx++;
- wl.normalMapTexture = new UUID(rules.GetLSLStringItem(idx).m_string);
- break;
- case (int)ScriptBaseClass.WL_REFLECTION_WAVELET_SCALE:
- idx++;
- iV = rules.GetVector3Item(idx);
- wl.reflectionWaveletScale = new Vector3((float)iV.x, (float)iV.y, (float)iV.z);
- break;
- case (int)ScriptBaseClass.WL_REFRACT_SCALE_ABOVE:
- idx++;
- wl.refractScaleAbove = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_REFRACT_SCALE_BELOW:
- idx++;
- wl.refractScaleBelow = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_SCENE_GAMMA:
- idx++;
- wl.sceneGamma = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_STAR_BRIGHTNESS:
- idx++;
- wl.starBrightness = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_SUN_GLOW_FOCUS:
- idx++;
- wl.sunGlowFocus = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_SUN_GLOW_SIZE:
- idx++;
- wl.sunGlowSize = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_SUN_MOON_COLOR:
- idx++;
- iQ = rules.GetQuaternionItem(idx);
- wl.sunMoonColor = new Vector4((float)iQ.x, (float)iQ.y, (float)iQ.z, (float)iQ.s);
- break;
- case (int)ScriptBaseClass.WL_UNDERWATER_FOG_MODIFIER:
- idx++;
- wl.underwaterFogModifier = (float)rules.GetLSLFloatItem(idx);
- break;
- case (int)ScriptBaseClass.WL_WATER_COLOR:
- idx++;
- iV = rules.GetVector3Item(idx);
- wl.waterColor = new Vector3((float)iV.x, (float)iV.y, (float)iV.z);
- break;
- case (int)ScriptBaseClass.WL_WATER_FOG_DENSITY_EXPONENT:
- idx++;
- wl.waterFogDensityExponent = (float)rules.GetLSLFloatItem(idx);
- break;
- }
- idx++;
- }
- return wl;
- }
- ///
- /// Set the current Windlight scene
- ///
- ///
- /// success: true or false
- public int lsSetWindlightScene(LSL_List rules)
- {
- if (!m_CMFunctionsEnabled)
- {
- CMShoutError("LightShare functions are not enabled.");
- return 0;
- }
- if (!World.RegionInfo.EstateSettings.IsEstateManager(m_host.OwnerID) && World.GetScenePresence(m_host.OwnerID).GodLevel < 200)
- {
- CMShoutError("lsSetWindlightScene can only be used by estate managers or owners.");
- return 0;
- }
- int success = 0;
- m_host.AddScriptLPS(1);
- if (LightShareModule.EnableWindlight)
- {
- RegionLightShareData wl = getWindlightProfileFromRules(rules);
- m_host.ParentGroup.Scene.StoreWindlightProfile(wl);
- success = 1;
- }
- else
- {
- CMShoutError("Windlight module is disabled");
- return 0;
- }
- return success;
- }
- ///
- /// Set the current Windlight scene to a target avatar
- ///
- ///
- /// success: true or false
- public int lsSetWindlightSceneTargeted(LSL_List rules, LSL_Key target)
- {
- if (!m_CMFunctionsEnabled)
- {
- CMShoutError("LightShare functions are not enabled.");
- return 0;
- }
- if (!World.RegionInfo.EstateSettings.IsEstateManager(m_host.OwnerID) && World.GetScenePresence(m_host.OwnerID).GodLevel < 200)
- {
- CMShoutError("lsSetWindlightSceneTargeted can only be used by estate managers or owners.");
- return 0;
- }
- int success = 0;
- m_host.AddScriptLPS(1);
- if (LightShareModule.EnableWindlight)
- {
- RegionLightShareData wl = getWindlightProfileFromRules(rules);
- World.EventManager.TriggerOnSendNewWindlightProfileTargeted(wl, new UUID(target.m_string));
- success = 1;
- }
- else
- {
- CMShoutError("Windlight module is disabled");
- return 0;
- }
- return success;
- }
-
- }
-}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
new file mode 100644
index 0000000..fe71ed5
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
@@ -0,0 +1,504 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSimulator Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Reflection;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.Remoting.Lifetime;
+using OpenMetaverse;
+using Nini.Config;
+using OpenSim;
+using OpenSim.Framework;
+using OpenSim.Region.CoreModules.World.LightShare;
+using OpenSim.Region.Framework.Interfaces;
+using OpenSim.Region.Framework.Scenes;
+using OpenSim.Region.ScriptEngine.Shared;
+using OpenSim.Region.ScriptEngine.Shared.Api.Plugins;
+using OpenSim.Region.ScriptEngine.Shared.ScriptBase;
+using OpenSim.Region.ScriptEngine.Interfaces;
+using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
+
+using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
+using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
+using LSL_Key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
+using LSL_List = OpenSim.Region.ScriptEngine.Shared.LSL_Types.list;
+using LSL_Rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
+using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
+using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
+
+namespace OpenSim.Region.ScriptEngine.Shared.Api
+{
+ [Serializable]
+ public class LS_Api : MarshalByRefObject, ILS_Api, IScriptApi
+ {
+ internal IScriptEngine m_ScriptEngine;
+ internal SceneObjectPart m_host;
+ internal uint m_localID;
+ internal UUID m_itemID;
+ internal bool m_LSFunctionsEnabled = false;
+ internal IScriptModuleComms m_comms = null;
+
+ public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, uint localID, UUID itemID)
+ {
+ m_ScriptEngine = ScriptEngine;
+ m_host = host;
+ m_localID = localID;
+ m_itemID = itemID;
+
+ if (m_ScriptEngine.Config.GetBoolean("AllowLightShareFunctions", false))
+ m_LSFunctionsEnabled = true;
+
+ m_comms = m_ScriptEngine.World.RequestModuleInterface();
+ if (m_comms == null)
+ m_LSFunctionsEnabled = false;
+ }
+
+ public override Object InitializeLifetimeService()
+ {
+ ILease lease = (ILease)base.InitializeLifetimeService();
+
+ if (lease.CurrentState == LeaseState.Initial)
+ {
+ lease.InitialLeaseTime = TimeSpan.FromMinutes(0);
+ // lease.RenewOnCallTime = TimeSpan.FromSeconds(10.0);
+ // lease.SponsorshipTimeout = TimeSpan.FromMinutes(1.0);
+ }
+ return lease;
+ }
+
+ public Scene World
+ {
+ get { return m_ScriptEngine.World; }
+ }
+
+ //
+ //Dumps an error message on the debug console.
+ //
+
+ internal void LSShoutError(string message)
+ {
+ if (message.Length > 1023)
+ message = message.Substring(0, 1023);
+
+ World.SimChat(Utils.StringToBytes(message),
+ ChatTypeEnum.Shout, ScriptBaseClass.DEBUG_CHANNEL, m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, true);
+
+ IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface();
+ wComm.DeliverMessage(ChatTypeEnum.Shout, ScriptBaseClass.DEBUG_CHANNEL, m_host.Name, m_host.UUID, message);
+ }
+
+ ///
+ /// Get the current Windlight scene
+ ///
+ /// List of windlight parameters
+ public LSL_List lsGetWindlightScene(LSL_List rules)
+ {
+ if (!m_LSFunctionsEnabled)
+ {
+ LSShoutError("LightShare functions are not enabled.");
+ return new LSL_List();
+ }
+ m_host.AddScriptLPS(1);
+ RegionLightShareData wl = m_host.ParentGroup.Scene.RegionInfo.WindlightSettings;
+
+ LSL_List values = new LSL_List();
+ int idx = 0;
+ while (idx < rules.Length)
+ {
+ uint rule = (uint)rules.GetLSLIntegerItem(idx);
+ LSL_List toadd = new LSL_List();
+
+ switch (rule)
+ {
+ case (int)ScriptBaseClass.WL_AMBIENT:
+ toadd.Add(new LSL_Rotation(wl.ambient.X, wl.ambient.Y, wl.ambient.Z, wl.ambient.W));
+ break;
+ case (int)ScriptBaseClass.WL_BIG_WAVE_DIRECTION:
+ toadd.Add(new LSL_Vector(wl.bigWaveDirection.X, wl.bigWaveDirection.Y, 0.0f));
+ break;
+ case (int)ScriptBaseClass.WL_BLUE_DENSITY:
+ toadd.Add(new LSL_Rotation(wl.blueDensity.X, wl.blueDensity.Y, wl.blueDensity.Z, wl.blueDensity.W));
+ break;
+ case (int)ScriptBaseClass.WL_BLUR_MULTIPLIER:
+ toadd.Add(new LSL_Float(wl.blurMultiplier));
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_COLOR:
+ toadd.Add(new LSL_Rotation(wl.cloudColor.X, wl.cloudColor.Y, wl.cloudColor.Z, wl.cloudColor.W));
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_COVERAGE:
+ toadd.Add(new LSL_Float(wl.cloudCoverage));
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_DETAIL_XY_DENSITY:
+ toadd.Add(new LSL_Vector(wl.cloudDetailXYDensity.X, wl.cloudDetailXYDensity.Y, wl.cloudDetailXYDensity.Z));
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_SCALE:
+ toadd.Add(new LSL_Float(wl.cloudScale));
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_SCROLL_X:
+ toadd.Add(new LSL_Float(wl.cloudScrollX));
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_SCROLL_X_LOCK:
+ toadd.Add(new LSL_Integer(wl.cloudScrollXLock ? 1 : 0));
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_SCROLL_Y:
+ toadd.Add(new LSL_Float(wl.cloudScrollY));
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_SCROLL_Y_LOCK:
+ toadd.Add(new LSL_Integer(wl.cloudScrollYLock ? 1 : 0));
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_XY_DENSITY:
+ toadd.Add(new LSL_Vector(wl.cloudXYDensity.X, wl.cloudXYDensity.Y, wl.cloudXYDensity.Z));
+ break;
+ case (int)ScriptBaseClass.WL_DENSITY_MULTIPLIER:
+ toadd.Add(new LSL_Float(wl.densityMultiplier));
+ break;
+ case (int)ScriptBaseClass.WL_DISTANCE_MULTIPLIER:
+ toadd.Add(new LSL_Float(wl.distanceMultiplier));
+ break;
+ case (int)ScriptBaseClass.WL_DRAW_CLASSIC_CLOUDS:
+ toadd.Add(new LSL_Integer(wl.drawClassicClouds ? 1 : 0));
+ break;
+ case (int)ScriptBaseClass.WL_EAST_ANGLE:
+ toadd.Add(new LSL_Float(wl.eastAngle));
+ break;
+ case (int)ScriptBaseClass.WL_FRESNEL_OFFSET:
+ toadd.Add(new LSL_Float(wl.fresnelOffset));
+ break;
+ case (int)ScriptBaseClass.WL_FRESNEL_SCALE:
+ toadd.Add(new LSL_Float(wl.fresnelScale));
+ break;
+ case (int)ScriptBaseClass.WL_HAZE_DENSITY:
+ toadd.Add(new LSL_Float(wl.hazeDensity));
+ break;
+ case (int)ScriptBaseClass.WL_HAZE_HORIZON:
+ toadd.Add(new LSL_Float(wl.hazeHorizon));
+ break;
+ case (int)ScriptBaseClass.WL_HORIZON:
+ toadd.Add(new LSL_Rotation(wl.horizon.X, wl.horizon.Y, wl.horizon.Z, wl.horizon.W));
+ break;
+ case (int)ScriptBaseClass.WL_LITTLE_WAVE_DIRECTION:
+ toadd.Add(new LSL_Vector(wl.littleWaveDirection.X, wl.littleWaveDirection.Y, 0.0f));
+ break;
+ case (int)ScriptBaseClass.WL_MAX_ALTITUDE:
+ toadd.Add(new LSL_Integer(wl.maxAltitude));
+ break;
+ case (int)ScriptBaseClass.WL_NORMAL_MAP_TEXTURE:
+ toadd.Add(new LSL_Key(wl.normalMapTexture.ToString()));
+ break;
+ case (int)ScriptBaseClass.WL_REFLECTION_WAVELET_SCALE:
+ toadd.Add(new LSL_Vector(wl.reflectionWaveletScale.X, wl.reflectionWaveletScale.Y, wl.reflectionWaveletScale.Z));
+ break;
+ case (int)ScriptBaseClass.WL_REFRACT_SCALE_ABOVE:
+ toadd.Add(new LSL_Float(wl.refractScaleAbove));
+ break;
+ case (int)ScriptBaseClass.WL_REFRACT_SCALE_BELOW:
+ toadd.Add(new LSL_Float(wl.refractScaleBelow));
+ break;
+ case (int)ScriptBaseClass.WL_SCENE_GAMMA:
+ toadd.Add(new LSL_Float(wl.sceneGamma));
+ break;
+ case (int)ScriptBaseClass.WL_STAR_BRIGHTNESS:
+ toadd.Add(new LSL_Float(wl.starBrightness));
+ break;
+ case (int)ScriptBaseClass.WL_SUN_GLOW_FOCUS:
+ toadd.Add(new LSL_Float(wl.sunGlowFocus));
+ break;
+ case (int)ScriptBaseClass.WL_SUN_GLOW_SIZE:
+ toadd.Add(new LSL_Float(wl.sunGlowSize));
+ break;
+ case (int)ScriptBaseClass.WL_SUN_MOON_COLOR:
+ toadd.Add(new LSL_Rotation(wl.sunMoonColor.X, wl.sunMoonColor.Y, wl.sunMoonColor.Z, wl.sunMoonColor.W));
+ break;
+ case (int)ScriptBaseClass.WL_UNDERWATER_FOG_MODIFIER:
+ toadd.Add(new LSL_Float(wl.underwaterFogModifier));
+ break;
+ case (int)ScriptBaseClass.WL_WATER_COLOR:
+ toadd.Add(new LSL_Vector(wl.waterColor.X, wl.waterColor.Y, wl.waterColor.Z));
+ break;
+ case (int)ScriptBaseClass.WL_WATER_FOG_DENSITY_EXPONENT:
+ toadd.Add(new LSL_Float(wl.waterFogDensityExponent));
+ break;
+ }
+
+ if (toadd.Length > 0)
+ {
+ values.Add(rule);
+ values.Add(toadd.Data[0]);
+ }
+ idx++;
+ }
+
+
+ return values;
+
+ }
+
+ private RegionLightShareData getWindlightProfileFromRules(LSL_List rules)
+ {
+ RegionLightShareData wl = (RegionLightShareData)m_host.ParentGroup.Scene.RegionInfo.WindlightSettings.Clone();
+
+ LSL_List values = new LSL_List();
+ int idx = 0;
+ while (idx < rules.Length)
+ {
+ uint rule = (uint)rules.GetLSLIntegerItem(idx);
+ LSL_Types.Quaternion iQ;
+ LSL_Types.Vector3 iV;
+ switch (rule)
+ {
+ case (int)ScriptBaseClass.WL_SUN_MOON_POSITION:
+ idx++;
+ wl.sunMoonPosition = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_AMBIENT:
+ idx++;
+ iQ = rules.GetQuaternionItem(idx);
+ wl.ambient = new Vector4((float)iQ.x, (float)iQ.y, (float)iQ.z, (float)iQ.s);
+ break;
+ case (int)ScriptBaseClass.WL_BIG_WAVE_DIRECTION:
+ idx++;
+ iV = rules.GetVector3Item(idx);
+ wl.bigWaveDirection = new Vector2((float)iV.x, (float)iV.y);
+ break;
+ case (int)ScriptBaseClass.WL_BLUE_DENSITY:
+ idx++;
+ iQ = rules.GetQuaternionItem(idx);
+ wl.blueDensity = new Vector4((float)iQ.x, (float)iQ.y, (float)iQ.z, (float)iQ.s);
+ break;
+ case (int)ScriptBaseClass.WL_BLUR_MULTIPLIER:
+ idx++;
+ wl.blurMultiplier = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_COLOR:
+ idx++;
+ iQ = rules.GetQuaternionItem(idx);
+ wl.cloudColor = new Vector4((float)iQ.x, (float)iQ.y, (float)iQ.z, (float)iQ.s);
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_COVERAGE:
+ idx++;
+ wl.cloudCoverage = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_DETAIL_XY_DENSITY:
+ idx++;
+ iV = rules.GetVector3Item(idx);
+ wl.cloudDetailXYDensity = new Vector3((float)iV.x, (float)iV.y, (float)iV.z);
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_SCALE:
+ idx++;
+ wl.cloudScale = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_SCROLL_X:
+ idx++;
+ wl.cloudScrollX = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_SCROLL_X_LOCK:
+ idx++;
+ wl.cloudScrollXLock = rules.GetLSLIntegerItem(idx).value == 1 ? true : false;
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_SCROLL_Y:
+ idx++;
+ wl.cloudScrollY = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_SCROLL_Y_LOCK:
+ idx++;
+ wl.cloudScrollYLock = rules.GetLSLIntegerItem(idx).value == 1 ? true : false;
+ break;
+ case (int)ScriptBaseClass.WL_CLOUD_XY_DENSITY:
+ idx++;
+ iV = rules.GetVector3Item(idx);
+ wl.cloudXYDensity = new Vector3((float)iV.x, (float)iV.y, (float)iV.z);
+ break;
+ case (int)ScriptBaseClass.WL_DENSITY_MULTIPLIER:
+ idx++;
+ wl.densityMultiplier = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_DISTANCE_MULTIPLIER:
+ idx++;
+ wl.distanceMultiplier = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_DRAW_CLASSIC_CLOUDS:
+ idx++;
+ wl.drawClassicClouds = rules.GetLSLIntegerItem(idx).value == 1 ? true : false;
+ break;
+ case (int)ScriptBaseClass.WL_EAST_ANGLE:
+ idx++;
+ wl.eastAngle = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_FRESNEL_OFFSET:
+ idx++;
+ wl.fresnelOffset = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_FRESNEL_SCALE:
+ idx++;
+ wl.fresnelScale = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_HAZE_DENSITY:
+ idx++;
+ wl.hazeDensity = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_HAZE_HORIZON:
+ idx++;
+ wl.hazeHorizon = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_HORIZON:
+ idx++;
+ iQ = rules.GetQuaternionItem(idx);
+ wl.horizon = new Vector4((float)iQ.x, (float)iQ.y, (float)iQ.z, (float)iQ.s);
+ break;
+ case (int)ScriptBaseClass.WL_LITTLE_WAVE_DIRECTION:
+ idx++;
+ iV = rules.GetVector3Item(idx);
+ wl.littleWaveDirection = new Vector2((float)iV.x, (float)iV.y);
+ break;
+ case (int)ScriptBaseClass.WL_MAX_ALTITUDE:
+ idx++;
+ wl.maxAltitude = (ushort)rules.GetLSLIntegerItem(idx).value;
+ break;
+ case (int)ScriptBaseClass.WL_NORMAL_MAP_TEXTURE:
+ idx++;
+ wl.normalMapTexture = new UUID(rules.GetLSLStringItem(idx).m_string);
+ break;
+ case (int)ScriptBaseClass.WL_REFLECTION_WAVELET_SCALE:
+ idx++;
+ iV = rules.GetVector3Item(idx);
+ wl.reflectionWaveletScale = new Vector3((float)iV.x, (float)iV.y, (float)iV.z);
+ break;
+ case (int)ScriptBaseClass.WL_REFRACT_SCALE_ABOVE:
+ idx++;
+ wl.refractScaleAbove = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_REFRACT_SCALE_BELOW:
+ idx++;
+ wl.refractScaleBelow = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_SCENE_GAMMA:
+ idx++;
+ wl.sceneGamma = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_STAR_BRIGHTNESS:
+ idx++;
+ wl.starBrightness = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_SUN_GLOW_FOCUS:
+ idx++;
+ wl.sunGlowFocus = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_SUN_GLOW_SIZE:
+ idx++;
+ wl.sunGlowSize = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_SUN_MOON_COLOR:
+ idx++;
+ iQ = rules.GetQuaternionItem(idx);
+ wl.sunMoonColor = new Vector4((float)iQ.x, (float)iQ.y, (float)iQ.z, (float)iQ.s);
+ break;
+ case (int)ScriptBaseClass.WL_UNDERWATER_FOG_MODIFIER:
+ idx++;
+ wl.underwaterFogModifier = (float)rules.GetLSLFloatItem(idx);
+ break;
+ case (int)ScriptBaseClass.WL_WATER_COLOR:
+ idx++;
+ iV = rules.GetVector3Item(idx);
+ wl.waterColor = new Vector3((float)iV.x, (float)iV.y, (float)iV.z);
+ break;
+ case (int)ScriptBaseClass.WL_WATER_FOG_DENSITY_EXPONENT:
+ idx++;
+ wl.waterFogDensityExponent = (float)rules.GetLSLFloatItem(idx);
+ break;
+ }
+ idx++;
+ }
+ return wl;
+ }
+ ///
+ /// Set the current Windlight scene
+ ///
+ ///
+ /// success: true or false
+ public int lsSetWindlightScene(LSL_List rules)
+ {
+ if (!m_LSFunctionsEnabled)
+ {
+ LSShoutError("LightShare functions are not enabled.");
+ return 0;
+ }
+ if (!World.RegionInfo.EstateSettings.IsEstateManager(m_host.OwnerID) && World.GetScenePresence(m_host.OwnerID).GodLevel < 200)
+ {
+ LSShoutError("lsSetWindlightScene can only be used by estate managers or owners.");
+ return 0;
+ }
+ int success = 0;
+ m_host.AddScriptLPS(1);
+ if (LightShareModule.EnableWindlight)
+ {
+ RegionLightShareData wl = getWindlightProfileFromRules(rules);
+ m_host.ParentGroup.Scene.StoreWindlightProfile(wl);
+ success = 1;
+ }
+ else
+ {
+ LSShoutError("Windlight module is disabled");
+ return 0;
+ }
+ return success;
+ }
+ ///
+ /// Set the current Windlight scene to a target avatar
+ ///
+ ///
+ /// success: true or false
+ public int lsSetWindlightSceneTargeted(LSL_List rules, LSL_Key target)
+ {
+ if (!m_LSFunctionsEnabled)
+ {
+ LSShoutError("LightShare functions are not enabled.");
+ return 0;
+ }
+ if (!World.RegionInfo.EstateSettings.IsEstateManager(m_host.OwnerID) && World.GetScenePresence(m_host.OwnerID).GodLevel < 200)
+ {
+ LSShoutError("lsSetWindlightSceneTargeted can only be used by estate managers or owners.");
+ return 0;
+ }
+ int success = 0;
+ m_host.AddScriptLPS(1);
+ if (LightShareModule.EnableWindlight)
+ {
+ RegionLightShareData wl = getWindlightProfileFromRules(rules);
+ World.EventManager.TriggerOnSendNewWindlightProfileTargeted(wl, new UUID(target.m_string));
+ success = 1;
+ }
+ else
+ {
+ LSShoutError("Windlight module is disabled");
+ return 0;
+ }
+ return success;
+ }
+
+ }
+}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ICM_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ICM_Api.cs
deleted file mode 100644
index f47ae7d..0000000
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ICM_Api.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Collections;
-using OpenSim.Region.ScriptEngine.Interfaces;
-
-using key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
-using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
-using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
-using LSL_List = OpenSim.Region.ScriptEngine.Shared.LSL_Types.list;
-using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
-using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
-using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
-
-namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
-{
- public interface ICM_Api
- {
- // Windlight Functions
- LSL_List lsGetWindlightScene(LSL_List rules);
- int lsSetWindlightScene(LSL_List rules);
- int lsSetWindlightSceneTargeted(LSL_List rules, key target);
- }
-}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILS_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILS_Api.cs
new file mode 100644
index 0000000..9aa437b
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILS_Api.cs
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSimulator Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System.Collections;
+using OpenSim.Region.ScriptEngine.Interfaces;
+
+using key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
+using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
+using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
+using LSL_List = OpenSim.Region.ScriptEngine.Shared.LSL_Types.list;
+using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
+using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
+using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
+
+namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
+{
+ public interface ILS_Api
+ {
+ // Windlight Functions
+ LSL_List lsGetWindlightScene(LSL_List rules);
+ int lsSetWindlightScene(LSL_List rules);
+ int lsSetWindlightSceneTargeted(LSL_List rules, key target);
+ }
+}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/CM_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/CM_Stub.cs
deleted file mode 100644
index 92c3d98..0000000
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/CM_Stub.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Runtime.Remoting.Lifetime;
-using System.Threading;
-using System.Reflection;
-using System.Collections;
-using System.Collections.Generic;
-using OpenSim.Framework;
-using OpenSim.Region.Framework.Interfaces;
-using OpenSim.Region.ScriptEngine.Interfaces;
-using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
-using integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
-using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
-using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
-using key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
-using LSL_List = OpenSim.Region.ScriptEngine.Shared.LSL_Types.list;
-using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
-using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
-using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
-
-namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
-{
- public partial class ScriptBaseClass : MarshalByRefObject
- {
- public ICM_Api m_CM_Functions;
-
- public void ApiTypeCM(IScriptApi api)
- {
- if (!(api is ICM_Api))
- return;
-
- m_CM_Functions = (ICM_Api)api;
- }
-
- public LSL_List lsGetWindlightScene(LSL_List rules)
- {
- return m_CM_Functions.lsGetWindlightScene(rules);
- }
-
- public int lsSetWindlightScene(LSL_List rules)
- {
- return m_CM_Functions.lsSetWindlightScene(rules);
- }
-
- public int lsSetWindlightSceneTargeted(LSL_List rules, key target)
- {
- return m_CM_Functions.lsSetWindlightSceneTargeted(rules, target);
- }
-
- public LSL_List cmGetWindlightScene(LSL_List rules)
- {
- return m_CM_Functions.lsGetWindlightScene(rules);
- }
-
- public int cmSetWindlightScene(LSL_List rules)
- {
- return m_CM_Functions.lsSetWindlightScene(rules);
- }
-
- public int cmSetWindlightSceneTargeted(LSL_List rules, key target)
- {
- return m_CM_Functions.lsSetWindlightSceneTargeted(rules, target);
- }
- }
-}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs
new file mode 100644
index 0000000..8280ca5
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LS_Stub.cs
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSimulator Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Runtime.Remoting.Lifetime;
+using System.Threading;
+using System.Reflection;
+using System.Collections;
+using System.Collections.Generic;
+using OpenSim.Framework;
+using OpenSim.Region.Framework.Interfaces;
+using OpenSim.Region.ScriptEngine.Interfaces;
+using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
+using integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
+using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
+using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
+using key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
+using LSL_List = OpenSim.Region.ScriptEngine.Shared.LSL_Types.list;
+using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
+using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
+using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
+
+namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
+{
+ public partial class ScriptBaseClass : MarshalByRefObject
+ {
+ public ILS_Api m_LS_Functions;
+
+ public void ApiTypeLS(IScriptApi api)
+ {
+ if (!(api is ILS_Api))
+ return;
+
+ m_LS_Functions = (ILS_Api)api;
+ }
+
+ public LSL_List lsGetWindlightScene(LSL_List rules)
+ {
+ return m_LS_Functions.lsGetWindlightScene(rules);
+ }
+
+ public int lsSetWindlightScene(LSL_List rules)
+ {
+ return m_LS_Functions.lsSetWindlightScene(rules);
+ }
+
+ public int lsSetWindlightSceneTargeted(LSL_List rules, key target)
+ {
+ return m_LS_Functions.lsSetWindlightSceneTargeted(rules, target);
+ }
+
+ public LSL_List cmGetWindlightScene(LSL_List rules)
+ {
+ return m_LS_Functions.lsGetWindlightScene(rules);
+ }
+
+ public int cmSetWindlightScene(LSL_List rules)
+ {
+ return m_LS_Functions.lsSetWindlightScene(rules);
+ }
+
+ public int cmSetWindlightSceneTargeted(LSL_List rules, key target)
+ {
+ return m_LS_Functions.lsSetWindlightSceneTargeted(rules, target);
+ }
+ }
+}
--
cgit v1.1