ScriptEngine: Some error handling, logs to logger
parent
ff08d4d016
commit
afaa12a9e2
|
@ -155,7 +155,7 @@ namespace OpenSim
|
|||
}
|
||||
|
||||
// Load all script engines found
|
||||
//OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineLoader ScriptEngineLoader = new OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineLoader();
|
||||
OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineLoader ScriptEngineLoader = new OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineLoader(m_log);
|
||||
|
||||
for (int i = 0; i < configFiles.Length; i++)
|
||||
{
|
||||
|
@ -167,10 +167,10 @@ namespace OpenSim
|
|||
Scene scene = SetupScene(regionInfo, out udpServer);
|
||||
|
||||
|
||||
//OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface ScriptEngine = ScriptEngineLoader.LoadScriptEngine("DotNetEngine");
|
||||
//scene.AddScriptEngine(ScriptEngine);
|
||||
//// TODO: TEMP load default script
|
||||
//ScriptEngine.StartScript(Path.Combine("ScriptEngines", "default.lsl"), "TEST");
|
||||
OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface ScriptEngine = ScriptEngineLoader.LoadScriptEngine("DotNetEngine");
|
||||
scene.AddScriptEngine(ScriptEngine, m_log);
|
||||
// TODO: TEMP load default script
|
||||
ScriptEngine.StartScript(Path.Combine("ScriptEngines", "default.lsl"), "TEST");
|
||||
|
||||
|
||||
m_localScenes.Add(scene);
|
||||
|
|
|
@ -1017,10 +1017,10 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
#region Script Engine
|
||||
private List<OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface> ScriptEngines = new List<OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface>();
|
||||
public void AddScriptEngine(OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface ScriptEngine)
|
||||
public void AddScriptEngine(OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface ScriptEngine, LogBase m_logger)
|
||||
{
|
||||
ScriptEngines.Add(ScriptEngine);
|
||||
ScriptEngine.InitializeEngine(this);
|
||||
ScriptEngine.InitializeEngine(this, m_logger);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace OpenSim.Region.Environment.Scenes.Scripting
|
|||
{
|
||||
public interface ScriptEngineInterface
|
||||
{
|
||||
void InitializeEngine(OpenSim.Region.Environment.Scenes.Scene Sceneworld);
|
||||
void InitializeEngine(OpenSim.Region.Environment.Scenes.Scene Sceneworld, OpenSim.Framework.Console.LogBase logger);
|
||||
void Shutdown();
|
||||
void StartScript(string ScriptID, string ObjectID);
|
||||
}
|
||||
|
|
|
@ -36,14 +36,25 @@ namespace OpenSim.Region.Environment.Scenes.Scripting
|
|||
{
|
||||
public class ScriptEngineLoader
|
||||
{
|
||||
public ScriptEngineLoader()
|
||||
private OpenSim.Framework.Console.LogBase m_log;
|
||||
public ScriptEngineLoader(OpenSim.Framework.Console.LogBase logger)
|
||||
{
|
||||
m_log = logger;
|
||||
}
|
||||
|
||||
public ScriptEngineInterface LoadScriptEngine(string EngineName)
|
||||
{
|
||||
return LoadAndInitAssembly(Path.Combine("ScriptEngines", "OpenSim.Region.ScriptEngine." + EngineName + ".dll"),
|
||||
"OpenSim.Region.ScriptEngine." + EngineName + ".ScriptEngine");
|
||||
ScriptEngineInterface ret = null;
|
||||
try
|
||||
{
|
||||
ret = LoadAndInitAssembly(Path.Combine("ScriptEngines", "OpenSim.Region.ScriptEngine." + EngineName + ".dll"),
|
||||
"OpenSim.Region.ScriptEngine." + EngineName + ".ScriptEngine");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.Error("ScriptEngine", "Error loading assembly \"" + EngineName + "\": " + e.ToString());
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -73,6 +84,7 @@ namespace OpenSim.Region.Environment.Scenes.Scripting
|
|||
//}
|
||||
//catch (Exception e)
|
||||
//{
|
||||
// m_log.Error("ScriptEngine", "Error loading assembly \"" + FileName + "\": " + e.ToString());
|
||||
//}
|
||||
|
||||
|
||||
|
@ -89,9 +101,20 @@ namespace OpenSim.Region.Environment.Scenes.Scripting
|
|||
//}
|
||||
//catch (Exception e)
|
||||
//{
|
||||
// m_log.Error("ScriptEngine", "Error initializing type \"" + NameSpace + "\" from \"" + FileName + "\": " + e.ToString());
|
||||
//}
|
||||
|
||||
return (ScriptEngineInterface)Activator.CreateInstance(t);
|
||||
ScriptEngineInterface ret;
|
||||
//try
|
||||
//{
|
||||
ret = (ScriptEngineInterface)Activator.CreateInstance(t);
|
||||
//}
|
||||
//catch (Exception e)
|
||||
//{
|
||||
// m_log.Error("ScriptEngine", "Error initializing type \"" + NameSpace + "\" from \"" + FileName + "\": " + e.ToString());
|
||||
//}
|
||||
|
||||
return ret;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
public static class Common
|
||||
{
|
||||
static public bool Debug = true;
|
||||
static public ScriptEngine mySE;
|
||||
|
||||
//public delegate void SendToDebugEventDelegate(string Message);
|
||||
//public delegate void SendToLogEventDelegate(string Message);
|
||||
|
@ -44,13 +45,13 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
static public void SendToDebug(string Message)
|
||||
{
|
||||
//if (Debug == true)
|
||||
Console.WriteLine("SE:Debug: " + Message);
|
||||
mySE.m_logger.Verbose("ScriptEngine", "Debug: " + Message);
|
||||
//SendToDebugEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message);
|
||||
}
|
||||
static public void SendToLog(string Message)
|
||||
{
|
||||
//if (Debug == true)
|
||||
Console.WriteLine("SE:LOG: " + Message);
|
||||
mySE.m_logger.Verbose("ScriptEngine", "LOG: " + Message);
|
||||
//SendToLogEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
|
|||
public void Start(OpenSim.Region.Environment.Scenes.Scene _World, string FullScriptID)
|
||||
{
|
||||
World = _World;
|
||||
Common.SendToLog("OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass.Start() called. FullScriptID: " + FullScriptID);
|
||||
Console.WriteLine("ScriptEngine", "LSL_BaseClass.Start() called. FullScriptID: " + FullScriptID);
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -49,14 +49,14 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
|
|||
public void llWhisper(int channelID, string text)
|
||||
{
|
||||
//Common.SendToDebug("INTERNAL FUNCTION llWhisper(" + channelID + ", \"" + text + "\");");
|
||||
Console.WriteLine("llWhisper Channel " + channelID + ", Text: \"" + text + "\"");
|
||||
Console.WriteLine("ScriptEngine", "llWhisper Channel " + channelID + ", Text: \"" + text + "\"");
|
||||
}
|
||||
//public void llSay(UInt32 channelID, string text)
|
||||
public void llSay(int channelID, string text)
|
||||
{
|
||||
//TODO: DO SOMETHING USEFUL HERE
|
||||
//Common.SendToDebug("INTERNAL FUNCTION llSay(" + (UInt32)channelID + ", \"" + (string)text + "\");");
|
||||
Console.WriteLine("llSay Channel " + channelID + ", Text: \"" + text + "\"");
|
||||
Console.WriteLine("ScriptEngine", "llSay Channel " + channelID + ", Text: \"" + text + "\"");
|
||||
//World.SimChat(
|
||||
}
|
||||
public void llShout(UInt16 channelID, string text) { return; }
|
||||
|
|
|
@ -1,387 +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.
|
||||
*
|
||||
*/
|
||||
/* Original code: Tedd Hansen */
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
|
||||
{
|
||||
public class LSL_BuiltIn_Commands_TestImplementation //: LSL_BuiltIn_Commands_Interface
|
||||
{
|
||||
public LSL_BuiltIn_Commands_TestImplementation(string FullScriptID)
|
||||
{
|
||||
Common.SendToDebug("LSL_BuiltIn_Commands_TestImplementation: Creating object for FullScriptID: " + FullScriptID);
|
||||
}
|
||||
|
||||
|
||||
public float llSin(float f) { return 0; }
|
||||
public float llCos(float f) { return 0; }
|
||||
public float llTan(float f) { return 0; }
|
||||
public float llAtan2(float x, float y) { return 0; }
|
||||
public float llSqrt(float f) { return 0; }
|
||||
public float llPow(float fbase, float fexponent) { return 0; }
|
||||
public UInt32 llAbs(UInt32 i) { return 0; }
|
||||
public float llFabs(float f) { return 0; }
|
||||
public float llFrand(float mag) { return 0; }
|
||||
public UInt32 llFloor(float f) { return 0; }
|
||||
public UInt32 llCeil(float f) { return 0; }
|
||||
public UInt32 llRound(float f) { return 0; }
|
||||
public float llVecMag(Axiom.Math.Vector3 v) { return 0; }
|
||||
public Axiom.Math.Vector3 llVecNorm(Axiom.Math.Vector3 v) { return new Axiom.Math.Vector3(); }
|
||||
public float llVecDist(Axiom.Math.Vector3 a, Axiom.Math.Vector3 b) { return 0; }
|
||||
public Axiom.Math.Vector3 llRot2Euler(Axiom.Math.Quaternion r) { return new Axiom.Math.Vector3(); }
|
||||
public Axiom.Math.Quaternion llEuler2Rot(Axiom.Math.Vector3 v) { return new Axiom.Math.Quaternion(); }
|
||||
public Axiom.Math.Quaternion llAxes2Rot(Axiom.Math.Vector3 fwd, Axiom.Math.Vector3 left, Axiom.Math.Vector3 up) { return new Axiom.Math.Quaternion(); }
|
||||
public Axiom.Math.Vector3 llRot2Fwd(Axiom.Math.Quaternion r) { return new Axiom.Math.Vector3(); }
|
||||
public Axiom.Math.Vector3 llRot2Left(Axiom.Math.Quaternion r) { return new Axiom.Math.Vector3(); }
|
||||
public Axiom.Math.Vector3 llRot2Up(Axiom.Math.Quaternion r) { return new Axiom.Math.Vector3(); }
|
||||
public Axiom.Math.Quaternion llRotBetween(Axiom.Math.Vector3 start, Axiom.Math.Vector3 end) { return new Axiom.Math.Quaternion(); }
|
||||
public void llWhisper(UInt16 channelID, string text)
|
||||
{
|
||||
Common.SendToDebug("INTERNAL FUNCTION llWhisper(" + channelID + ", \"" + text + "\");");
|
||||
Common.SendToLog("llWhisper Channel " + channelID + ", Text: \"" + text + "\"");
|
||||
}
|
||||
//public void llSay(UInt32 channelID, string text)
|
||||
public void llSay(object channelID, object text)
|
||||
{
|
||||
//TODO: DO SOMETHING USEFUL HERE
|
||||
Common.SendToDebug("INTERNAL FUNCTION llSay(" + (UInt32)channelID + ", \"" + (string)text + "\");");
|
||||
Common.SendToLog("llSay Channel " + (UInt32)channelID + ", Text: \"" + (string)text + "\"");
|
||||
}
|
||||
public void llShout(UInt16 channelID, string text) { return; }
|
||||
public UInt32 llListen(UInt16 channelID, string name, string ID, string msg) { return 0; }
|
||||
public void llListenControl(UInt32 number, UInt32 active) { return; }
|
||||
public void llListenRemove(UInt32 number) { return; }
|
||||
public void llSensor(string name, string id, UInt32 type, float range, float arc) { return; }
|
||||
public void llSensorRepeat(string name, string id, UInt32 type, float range, float arc, float rate) { return; }
|
||||
public void llSensorRemove() { return; }
|
||||
public string llDetectedName(UInt32 number) { return ""; }
|
||||
public string llDetectedKey(UInt32 number) { return ""; }
|
||||
public string llDetectedOwner(UInt32 number) { return ""; }
|
||||
public UInt32 llDetectedType(UInt32 number) { return 0; }
|
||||
public Axiom.Math.Vector3 llDetectedPos(UInt32 number) { return new Axiom.Math.Vector3(); }
|
||||
public Axiom.Math.Vector3 llDetectedVel(UInt32 number) { return new Axiom.Math.Vector3(); }
|
||||
public Axiom.Math.Vector3 llDetectedGrab(UInt32 number) { return new Axiom.Math.Vector3(); }
|
||||
public Axiom.Math.Quaternion llDetectedRot(UInt32 number) { return new Axiom.Math.Quaternion(); }
|
||||
public UInt32 llDetectedGroup(UInt32 number) { return 0; }
|
||||
public UInt32 llDetectedLinkNumber(UInt32 number) { return 0; }
|
||||
public void llDie() { return; }
|
||||
public float llGround(Axiom.Math.Vector3 offset) { return 0; }
|
||||
public float llCloud(Axiom.Math.Vector3 offset) { return 0; }
|
||||
public Axiom.Math.Vector3 llWind(Axiom.Math.Vector3 offset) { return new Axiom.Math.Vector3(); }
|
||||
public void llSetStatus(UInt32 status, UInt32 value) { return; }
|
||||
public UInt32 llGetStatus(UInt32 status) { return 0; }
|
||||
public void llSetScale(Axiom.Math.Vector3 scale) { return; }
|
||||
public Axiom.Math.Vector3 llGetScale() { return new Axiom.Math.Vector3(); }
|
||||
public void llSetColor(Axiom.Math.Vector3 color, UInt32 face) { return; }
|
||||
public float llGetAlpha(UInt32 face) { return 0; }
|
||||
public void llSetAlpha(float alpha, UInt32 face) { return; }
|
||||
public Axiom.Math.Vector3 llGetColor(UInt32 face) { return new Axiom.Math.Vector3(); }
|
||||
public void llSetTexture(string texture, UInt32 face) { return; }
|
||||
public void llScaleTexture(float u, float v, UInt32 face) { return; }
|
||||
public void llOffsetTexture(float u, float v, UInt32 face) { return; }
|
||||
public void llRotateTexture(float rotation, UInt32 face) { return; }
|
||||
public string llGetTexture(UInt32 face) { return ""; }
|
||||
public void llSetPos(Axiom.Math.Vector3 pos) { return; }
|
||||
|
||||
|
||||
public void llGetPos() { }
|
||||
public void llGetLocalPos() { }
|
||||
public void llSetRot() { }
|
||||
public void llGetRot() { }
|
||||
public void llGetLocalRot() { }
|
||||
public void llSetForce() { }
|
||||
public void llGetForce() { }
|
||||
public void llTarget() { }
|
||||
public void llTargetRemove() { }
|
||||
public void llRotTarget() { }
|
||||
public void llRotTargetRemove() { }
|
||||
public void llMoveToTarget() { }
|
||||
public void llStopMoveToTarget() { }
|
||||
public void llApplyImpulse() { }
|
||||
public void llApplyRotationalImpulse() { }
|
||||
public void llSetTorque() { }
|
||||
public void llGetTorque() { }
|
||||
public void llSetForceAndTorque() { }
|
||||
public void llGetVel() { }
|
||||
public void llGetAccel() { }
|
||||
public void llGetOmega() { }
|
||||
public void llGetTimeOfDay() { }
|
||||
public void llGetWallclock() { }
|
||||
public void llGetTime() { }
|
||||
public void llResetTime() { }
|
||||
public void llGetAndResetTime() { }
|
||||
public void llSound() { }
|
||||
public void llPlaySound() { }
|
||||
public void llLoopSound() { }
|
||||
public void llLoopSoundMaster() { }
|
||||
public void llLoopSoundSlave() { }
|
||||
public void llPlaySoundSlave() { }
|
||||
public void llTriggerSound() { }
|
||||
public void llStopSound() { }
|
||||
public void llPreloadSound() { }
|
||||
public void llGetSubString() { }
|
||||
public void llDeleteSubString() { }
|
||||
public void llInsertString() { }
|
||||
public void llToUpper() { }
|
||||
public void llToLower() { }
|
||||
public void llGiveMoney() { }
|
||||
public void llMakeExplosion() { }
|
||||
public void llMakeFountain() { }
|
||||
public void llMakeSmoke() { }
|
||||
public void llMakeFire() { }
|
||||
public void llRezObject() { }
|
||||
public void llLookAt() { }
|
||||
public void llStopLookAt() { }
|
||||
public void llSetTimerEvent() { }
|
||||
public void llSleep() { }
|
||||
public void llGetMass() { }
|
||||
public void llCollisionFilter() { }
|
||||
public void llTakeControls() { }
|
||||
public void llReleaseControls() { }
|
||||
public void llAttachToAvatar() { }
|
||||
public void llDetachFromAvatar() { }
|
||||
public void llTakeCamera() { }
|
||||
public void llReleaseCamera() { }
|
||||
public void llGetOwner() { }
|
||||
public void llInstantMessage() { }
|
||||
public void llEmail() { }
|
||||
public void llGetNextEmail() { }
|
||||
public void llGetKey() { }
|
||||
public void llSetBuoyancy() { }
|
||||
public void llSetHoverHeight() { }
|
||||
public void llStopHover() { }
|
||||
public void llMinEventDelay() { }
|
||||
public void llSoundPreload() { }
|
||||
public void llRotLookAt() { }
|
||||
public void llStringLength() { }
|
||||
public void llStartAnimation() { }
|
||||
public void llStopAnimation() { }
|
||||
public void llPointAt() { }
|
||||
public void llStopPointAt() { }
|
||||
public void llTargetOmega() { }
|
||||
public void llGetStartParameter() { }
|
||||
public void llGodLikeRezObject() { }
|
||||
public void llRequestPermissions() { }
|
||||
public void llGetPermissionsKey() { }
|
||||
public void llGetPermissions() { }
|
||||
public void llGetLinkNumber() { }
|
||||
public void llSetLinkColor() { }
|
||||
public void llCreateLink() { }
|
||||
public void llBreakLink() { }
|
||||
public void llBreakAllLinks() { }
|
||||
public void llGetLinkKey() { }
|
||||
public void llGetLinkName() { }
|
||||
public void llGetInventoryNumber() { }
|
||||
public void llGetInventoryName() { }
|
||||
public void llSetScriptState() { }
|
||||
public void llGetEnergy() { }
|
||||
public void llGiveInventory() { }
|
||||
public void llRemoveInventory() { }
|
||||
public void llSetText() { }
|
||||
public void llWater() { }
|
||||
public void llPassTouches() { }
|
||||
public void llRequestAgentData() { }
|
||||
public void llRequestInventoryData() { }
|
||||
public void llSetDamage() { }
|
||||
public void llTeleportAgentHome() { }
|
||||
public void llModifyLand() { }
|
||||
public void llCollisionSound() { }
|
||||
public void llCollisionSprite() { }
|
||||
public void llGetAnimation() { }
|
||||
public void llResetScript() { }
|
||||
public void llMessageLinked() { }
|
||||
public void llPushObject() { }
|
||||
public void llPassCollisions() { }
|
||||
public void llGetScriptName() { }
|
||||
public void llGetNumberOfSides() { }
|
||||
public void llAxisAngle2Rot() { }
|
||||
public void llRot2Axis() { }
|
||||
public void llRot2Angle() { }
|
||||
public void llAcos() { }
|
||||
public void llAsin() { }
|
||||
public void llAngleBetween() { }
|
||||
public void llGetInventoryKey() { }
|
||||
public void llAllowInventoryDrop() { }
|
||||
public void llGetSunDirection() { }
|
||||
public void llGetTextureOffset() { }
|
||||
public void llGetTextureScale() { }
|
||||
public void llGetTextureRot() { }
|
||||
public void llSubStringIndex() { }
|
||||
public void llGetOwnerKey() { }
|
||||
public void llGetCenterOfMass() { }
|
||||
public void llListSort() { }
|
||||
public void llGetListLength() { }
|
||||
public void llList2Integer() { }
|
||||
public void llList2Float() { }
|
||||
public void llList2String() { }
|
||||
public void llList2Key() { }
|
||||
public void llList2Vector() { }
|
||||
public void llList2Rot() { }
|
||||
public void llList2List() { }
|
||||
public void llDeleteSubList() { }
|
||||
public void llGetListEntryType() { }
|
||||
public void llList2CSV() { }
|
||||
public void llCSV2List() { }
|
||||
public void llListRandomize() { }
|
||||
public void llList2ListStrided() { }
|
||||
public void llGetRegionCorner() { }
|
||||
public void llListInsertList() { }
|
||||
public void llListFindList() { }
|
||||
public void llGetObjectName() { }
|
||||
public void llSetObjectName() { }
|
||||
public void llGetDate() { }
|
||||
public void llEdgeOfWorld() { }
|
||||
public void llGetAgentInfo() { }
|
||||
public void llAdjustSoundVolume() { }
|
||||
public void llSetSoundQueueing() { }
|
||||
public void llSetSoundRadius() { }
|
||||
public void llKey2Name() { }
|
||||
public void llSetTextureAnim() { }
|
||||
public void llTriggerSoundLimited() { }
|
||||
public void llEjectFromLand() { }
|
||||
public void llParseString2List() { }
|
||||
public void llOverMyLand() { }
|
||||
public void llGetLandOwnerAt() { }
|
||||
public void llGetNotecardLine() { }
|
||||
public void llGetAgentSize() { }
|
||||
public void llSameGroup() { }
|
||||
public void llUnSit() { }
|
||||
public void llGroundSlope() { }
|
||||
public void llGroundNormal() { }
|
||||
public void llGroundContour() { }
|
||||
public void llGetAttached() { }
|
||||
public void llGetFreeMemory() { }
|
||||
public void llGetRegionName() { }
|
||||
public void llGetRegionTimeDilation() { }
|
||||
public void llGetRegionFPS() { }
|
||||
public void llParticleSystem() { }
|
||||
public void llGroundRepel() { }
|
||||
public void llGiveInventoryList() { }
|
||||
public void llSetVehicleType() { }
|
||||
public void llSetVehicleFloatParam() { }
|
||||
public void llSetVehicleVectorParam() { }
|
||||
public void llSetVehicleRotationParam() { }
|
||||
public void llSetVehicleFlags() { }
|
||||
public void llRemoveVehicleFlags() { }
|
||||
public void llSitTarget() { }
|
||||
public void llAvatarOnSitTarget() { }
|
||||
public void llAddToLandPassList() { }
|
||||
public void llSetTouchText() { }
|
||||
public void llSetSitText() { }
|
||||
public void llSetCameraEyeOffset() { }
|
||||
public void llSetCameraAtOffset() { }
|
||||
public void llDumpList2String() { }
|
||||
public void llScriptDanger() { }
|
||||
public void llDialog() { }
|
||||
public void llVolumeDetect() { }
|
||||
public void llResetOtherScript() { }
|
||||
public void llGetScriptState() { }
|
||||
public void llRemoteLoadScript() { }
|
||||
public void llSetRemoteScriptAccessPin() { }
|
||||
public void llRemoteLoadScriptPin() { }
|
||||
public void llOpenRemoteDataChannel() { }
|
||||
public void llSendRemoteData() { }
|
||||
public void llRemoteDataReply() { }
|
||||
public void llCloseRemoteDataChannel() { }
|
||||
public void llMD5String() { }
|
||||
public void llSetPrimitiveParams() { }
|
||||
public void llStringToBase64() { }
|
||||
public void llBase64ToString() { }
|
||||
public void llXorBase64Strings() { }
|
||||
public void llRemoteDataSetRegion() { }
|
||||
public void llLog10() { }
|
||||
public void llLog() { }
|
||||
public void llGetAnimationList() { }
|
||||
public void llSetParcelMusicURL() { }
|
||||
public void llGetRootPosition() { }
|
||||
public void llGetRootRotation() { }
|
||||
public void llGetObjectDesc() { }
|
||||
public void llSetObjectDesc() { }
|
||||
public void llGetCreator() { }
|
||||
public void llGetTimestamp() { }
|
||||
public void llSetLinkAlpha() { }
|
||||
public void llGetNumberOfPrims() { }
|
||||
public void llGetNumberOfNotecardLines() { }
|
||||
public void llGetBoundingBox() { }
|
||||
public void llGetGeometricCenter() { }
|
||||
public void llGetPrimitiveParams() { }
|
||||
public void llIntegerToBase64() { }
|
||||
public void llBase64ToInteger() { }
|
||||
public void llGetGMTclock() { }
|
||||
public void llGetSimulatorHostname() { }
|
||||
public void llSetLocalRot() { }
|
||||
public void llParseStringKeepNulls() { }
|
||||
public void llRezAtRoot() { }
|
||||
public void llGetObjectPermMask() { }
|
||||
public void llSetObjectPermMask() { }
|
||||
public void llGetInventoryPermMask() { }
|
||||
public void llSetInventoryPermMask() { }
|
||||
public void llGetInventoryCreator() { }
|
||||
public void llOwnerSay() { }
|
||||
public void llRequestSimulatorData() { }
|
||||
public void llForceMouselook() { }
|
||||
public void llGetObjectMass() { }
|
||||
public void llListReplaceList() { }
|
||||
public void llLoadURL() { }
|
||||
public void llParcelMediaCommandList() { }
|
||||
public void llParcelMediaQuery() { }
|
||||
public void llModPow() { }
|
||||
public void llGetInventoryType() { }
|
||||
public void llSetPayPrice() { }
|
||||
public void llGetCameraPos() { }
|
||||
public void llGetCameraRot() { }
|
||||
public void llSetPrimURL() { }
|
||||
public void llRefreshPrimURL() { }
|
||||
public void llEscapeURL() { }
|
||||
public void llUnescapeURL() { }
|
||||
public void llMapDestination() { }
|
||||
public void llAddToLandBanList() { }
|
||||
public void llRemoveFromLandPassList() { }
|
||||
public void llRemoveFromLandBanList() { }
|
||||
public void llSetCameraParams() { }
|
||||
public void llClearCameraParams() { }
|
||||
public void llListStatistics() { }
|
||||
public void llGetUnixTime() { }
|
||||
public void llGetParcelFlags() { }
|
||||
public void llGetRegionFlags() { }
|
||||
public void llXorBase64StringsCorrect() { }
|
||||
public void llHTTPRequest() { }
|
||||
public void llResetLandBanList() { }
|
||||
public void llResetLandPassList() { }
|
||||
public void llGetParcelPrimCount() { }
|
||||
public void llGetParcelPrimOwners() { }
|
||||
public void llGetObjectPrimCount() { }
|
||||
public void llGetParcelMaxPrims() { }
|
||||
public void llGetParcelDetails() { }
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -44,12 +44,11 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
{
|
||||
myScriptEngine = _ScriptEngine;
|
||||
// TODO: HOOK EVENTS UP TO SERVER!
|
||||
Common.SendToDebug("EventManager Start");
|
||||
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "EventManager Start");
|
||||
// TODO: ADD SERVER HOOK TO LOAD A SCRIPT THROUGH myScriptEngine.ScriptManager
|
||||
|
||||
// Hook up a test event to our test form
|
||||
Common.SendToDebug("EventManager Hooking up dummy-event: touch_start");
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "EventManager Hooking up dummy-event: touch_start");
|
||||
// TODO: REPLACE THIS WITH A REAL TOUCH_START EVENT IN SERVER
|
||||
myScriptEngine.World.EventManager.OnObjectGrab += new OpenSim.Region.Environment.Scenes.EventManager.ObjectGrabDelegate(touch_start);
|
||||
//myScriptEngine.World.touch_start += new TempWorldInterfaceEventDelegates.touch_start(touch_start);
|
||||
|
@ -58,7 +57,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
public void touch_start(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
|
||||
{
|
||||
// Add to queue for all scripts in ObjectID object
|
||||
Common.SendToDebug("EventManager Event: touch_start");
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "EventManager Event: touch_start");
|
||||
myScriptEngine.myEventQueueManager.AddToObjectQueue("TEST", "touch_start", new object[] { (int)0 });
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
public EventQueueManager(ScriptEngine _ScriptEngine)
|
||||
{
|
||||
myScriptEngine = _ScriptEngine;
|
||||
Common.SendToDebug("EventQueueManager Start");
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "EventQueueManager Start");
|
||||
// Start worker thread
|
||||
EventQueueThread = new Thread(EventQueueThreadLoop);
|
||||
EventQueueThread.IsBackground = true;
|
||||
|
@ -70,7 +70,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Common.SendToDebug("EventQueueManager Exception killing worker thread: " + e.ToString());
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "EventQueueManager Exception killing worker thread: " + e.ToString());
|
||||
}
|
||||
}
|
||||
// Todo: Clean up our queues
|
||||
|
@ -79,7 +79,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
|
||||
private void EventQueueThreadLoop()
|
||||
{
|
||||
Common.SendToDebug("EventQueueManager Worker thread spawned");
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "EventQueueManager Worker thread spawned");
|
||||
try
|
||||
{
|
||||
while (true)
|
||||
|
@ -93,7 +93,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
{
|
||||
// Something in queue, process
|
||||
QueueItemStruct QIS = EventQueue.Dequeue();
|
||||
Common.SendToDebug("Processing event for ObjectID: " + QIS.ObjectID + ", ScriptID: " + QIS.ScriptID + ", FunctionName: " + QIS.FunctionName);
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "Processing event for ObjectID: " + QIS.ObjectID + ", ScriptID: " + QIS.ScriptID + ", FunctionName: " + QIS.FunctionName);
|
||||
// TODO: Execute function
|
||||
myScriptEngine.myScriptManager.ExecuteFunction(QIS.ObjectID, QIS.ScriptID, QIS.FunctionName, QIS.param);
|
||||
}
|
||||
|
@ -101,14 +101,14 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
}
|
||||
catch (ThreadAbortException tae)
|
||||
{
|
||||
Common.SendToDebug("EventQueueManager Worker thread killed: " + tae.Message);
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "EventQueueManager Worker thread killed: " + tae.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public void AddToObjectQueue(string ObjectID, string FunctionName, object[] param)
|
||||
{
|
||||
// Determine all scripts in Object and add to their queue
|
||||
Common.SendToDebug("EventQueueManager Adding ObjectID: " + ObjectID + ", FunctionName: " + FunctionName);
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "EventQueueManager Adding ObjectID: " + ObjectID + ", FunctionName: " + FunctionName);
|
||||
|
||||
foreach (string ScriptID in myScriptEngine.myScriptManager.GetScriptKeys(ObjectID))
|
||||
{
|
||||
|
|
|
@ -42,16 +42,20 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
internal EventManager myEventManager; // Handles and queues incoming events from OpenSim
|
||||
internal EventQueueManager myEventQueueManager; // Executes events
|
||||
internal ScriptManager myScriptManager; // Load, unload and execute scripts
|
||||
internal OpenSim.Framework.Console.LogBase m_logger;
|
||||
|
||||
public ScriptEngine()
|
||||
{
|
||||
Common.SendToDebug("ScriptEngine Object Initialized");
|
||||
//Common.SendToDebug("ScriptEngine Object Initialized");
|
||||
Common.mySE = this;
|
||||
}
|
||||
|
||||
public void InitializeEngine(OpenSim.Region.Environment.Scenes.Scene Sceneworld)
|
||||
public void InitializeEngine(OpenSim.Region.Environment.Scenes.Scene Sceneworld, OpenSim.Framework.Console.LogBase logger)
|
||||
{
|
||||
World = Sceneworld;
|
||||
Common.SendToDebug("ScriptEngine InitializeEngine()");
|
||||
m_logger = logger;
|
||||
|
||||
m_logger.Status("ScriptEngine", "InitializeEngine");
|
||||
|
||||
// Create all objects we'll be using
|
||||
myEventQueueManager = new EventQueueManager(this);
|
||||
|
@ -71,7 +75,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
[Obsolete("!!!FOR DEBUGGING ONLY!!!")]
|
||||
public void StartScript(string ScriptID, string ObjectID)
|
||||
{
|
||||
Common.SendToDebug("ScriptEngine DEBUG: StartScript: " + ScriptID);
|
||||
m_logger.Status("ScriptEngine", "DEBUG: StartScript: " + ScriptID);
|
||||
myScriptManager.StartScript(ScriptID, ObjectID);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
public ScriptManager(ScriptEngine _ScriptEngine)
|
||||
{
|
||||
myScriptEngine = _ScriptEngine;
|
||||
Common.SendToDebug("ScriptManager Start");
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager Start");
|
||||
}
|
||||
|
||||
|
||||
|
@ -102,7 +102,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
/// <param name="ObjectID"></param>
|
||||
public void StartScript(string ScriptID, string ObjectID)
|
||||
{
|
||||
Common.SendToDebug("ScriptManager StartScript: ScriptID: " + ScriptID + ", ObjectID: " + ObjectID);
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager StartScript: ScriptID: " + ScriptID + ", ObjectID: " + ObjectID);
|
||||
|
||||
// We will initialize and start the script.
|
||||
// It will be up to the script itself to hook up the correct events.
|
||||
|
@ -114,13 +114,13 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
FileName = ScriptID;
|
||||
|
||||
// * Does script need compile? Send it to LSL compiler first. (TODO: Use (and clean) compiler cache)
|
||||
Common.SendToDebug("ScriptManager Script extension: " + System.IO.Path.GetExtension(FileName).ToLower());
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager Script extension: " + System.IO.Path.GetExtension(FileName).ToLower());
|
||||
switch (System.IO.Path.GetExtension(FileName).ToLower())
|
||||
{
|
||||
case ".txt":
|
||||
case ".lsl":
|
||||
case ".cs":
|
||||
Common.SendToDebug("ScriptManager Script is CS/LSL, compiling to .Net Assembly");
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager Script is CS/LSL, compiling to .Net Assembly");
|
||||
// Create a new instance of the compiler (currently we don't want reuse)
|
||||
OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler LSLCompiler = new OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler();
|
||||
// Compile
|
||||
|
@ -130,7 +130,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
throw new Exception("Unknown script type.");
|
||||
}
|
||||
|
||||
Common.SendToDebug("Compilation done");
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "Compilation done");
|
||||
// * Insert yield into code
|
||||
FileName = ProcessYield(FileName);
|
||||
|
||||
|
@ -149,7 +149,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
//OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL_BuiltIn_Commands_Interface LSLB = new OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL_BuiltIn_Commands_TestImplementation(FullScriptID);
|
||||
|
||||
// Start the script - giving it BuiltIns
|
||||
Common.SendToDebug("ScriptManager initializing script, handing over private builtin command interface");
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager initializing script, handing over private builtin command interface");
|
||||
Script.Start(myScriptEngine.World, ScriptID);
|
||||
|
||||
|
||||
|
@ -174,7 +174,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
/// <returns></returns>
|
||||
private OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass LoadAndInitAssembly(AppDomain FreeAppDomain, string FileName)
|
||||
{
|
||||
Common.SendToDebug("ScriptManager Loading Assembly " + FileName);
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager Loading Assembly " + FileName);
|
||||
// Load .Net Assembly (.dll)
|
||||
// Initialize and return it
|
||||
|
||||
|
@ -218,7 +218,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
|
||||
internal void ExecuteFunction(string ObjectID, string ScriptID, string FunctionName, object[] args)
|
||||
{
|
||||
Common.SendToDebug("Executing Function ObjectID: " + ObjectID + ", ScriptID: " + ScriptID + ", FunctionName: " + FunctionName);
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "Executing Function ObjectID: " + ObjectID + ", ScriptID: " + ScriptID + ", FunctionName: " + FunctionName);
|
||||
OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass Script = myScriptEngine.myScriptManager.GetScript(ObjectID, ScriptID);
|
||||
|
||||
Type type = Script.GetType();
|
||||
|
@ -226,7 +226,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
|
||||
//System.Collections.Generic.List<string> Functions = (System.Collections.Generic.List<string>)
|
||||
//Type type = typeof(OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSO.LSL_BaseClass);
|
||||
Common.SendToDebug("Invoke: \"" + Script.State + "_event_" + FunctionName + "\"");
|
||||
myScriptEngine.m_logger.Verbose("ScriptEngine", "Invoke: \"" + Script.State + "_event_" + FunctionName + "\"");
|
||||
type.InvokeMember(Script.State + "_event_" + FunctionName, BindingFlags.InvokeMethod, null, Script, args);
|
||||
//System.Collections.Generic.List<string> Functions = (System.Collections.Generic.List<string>)type.InvokeMember("GetFunctions", BindingFlags.InvokeMethod, null, Script, null);
|
||||
|
||||
|
|
|
@ -958,6 +958,7 @@
|
|||
<Reference name="Axiom.MathLib.dll" localCopy="false"/>
|
||||
<Reference name="libsecondlife.dll"/>
|
||||
<Reference name="OpenSim.Framework"/>
|
||||
<Reference name="OpenSim.Framework.Console"/>
|
||||
<Files>
|
||||
<Match pattern="*.cs" recurse="true"/>
|
||||
<Match pattern="*.lso" recurse="true"/>
|
||||
|
|
Loading…
Reference in New Issue