From 6d10c6535847a65f3bc56398a609916174684729 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Sat, 18 Aug 2007 18:53:03 +0000 Subject: [PATCH] Moved LSL_BuiltIn_Commands_Interface.cs to a separate library (OpenSim.Region.ScriptEngine.Common). Fixed last compile error (forgot to include LSL_BuiltIn_Commands.cs). --- .../LSL_BuiltIn_Commands_Interface.cs | 2 +- .../DotNetEngine/AppDomainManager.cs | 7 +- .../Compiler/LSL/LSL_BaseClass.cs | 59 ++- .../Compiler/LSO/LSL_BaseClass.cs | 1 + .../Compiler/LSO/LSL_OPCODE_IL_processor.cs | 1 + .../Server_API/LSL_BuiltIn_Commands.cs | 472 ++++++++++++++++++ .../DotNetEngine/ScriptManager.cs | 6 +- prebuild.xml | 26 + 8 files changed, 560 insertions(+), 14 deletions(-) rename OpenSim/Region/ScriptEngine/{DotNetEngine/Compiler/Server_API => Common}/LSL_BuiltIn_Commands_Interface.cs (97%) create mode 100644 OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands_Interface.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs similarity index 97% rename from OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands_Interface.cs rename to OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs index b7fd2d228c..58ade0b640 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands_Interface.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs @@ -30,7 +30,7 @@ using System; using System.Collections.Generic; using System.Text; -namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler +namespace OpenSim.Region.ScriptEngine.Common { public interface LSL_BuiltIn_Commands_Interface { diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs index 1e20547c5e..2e1e3d11b0 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs @@ -85,7 +85,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine //Console.WriteLine("Loading: " + a.GetName(true)); try { - AD.Load(a.GetName(true)); + //AD.Load(a.GetName(true)); } catch (Exception e) @@ -106,10 +106,5 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine } - public class NOOP : MarshalByRefType - { - public NOOP() { - } - } } } diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs index cc62ab5211..bdae95d2b5 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Text; using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler; -using OpenSim.Framework.Console; +using OpenSim.Region.ScriptEngine.Common; using System.Threading; namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL @@ -25,7 +25,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL { m_LSL_Functions = LSL_Functions; - MainLog.Instance.Notice("ScriptEngine", "LSL_BaseClass.Start() called."); + //MainLog.Instance.Notice("ScriptEngine", "LSL_BaseClass.Start() called."); // Get this AppDomain's settings and display some of them. AppDomainSetup ads = AppDomain.CurrentDomain.SetupInformation; @@ -46,6 +46,13 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL return; } + + + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // + // They are only forwarders to LSL_BuiltIn_Commands.cs + // public double llSin(double f) { return m_LSL_Functions.llSin(f); } public double llCos(double f) { return m_LSL_Functions.llCos(f); } public double llTan(double f) { return m_LSL_Functions.llTan(f); } @@ -70,6 +77,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public Axiom.Math.Quaternion llRotBetween(Axiom.Math.Vector3 start, Axiom.Math.Vector3 end) { return m_LSL_Functions.llRotBetween(start, end); } public void llWhisper(int channelID, string text) { m_LSL_Functions.llWhisper(channelID, text); } public void llSay(int channelID, string text) { m_LSL_Functions.llSay(channelID, text); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public void llShout(int channelID, string text) { m_LSL_Functions.llShout(channelID, text); } public int llListen(int channelID, string name, string ID, string msg) { return m_LSL_Functions.llListen(channelID, name, ID, msg); } public void llListenControl(int number, int active) { m_LSL_Functions.llListenControl(number, active); } @@ -87,6 +97,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public Axiom.Math.Quaternion llDetectedRot(int number) { return m_LSL_Functions.llDetectedRot(number); } public int llDetectedGroup(int number) { return m_LSL_Functions.llDetectedGroup(number); } public int llDetectedLinkNumber(int number) { return m_LSL_Functions.llDetectedLinkNumber(number); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public void llDie() { m_LSL_Functions.llDie(); } public double llGround(Axiom.Math.Vector3 offset) { return m_LSL_Functions.llGround(offset); } public double llCloud(Axiom.Math.Vector3 offset) { return m_LSL_Functions.llCloud(offset); } @@ -104,6 +117,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public void llOffsetTexture(double u, double v, int face) { m_LSL_Functions.llOffsetTexture(u, v, face); } public void llRotateTexture(double rotation, int face) { m_LSL_Functions.llRotateTexture(rotation, face); } public string llGetTexture(int face) { return m_LSL_Functions.llGetTexture(face); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public void llSetPos(Axiom.Math.Vector3 pos) { m_LSL_Functions.llSetPos(pos); } public Axiom.Math.Vector3 llGetPos() { return m_LSL_Functions.llGetPos(); } public Axiom.Math.Vector3 llGetLocalPos() { return m_LSL_Functions.llGetLocalPos(); } @@ -119,6 +135,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public void llMoveToTarget(Axiom.Math.Vector3 target, double tau) { m_LSL_Functions.llMoveToTarget(target, tau); } public void llStopMoveToTarget() { m_LSL_Functions.llStopMoveToTarget(); } public void llApplyImpulse(Axiom.Math.Vector3 force, int local) { m_LSL_Functions.llApplyImpulse(force, local); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public void llApplyRotationalImpulse(Axiom.Math.Vector3 force, int local) { m_LSL_Functions.llApplyRotationalImpulse(force, local); } public void llSetTorque(Axiom.Math.Vector3 torque, int local) { m_LSL_Functions.llSetTorque(torque, local); } public Axiom.Math.Vector3 llGetTorque() { return m_LSL_Functions.llGetTorque(); } @@ -137,6 +156,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public void llLoopSoundMaster(string sound, double volume) { m_LSL_Functions.llLoopSoundMaster(sound, volume); } public void llLoopSoundSlave(string sound, double volume) { m_LSL_Functions.llLoopSoundSlave(sound, volume); } public void llPlaySoundSlave(string sound, double volume) { m_LSL_Functions.llPlaySoundSlave(sound, volume); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public void llTriggerSound(string sound, double volume) { m_LSL_Functions.llTriggerSound(sound, volume); } public void llStopSound() { m_LSL_Functions.llStopSound(); } public void llPreloadSound(string sound) { m_LSL_Functions.llPreloadSound(sound); } @@ -155,6 +177,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public void llStopLookAt() { m_LSL_Functions.llStopLookAt(); } public void llSetTimerEvent(double sec) { m_LSL_Functions.llSetTimerEvent(sec); } public void llSleep(double sec) { m_LSL_Functions.llSleep(sec); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public double llGetMass() { return m_LSL_Functions.llGetMass(); } public void llCollisionFilter(string name, string id, int accept) { m_LSL_Functions.llCollisionFilter(name, id, accept); } public void llTakeControls(int controls, int accept, int pass_on) { m_LSL_Functions.llTakeControls(controls, accept, pass_on); } @@ -174,6 +199,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public void llMinEventDelay(double delay) { m_LSL_Functions.llMinEventDelay(delay); } public void llSoundPreload() { m_LSL_Functions.llSoundPreload(); } public void llRotLookAt(Axiom.Math.Quaternion target, double strength, double damping) { m_LSL_Functions.llRotLookAt(target, strength, damping); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public int llStringLength(string str) { return m_LSL_Functions.llStringLength(str); } public void llStartAnimation(string anim) { m_LSL_Functions.llStartAnimation(anim); } public void llStopAnimation(string anim) { m_LSL_Functions.llStopAnimation(anim); } @@ -194,6 +222,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public void llGetLinkName(int linknum) { m_LSL_Functions.llGetLinkName(linknum); } public int llGetInventoryNumber(int type) { return m_LSL_Functions.llGetInventoryNumber(type); } public string llGetInventoryName(int type, int number) { return m_LSL_Functions.llGetInventoryName(type, number); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public void llSetScriptState(string name, int run) { m_LSL_Functions.llSetScriptState(name, run); } public double llGetEnergy() { return m_LSL_Functions.llGetEnergy(); } public void llGiveInventory(string destination, string inventory) { m_LSL_Functions.llGiveInventory(destination, inventory); } @@ -215,6 +246,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public void llPassCollisions(int pass) { m_LSL_Functions.llPassCollisions(pass); } public string llGetScriptName() { return m_LSL_Functions.llGetScriptName(); } public int llGetNumberOfSides() { return m_LSL_Functions.llGetNumberOfSides(); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public Axiom.Math.Quaternion llAxisAngle2Rot(Axiom.Math.Vector3 axis, double angle) { return m_LSL_Functions.llAxisAngle2Rot(axis, angle); } public Axiom.Math.Vector3 llRot2Axis(Axiom.Math.Quaternion rot) { return m_LSL_Functions.llRot2Axis(rot); } public void llRot2Angle() { m_LSL_Functions.llRot2Angle(); } @@ -232,6 +266,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public Axiom.Math.Vector3 llGetCenterOfMass() { return m_LSL_Functions.llGetCenterOfMass(); } public List llListSort(List src, int stride, int ascending) { return m_LSL_Functions.llListSort(src, stride, ascending); } public int llGetListLength(List src) { return m_LSL_Functions.llGetListLength(src); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public int llList2Integer(List src, int index) { return m_LSL_Functions.llList2Integer(src, index); } public double llList2double(List src, int index) { return m_LSL_Functions.llList2double(src, index); } public string llList2String(List src, int index) { return m_LSL_Functions.llList2String(src, index); } @@ -253,6 +290,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public string llGetDate() { return m_LSL_Functions.llGetDate(); } public int llEdgeOfWorld(Axiom.Math.Vector3 pos, Axiom.Math.Vector3 dir) { return m_LSL_Functions.llEdgeOfWorld(pos, dir); } public int llGetAgentInfo(string id) { return m_LSL_Functions.llGetAgentInfo(id); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public void llAdjustSoundVolume(double volume) { m_LSL_Functions.llAdjustSoundVolume(volume); } public void llSetSoundQueueing(int queue) { m_LSL_Functions.llSetSoundQueueing(queue); } public void llSetSoundRadius(double radius) { m_LSL_Functions.llSetSoundRadius(radius); } @@ -275,6 +315,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public string llGetRegionName() { return m_LSL_Functions.llGetRegionName(); } public double llGetRegionTimeDilation() { return m_LSL_Functions.llGetRegionTimeDilation(); } public double llGetRegionFPS() { return m_LSL_Functions.llGetRegionFPS(); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public void llParticleSystem(List rules) { m_LSL_Functions.llParticleSystem(rules); } public void llGroundRepel(double height, int water, double tau) { m_LSL_Functions.llGroundRepel(height, water, tau); } public void llGiveInventoryList() { m_LSL_Functions.llGiveInventoryList(); } @@ -300,6 +343,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public void llRemoteLoadScript() { m_LSL_Functions.llRemoteLoadScript(); } public void llSetRemoteScriptAccessPin(int pin) { m_LSL_Functions.llSetRemoteScriptAccessPin(pin); } public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param) { m_LSL_Functions.llRemoteLoadScriptPin(target, name, pin, running, start_param); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public void llOpenRemoteDataChannel() { m_LSL_Functions.llOpenRemoteDataChannel(); } public string llSendRemoteData(string channel, string dest, int idata, string sdata) { return m_LSL_Functions.llSendRemoteData(channel, dest, idata, sdata); } public void llRemoteDataReply(string channel, string message_id, string sdata, int idata) { m_LSL_Functions.llRemoteDataReply(channel, message_id, sdata, idata); } @@ -326,6 +372,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public List llGetBoundingBox(string obj) { return m_LSL_Functions.llGetBoundingBox(obj); } public Axiom.Math.Vector3 llGetGeometricCenter() { return m_LSL_Functions.llGetGeometricCenter(); } public void llGetPrimitiveParams() { m_LSL_Functions.llGetPrimitiveParams(); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public string llIntegerToBase64(int number) { return m_LSL_Functions.llIntegerToBase64(number); } public int llBase64ToInteger(string str) { return m_LSL_Functions.llBase64ToInteger(str); } public double llGetGMTclock() { return m_LSL_Functions.llGetGMTclock(); } @@ -347,6 +396,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public void llParcelMediaCommandList(List commandList) { m_LSL_Functions.llParcelMediaCommandList(commandList); } public void llParcelMediaQuery() { m_LSL_Functions.llParcelMediaQuery(); } public int llModPow(int a, int b, int c) { return m_LSL_Functions.llModPow(a, b, c); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public int llGetInventoryType(string name) { return m_LSL_Functions.llGetInventoryType(name); } public void llSetPayPrice(int price, List quick_pay_buttons) { m_LSL_Functions.llSetPayPrice(price, quick_pay_buttons); } public Axiom.Math.Vector3 llGetCameraPos() { return m_LSL_Functions.llGetCameraPos(); } @@ -372,6 +424,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL public int llGetParcelPrimCount(Axiom.Math.Vector3 pos, int category, int sim_wide) { return m_LSL_Functions.llGetParcelPrimCount(pos, category, sim_wide); } public List llGetParcelPrimOwners(Axiom.Math.Vector3 pos) { return m_LSL_Functions.llGetParcelPrimOwners(pos); } public int llGetObjectPrimCount(string object_id) { return m_LSL_Functions.llGetObjectPrimCount(object_id); } + // + // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs + // public int llGetParcelMaxPrims(Axiom.Math.Vector3 pos, int sim_wide) { return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide); } public List llGetParcelDetails(Axiom.Math.Vector3 pos, List param) { return m_LSL_Functions.llGetParcelDetails(pos, param); } diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_BaseClass.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_BaseClass.cs index 0fbb2cf20a..374d37d1cf 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_BaseClass.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_BaseClass.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Text; using System.IO; using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler; +using OpenSim.Region.ScriptEngine.Common; namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSO { diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_OPCODE_IL_processor.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_OPCODE_IL_processor.cs index e472f4a125..18a2b55aec 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_OPCODE_IL_processor.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_OPCODE_IL_processor.cs @@ -31,6 +31,7 @@ using System.Collections.Generic; using System.Text; using System.Reflection; using System.Reflection.Emit; +using OpenSim.Region.ScriptEngine.Common; namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSO { diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs new file mode 100644 index 0000000000..8c2e7997bd --- /dev/null +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs @@ -0,0 +1,472 @@ +using System; +using System.Collections.Generic; +using System.Text; +using libsecondlife; +using OpenSim.Region.Environment.Scenes; +using OpenSim.Region.Environment.Scenes.Scripting; +using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler; +using OpenSim.Region.ScriptEngine.Common; +using OpenSim.Framework.Console; + +namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler +{ + + /// + /// Contains all LSL ll-functions. This class will be in Default AppDomain. + /// + [Serializable] + public class LSL_BuiltIn_Commands: LSL_BuiltIn_Commands_Interface + { + private System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); + private ScriptManager m_manager; + private IScriptHost m_host; + + public LSL_BuiltIn_Commands(ScriptManager manager, IScriptHost host) + { + m_manager = manager; + m_host = host; + + MainLog.Instance.Notice("ScriptEngine", "LSL_BaseClass.Start() called. Hosted by [" + m_host.Name + ":" + m_host.UUID + "@" + m_host.AbsolutePosition + "]"); + } + + + public string State = "default"; + + public Scene World + { + get { return m_manager.World; } + } + + //These are the implementations of the various ll-functions used by the LSL scripts. + //starting out, we use the System.Math library for trig functions. - CFK 8-14-07 + public double llSin(double f) { return (double)Math.Sin(f); } + public double llCos(double f) { return (double)Math.Cos(f); } + public double llTan(double f) { return (double)Math.Tan(f); } + public double llAtan2(double x, double y) { return (double)Math.Atan2(y, x); } + public double llSqrt(double f) { return (double)Math.Sqrt(f); } + public double llPow(double fbase, double fexponent) { return (double)Math.Pow(fbase, fexponent); } + public int llAbs(int i) { return (int)Math.Abs(i); } + public double llFabs(double f) { return (double)Math.Abs(f); } + + public double llFrand(double mag) + { + lock (OpenSim.Framework.Utilities.Util.RandomClass) + { + return OpenSim.Framework.Utilities.Util.RandomClass.Next((int)mag); + } + } + public int llFloor(double f) { return (int)Math.Floor(f); } + public int llCeil(double f) { return (int)Math.Ceiling(f); } + public int llRound(double f) { return (int)Math.Round(f, 1); } + public double llVecMag(Axiom.Math.Vector3 v) { return 0; } + public Axiom.Math.Vector3 llVecNorm(Axiom.Math.Vector3 v) { return new Axiom.Math.Vector3(); } + public double 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(int channelID, string text) + { + //Common.SendToDebug("INTERNAL FUNCTION llWhisper(" + channelID + ", \"" + text + "\");"); + Console.WriteLine("llWhisper Channel " + channelID + ", Text: \"" + text + "\""); + //type for whisper is 0 + World.SimChat(Helpers.StringToField(text), + 0, m_host.AbsolutePosition, m_host.Name, m_host.UUID); + + + } + //public void llSay(int channelID, string text) + public void llSay(int channelID, string text) + { + //TODO: DO SOMETHING USEFUL HERE + //Common.SendToDebug("INTERNAL FUNCTION llSay(" + (int)channelID + ", \"" + (string)text + "\");"); + Console.WriteLine("llSay Channel " + channelID + ", Text: \"" + text + "\""); + //type for say is 1 + + World.SimChat(Helpers.StringToField(text), + 1, m_host.AbsolutePosition, m_host.Name, m_host.UUID); + } + + public void llShout(int channelID, string text) + { + Console.WriteLine("llShout Channel " + channelID + ", Text: \"" + text + "\""); + //type for shout is 2 + World.SimChat(Helpers.StringToField(text), + 2, m_host.AbsolutePosition, m_host.Name, m_host.UUID); + + } + + public int llListen(int channelID, string name, string ID, string msg) { return 0; } + public void llListenControl(int number, int active) { return; } + public void llListenRemove(int number) { return; } + public void llSensor(string name, string id, int type, double range, double arc) { return; } + public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate) { return; } + public void llSensorRemove() { return; } + public string llDetectedName(int number) { return ""; } + public string llDetectedKey(int number) { return ""; } + public string llDetectedOwner(int number) { return ""; } + public int llDetectedType(int number) { return 0; } + public Axiom.Math.Vector3 llDetectedPos(int number) { return new Axiom.Math.Vector3(); } + public Axiom.Math.Vector3 llDetectedVel(int number) { return new Axiom.Math.Vector3(); } + public Axiom.Math.Vector3 llDetectedGrab(int number) { return new Axiom.Math.Vector3(); } + public Axiom.Math.Quaternion llDetectedRot(int number) { return new Axiom.Math.Quaternion(); } + public int llDetectedGroup(int number) { return 0; } + public int llDetectedLinkNumber(int number) { return 0; } + public void llDie() { return; } + public double llGround(Axiom.Math.Vector3 offset) { return 0; } + public double llCloud(Axiom.Math.Vector3 offset) { return 0; } + public Axiom.Math.Vector3 llWind(Axiom.Math.Vector3 offset) { return new Axiom.Math.Vector3(); } + public void llSetStatus(int status, int value) { return; } + public int llGetStatus(int 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, int face) { return; } + public double llGetAlpha(int face) { return 0; } + public void llSetAlpha(double alpha, int face) { return; } + public Axiom.Math.Vector3 llGetColor(int face) { return new Axiom.Math.Vector3(); } + public void llSetTexture(string texture, int face) { return; } + public void llScaleTexture(double u, double v, int face) { return; } + public void llOffsetTexture(double u, double v, int face) { return; } + public void llRotateTexture(double rotation, int face) { return; } + public string llGetTexture(int face) { return ""; } + public void llSetPos(Axiom.Math.Vector3 pos) { return; } + + public Axiom.Math.Vector3 llGetPos() + { + throw new NotImplementedException("llGetPos"); + // return m_host.AbsolutePosition; + } + + public Axiom.Math.Vector3 llGetLocalPos() { return new Axiom.Math.Vector3(); } + public void llSetRot(Axiom.Math.Quaternion rot) { } + public Axiom.Math.Quaternion llGetRot() { return new Axiom.Math.Quaternion(); } + public Axiom.Math.Quaternion llGetLocalRot() { return new Axiom.Math.Quaternion(); } + public void llSetForce(Axiom.Math.Vector3 force, int local) { } + public Axiom.Math.Vector3 llGetForce() { return new Axiom.Math.Vector3(); } + public int llTarget(Axiom.Math.Vector3 position, double range) { return 0; } + public void llTargetRemove(int number) { } + public int llRotTarget(Axiom.Math.Quaternion rot, double error) { return 0; } + public void llRotTargetRemove(int number) { } + public void llMoveToTarget(Axiom.Math.Vector3 target, double tau) { } + public void llStopMoveToTarget() { } + public void llApplyImpulse(Axiom.Math.Vector3 force, int local) { } + public void llApplyRotationalImpulse(Axiom.Math.Vector3 force, int local) { } + public void llSetTorque(Axiom.Math.Vector3 torque, int local) { } + public Axiom.Math.Vector3 llGetTorque() { return new Axiom.Math.Vector3(); } + public void llSetForceAndTorque(Axiom.Math.Vector3 force, Axiom.Math.Vector3 torque, int local) { } + public Axiom.Math.Vector3 llGetVel() { return new Axiom.Math.Vector3(); } + public Axiom.Math.Vector3 llGetAccel() { return new Axiom.Math.Vector3(); } + public Axiom.Math.Vector3 llGetOmega() { return new Axiom.Math.Vector3(); } + public double llGetTimeOfDay() { return 0; } + public double llGetWallclock() { return 0; } + public double llGetTime() { return 0; } + public void llResetTime() { } + public double llGetAndResetTime() { return 0; } + public void llSound() { } + public void llPlaySound(string sound, double volume) { } + public void llLoopSound(string sound, double volume) { } + public void llLoopSoundMaster(string sound, double volume) { } + public void llLoopSoundSlave(string sound, double volume) { } + public void llPlaySoundSlave(string sound, double volume) { } + public void llTriggerSound(string sound, double volume) { } + public void llStopSound() { } + public void llPreloadSound(string sound) { } + public string llGetSubString(string src, int start, int end) { return src.Substring(start, end); } + public string llDeleteSubString(string src, int start, int end) { return ""; } + public string llInsertString(string dst, int position, string src) { return ""; } + public string llToUpper(string src) { return src.ToUpper(); } + public string llToLower(string src) { return src.ToLower(); } + public int llGiveMoney(string destination, int amount) { return 0; } + public void llMakeExplosion() { } + public void llMakeFountain() { } + public void llMakeSmoke() { } + public void llMakeFire() { } + public void llRezObject(string inventory, Axiom.Math.Vector3 pos, Axiom.Math.Quaternion rot, int param) { } + public void llLookAt(Axiom.Math.Vector3 target, double strength, double damping) { } + public void llStopLookAt() { } + public void llSetTimerEvent(double sec) { } + public void llSleep(double sec) { System.Threading.Thread.Sleep((int)(sec * 1000)); } + public double llGetMass() { return 0; } + public void llCollisionFilter(string name, string id, int accept) { } + public void llTakeControls(int controls, int accept, int pass_on) { } + public void llReleaseControls() { } + public void llAttachToAvatar(int attachment) { } + public void llDetachFromAvatar() { } + public void llTakeCamera() { } + public void llReleaseCamera() { } + public string llGetOwner() { return ""; } + public void llInstantMessage(string user, string message) { } + public void llEmail(string address, string subject, string message) { } + public void llGetNextEmail(string address, string subject) { } + public string llGetKey() { return ""; } + public void llSetBuoyancy(double buoyancy) { } + public void llSetHoverHeight(double height, int water, double tau) { } + public void llStopHover() { } + public void llMinEventDelay(double delay) { } + public void llSoundPreload() { } + public void llRotLookAt(Axiom.Math.Quaternion target, double strength, double damping) { } + + public int llStringLength(string str) + { + if (str.Length > 0) + { + return str.Length; + } + else + { + return 0; + } + } + + public void llStartAnimation(string anim) { } + public void llStopAnimation(string anim) { } + public void llPointAt() { } + public void llStopPointAt() { } + public void llTargetOmega(Axiom.Math.Vector3 axis, double spinrate, double gain) { } + public int llGetStartParameter() { return 0; } + public void llGodLikeRezObject(string inventory, Axiom.Math.Vector3 pos) { } + public void llRequestPermissions(string agent, int perm) { } + public string llGetPermissionsKey() { return ""; } + public int llGetPermissions() { return 0; } + public int llGetLinkNumber() { return 0; } + public void llSetLinkColor(int linknumber, Axiom.Math.Vector3 color, int face) { } + public void llCreateLink(string target, int parent) { } + public void llBreakLink(int linknum) { } + public void llBreakAllLinks() { } + public string llGetLinkKey(int linknum) { return ""; } + public void llGetLinkName(int linknum) { } + public int llGetInventoryNumber(int type) { return 0; } + public string llGetInventoryName(int type, int number) { return ""; } + public void llSetScriptState(string name, int run) { } + public double llGetEnergy() { return 1.0f; } + public void llGiveInventory(string destination, string inventory) { } + public void llRemoveInventory(string item) { } + + public void llSetText(string text, Axiom.Math.Vector3 color, double alpha) + { + m_host.SetText(text, color, alpha); + } + + public double llWater(Axiom.Math.Vector3 offset) { return 0; } + public void llPassTouches(int pass) { } + public string llRequestAgentData(string id, int data) { return ""; } + public string llRequestInventoryData(string name) { return ""; } + public void llSetDamage(double damage) { } + public void llTeleportAgentHome(string agent) { } + public void llModifyLand(int action, int brush) { } + public void llCollisionSound(string impact_sound, double impact_volume) { } + public void llCollisionSprite(string impact_sprite) { } + public string llGetAnimation(string id) { return ""; } + public void llResetScript() { } + public void llMessageLinked(int linknum, int num, string str, string id) { } + public void llPushObject(string target, Axiom.Math.Vector3 impulse, Axiom.Math.Vector3 ang_impulse, int local) { } + public void llPassCollisions(int pass) { } + public string llGetScriptName() { return ""; } + public int llGetNumberOfSides() { return 0; } + public Axiom.Math.Quaternion llAxisAngle2Rot(Axiom.Math.Vector3 axis, double angle) { return new Axiom.Math.Quaternion(); } + public Axiom.Math.Vector3 llRot2Axis(Axiom.Math.Quaternion rot) { return new Axiom.Math.Vector3(); } + public void llRot2Angle() { } + public double llAcos(double val) { return (double)Math.Acos(val); } + public double llAsin(double val) { return (double)Math.Asin(val); } + public double llAngleBetween(Axiom.Math.Quaternion a, Axiom.Math.Quaternion b) { return 0; } + public string llGetInventoryKey(string name) { return ""; } + public void llAllowInventoryDrop(int add) { } + public Axiom.Math.Vector3 llGetSunDirection() { return new Axiom.Math.Vector3(); } + public Axiom.Math.Vector3 llGetTextureOffset(int face) { return new Axiom.Math.Vector3(); } + public Axiom.Math.Vector3 llGetTextureScale(int side) { return new Axiom.Math.Vector3(); } + public double llGetTextureRot(int side) { return 0; } + public int llSubStringIndex(string source, string pattern) { return 0; } + public string llGetOwnerKey(string id) { return ""; } + public Axiom.Math.Vector3 llGetCenterOfMass() { return new Axiom.Math.Vector3(); } + public List llListSort(List src, int stride, int ascending) + { return new List(); } + public int llGetListLength(List src) { return 0; } + public int llList2Integer(List src, int index) { return 0; } + public double llList2double(List src, int index) { return 0; } + public string llList2String(List src, int index) { return ""; } + public string llList2Key(List src, int index) { return ""; } + public Axiom.Math.Vector3 llList2Vector(List src, int index) + { return new Axiom.Math.Vector3(); } + public Axiom.Math.Quaternion llList2Rot(List src, int index) + { return new Axiom.Math.Quaternion(); } + public List llList2List(List src, int start, int end) + { return new List(); } + public List llDeleteSubList(List src, int start, int end) + { return new List(); } + public int llGetListEntryType(List src, int index) { return 0; } + public string llList2CSV(List src) { return ""; } + public List llCSV2List(string src) + { return new List(); } + public List llListRandomize(List src, int stride) + { return new List(); } + public List llList2ListStrided(List src, int start, int end, int stride) + { return new List(); } + public Axiom.Math.Vector3 llGetRegionCorner() + { return new Axiom.Math.Vector3(World.RegionInfo.RegionLocX * 256, World.RegionInfo.RegionLocY * 256, 0); } + public List llListInsertList(List dest, List src, int start) + { return new List(); } + public int llListFindList(List src, List test) { return 0; } + public string llGetObjectName() { return ""; } + public void llSetObjectName(string name) { } + public string llGetDate() { return ""; } + public int llEdgeOfWorld(Axiom.Math.Vector3 pos, Axiom.Math.Vector3 dir) { return 0; } + public int llGetAgentInfo(string id) { return 0; } + public void llAdjustSoundVolume(double volume) { } + public void llSetSoundQueueing(int queue) { } + public void llSetSoundRadius(double radius) { } + public string llKey2Name(string id) { return ""; } + public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate) { } + public void llTriggerSoundLimited(string sound, double volume, Axiom.Math.Vector3 top_north_east, Axiom.Math.Vector3 bottom_south_west) { } + public void llEjectFromLand(string pest) { } + public void llParseString2List() { } + public int llOverMyLand(string id) { return 0; } + public string llGetLandOwnerAt(Axiom.Math.Vector3 pos) { return ""; } + public string llGetNotecardLine(string name, int line) { return ""; } + public Axiom.Math.Vector3 llGetAgentSize(string id) { return new Axiom.Math.Vector3(); } + public int llSameGroup(string agent) { return 0; } + public void llUnSit(string id) { } + public Axiom.Math.Vector3 llGroundSlope(Axiom.Math.Vector3 offset) { return new Axiom.Math.Vector3(); } + public Axiom.Math.Vector3 llGroundNormal(Axiom.Math.Vector3 offset) { return new Axiom.Math.Vector3(); } + public Axiom.Math.Vector3 llGroundContour(Axiom.Math.Vector3 offset) { return new Axiom.Math.Vector3(); } + public int llGetAttached() { return 0; } + public int llGetFreeMemory() { return 0; } + public string llGetRegionName() { return m_manager.RegionName; } + public double llGetRegionTimeDilation() { return 1.0f; } + public double llGetRegionFPS() { return 10.0f; } + public void llParticleSystem(List rules) { } + public void llGroundRepel(double height, int water, double tau) { } + public void llGiveInventoryList() { } + public void llSetVehicleType(int type) { } + public void llSetVehicledoubleParam(int param, double value) { } + public void llSetVehicleVectorParam(int param, Axiom.Math.Vector3 vec) { } + public void llSetVehicleRotationParam(int param, Axiom.Math.Quaternion rot) { } + public void llSetVehicleFlags(int flags) { } + public void llRemoveVehicleFlags(int flags) { } + public void llSitTarget(Axiom.Math.Vector3 offset, Axiom.Math.Quaternion rot) { } + public string llAvatarOnSitTarget() { return ""; } + public void llAddToLandPassList(string avatar, double hours) { } + public void llSetTouchText(string text) + { + } + + public void llSetSitText(string text) + { + } + public void llSetCameraEyeOffset(Axiom.Math.Vector3 offset) { } + public void llSetCameraAtOffset(Axiom.Math.Vector3 offset) { } + public void llDumpList2String() { } + public void llScriptDanger(Axiom.Math.Vector3 pos) { } + public void llDialog(string avatar, string message, List buttons, int chat_channel) { } + public void llVolumeDetect(int detect) { } + public void llResetOtherScript(string name) { } + public int llGetScriptState(string name) { return 0; } + public void llRemoteLoadScript() { } + public void llSetRemoteScriptAccessPin(int pin) { } + public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param) { } + public void llOpenRemoteDataChannel() { } + public string llSendRemoteData(string channel, string dest, int idata, string sdata) { return ""; } + public void llRemoteDataReply(string channel, string message_id, string sdata, int idata) { } + public void llCloseRemoteDataChannel(string channel) { } + public string llMD5String(string src, int nonce) + { + return OpenSim.Framework.Utilities.Util.Md5Hash(src + ":" + nonce.ToString()); + } + public void llSetPrimitiveParams(List rules) { } + public string llStringToBase64(string str) { return ""; } + public string llBase64ToString(string str) { return ""; } + public void llXorBase64Strings() { } + public void llRemoteDataSetRegion() { } + public double llLog10(double val) { return (double)Math.Log10(val); } + public double llLog(double val) { return (double)Math.Log(val); } + public List llGetAnimationList(string id) { return new List(); } + public void llSetParcelMusicURL(string url) { } + + public Axiom.Math.Vector3 llGetRootPosition() + { + throw new NotImplementedException("llGetRootPosition"); + //return m_root.AbsolutePosition; + } + + public Axiom.Math.Quaternion llGetRootRotation() + { + return new Axiom.Math.Quaternion(); + } + + public string llGetObjectDesc() { return ""; } + public void llSetObjectDesc(string desc) { } + public string llGetCreator() { return ""; } + public string llGetTimestamp() { return ""; } + public void llSetLinkAlpha(int linknumber, double alpha, int face) { } + public int llGetNumberOfPrims() { return 0; } + public string llGetNumberOfNotecardLines(string name) { return ""; } + public List llGetBoundingBox(string obj) { return new List(); } + public Axiom.Math.Vector3 llGetGeometricCenter() { return new Axiom.Math.Vector3(); } + public void llGetPrimitiveParams() { } + public string llIntegerToBase64(int number) { return ""; } + public int llBase64ToInteger(string str) { return 0; } + public double llGetGMTclock() { return 0; } + public string llGetSimulatorHostname() { return ""; } + public void llSetLocalRot(Axiom.Math.Quaternion rot) { } + public List llParseStringKeepNulls(string src, List seperators, List spacers) + { return new List(); } + public void llRezAtRoot(string inventory, Axiom.Math.Vector3 position, Axiom.Math.Vector3 velocity, Axiom.Math.Quaternion rot, int param) { } + public int llGetObjectPermMask(int mask) { return 0; } + public void llSetObjectPermMask(int mask, int value) { } + public void llGetInventoryPermMask(string item, int mask) { } + public void llSetInventoryPermMask(string item, int mask, int value) { } + public string llGetInventoryCreator(string item) { return ""; } + public void llOwnerSay(string msg) { } + public void llRequestSimulatorData(string simulator, int data) { } + public void llForceMouselook(int mouselook) { } + public double llGetObjectMass(string id) { return 0; } + public void llListReplaceList() { } + public void llLoadURL(string avatar_id, string message, string url) { } + public void llParcelMediaCommandList(List commandList) { } + public void llParcelMediaQuery() { } + + public int llModPow(int a, int b, int c) + { + Int64 tmp = 0; + Int64 val = Math.DivRem(Convert.ToInt64(Math.Pow(a, b)), c, out tmp); + + return Convert.ToInt32(tmp); + } + + public int llGetInventoryType(string name) { return 0; } + public void llSetPayPrice(int price, List quick_pay_buttons) { } + public Axiom.Math.Vector3 llGetCameraPos() { return new Axiom.Math.Vector3(); } + public Axiom.Math.Quaternion llGetCameraRot() { return new Axiom.Math.Quaternion(); } + public void llSetPrimURL() { } + public void llRefreshPrimURL() { } + public string llEscapeURL(string url) { return ""; } + public string llUnescapeURL(string url) { return ""; } + public void llMapDestination(string simname, Axiom.Math.Vector3 pos, Axiom.Math.Vector3 look_at) { } + public void llAddToLandBanList(string avatar, double hours) { } + public void llRemoveFromLandPassList(string avatar) { } + public void llRemoveFromLandBanList(string avatar) { } + public void llSetCameraParams(List rules) { } + public void llClearCameraParams() { } + public double llListStatistics(int operation, List src) { return 0; } + public int llGetUnixTime() + { + return OpenSim.Framework.Utilities.Util.UnixTimeSinceEpoch(); + } + public int llGetParcelFlags(Axiom.Math.Vector3 pos) { return 0; } + public int llGetRegionFlags() { return 0; } + public string llXorBase64StringsCorrect(string str1, string str2) { return ""; } + public void llHTTPRequest() { } + public void llResetLandBanList() { } + public void llResetLandPassList() { } + public int llGetParcelPrimCount(Axiom.Math.Vector3 pos, int category, int sim_wide) { return 0; } + public List llGetParcelPrimOwners(Axiom.Math.Vector3 pos) { return new List(); } + public int llGetObjectPrimCount(string object_id) { return 0; } + public int llGetParcelMaxPrims(Axiom.Math.Vector3 pos, int sim_wide) { return 0; } + public List llGetParcelDetails(Axiom.Math.Vector3 pos, List param) { return new List(); } + + + } +} diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index 7155b09b09..1d2689ddaa 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs @@ -58,7 +58,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { - Console.WriteLine("CurrentDomain_AssemblyResolve: " + args.Name); + //Console.WriteLine("CurrentDomain_AssemblyResolve: " + args.Name); return Assembly.GetExecutingAssembly().FullName == args.Name ? Assembly.GetExecutingAssembly() : null; } @@ -231,11 +231,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine //Console.WriteLine("Base directory: " + AppDomain.CurrentDomain.BaseDirectory); //LSL_BaseClass mbrt = (LSL_BaseClass)FreeAppDomain.CreateInstanceFromAndUnwrap(FileName, "SecondLife.Script"); - //Type mytype = mbrt.GetType(); - - - //Console.WriteLine("is proxy={0}", RemotingServices.IsTransparentProxy(mbrt)); diff --git a/prebuild.xml b/prebuild.xml index bfc8cd4a1b..7f4a45e691 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -937,6 +937,30 @@ + + + + ../../../../bin/ScriptEngines/ + + + + + ../../../../bin/ScriptEngines/ + + + + ../../../../bin/ + ../../../../bin/ScriptEngines/ + + + + + + + + + + @@ -962,6 +986,7 @@ + @@ -970,6 +995,7 @@ +