From 1743fe5d62422f959f1f865d1def2ad929375460 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 25 Oct 2012 00:29:50 +0100
Subject: Move npc creation tests involving appearance from
OSSL_ApiAppearanceTest to OSSL_ApiNpcTests
This is a more intuitive location.
---
.../Shared/Tests/OSSL_ApiAppearanceTest.cs | 70 ----------------------
.../ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs | 69 +++++++++++++++++++++
2 files changed, 69 insertions(+), 70 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
index c8718d9..c401794 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
@@ -75,76 +75,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
m_engine.AddRegion(m_scene);
}
- ///
- /// Test creation of an NPC where the appearance data comes from a notecard
- ///
- [Test]
- public void TestOsNpcCreateUsingAppearanceFromNotecard()
- {
- TestHelpers.InMethod();
-// log4net.Config.XmlConfigurator.Configure();
-
- // Store an avatar with a different height from default in a notecard.
- UUID userId = TestHelpers.ParseTail(0x1);
- float newHeight = 1.9f;
-
- ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
- sp.Appearance.AvatarHeight = newHeight;
- SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
- SceneObjectPart part = so.RootPart;
- m_scene.AddSceneObject(so);
-
- OSSL_Api osslApi = new OSSL_Api();
- osslApi.Initialize(m_engine, part, null);
-
- string notecardName = "appearanceNc";
- osslApi.osOwnerSaveAppearance(notecardName);
-
- // Try creating a bot using the appearance in the notecard.
- string npcRaw = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), notecardName);
- Assert.That(npcRaw, Is.Not.Null);
-
- UUID npcId = new UUID(npcRaw);
- ScenePresence npc = m_scene.GetScenePresence(npcId);
- Assert.That(npc, Is.Not.Null);
- Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(newHeight));
- }
-
- ///
- /// Test creation of an NPC where the appearance data comes from an avatar already in the region.
- ///
- [Test]
- public void TestOsNpcCreateUsingAppearanceFromAvatar()
- {
- TestHelpers.InMethod();
-// TestHelpers.EnableLogging();
-
- // Store an avatar with a different height from default in a notecard.
- UUID userId = TestHelpers.ParseTail(0x1);
- float newHeight = 1.9f;
-
- ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
- sp.Appearance.AvatarHeight = newHeight;
- SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
- SceneObjectPart part = so.RootPart;
- m_scene.AddSceneObject(so);
-
- OSSL_Api osslApi = new OSSL_Api();
- osslApi.Initialize(m_engine, part, null);
-
- string notecardName = "appearanceNc";
- osslApi.osOwnerSaveAppearance(notecardName);
-
- // Try creating a bot using the existing avatar's appearance
- string npcRaw = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), sp.UUID.ToString());
- Assert.That(npcRaw, Is.Not.Null);
-
- UUID npcId = new UUID(npcRaw);
- ScenePresence npc = m_scene.GetScenePresence(npcId);
- Assert.That(npc, Is.Not.Null);
- Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(newHeight));
- }
-
[Test]
public void TestOsOwnerSaveAppearance()
{
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
index 25679a6..b5a4d93 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
@@ -79,6 +79,75 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
}
///
+ /// Test creation of an NPC where the appearance data comes from a notecard
+ ///
+ [Test]
+ public void TestOsNpcCreateUsingAppearanceFromNotecard()
+ {
+ TestHelpers.InMethod();
+
+ // Store an avatar with a different height from default in a notecard.
+ UUID userId = TestHelpers.ParseTail(0x1);
+ float newHeight = 1.9f;
+
+ ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
+ sp.Appearance.AvatarHeight = newHeight;
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
+ SceneObjectPart part = so.RootPart;
+ m_scene.AddSceneObject(so);
+
+ OSSL_Api osslApi = new OSSL_Api();
+ osslApi.Initialize(m_engine, part, null);
+
+ string notecardName = "appearanceNc";
+ osslApi.osOwnerSaveAppearance(notecardName);
+
+ // Try creating a bot using the appearance in the notecard.
+ string npcRaw = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), notecardName);
+ Assert.That(npcRaw, Is.Not.Null);
+
+ UUID npcId = new UUID(npcRaw);
+ ScenePresence npc = m_scene.GetScenePresence(npcId);
+ Assert.That(npc, Is.Not.Null);
+ Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(newHeight));
+ }
+
+ ///
+ /// Test creation of an NPC where the appearance data comes from an avatar already in the region.
+ ///
+ [Test]
+ public void TestOsNpcCreateUsingAppearanceFromAvatar()
+ {
+ TestHelpers.InMethod();
+// TestHelpers.EnableLogging();
+
+ // Store an avatar with a different height from default in a notecard.
+ UUID userId = TestHelpers.ParseTail(0x1);
+ float newHeight = 1.9f;
+
+ ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
+ sp.Appearance.AvatarHeight = newHeight;
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
+ SceneObjectPart part = so.RootPart;
+ m_scene.AddSceneObject(so);
+
+ OSSL_Api osslApi = new OSSL_Api();
+ osslApi.Initialize(m_engine, part, null);
+
+ string notecardName = "appearanceNc";
+ osslApi.osOwnerSaveAppearance(notecardName);
+
+ // Try creating a bot using the existing avatar's appearance
+ string npcRaw = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), sp.UUID.ToString());
+ Assert.That(npcRaw, Is.Not.Null);
+
+ UUID npcId = new UUID(npcRaw);
+ ScenePresence npc = m_scene.GetScenePresence(npcId);
+ Assert.That(npc, Is.Not.Null);
+ Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(newHeight));
+ }
+
+ ///
/// Test removal of an owned NPC.
///
[Test]
--
cgit v1.1
From 5d4ac5a90fea758e18c8a9e97b06e799186b5a14 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 25 Oct 2012 00:59:27 +0100
Subject: Add TestOsNpcLoadAppearance()
---
.../Shared/Tests/OSSL_ApiAppearanceTest.cs | 6 ++-
.../ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs | 43 +++++++++++++++++++++-
2 files changed, 45 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
index c401794..eb51c4e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
@@ -36,11 +36,12 @@ using OpenMetaverse;
using OpenMetaverse.Assets;
using OpenMetaverse.StructuredData;
using OpenSim.Framework;
+using OpenSim.Region.CoreModules.Avatar.Attachments;
using OpenSim.Region.CoreModules.Avatar.AvatarFactory;
-using OpenSim.Region.OptionalModules.World.NPC;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Region.ScriptEngine.Shared;
using OpenSim.Region.ScriptEngine.Shared.Api;
+using OpenSim.Region.OptionalModules.World.NPC;
using OpenSim.Services.Interfaces;
using OpenSim.Tests.Common;
using OpenSim.Tests.Common.Mock;
@@ -68,7 +69,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
config.Set("Enabled", "true");
m_scene = new SceneHelpers().SetupScene();
- SceneHelpers.SetupSceneModules(m_scene, initConfigSource, new AvatarFactoryModule(), new NPCModule());
+ SceneHelpers.SetupSceneModules(
+ m_scene, initConfigSource, new AvatarFactoryModule(), new AttachmentsModule(), new NPCModule());
m_engine = new XEngine.XEngine();
m_engine.Initialise(initConfigSource);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
index b5a4d93..0a3a75d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
@@ -36,6 +36,7 @@ using OpenMetaverse;
using OpenMetaverse.Assets;
using OpenMetaverse.StructuredData;
using OpenSim.Framework;
+using OpenSim.Region.CoreModules.Avatar.Attachments;
using OpenSim.Region.CoreModules.Avatar.AvatarFactory;
using OpenSim.Region.OptionalModules.World.NPC;
using OpenSim.Region.Framework.Scenes;
@@ -71,7 +72,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
config.Set("Enabled", "true");
m_scene = new SceneHelpers().SetupScene();
- SceneHelpers.SetupSceneModules(m_scene, initConfigSource, new AvatarFactoryModule(), new NPCModule());
+ SceneHelpers.SetupSceneModules(
+ m_scene, initConfigSource, new AvatarFactoryModule(), new AttachmentsModule(), new NPCModule());
m_engine = new XEngine.XEngine();
m_engine.Initialise(initConfigSource);
@@ -147,6 +149,44 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(newHeight));
}
+ [Test]
+ public void TestOsNpcLoadAppearance()
+ {
+ TestHelpers.InMethod();
+
+ // Store an avatar with a different height from default in a notecard.
+ UUID userId = TestHelpers.ParseTail(0x1);
+ float firstHeight = 1.9f;
+ float secondHeight = 2.1f;
+ string firstAppearanceNcName = "appearanceNc1";
+ string secondAppearanceNcName = "appearanceNc2";
+
+ ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
+ sp.Appearance.AvatarHeight = firstHeight;
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
+ SceneObjectPart part = so.RootPart;
+ m_scene.AddSceneObject(so);
+
+ OSSL_Api osslApi = new OSSL_Api();
+ osslApi.Initialize(m_engine, part, null);
+
+ osslApi.osOwnerSaveAppearance(firstAppearanceNcName);
+
+ string npcRaw
+ = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), firstAppearanceNcName);
+
+ // Create a second appearance notecard with a different height
+ sp.Appearance.AvatarHeight = secondHeight;
+ osslApi.osOwnerSaveAppearance(secondAppearanceNcName);
+
+ osslApi.osNpcLoadAppearance(npcRaw, secondAppearanceNcName);
+
+ UUID npcId = new UUID(npcRaw);
+ ScenePresence npc = m_scene.GetScenePresence(npcId);
+ Assert.That(npc, Is.Not.Null);
+ Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(secondHeight));
+ }
+
///
/// Test removal of an owned NPC.
///
@@ -154,7 +194,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
public void TestOsNpcRemoveOwned()
{
TestHelpers.InMethod();
-// log4net.Config.XmlConfigurator.Configure();
// Store an avatar with a different height from default in a notecard.
UUID userId = TestHelpers.ParseTail(0x1);
--
cgit v1.1
From ae662b54ea972e4da4f805fe38b5714d595e032a Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 25 Oct 2012 01:07:06 +0100
Subject: Make osNpcCreate() return UUID.Zero instead of throwing an exception
if notecard name is invalid. Make osNpcLoadAppearance() fail silently in
same circumstance rather than throwing exception.
---
.../Shared/Api/Implementation/OSSL_Api.cs | 26 +++++++----
.../Shared/Tests/OSSL_ApiAppearanceTest.cs | 6 +--
.../ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs | 54 ++++++++++++++++++++++
3 files changed, 74 insertions(+), 12 deletions(-)
(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 29bc163..804b0af 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -1780,18 +1780,24 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
protected string LoadNotecard(string notecardNameOrUuid)
{
UUID assetID = CacheNotecard(notecardNameOrUuid);
- StringBuilder notecardData = new StringBuilder();
- for (int count = 0; count < NotecardCache.GetLines(assetID); count++)
+ if (assetID != UUID.Zero)
{
- string line = NotecardCache.GetLine(assetID, count) + "\n";
-
-// m_log.DebugFormat("[OSSL]: From notecard {0} loading line {1}", notecardNameOrUuid, line);
-
- notecardData.Append(line);
+ StringBuilder notecardData = new StringBuilder();
+
+ for (int count = 0; count < NotecardCache.GetLines(assetID); count++)
+ {
+ string line = NotecardCache.GetLine(assetID, count) + "\n";
+
+ // m_log.DebugFormat("[OSSL]: From notecard {0} loading line {1}", notecardNameOrUuid, line);
+
+ notecardData.Append(line);
+ }
+
+ return notecardData.ToString();
}
- return notecardData.ToString();
+ return null;
}
///
@@ -2407,6 +2413,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return;
string appearanceSerialized = LoadNotecard(notecard);
+
+ if (appearanceSerialized == null)
+ return;
+
OSDMap appearanceOsd = (OSDMap)OSDParser.DeserializeLLSDXml(appearanceSerialized);
// OSD a = OSDParser.DeserializeLLSDXml(appearanceSerialized);
// Console.WriteLine("appearanceSerialized {0}", appearanceSerialized);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
index eb51c4e..c401794 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
@@ -36,12 +36,11 @@ using OpenMetaverse;
using OpenMetaverse.Assets;
using OpenMetaverse.StructuredData;
using OpenSim.Framework;
-using OpenSim.Region.CoreModules.Avatar.Attachments;
using OpenSim.Region.CoreModules.Avatar.AvatarFactory;
+using OpenSim.Region.OptionalModules.World.NPC;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Region.ScriptEngine.Shared;
using OpenSim.Region.ScriptEngine.Shared.Api;
-using OpenSim.Region.OptionalModules.World.NPC;
using OpenSim.Services.Interfaces;
using OpenSim.Tests.Common;
using OpenSim.Tests.Common.Mock;
@@ -69,8 +68,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
config.Set("Enabled", "true");
m_scene = new SceneHelpers().SetupScene();
- SceneHelpers.SetupSceneModules(
- m_scene, initConfigSource, new AvatarFactoryModule(), new AttachmentsModule(), new NPCModule());
+ SceneHelpers.SetupSceneModules(m_scene, initConfigSource, new AvatarFactoryModule(), new NPCModule());
m_engine = new XEngine.XEngine();
m_engine.Initialise(initConfigSource);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
index 0a3a75d..4e58315 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
@@ -114,6 +114,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(newHeight));
}
+ [Test]
+ public void TestOsNpcCreateNotExistingNotecard()
+ {
+ TestHelpers.InMethod();
+
+ UUID userId = TestHelpers.ParseTail(0x1);
+
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
+ m_scene.AddSceneObject(so);
+
+ OSSL_Api osslApi = new OSSL_Api();
+ osslApi.Initialize(m_engine, so.RootPart, null);
+
+ string npcRaw
+ = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), "not existing notecard name");
+
+ UUID npcId = new UUID(npcRaw);
+ Assert.That(npcId, Is.EqualTo(UUID.Zero));
+ }
+
///
/// Test creation of an NPC where the appearance data comes from an avatar already in the region.
///
@@ -187,6 +207,40 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(secondHeight));
}
+ [Test]
+ public void TestOsNpcLoadAppearanceNotExistingNotecard()
+ {
+ TestHelpers.InMethod();
+
+ // Store an avatar with a different height from default in a notecard.
+ UUID userId = TestHelpers.ParseTail(0x1);
+ float firstHeight = 1.9f;
+ float secondHeight = 2.1f;
+ string firstAppearanceNcName = "appearanceNc1";
+ string secondAppearanceNcName = "appearanceNc2";
+
+ ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId);
+ sp.Appearance.AvatarHeight = firstHeight;
+ SceneObjectGroup so = SceneHelpers.CreateSceneObject(1, userId, 0x10);
+ SceneObjectPart part = so.RootPart;
+ m_scene.AddSceneObject(so);
+
+ OSSL_Api osslApi = new OSSL_Api();
+ osslApi.Initialize(m_engine, part, null);
+
+ osslApi.osOwnerSaveAppearance(firstAppearanceNcName);
+
+ string npcRaw
+ = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), firstAppearanceNcName);
+
+ osslApi.osNpcLoadAppearance(npcRaw, secondAppearanceNcName);
+
+ UUID npcId = new UUID(npcRaw);
+ ScenePresence npc = m_scene.GetScenePresence(npcId);
+ Assert.That(npc, Is.Not.Null);
+ Assert.That(npc.Appearance.AvatarHeight, Is.EqualTo(firstHeight));
+ }
+
///
/// Test removal of an owned NPC.
///
--
cgit v1.1
From d9aaf51561ea7bb2ee030c648611a5281f21ec49 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 25 Oct 2012 02:52:20 +0100
Subject: When scripts generate expected exceptions (e.g. due to checked bad
parameter) throw ScriptException instead of just a plain old exception.
This is to make it easier to distinguish these exceptions from unexpected OpenSimulator problems internally and in regression tests.
No functional changes.
---
.../Shared/Api/Implementation/LSL_Api.cs | 4 +--
.../Shared/Api/Implementation/MOD_Api.cs | 10 +++---
.../Shared/Api/Implementation/OSSL_Api.cs | 2 +-
.../Region/ScriptEngine/Shared/ScriptException.cs | 40 ++++++++++++++++++++++
4 files changed, 48 insertions(+), 8 deletions(-)
create mode 100644 OpenSim/Region/ScriptEngine/Shared/ScriptException.cs
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index cf801ba..dc791d3 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -10685,12 +10685,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
internal void Deprecated(string command)
{
- throw new Exception("Command deprecated: " + command);
+ throw new ScriptException("Command deprecated: " + command);
}
internal void LSLError(string msg)
{
- throw new Exception("LSL Runtime Error: " + msg);
+ throw new ScriptException("LSL Runtime Error: " + msg);
}
public delegate void AssetRequestCallback(UUID assetID, AssetBase asset);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
index 6809c09..a830a15 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
@@ -95,13 +95,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
internal void MODError(string msg)
{
- throw new Exception("MOD Runtime Error: " + msg);
+ throw new ScriptException("MOD Runtime Error: " + msg);
}
- //
- //Dumps an error message on the debug console.
- //
-
+ ///
+ /// Dumps an error message on the debug console.
+ ///
+ ///
internal void MODShoutError(string message)
{
if (message.Length > 1023)
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 804b0af..5301ccd 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -210,7 +210,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
internal void OSSLError(string msg)
{
- throw new Exception("OSSL Runtime Error: " + msg);
+ throw new ScriptException("OSSL Runtime Error: " + msg);
}
///
diff --git a/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs b/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs
new file mode 100644
index 0000000..ae67fc5
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs
@@ -0,0 +1,40 @@
+/*
+ * 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;
+
+namespace OpenSim.Region.ScriptEngine.Shared
+{
+ public class ScriptException : Exception
+ {
+ public ScriptException() : base() {}
+
+ public ScriptException(string message) : base(message) {}
+
+ public ScriptException(string message, Exception innerException) : base(message, innerException) {}
+ }
+}
\ No newline at end of file
--
cgit v1.1
From 8af8319b95c14819d0305527f8f6876a334fa3c0 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 25 Oct 2012 03:02:00 +0100
Subject: Get osNpcCreate() and osNpcLoadAppearance() to generate a script
error if appearance notecard does not exist, rather than returning UUID.Zero
or silently failing.
---
.../Shared/Api/Implementation/OSSL_Api.cs | 11 ++++----
.../ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs | 30 +++++++++++++++++-----
2 files changed, 30 insertions(+), 11 deletions(-)
(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 5301ccd..0811519 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -2346,11 +2346,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
appearance = new AvatarAppearance();
appearance.Unpack(appearanceOsd);
}
+ else
+ {
+ OSSLError(string.Format("osNpcCreate: Notecard reference '{0}' not found.", notecard));
+ }
}
- if (appearance == null)
- return new LSL_Key(UUID.Zero.ToString());
-
UUID ownerID = UUID.Zero;
if (owned)
ownerID = m_host.OwnerID;
@@ -2415,8 +2416,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
string appearanceSerialized = LoadNotecard(notecard);
if (appearanceSerialized == null)
- return;
-
+ OSSLError(string.Format("osNpcCreate: Notecard reference '{0}' not found.", notecard));
+
OSDMap appearanceOsd = (OSDMap)OSDParser.DeserializeLLSDXml(appearanceSerialized);
// OSD a = OSDParser.DeserializeLLSDXml(appearanceSerialized);
// Console.WriteLine("appearanceSerialized {0}", appearanceSerialized);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
index 4e58315..b49bcc2 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs
@@ -127,11 +127,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
OSSL_Api osslApi = new OSSL_Api();
osslApi.Initialize(m_engine, so.RootPart, null);
- string npcRaw
- = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), "not existing notecard name");
-
- UUID npcId = new UUID(npcRaw);
- Assert.That(npcId, Is.EqualTo(UUID.Zero));
+ string npcRaw;
+ bool gotExpectedException = false;
+ try
+ {
+ npcRaw
+ = osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), "not existing notecard name");
+ }
+ catch (ScriptException)
+ {
+ gotExpectedException = true;
+ }
+
+ Assert.That(gotExpectedException, Is.True);
}
///
@@ -233,7 +241,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
string npcRaw
= osslApi.osNpcCreate("Jane", "Doe", new LSL_Types.Vector3(128, 128, 128), firstAppearanceNcName);
- osslApi.osNpcLoadAppearance(npcRaw, secondAppearanceNcName);
+ bool gotExpectedException = false;
+ try
+ {
+ osslApi.osNpcLoadAppearance(npcRaw, secondAppearanceNcName);
+ }
+ catch (ScriptException)
+ {
+ gotExpectedException = true;
+ }
+
+ Assert.That(gotExpectedException, Is.True);
UUID npcId = new UUID(npcRaw);
ScenePresence npc = m_scene.GetScenePresence(npcId);
--
cgit v1.1
From 01972cc9e8f3288330cdc7ba343b99be7f1491ec Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 23 Oct 2012 11:34:43 +0100
Subject: system ints can end up in LSL lists, which can cause
counter-intuitive unknown list element type errors in ConvertFromLSL (via
modInvoke)
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs | 2 ++
1 file changed, 2 insertions(+)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
index a830a15..60bb107 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
@@ -359,6 +359,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
result[i] = (string)(LSL_String)plist[i];
else if (plist[i] is LSL_Integer)
result[i] = (int)(LSL_Integer)plist[i];
+ else if (plist[i] is int)
+ result[i] = plist[i];
else if (plist[i] is LSL_Float)
result[i] = (float)(LSL_Float)plist[i];
else if (plist[i] is LSL_Key)
--
cgit v1.1
From ecdb88679e6bb59da13da0f3994cc42d8e84a30d Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 23 Oct 2012 11:39:55 +0100
Subject: Removing the apparently superfluous explicit namespace reference so
that the if-else-if-else block in ConvertFromLSL can have a consistent
appearance
---
.../Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
index 60bb107..a181dbe 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
@@ -366,15 +366,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
else if (plist[i] is LSL_Key)
result[i] = new UUID((LSL_Key)plist[i]);
else if (plist[i] is LSL_Rotation)
- {
- result[i] = (OpenMetaverse.Quaternion)(
- (LSL_Rotation)plist[i]);
- }
+ result[i] = (Quaternion)((LSL_Rotation)plist[i]);
else if (plist[i] is LSL_Vector)
- {
- result[i] = (OpenMetaverse.Vector3)(
- (LSL_Vector)plist[i]);
- }
+ result[i] = (Vector3)((LSL_Vector)plist[i]);
else
MODError(String.Format("{0}: unknown LSL list element type", fname));
}
--
cgit v1.1
From 1b3b7a61acf8784af3167a35c0f06eaeb413af9c Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 26 Oct 2012 01:50:46 +0100
Subject: minor: Add comment as to why we are pulcking plain old ints out of
the LSL_List when converting values from LSL for modInvoke()
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs | 2 ++
1 file changed, 2 insertions(+)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
index a181dbe..8f34833 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
@@ -359,6 +359,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
result[i] = (string)(LSL_String)plist[i];
else if (plist[i] is LSL_Integer)
result[i] = (int)(LSL_Integer)plist[i];
+ // The int check exists because of the many plain old int script constants in ScriptBase which
+ // are not LSL_Integers.
else if (plist[i] is int)
result[i] = plist[i];
else if (plist[i] is LSL_Float)
--
cgit v1.1
From 18b1ee6f379f4d34f72a9056bf6cdf185311fd05 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 23 Oct 2012 15:29:40 +0100
Subject: Formatting and casing correction in WorldCommModule, trailing new
line in OSSL to get git diff to not complain
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(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 0811519..0650b90 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -3648,4 +3648,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
DropAttachmentAt(false, pos, rot);
}
}
-}
\ No newline at end of file
+}
--
cgit v1.1
From e977761071a2d614a9a621437fbf86479b414759 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 23 Oct 2012 15:42:16 +0100
Subject: adding ability for listeners to be filtered by regular expressions
and a general-purpose function to see if a given string matches a given regex
---
.../Shared/Api/Implementation/OSSL_Api.cs | 63 ++++++++++++++++++++++
.../ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 24 +++++++++
.../Shared/Api/Runtime/LSL_Constants.cs | 10 ++++
.../ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 10 ++++
4 files changed, 107 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 0650b90..828288d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -3647,5 +3647,68 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
DropAttachmentAt(false, pos, rot);
}
+
+ public LSL_Integer osListenRegex(int channelID, string name, string ID, string msg, int regexBitfield)
+ {
+ CheckThreatLevel(ThreatLevel.Low, "osListenRegex");
+ m_host.AddScriptLPS(1);
+ UUID keyID;
+ UUID.TryParse(ID, out keyID);
+
+ // if we want the name to be used as a regular expression, ensure it is valid first.
+ if ((regexBitfield & ScriptBaseClass.OS_LISTEN_REGEX_NAME) == ScriptBaseClass.OS_LISTEN_REGEX_NAME)
+ {
+ try
+ {
+ Regex.IsMatch("", name);
+ }
+ catch (Exception)
+ {
+ OSSLShoutError("Name regex is invalid.");
+ return -1;
+ }
+ }
+
+ // if we want the msg to be used as a regular expression, ensure it is valid first.
+ if ((regexBitfield & ScriptBaseClass.OS_LISTEN_REGEX_MESSAGE) == ScriptBaseClass.OS_LISTEN_REGEX_MESSAGE)
+ {
+ try
+ {
+ Regex.IsMatch("", msg);
+ }
+ catch (Exception)
+ {
+ OSSLShoutError("Message regex is invalid.");
+ return -1;
+ }
+ }
+
+ IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface();
+ return (wComm == null) ? -1 : wComm.Listen(
+ m_host.LocalId,
+ m_item.ItemID,
+ m_host.UUID,
+ channelID,
+ name,
+ keyID,
+ msg,
+ regexBitfield
+ );
+ }
+
+ public LSL_Integer osRegexIsMatch(string input, string pattern)
+ {
+ CheckThreatLevel(ThreatLevel.Low, "osRegexIsMatch");
+ m_host.AddScriptLPS(1);
+ try
+ {
+ return Regex.IsMatch(input, pattern) ? 1 : 0;
+ }
+ catch (Exception)
+ {
+ OSSLShoutError("Possible invalid regular expression detected.");
+ return 0;
+ }
+ }
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 93188c9..cdd9ea8 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -418,5 +418,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
///
///
void osForceDropAttachmentAt(vector pos, rotation rot);
+
+ ///
+ /// Identical to llListen except for a bitfield which indicates which
+ /// string parameters should be parsed as regex patterns.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// OS_LISTEN_REGEX_NAME
+ /// OS_LISTEN_REGEX_MESSAGE
+ ///
+ ///
+ LSL_Integer osListenRegex(int channelID, string name, string ID,
+ string msg, int regexBitfield);
+
+ ///
+ /// Wraps to bool Regex.IsMatch(string input, string pattern)
+ ///
+ /// string to test for match
+ /// string to use as pattern
+ /// boolean
+ LSL_Integer osRegexIsMatch(string input, string pattern);
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
index 62bd6b8..880841b 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
@@ -716,5 +716,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
public static readonly LSLInteger RCERR_UNKNOWN = -1;
public static readonly LSLInteger RCERR_SIM_PERF_LOW = -2;
public static readonly LSLInteger RCERR_CAST_TIME_EXCEEDED = 3;
+
+ ///
+ /// process name parameter as regex
+ ///
+ public const int OS_LISTEN_REGEX_NAME = 0x1;
+
+ ///
+ /// process message parameter as regex
+ ///
+ public const int OS_LISTEN_REGEX_MESSAGE = 0x2;
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index dee1b28..afa9ae0 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -992,5 +992,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
{
m_OSSL_Functions.osForceDropAttachmentAt(pos, rot);
}
+
+ public LSL_Integer osListenRegex(int channelID, string name, string ID, string msg, int regexBitfield)
+ {
+ return m_OSSL_Functions.osListenRegex(channelID, name, ID, msg, regexBitfield);
+ }
+
+ public LSL_Integer osRegexIsMatch(string input, string pattern)
+ {
+ return m_OSSL_Functions.osRegexIsMatch(input, pattern);
+ }
}
}
--
cgit v1.1
From 1c5f6e48b80e15f97c8203f3db0df6745c7a2283 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Fri, 26 Oct 2012 21:23:20 +0100
Subject: Separate LSL's notion of the default anim from the actually playing
anims.
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index dc791d3..fa57845 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -4388,7 +4388,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
AnimationSet currentAnims = presence.Animator.Animations;
string currentAnimationState = String.Empty;
- if (animationstateNames.TryGetValue(currentAnims.DefaultAnimation.AnimID, out currentAnimationState))
+ if (animationstateNames.TryGetValue(currentAnims.ImplicitDefaultAnimation.AnimID, out currentAnimationState))
return currentAnimationState;
}
}
@@ -5705,7 +5705,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
flags |= ScriptBaseClass.AGENT_SITTING;
}
- if (agent.Animator.Animations.DefaultAnimation.AnimID
+ if (agent.Animator.Animations.ImplicitDefaultAnimation.AnimID
== DefaultAvatarAnimations.AnimsUUID["SIT_GROUND_CONSTRAINED"])
{
flags |= ScriptBaseClass.AGENT_SITTING;
@@ -7892,7 +7892,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
LSL_Vector lower;
LSL_Vector upper;
- if (presence.Animator.Animations.DefaultAnimation.AnimID
+ if (presence.Animator.Animations.ImplicitDefaultAnimation.AnimID
== DefaultAvatarAnimations.AnimsUUID["SIT_GROUND_CONSTRAINED"])
{
// This is for ground sitting avatars
--
cgit v1.1
From 7560010f340e9e67e0fb87d0e3863ed69bdbedf1 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Thu, 4 Oct 2012 11:33:21 +0100
Subject: Immediately setting gain to zero as a workaround for code not
stopping sound started by llPlaySound
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 1 +
1 file changed, 1 insertion(+)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index fa57845..bedcd85 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2452,6 +2452,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public void llStopSound()
{
m_host.AddScriptLPS(1);
+ m_host.AdjustSoundGain(0);
if (m_host.ParentGroup.LoopSoundSlavePrims.Contains(m_host))
{
if (m_host.ParentGroup.LoopSoundMasterPrim == m_host)
--
cgit v1.1
From 206a694c6baf9603855cc8eab50909e5e63b0f10 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Fri, 5 Oct 2012 14:50:31 +0100
Subject: moving comment for llStopSound inside the method block prior to
transposition to sound module
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index bedcd85..7fa01c1 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2448,11 +2448,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.SendSound(KeyOrName(sound).ToString(), volume, true, 0, 0, false, false);
}
- // Xantor 20080528: Clear prim data of sound instead
public void llStopSound()
{
m_host.AddScriptLPS(1);
m_host.AdjustSoundGain(0);
+ // Xantor 20080528: Clear prim data of sound instead
if (m_host.ParentGroup.LoopSoundSlavePrims.Contains(m_host))
{
if (m_host.ParentGroup.LoopSoundMasterPrim == m_host)
--
cgit v1.1
From 8763a637b5c2e48a97111b4f569e71b7e1c2f1d2 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Fri, 5 Oct 2012 14:55:00 +0100
Subject: transposing stop sound into sound module
---
.../Shared/Api/Implementation/LSL_Api.cs | 42 +++-------------------
1 file changed, 5 insertions(+), 37 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 7fa01c1..25be3ff 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -107,6 +107,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
protected IUrlModule m_UrlModule = null;
protected Dictionary m_userInfoCache = new Dictionary();
protected int EMAIL_PAUSE_TIME = 20; // documented delay value for smtp.
+ protected ISoundModule m_SoundModule = null;
public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, TaskInventoryItem item)
{
@@ -119,6 +120,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_TransferModule =
m_ScriptEngine.World.RequestModuleInterface();
m_UrlModule = m_ScriptEngine.World.RequestModuleInterface();
+ m_SoundModule = m_ScriptEngine.World.RequestModuleInterface();
AsyncCommands = new AsyncCommandManager(ScriptEngine);
}
@@ -2451,43 +2453,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public void llStopSound()
{
m_host.AddScriptLPS(1);
- m_host.AdjustSoundGain(0);
- // Xantor 20080528: Clear prim data of sound instead
- if (m_host.ParentGroup.LoopSoundSlavePrims.Contains(m_host))
- {
- if (m_host.ParentGroup.LoopSoundMasterPrim == m_host)
- {
- foreach (SceneObjectPart part in m_host.ParentGroup.LoopSoundSlavePrims)
- {
- part.Sound = UUID.Zero;
- part.SoundGain = 0;
- part.SoundFlags = 0;
- part.SoundRadius = 0;
- part.ScheduleFullUpdate();
- part.SendFullUpdateToAllClients();
- }
- m_host.ParentGroup.LoopSoundMasterPrim = null;
- m_host.ParentGroup.LoopSoundSlavePrims.Clear();
- }
- else
- {
- m_host.Sound = UUID.Zero;
- m_host.SoundGain = 0;
- m_host.SoundFlags = 0;
- m_host.SoundRadius = 0;
- m_host.ScheduleFullUpdate();
- m_host.SendFullUpdateToAllClients();
- }
- }
- else
- {
- m_host.Sound = UUID.Zero;
- m_host.SoundGain = 0;
- m_host.SoundFlags = 0;
- m_host.SoundRadius = 0;
- m_host.ScheduleFullUpdate();
- m_host.SendFullUpdateToAllClients();
- }
+
+ if (m_SoundModule != null)
+ m_SoundModule.StopSound(m_host.UUID);
}
public void llPreloadSound(string sound)
--
cgit v1.1
From a68e2fe1692a7611c58f774ac5b94c4298343433 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Fri, 5 Oct 2012 15:16:30 +0100
Subject: transposing preload sound onto sound module
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 25be3ff..61fd1aa 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2461,7 +2461,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public void llPreloadSound(string sound)
{
m_host.AddScriptLPS(1);
- m_host.PreloadSound(sound);
+ if (m_SoundModule != null)
+ m_SoundModule.PreloadSound(KeyOrName(sound), m_host.UUID, 0);
ScriptSleep(1000);
}
--
cgit v1.1
From 29a8ae48b51de55a02f839b6e4566054ad3f7f58 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Sat, 6 Oct 2012 22:23:14 +0100
Subject: transposing LoopSoundMaster to Sound Module
---
.../Shared/Api/Implementation/LSL_Api.cs | 28 +++-------------------
1 file changed, 3 insertions(+), 25 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 61fd1aa..2669add 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2397,33 +2397,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public void llLoopSoundMaster(string sound, double volume)
{
m_host.AddScriptLPS(1);
- m_host.ParentGroup.LoopSoundMasterPrim = m_host;
- lock (m_host.ParentGroup.LoopSoundSlavePrims)
+ if (m_SoundModule != null)
{
- foreach (SceneObjectPart prim in m_host.ParentGroup.LoopSoundSlavePrims)
- {
- if (prim.Sound != UUID.Zero)
- llStopSound();
-
- prim.Sound = KeyOrName(sound);
- prim.SoundGain = volume;
- prim.SoundFlags = 1; // looping
- prim.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable?
-
- prim.ScheduleFullUpdate();
- prim.SendFullUpdateToAllClients();
- }
+ m_SoundModule.LoopSoundMaster(m_host.UUID, KeyOrName(sound),
+ volume, 20);
}
- if (m_host.Sound != UUID.Zero)
- llStopSound();
-
- m_host.Sound = KeyOrName(sound);
- m_host.SoundGain = volume;
- m_host.SoundFlags = 1; // looping
- m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable?
-
- m_host.ScheduleFullUpdate();
- m_host.SendFullUpdateToAllClients();
}
public void llLoopSoundSlave(string sound, double volume)
--
cgit v1.1
From d7ffcace8f596d9b0cf84f1e8cbe4e2d6a71baef Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Sat, 6 Oct 2012 22:27:20 +0100
Subject: adjusting parameter order of PreloadSound to be more logical
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 2669add..0252145 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2440,7 +2440,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
m_host.AddScriptLPS(1);
if (m_SoundModule != null)
- m_SoundModule.PreloadSound(KeyOrName(sound), m_host.UUID, 0);
+ m_SoundModule.PreloadSound(m_host.UUID, KeyOrName(sound), 0);
ScriptSleep(1000);
}
--
cgit v1.1
From 9df510157e26ffcaf04fd4b85512778fddc08f68 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Mon, 15 Oct 2012 14:28:34 +0100
Subject: deduplicating code into a single LoopSound method
---
.../Shared/Api/Implementation/LSL_Api.cs | 28 ++++++----------------
1 file changed, 7 insertions(+), 21 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 0252145..c479944 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2370,28 +2370,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.SendSound(KeyOrName(sound).ToString(), volume, false, 0, 0, false, false);
}
- // Xantor 20080528 we should do this differently.
- // 1) apply the sound to the object
- // 2) schedule full update
- // just sending the sound out once doesn't work so well when other avatars come in view later on
- // or when the prim gets moved, changed, sat on, whatever
- // see large number of mantises (mantes?)
- // 20080530 Updated to remove code duplication
- // 20080530 Stop sound if there is one, otherwise volume only changes don't work
public void llLoopSound(string sound, double volume)
{
m_host.AddScriptLPS(1);
-
- if (m_host.Sound != UUID.Zero)
- llStopSound();
-
- m_host.Sound = KeyOrName(sound);
- m_host.SoundGain = volume;
- m_host.SoundFlags = 1; // looping
- m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable?
-
- m_host.ScheduleFullUpdate();
- m_host.SendFullUpdateToAllClients();
+ if (m_SoundModule != null)
+ {
+ m_SoundModule.LoopSound(m_host.UUID, KeyOrName(sound),
+ volume, 20, false);
+ }
}
public void llLoopSoundMaster(string sound, double volume)
@@ -2399,8 +2385,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
if (m_SoundModule != null)
{
- m_SoundModule.LoopSoundMaster(m_host.UUID, KeyOrName(sound),
- volume, 20);
+ m_SoundModule.LoopSound(m_host.UUID, KeyOrName(sound),
+ volume, 20, true);
}
}
--
cgit v1.1
From 5abcecc7356bf58c479a7cff86581131a6ab3c9e Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 16 Oct 2012 12:24:33 +0100
Subject: moving SendSound from SceneObjectPart to ISoundModule
---
.../Shared/Api/Implementation/LSL_Api.cs | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index c479944..f29be92 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2367,7 +2367,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
// send the sound, once, to all clients in range
- m_host.SendSound(KeyOrName(sound).ToString(), volume, false, 0, 0, false, false);
+ if (m_SoundModule != null)
+ {
+ m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound).ToString(), volume, false, 0, 0, false, false);
+ }
}
public void llLoopSound(string sound, double volume)
@@ -2404,14 +2407,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
// send the sound, once, to all clients in range
- m_host.SendSound(KeyOrName(sound).ToString(), volume, false, 0, 0, true, false);
+ if (m_SoundModule != null)
+ {
+ m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound).ToString(), volume, false, 0, 0, true, false);
+ }
}
public void llTriggerSound(string sound, double volume)
{
m_host.AddScriptLPS(1);
- // send the sound, once, to all clients in range
- m_host.SendSound(KeyOrName(sound).ToString(), volume, true, 0, 0, false, false);
+ // send the sound, once, to all clients in rangeTrigger or play an attached sound in this part's inventory.
+ if (m_SoundModule != null)
+ {
+ m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound).ToString(), volume, true, 0, 0, false, false);
+ }
}
public void llStopSound()
@@ -5824,10 +5833,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
LSL_Vector bottom_south_west)
{
m_host.AddScriptLPS(1);
+ if (m_SoundModule != null)
+ {
float radius1 = (float)llVecDist(llGetPos(), top_north_east);
float radius2 = (float)llVecDist(llGetPos(), bottom_south_west);
float radius = Math.Abs(radius1 - radius2);
- m_host.SendSound(KeyOrName(sound).ToString(), volume, true, 0, radius, false, false);
+ m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound).ToString(), volume, true, 0, radius, false, false);
+ }
}
public void llEjectFromLand(string pest)
--
cgit v1.1
From c5af16aef82e2bdf2f4d877a231180e00a8893a6 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 16 Oct 2012 12:40:21 +0100
Subject: shuffling code around so that the interface for
ISoundModule.SendSound() specifies a UUID rather than a string
---
.../Shared/Api/Implementation/LSL_Api.cs | 44 ++++++++++++++++++++--
1 file changed, 40 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index f29be92..869d94e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -333,6 +333,42 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return key;
}
+ ///
+ /// Return the UUID of the asset matching the specified key or name
+ /// and asset type.
+ ///
+ ///
+ ///
+ ///
+ protected UUID KeyOrName(string k, AssetType type)
+ {
+ UUID key;
+
+ if (!UUID.TryParse(k, out key))
+ {
+ TaskInventoryItem item = m_host.Inventory.GetInventoryItem(k);
+ if (item != null && item.Type == (int)type)
+ key = item.AssetID;
+ }
+ else
+ {
+ lock (m_host.TaskInventory)
+ {
+ foreach (KeyValuePair item in m_host.TaskInventory)
+ {
+ if (item.Value.Type == (int)type && item.Value.Name == k)
+ {
+ key = item.Value.ItemID;
+ break;
+ }
+ }
+ }
+ }
+
+
+ return key;
+ }
+
//These are the implementations of the various ll-functions used by the LSL scripts.
public LSL_Float llSin(double f)
{
@@ -2369,7 +2405,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// send the sound, once, to all clients in range
if (m_SoundModule != null)
{
- m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound).ToString(), volume, false, 0, 0, false, false);
+ m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound, AssetType.Sound), volume, false, 0, 0, false, false);
}
}
@@ -2409,7 +2445,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// send the sound, once, to all clients in range
if (m_SoundModule != null)
{
- m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound).ToString(), volume, false, 0, 0, true, false);
+ m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound, AssetType.Sound), volume, false, 0, 0, true, false);
}
}
@@ -2419,7 +2455,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// send the sound, once, to all clients in rangeTrigger or play an attached sound in this part's inventory.
if (m_SoundModule != null)
{
- m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound).ToString(), volume, true, 0, 0, false, false);
+ m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound, AssetType.Sound), volume, true, 0, 0, false, false);
}
}
@@ -5838,7 +5874,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
float radius1 = (float)llVecDist(llGetPos(), top_north_east);
float radius2 = (float)llVecDist(llGetPos(), bottom_south_west);
float radius = Math.Abs(radius1 - radius2);
- m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound).ToString(), volume, true, 0, radius, false, false);
+ m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound, AssetType.Sound), volume, true, 0, radius, false, false);
}
}
--
cgit v1.1
From c796f7861e318cc12248f3a86ee5b29e3fa99d79 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 16 Oct 2012 12:44:09 +0100
Subject: 80-character width terminal formatting of recent commits to
llPlaySound, llPlaySoundSlave, llTriggerSound and llTriggerSoundLimited
---
.../Shared/Api/Implementation/LSL_Api.cs | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 869d94e..610cb14 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2405,7 +2405,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// send the sound, once, to all clients in range
if (m_SoundModule != null)
{
- m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound, AssetType.Sound), volume, false, 0, 0, false, false);
+ m_SoundModule.SendSound(m_host.UUID,
+ KeyOrName(sound, AssetType.Sound), volume, false, 0,
+ 0, false, false);
}
}
@@ -2445,7 +2447,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// send the sound, once, to all clients in range
if (m_SoundModule != null)
{
- m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound, AssetType.Sound), volume, false, 0, 0, true, false);
+ m_SoundModule.SendSound(m_host.UUID,
+ KeyOrName(sound, AssetType.Sound), volume, false, 0,
+ 0, true, false);
}
}
@@ -2455,7 +2459,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// send the sound, once, to all clients in rangeTrigger or play an attached sound in this part's inventory.
if (m_SoundModule != null)
{
- m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound, AssetType.Sound), volume, true, 0, 0, false, false);
+ m_SoundModule.SendSound(m_host.UUID,
+ KeyOrName(sound, AssetType.Sound), volume, true, 0, 0,
+ false, false);
}
}
@@ -5871,10 +5877,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
if (m_SoundModule != null)
{
- float radius1 = (float)llVecDist(llGetPos(), top_north_east);
- float radius2 = (float)llVecDist(llGetPos(), bottom_south_west);
- float radius = Math.Abs(radius1 - radius2);
- m_SoundModule.SendSound(m_host.UUID, KeyOrName(sound, AssetType.Sound), volume, true, 0, radius, false, false);
+ float radius1 = (float)llVecDist(llGetPos(), top_north_east);
+ float radius2 = (float)llVecDist(llGetPos(), bottom_south_west);
+ float radius = Math.Abs(radius1 - radius2);
+ m_SoundModule.SendSound(m_host.UUID,
+ KeyOrName(sound, AssetType.Sound), volume, true, 0,
+ radius, false, false);
}
}
--
cgit v1.1
From f9923d4423f8f9dcf09a12e702737d2030a26d4a Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 16 Oct 2012 12:45:30 +0100
Subject: shifting from two instances of typecasting to one instance of
typecasting in llTriggerSoundLimited
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 610cb14..2b6a3fd 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -5877,12 +5877,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
if (m_SoundModule != null)
{
- float radius1 = (float)llVecDist(llGetPos(), top_north_east);
- float radius2 = (float)llVecDist(llGetPos(), bottom_south_west);
- float radius = Math.Abs(radius1 - radius2);
+ double radius1 = llVecDist(llGetPos(), top_north_east);
+ double radius2 = llVecDist(llGetPos(), bottom_south_west);
+ double radius = Math.Abs(radius1 - radius2);
m_SoundModule.SendSound(m_host.UUID,
KeyOrName(sound, AssetType.Sound), volume, true, 0,
- radius, false, false);
+ (float)radius, false, false);
}
}
--
cgit v1.1
From af9dc483e9db950ca4187a7afe186da80d2c7acf Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 16 Oct 2012 12:48:41 +0100
Subject: refactoring llGetPos() to take advantage of implicit converter
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 2b6a3fd..2654b5a 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2082,8 +2082,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public LSL_Vector llGetPos()
{
m_host.AddScriptLPS(1);
- Vector3 pos = m_host.GetWorldPosition();
- return new LSL_Vector(pos.X, pos.Y, pos.Z);
+ return m_host.GetWorldPosition();
}
public LSL_Vector llGetLocalPos()
--
cgit v1.1
From ef157110897ef162c7f076d6d5f423b8cd9a8f47 Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 16 Oct 2012 12:49:25 +0100
Subject: refactoring llTriggerSoundLimited to not use the LSL methods, since
that will cause unnecessary calls to m_host.AddScriptLPS(1)
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 2654b5a..99b6189 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -5876,8 +5876,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
if (m_SoundModule != null)
{
- double radius1 = llVecDist(llGetPos(), top_north_east);
- double radius2 = llVecDist(llGetPos(), bottom_south_west);
+ double radius1 = VecDist(m_host.GetWorldPosition(), top_north_east);
+ double radius2 = VecDist(m_host.GetWorldPosition(), bottom_south_west);
double radius = Math.Abs(radius1 - radius2);
m_SoundModule.SendSound(m_host.UUID,
KeyOrName(sound, AssetType.Sound), volume, true, 0,
--
cgit v1.1
From a9999a9676d46669150343e4cdbf65428326a91d Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 16 Oct 2012 13:11:17 +0100
Subject: Refactoring llTriggerSoundLimited with a new method on ISoundModule,
as the LL Wiki spec for llTriggerSoundLimited states an axis-aligned bounding
box, not radial constraint
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 99b6189..aeb74a5 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -5876,12 +5876,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
if (m_SoundModule != null)
{
- double radius1 = VecDist(m_host.GetWorldPosition(), top_north_east);
- double radius2 = VecDist(m_host.GetWorldPosition(), bottom_south_west);
- double radius = Math.Abs(radius1 - radius2);
- m_SoundModule.SendSound(m_host.UUID,
- KeyOrName(sound, AssetType.Sound), volume, true, 0,
- (float)radius, false, false);
+ m_SoundModule.TriggerSoundLimited(m_host.UUID,
+ KeyOrName(sound, AssetType.Sound), volume,
+ bottom_south_west, top_north_east);
}
}
--
cgit v1.1
From dcac2a7f716e512b604cce02768770e1660600eb Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 16 Oct 2012 13:27:03 +0100
Subject: refactoring llCollisionSound to use new KeyOrName method
---
.../Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index aeb74a5..0fa247d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -4342,16 +4342,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
// TODO: Parameter check logic required.
- UUID soundId = UUID.Zero;
- if (!UUID.TryParse(impact_sound, out soundId))
- {
- TaskInventoryItem item = m_host.Inventory.GetInventoryItem(impact_sound);
-
- if (item != null && item.Type == (int)AssetType.Sound)
- soundId = item.AssetID;
- }
-
- m_host.CollisionSound = soundId;
+ m_host.CollisionSound = KeyOrName(impact_sound, AssetType.Sound);
m_host.CollisionSoundVolume = (float)impact_volume;
}
--
cgit v1.1
From 6235d16c3148bb6f9f881b0dc286deccfdf9148a Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 31 Oct 2012 00:31:18 +0000
Subject: Make "show object part" command correctly display script status.
Uses new IEntityInventory.TryGetScriptInstanceRunning()
Makes it clearer that TaskInventoryItem.ScriptRunning cannot be used as it is temporary and not updated.
---
OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs b/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs
index f247a0b..f331658 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs
@@ -90,7 +90,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Tests
// log4net.Config.XmlConfigurator.Configure();
UUID userId = TestHelpers.ParseTail(0x1);
-// UUID objectId = TestHelpers.ParseTail(0x2);
+// UUID objectId = TestHelpers.ParseTail(0x100);
// UUID itemId = TestHelpers.ParseTail(0x3);
string itemName = "TestStartScript() Item";
@@ -105,12 +105,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Tests
m_scene.EventManager.OnChatFromWorld += OnChatFromWorld;
- m_scene.RezNewScript(userId, itemTemplate);
+ SceneObjectPart partWhereRezzed = m_scene.RezNewScript(userId, itemTemplate);
m_chatEvent.WaitOne(60000);
Assert.That(m_osChatMessageReceived, Is.Not.Null, "No chat message received in TestStartScript()");
Assert.That(m_osChatMessageReceived.Message, Is.EqualTo("Script running"));
+
+ bool running;
+ TaskInventoryItem scriptItem = partWhereRezzed.Inventory.GetInventoryItem(itemName);
+ Assert.That(
+ SceneObjectPartInventory.TryGetScriptInstanceRunning(m_scene, scriptItem, out running), Is.True);
+ Assert.That(running, Is.True);
}
private void OnChatFromWorld(object sender, OSChatMessage oscm)
--
cgit v1.1
From b3072cf343e15ec58a70295cc66996a44e30ff1d Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 31 Oct 2012 00:46:07 +0000
Subject: Mark ScriptException as [Serializable] for when it has to cross
AppDomains
---
OpenSim/Region/ScriptEngine/Shared/ScriptException.cs | 1 +
1 file changed, 1 insertion(+)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs b/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs
index ae67fc5..ebe6fbd 100644
--- a/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs
@@ -29,6 +29,7 @@ using System;
namespace OpenSim.Region.ScriptEngine.Shared
{
+ [Serializable]
public class ScriptException : Exception
{
public ScriptException() : base() {}
--
cgit v1.1
From 566aaef1f4c7eade864d9e3d7b7b6ded8e0156a1 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 31 Oct 2012 00:56:41 +0000
Subject: Also add the additional ScriptException constructor necessary to get
[Serializable] to work.
---
OpenSim/Region/ScriptEngine/Shared/ScriptException.cs | 3 +++
1 file changed, 3 insertions(+)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs b/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs
index ebe6fbd..f55ba7e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/ScriptException.cs
@@ -26,6 +26,7 @@
*/
using System;
+using System.Runtime.Serialization;
namespace OpenSim.Region.ScriptEngine.Shared
{
@@ -37,5 +38,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
public ScriptException(string message) : base(message) {}
public ScriptException(string message, Exception innerException) : base(message, innerException) {}
+
+ public ScriptException(SerializationInfo info, StreamingContext context) :base(info, context) {}
}
}
\ No newline at end of file
--
cgit v1.1
From 236cc1f2686e16d8c3d80bce39f5aa13b177dbcc Mon Sep 17 00:00:00 2001
From: Melanie
Date: Mon, 5 Nov 2012 00:05:01 +0000
Subject: Change user message on TeskInventoryAccepted to let the viewer format
it properly
---
.../Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 0fa247d..be030af 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3963,17 +3963,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (m_TransferModule != null)
{
- byte[] bucket = new byte[] { (byte)item.Type };
+ byte[] bucket = new byte[1];
+ bucket[0] = (byte)item.Type;
GridInstantMessage msg = new GridInstantMessage(World,
- m_host.UUID, m_host.Name + ", an object owned by " +
- resolveName(m_host.OwnerID) + ",", destId,
+ m_host.OwnerID, m_host.Name, destId,
(byte)InstantMessageDialog.TaskInventoryOffered,
- false, item.Name + "\n" + m_host.Name + " is located at " +
+ false, item.Name+". "+m_host.Name+" is located at "+
World.RegionInfo.RegionName+" "+
m_host.AbsolutePosition.ToString(),
agentItem.ID, true, m_host.AbsolutePosition,
- bucket, true); // TODO: May actually send no timestamp
+ bucket, true);
m_TransferModule.SendInstantMessage(msg, delegate(bool success) {});
}
--
cgit v1.1
From 64c80aec644b2fede1b08ad360f54a658d4849cb Mon Sep 17 00:00:00 2001
From: PixelTomsen
Date: Mon, 5 Nov 2012 19:16:46 +0100
Subject: llSetLinkCamera implementation
wiki: http://wiki.secondlife.com/wiki/LlSetLinkCamera
mantis: http://opensimulator.org/mantis/view.php?id=6397
---
.../Shared/Api/Implementation/LSL_Api.cs | 30 ++++++++++++++++++++++
.../ScriptEngine/Shared/Api/Interface/ILSL_Api.cs | 1 +
.../ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs | 5 ++++
3 files changed, 36 insertions(+)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index be030af..acf4d8c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -6637,6 +6637,36 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.SetCameraAtOffset(offset);
}
+ public void llSetLinkCamera(LSL_Integer link, LSL_Vector eye, LSL_Vector at)
+ {
+ m_host.AddScriptLPS(1);
+
+ if (link == ScriptBaseClass.LINK_SET ||
+ link == ScriptBaseClass.LINK_ALL_CHILDREN ||
+ link == ScriptBaseClass.LINK_ALL_OTHERS) return;
+
+ SceneObjectPart part = null;
+
+ switch (link)
+ {
+ case ScriptBaseClass.LINK_ROOT:
+ part = m_host.ParentGroup.RootPart;
+ break;
+ case ScriptBaseClass.LINK_THIS:
+ part = m_host;
+ break;
+ default:
+ part = m_host.ParentGroup.GetLinkNumPart(link);
+ break;
+ }
+
+ if (null != part)
+ {
+ part.SetCameraEyeOffset(eye);
+ part.SetCameraAtOffset(at);
+ }
+ }
+
public LSL_String llDumpList2String(LSL_List src, string seperator)
{
m_host.AddScriptLPS(1);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
index e97ff9d..98f8be7 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
@@ -333,6 +333,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
void llSetBuoyancy(double buoyancy);
void llSetCameraAtOffset(LSL_Vector offset);
void llSetCameraEyeOffset(LSL_Vector offset);
+ void llSetLinkCamera(LSL_Integer link, LSL_Vector eye, LSL_Vector at);
void llSetCameraParams(LSL_List rules);
void llSetClickAction(int action);
void llSetColor(LSL_Vector color, int face);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
index c457880..36803a4 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
@@ -1498,6 +1498,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
m_LSL_Functions.llSetCameraEyeOffset(offset);
}
+ public void llSetLinkCamera(LSL_Integer link, LSL_Vector eye, LSL_Vector at)
+ {
+ m_LSL_Functions.llSetLinkCamera(link, eye, at);
+ }
+
public void llSetCameraParams(LSL_List rules)
{
m_LSL_Functions.llSetCameraParams(rules);
--
cgit v1.1
From aeeaa3a0a9b965dfe5d1111b178234c94de9ba9d Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Wed, 14 Nov 2012 11:09:43 -0800
Subject: Added AssemblyInfos to every dll in the OpenSim.Region namespace.
---
.../Api/Implementation/Properties/AssemblyInfo.cs | 33 ++++++++++++++++++++++
.../Shared/Api/Runtime/Properties/AssemblyInfo.cs | 33 ++++++++++++++++++++++
.../Runtime/YieldProlog/Properties/AssemblyInfo.cs | 33 ++++++++++++++++++++++
.../Shared/CodeTools/Properties/AssemblyInfo.cs | 33 ++++++++++++++++++++++
.../Shared/Instance/Properties/AssemblyInfo.cs | 33 ++++++++++++++++++++++
.../ScriptEngine/Shared/Properties/AssemblyInfo.cs | 33 ++++++++++++++++++++++
.../XEngine/Properties/AssemblyInfo.cs | 33 ++++++++++++++++++++++
7 files changed, 231 insertions(+)
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Properties/AssemblyInfo.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Properties/AssemblyInfo.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Properties/AssemblyInfo.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/CodeTools/Properties/AssemblyInfo.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Instance/Properties/AssemblyInfo.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Properties/AssemblyInfo.cs
create mode 100644 OpenSim/Region/ScriptEngine/XEngine/Properties/AssemblyInfo.cs
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Properties/AssemblyInfo.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..d173db0
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.Shared.Api")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("http://opensimulator.org")]
+[assembly: AssemblyProduct("OpenSim")]
+[assembly: AssemblyCopyright("OpenSimulator developers")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("369ed06e-a3ca-40f0-98e3-3cd3ec1443c3")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("0.7.5.*")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Properties/AssemblyInfo.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..573a803
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.Shared.Api.Runtime")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("http://opensimulator.org")]
+[assembly: AssemblyProduct("OpenSim")]
+[assembly: AssemblyCopyright("OpenSimulator developers")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("ac60ce7e-7c35-4431-b294-fe6ca26b5b50")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("0.7.5.*")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Properties/AssemblyInfo.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..f6d5d41
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.Shared.YieldProlog")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("http://opensimulator.org")]
+[assembly: AssemblyProduct("OpenSim")]
+[assembly: AssemblyCopyright("OpenSimulator developers")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("8df98e6b-0425-44d6-8d91-2b3b4c56acdf")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("0.7.5.*")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Properties/AssemblyInfo.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..c65caa8
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.Shared.CodeTools")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("http://opensimulator.org")]
+[assembly: AssemblyProduct("OpenSim")]
+[assembly: AssemblyCopyright("OpenSimulator developers")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("fd446fb3-3a21-471b-951c-68b9eb6ef8e5")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("0.7.5.*")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/Properties/AssemblyInfo.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..470e1a1
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Instance/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.Shared.Instance")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("http://opensimulator.org")]
+[assembly: AssemblyProduct("OpenSim")]
+[assembly: AssemblyCopyright("OpenSimulator developers")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("b776d846-68c1-43a2-9e72-9bd1fe20fd41")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("0.7.5.*")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenSim/Region/ScriptEngine/Shared/Properties/AssemblyInfo.cs b/OpenSim/Region/ScriptEngine/Shared/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..e6e8777
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.Shared")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("http://opensimulator.org")]
+[assembly: AssemblyProduct("OpenSim")]
+[assembly: AssemblyCopyright("OpenSimulator developers")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("5fe331de-bc53-4ca7-b080-2a5a5ce2d380")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("0.7.5.*")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Properties/AssemblyInfo.cs b/OpenSim/Region/ScriptEngine/XEngine/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..bd26a8b
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/XEngine/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.XEngine")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("http://opensimulator.org")]
+[assembly: AssemblyProduct("OpenSim")]
+[assembly: AssemblyCopyright("OpenSimulator developers")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("1feed7de-3d45-4d3d-80e2-b57566284df5")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("0.7.5.*")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
--
cgit v1.1
From 22d4c52ffc374e167cb674e0e20815615d8a6927 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 24 Nov 2012 03:15:24 +0000
Subject: Consistenly make NUnit test cases inherit from OpenSimTestCase which
automatically turns off any logging enabled between tests
---
.../Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLFloat.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLInteger.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLString.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestVector3.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs | 2 +-
OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs | 2 +-
12 files changed, 12 insertions(+), 12 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs
index 7763619..77e087c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CSCodeGeneratorTest.cs
@@ -39,7 +39,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
/// The generated C# code is compared against the expected C# code.
///
[TestFixture]
- public class CSCodeGeneratorTest
+ public class CSCodeGeneratorTest : OpenSimTestCase
{
[Test]
public void TestDefaultState()
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs
index 1fa6954..05a8756 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Tests/CompilerTest.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
/// the LSL source.
///
[TestFixture]
- public class CompilerTest
+ public class CompilerTest : OpenSimTestCase
{
private string m_testDir;
private CSharpCodeProvider m_CSCodeProvider;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs
index c73e22f..2c9d9e8 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs
@@ -51,7 +51,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
/// Tests for inventory functions in LSL
///
[TestFixture]
- public class LSL_ApiInventoryTests
+ public class LSL_ApiInventoryTests : OpenSimTestCase
{
protected Scene m_scene;
protected XEngine.XEngine m_engine;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs
index 2565ae7..57f19b9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs
@@ -56,7 +56,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
/// OpenSim.Region.Framework.Scenes.Tests.SceneObjectLinkingTests.
///
[TestFixture]
- public class LSL_ApiLinkingTests
+ public class LSL_ApiLinkingTests : OpenSimTestCase
{
protected Scene m_scene;
protected XEngine.XEngine m_engine;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs
index dd23be8..182b07b 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs
@@ -46,7 +46,7 @@ using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
namespace OpenSim.Region.ScriptEngine.Shared.Tests
{
[TestFixture]
- public class LSL_ApiListTests
+ public class LSL_ApiListTests : OpenSimTestCase
{
private LSL_Api m_lslApi;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLFloat.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLFloat.cs
index 3ed2562..c8c7f82 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLFloat.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLFloat.cs
@@ -33,7 +33,7 @@ using OpenSim.Region.ScriptEngine.Shared;
namespace OpenSim.Region.ScriptEngine.Shared.Tests
{
[TestFixture]
- public class LSL_TypesTestLSLFloat
+ public class LSL_TypesTestLSLFloat : OpenSimTestCase
{
// Used for testing equality of two floats.
private double _lowPrecisionTolerance = 0.000001;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLInteger.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLInteger.cs
index 8d1169a..c664108 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLInteger.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLInteger.cs
@@ -33,7 +33,7 @@ using OpenSim.Region.ScriptEngine.Shared;
namespace OpenSim.Region.ScriptEngine.Shared.Tests
{
[TestFixture]
- public class LSL_TypesTestLSLInteger
+ public class LSL_TypesTestLSLInteger : OpenSimTestCase
{
private Dictionary m_doubleIntSet;
private Dictionary m_stringIntSet;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLString.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLString.cs
index c4ca1a8..8550f2d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLString.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestLSLString.cs
@@ -33,7 +33,7 @@ using OpenSim.Region.ScriptEngine.Shared;
namespace OpenSim.Region.ScriptEngine.Shared.Tests
{
[TestFixture]
- public class LSL_TypesTestLSLString
+ public class LSL_TypesTestLSLString : OpenSimTestCase
{
private Dictionary m_doubleStringSet;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs
index b81225f..71b88bc 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestList.cs
@@ -36,7 +36,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
/// Tests the LSL_Types.list class.
///
[TestFixture]
- public class LSL_TypesTestList
+ public class LSL_TypesTestList : OpenSimTestCase
{
///
/// Tests concatenating a string to a list.
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestVector3.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestVector3.cs
index ebf8001..0c838af 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestVector3.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_TypesTestVector3.cs
@@ -36,7 +36,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
/// Tests for Vector3
///
[TestFixture]
- public class LSL_TypesTestVector3
+ public class LSL_TypesTestVector3 : OpenSimTestCase
{
[Test]
public void TestDotProduct()
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
index c401794..213f33f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs
@@ -51,7 +51,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
/// Tests for OSSL_Api
///
[TestFixture]
- public class OSSL_ApiAppearanceTest
+ public class OSSL_ApiAppearanceTest : OpenSimTestCase
{
protected Scene m_scene;
protected XEngine.XEngine m_engine;
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs b/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs
index f331658..5abfe9a 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/Tests/XEngineTest.cs
@@ -44,7 +44,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Tests
/// XEngine tests.
///
[TestFixture]
- public class XEngineTest
+ public class XEngineTest : OpenSimTestCase
{
private TestScene m_scene;
private XEngine m_xEngine;
--
cgit v1.1