mirror of
https://github.com/opensim/opensim.git
synced 2026-06-01 23:45:44 +08:00
* Adding LSL stuff for Tedd_, implementing LSL-style functions in ScriptAPI.cs, implementing server event callbacks in ScriptInterpretedEvents.cs
* Added Tedd_'s LSL compiler thingie, although it cannot be referenced yet.
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Key = libsecondlife.LLUUID;
|
||||
using Rotation = libsecondlife.LLQuaternion;
|
||||
using Vector = libsecondlife.LLVector3;
|
||||
|
||||
|
||||
using OpenSim.Region.Environment.Scenes;
|
||||
|
||||
@@ -21,5 +25,111 @@ namespace OpenSim.Region.Environment.Scripting
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// LSL Compatibility below
|
||||
// remap LL* functions to OS*
|
||||
public int osAbs(int val)
|
||||
{
|
||||
return Math.Abs(val);
|
||||
}
|
||||
|
||||
public float osAcos(float val)
|
||||
{
|
||||
return (float)Math.Acos(val);
|
||||
}
|
||||
|
||||
[Obsolete("Unimplemented")]
|
||||
public void osAddToLandPassList(Key avatar, float hours)
|
||||
{
|
||||
OpenSim.Framework.Console.MainLog.Instance.Warn("Unimplemented function called by script: osAddToLandPassList(Key avatar, float hours)");
|
||||
return;
|
||||
}
|
||||
|
||||
[Obsolete("Unimplemented")]
|
||||
public void osAdjustSoundVolume(float volume)
|
||||
{
|
||||
OpenSim.Framework.Console.MainLog.Instance.Warn("Unimplemented function called by script: osAdjustSoundVolume(float volume)");
|
||||
return;
|
||||
}
|
||||
|
||||
[Obsolete("Unimplemented")]
|
||||
public void osAllowInventoryDrop(int add)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
[Obsolete("Unimplemented")]
|
||||
public float osAngleBetween(Rotation a, Rotation b)
|
||||
{
|
||||
Axiom.Math.Quaternion axA = new Axiom.Math.Quaternion(a.W, a.X, a.Y, a.Z);
|
||||
Axiom.Math.Quaternion axB = new Axiom.Math.Quaternion(b.W, b.X, b.Y, b.Z);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
[Obsolete("Unimplemented")]
|
||||
public void osApplyImpulse(Vector force, int local)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
[Obsolete("Unimplemented")]
|
||||
public void osApplyRotationalImpulse(Vector force, int local)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public float osAsin(float val)
|
||||
{
|
||||
return (float)Math.Asin(val);
|
||||
}
|
||||
|
||||
public float osAtan2(float x, float y)
|
||||
{
|
||||
return (float)Math.Atan2(x, y);
|
||||
}
|
||||
|
||||
[Obsolete("Unimplemented")]
|
||||
public void osAttachToAvatar(Key avatar, int attachmentPoint)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
[Obsolete("Unimplemented")]
|
||||
public Key osAvatarOnSitTarget()
|
||||
{
|
||||
return Key.Zero;
|
||||
}
|
||||
|
||||
public Rotation osAxes2Rot(Vector fwd, Vector left, Vector up)
|
||||
{
|
||||
Axiom.Math.Quaternion axQ = new Axiom.Math.Quaternion();
|
||||
Axiom.Math.Vector3 axFwd = new Axiom.Math.Vector3(fwd.X, fwd.Y, fwd.Z);
|
||||
Axiom.Math.Vector3 axLeft = new Axiom.Math.Vector3(left.X, left.Y, left.Z);
|
||||
Axiom.Math.Vector3 axUp = new Axiom.Math.Vector3(up.X, up.Y, up.Z);
|
||||
|
||||
axQ.FromAxes(axFwd, axLeft, axUp);
|
||||
|
||||
return new Rotation(axQ.x, axQ.y, axQ.z, axQ.w);
|
||||
}
|
||||
|
||||
public Rotation osAxisAngle2Rot(Vector axis, float angle)
|
||||
{
|
||||
Axiom.Math.Quaternion axQ = Axiom.Math.Quaternion.FromAngleAxis(angle, new Axiom.Math.Vector3(axis.X, axis.Y, axis.Z));
|
||||
|
||||
return new Rotation(axQ.x, axQ.y, axQ.z, axQ.w);
|
||||
}
|
||||
|
||||
public string osBase64ToString(string str)
|
||||
{
|
||||
Encoding enc = System.Text.Encoding.UTF8;
|
||||
return enc.GetString(Convert.FromBase64String(str));
|
||||
}
|
||||
|
||||
[Obsolete("Unimplemented")]
|
||||
public void osBreakAllLinks()
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user