diff --git a/OpenSim/Framework/General/Interfaces/Scripting/IScriptEngine.cs b/OpenSim/Framework/General/Interfaces/Scripting/IScriptEngine.cs
deleted file mode 100644
index ca50be05b4..0000000000
--- a/OpenSim/Framework/General/Interfaces/Scripting/IScriptEngine.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.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 OpenSim 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.Collections.Generic;
-using System.Text;
-
-namespace OpenSim.Framework.Interfaces
-{
- public interface IScriptEngine
- {
- bool Init(IScriptAPI api);
- string GetName();
- void LoadScript(string script, string scriptName, uint entityID);
- void OnFrame();
- }
-}
diff --git a/OpenSim/Framework/General/OpenSim.Framework.csproj b/OpenSim/Framework/General/OpenSim.Framework.csproj
index d18e583c3f..48db634cd2 100644
--- a/OpenSim/Framework/General/OpenSim.Framework.csproj
+++ b/OpenSim/Framework/General/OpenSim.Framework.csproj
@@ -148,12 +148,6 @@
Code
-
- Code
-
-
- Code
-
Code
diff --git a/OpenSim/Framework/General/OpenSim.Framework.dll.build b/OpenSim/Framework/General/OpenSim.Framework.dll.build
index 04e33820fd..a18838bace 100644
--- a/OpenSim/Framework/General/OpenSim.Framework.dll.build
+++ b/OpenSim/Framework/General/OpenSim.Framework.dll.build
@@ -31,8 +31,6 @@
-
-
diff --git a/OpenSim/Region/Environment/OpenSim.Region.Environment.csproj b/OpenSim/Region/Environment/OpenSim.Region.Environment.csproj
index efde96c229..4069454fef 100644
--- a/OpenSim/Region/Environment/OpenSim.Region.Environment.csproj
+++ b/OpenSim/Region/Environment/OpenSim.Region.Environment.csproj
@@ -172,9 +172,6 @@
Code
-
- Code
-
Code
diff --git a/OpenSim/Region/Environment/OpenSim.Region.Environment.dll.build b/OpenSim/Region/Environment/OpenSim.Region.Environment.dll.build
index da73c8c073..51924d5c12 100644
--- a/OpenSim/Region/Environment/OpenSim.Region.Environment.dll.build
+++ b/OpenSim/Region/Environment/OpenSim.Region.Environment.dll.build
@@ -19,7 +19,6 @@
-
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Scripting.cs b/OpenSim/Region/Environment/Scenes/Scene.Scripting.cs
deleted file mode 100644
index 2249c3d0f8..0000000000
--- a/OpenSim/Region/Environment/Scenes/Scene.Scripting.cs
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.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 OpenSim 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.Collections.Generic;
-using System.Text;
-using System.IO;
-using System.Reflection;
-using OpenSim.Framework;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Types;
-using libsecondlife;
-
-namespace OpenSim.Region.Environment.Scenes
-{
- public partial class Scene
- {
- private Dictionary scriptEngines = new Dictionary();
-
- ///
- ///
- ///
- private void LoadScriptEngines()
- {
- this.LoadScriptPlugins();
- }
-
- ///
- ///
- ///
- public void LoadScriptPlugins()
- {
- string path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "ScriptEngines");
- string[] pluginFiles = Directory.GetFiles(path, "*.dll");
-
-
- for (int i = 0; i < pluginFiles.Length; i++)
- {
- this.AddPlugin(pluginFiles[i]);
- }
- }
-
- ///
- ///
- ///
- ///
- private void AddPlugin(string FileName)
- {
- Assembly pluginAssembly = Assembly.LoadFrom(FileName);
-
- foreach (Type pluginType in pluginAssembly.GetTypes())
- {
- if (pluginType.IsPublic)
- {
- if (!pluginType.IsAbstract)
- {
- Type typeInterface = pluginType.GetInterface("IScriptEngine", true);
-
- if (typeInterface != null)
- {
- IScriptEngine plug = (IScriptEngine)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
- plug.Init(this);
- this.scriptEngines.Add(plug.GetName(), plug);
-
- }
-
- typeInterface = null;
- }
- }
- }
-
- pluginAssembly = null;
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public void LoadScript(string scriptType, string scriptName, string script, Entity ent)
- {
- if(this.scriptEngines.ContainsKey(scriptType))
- {
- this.scriptEngines[scriptType].LoadScript(script, scriptName, ent.LocalId);
- }
- }
-
- #region IScriptAPI Methods
-
- ///
- ///
- ///
- ///
- ///
- public LLVector3 GetEntityPosition(uint localID)
- {
- LLVector3 res = new LLVector3();
- // Console.WriteLine("script- getting entity " + localID + " position");
- foreach (Entity entity in this.Entities.Values)
- {
- if (entity.LocalId == localID)
- {
- res.X = entity.Pos.X;
- res.Y = entity.Pos.Y;
- res.Z = entity.Pos.Z;
- }
- }
- return res;
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public void SetEntityPosition(uint localID, float x , float y, float z)
- {
- foreach (Entity entity in this.Entities.Values)
- {
- if (entity.LocalId == localID && entity is Primitive)
- {
- LLVector3 pos = entity.Pos;
- pos.X = x;
- pos.Y = y;
- Primitive prim = entity as Primitive;
- // Of course, we really should have asked the physEngine if this is possible, and if not, returned false.
- //prim.UpdatePosition(pos);
- // Console.WriteLine("script- setting entity " + localID + " positon");
- }
- }
-
- }
-
- ///
- ///
- ///
- ///
- public uint GetRandomAvatarID()
- {
- //Console.WriteLine("script- getting random avatar id");
- uint res = 0;
- foreach (Entity entity in this.Entities.Values)
- {
- if (entity is ScenePresence)
- {
- res = entity.LocalId;
- }
- }
- return res;
- }
-
- #endregion
-
-
- }
-}
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index b345c0ca93..f1de803727 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -44,7 +44,7 @@ using OpenSim.Framework.Communications;
using OpenSim.Region.Caches;
using OpenSim.Region.Environment;
using OpenSim.Framework.Servers;
-using OpenSim.Scripting;
+using OpenSim.Region.Enviorment.Scripting;
using OpenSim.Region.Capabilities;
using Caps = OpenSim.Region.Capabilities.Caps;
@@ -52,7 +52,7 @@ namespace OpenSim.Region.Environment.Scenes
{
public delegate bool FilterAvatarList(ScenePresence avatar);
- public partial class Scene : SceneBase, ILocalStorageReceiver, IScriptAPI
+ public partial class Scene : SceneBase, ILocalStorageReceiver
{
protected System.Timers.Timer m_heartbeatTimer = new System.Timers.Timer();
protected Dictionary Avatars;
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/CSharpScriptEngine.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/CSharpScriptEngine.cs
index 870303f67a..a232b65563 100644
--- a/OpenSim/Region/Environment/Scenes/scripting/Engines/CSharpScriptEngine.cs
+++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/CSharpScriptEngine.cs
@@ -34,7 +34,7 @@ using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
-namespace OpenSim.Scripting
+namespace OpenSim.Region.Enviorment.Scripting
{
public class CSharpScriptEngine : IScriptCompiler
{
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/JScriptEngine.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/JScriptEngine.cs
index ffae1d705f..2d44223bb8 100644
--- a/OpenSim/Region/Environment/Scenes/scripting/Engines/JScriptEngine.cs
+++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/JScriptEngine.cs
@@ -34,7 +34,7 @@ using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.JScript;
-namespace OpenSim.Scripting
+namespace OpenSim.Region.Enviorment.Scripting
{
public class JScriptEngine : IScriptCompiler
{
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/JSharpScriptEngine.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/JSharpScriptEngine.cs
index b33b55df42..51b1512e68 100644
--- a/OpenSim/Region/Environment/Scenes/scripting/Engines/JSharpScriptEngine.cs
+++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/JSharpScriptEngine.cs
@@ -34,7 +34,7 @@ using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.VJSharp;
-namespace OpenSim.Scripting
+namespace OpenSim.Region.Enviorment.Scripting
{
public class JSharpScriptEngine : IScriptCompiler
{
diff --git a/OpenSim/Framework/General/Interfaces/Scripting/IScriptAPI.cs b/OpenSim/Region/Environment/Scenes/scripting/Script.cs
similarity index 59%
rename from OpenSim/Framework/General/Interfaces/Scripting/IScriptAPI.cs
rename to OpenSim/Region/Environment/Scenes/scripting/Script.cs
index 0c1627bbc9..1e6467579d 100644
--- a/OpenSim/Framework/General/Interfaces/Scripting/IScriptAPI.cs
+++ b/OpenSim/Region/Environment/Scenes/scripting/Script.cs
@@ -28,15 +28,44 @@
using System;
using System.Collections.Generic;
using System.Text;
-using OpenSim.Framework.Types;
-using libsecondlife;
-namespace OpenSim.Framework.Interfaces
+using OpenSim.Framework.Console;
+using OpenSim.Framework;
+using OpenSim.Region.Environment;
+using OpenSim.Region.Environment.Scenes;
+
+namespace OpenSim.Region.Enviorment.Scripting
{
- public interface IScriptAPI
+ public interface IScript
{
- LLVector3 GetEntityPosition(uint localID);
- void SetEntityPosition(uint localID, float x, float y, float z);
- uint GetRandomAvatarID();
+ void Initialise(ScriptInfo scriptInfo);
+ string getName();
+ }
+
+ public class TestScript : IScript
+ {
+ ScriptInfo script;
+
+ public string getName()
+ {
+ return "TestScript 0.1";
+ }
+
+ public void Initialise(ScriptInfo scriptInfo)
+ {
+ script = scriptInfo;
+ script.events.OnFrame += new OpenSim.Region.Environment.Scenes.EventManager.OnFrameDelegate(events_OnFrame);
+ script.events.OnNewPresence += new EventManager.OnNewPresenceDelegate(events_OnNewPresence);
+ }
+
+ void events_OnNewPresence(ScenePresence presence)
+ {
+ script.logger.Verbose("Hello " + presence.firstname.ToString() + "!");
+ }
+
+ void events_OnFrame()
+ {
+ //script.logger.Verbose("Hello World!");
+ }
}
}
diff --git a/OpenSim/Region/Environment/Scenes/scripting/ScriptInfo.cs b/OpenSim/Region/Environment/Scenes/scripting/ScriptInfo.cs
index 57df4c446f..522a572736 100644
--- a/OpenSim/Region/Environment/Scenes/scripting/ScriptInfo.cs
+++ b/OpenSim/Region/Environment/Scenes/scripting/ScriptInfo.cs
@@ -32,7 +32,7 @@ using System.Text;
using OpenSim.Region.Environment.Scenes;
using OpenSim.Framework.Console;
-namespace OpenSim.Scripting
+namespace OpenSim.Region.Enviorment.Scripting
{
///
/// Class which provides access to the world
diff --git a/OpenSim/Region/Environment/Scenes/scripting/ScriptManager.cs b/OpenSim/Region/Environment/Scenes/scripting/ScriptManager.cs
index 5d1d1887a0..576b7a5389 100644
--- a/OpenSim/Region/Environment/Scenes/scripting/ScriptManager.cs
+++ b/OpenSim/Region/Environment/Scenes/scripting/ScriptManager.cs
@@ -29,7 +29,7 @@ using System;
using System.Collections.Generic;
using System.Text;
-namespace OpenSim.Scripting
+namespace OpenSim.Region.Enviorment.Scripting
{
public class ScriptManager
{