llList-commands from ldvoipeng, new Default.lsl from dalien

afrisby
Tedd Hansen 2007-08-26 21:21:21 +00:00
parent b9346844c1
commit 7e06df5f83
2 changed files with 187 additions and 62 deletions

View File

@ -37,7 +37,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
private string m_state = "default"; private string m_state = "default";
public string State() {
public string State()
{
return m_state; return m_state;
} }
@ -81,12 +83,17 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
return OpenSim.Framework.Utilities.Util.RandomClass.Next((int)mag); return OpenSim.Framework.Utilities.Util.RandomClass.Next((int)mag);
} }
} }
public int llFloor(double f) { return (int)Math.Floor(f); } public int llFloor(double f) { return (int)Math.Floor(f); }
public int llCeil(double f) { return (int)Math.Ceiling(f); } public int llCeil(double f) { return (int)Math.Ceiling(f); }
public int llRound(double f) { return (int)Math.Round(f, 3); } public int llRound(double f) { return (int)Math.Round(f, 3); }
//This next group are vector operations involving squaring and square root. ckrinke //This next group are vector operations involving squaring and square root. ckrinke
public double llVecMag(LSL_Types.Vector3 v) { return (v.X*v.X + v.Y*v.Y + v.Z*v.Z); } public double llVecMag(LSL_Types.Vector3 v)
{
return (v.X*v.X + v.Y*v.Y + v.Z*v.Z);
}
public LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v) public LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v)
{ {
double mag = v.X * v.X + v.Y * v.Y + v.Z * v.Z; double mag = v.X * v.X + v.Y * v.Y + v.Z * v.Z;
@ -120,8 +127,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
} }
public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v)
{ //this comes from from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions but is incomplete as of 8/19/07 {
float err = 0.00001f; //this comes from from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions but is incomplete as of 8/19/07
float err = 0.00001f;
double ax = Math.Sin(v.X / 2); double aw = Math.Cos(v.X / 2); double ax = Math.Sin(v.X / 2); double aw = Math.Cos(v.X / 2);
double by = Math.Sin(v.Y / 2); double bw = Math.Cos(v.Y / 2); double by = Math.Sin(v.Y / 2); double bw = Math.Cos(v.Y / 2);
double cz = Math.Sin(v.Z / 2); double cw = Math.Cos(v.Z / 2); double cz = Math.Sin(v.Z / 2); double cw = Math.Cos(v.Z / 2);
@ -160,6 +168,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
World.SimChat(Helpers.StringToField(text), World.SimChat(Helpers.StringToField(text),
0, m_host.AbsolutePosition, m_host.Name, m_host.UUID); 0, m_host.AbsolutePosition, m_host.Name, m_host.UUID);
} }
public void llSay(int channelID, string text) public void llSay(int channelID, string text)
{ {
//type for say is 1 //type for say is 1
@ -237,7 +246,12 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
public LSL_Types.Vector3 llGetAccel() { return new LSL_Types.Vector3(); } public LSL_Types.Vector3 llGetAccel() { return new LSL_Types.Vector3(); }
public LSL_Types.Vector3 llGetOmega() { return new LSL_Types.Vector3(); } public LSL_Types.Vector3 llGetOmega() { return new LSL_Types.Vector3(); }
public double llGetTimeOfDay() { return 0; } public double llGetTimeOfDay() { return 0; }
public double llGetWallclock() { return DateTime.Now.TimeOfDay.TotalSeconds; }
public double llGetWallclock()
{
return DateTime.Now.TimeOfDay.TotalSeconds;
}
public double llGetTime() { return 0; } public double llGetTime() { return 0; }
public void llResetTime() { } public void llResetTime() { }
public double llGetAndResetTime() { return 0; } public double llGetAndResetTime() { return 0; }
@ -263,11 +277,13 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
public void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Quaternion rot, int param) { } public void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Quaternion rot, int param) { }
public void llLookAt(LSL_Types.Vector3 target, double strength, double damping) { } public void llLookAt(LSL_Types.Vector3 target, double strength, double damping) { }
public void llStopLookAt() { } public void llStopLookAt() { }
public void llSetTimerEvent(double sec) public void llSetTimerEvent(double sec)
{ {
// Setting timer repeat // Setting timer repeat
m_ScriptEngine.myLSLLongCmdHandler.SetTimerEvent(m_localID, m_itemID, sec); m_ScriptEngine.myLSLLongCmdHandler.SetTimerEvent(m_localID, m_itemID, sec);
} }
public void llSleep(double sec) { System.Threading.Thread.Sleep((int)(sec * 1000)); } public void llSleep(double sec) { System.Threading.Thread.Sleep((int)(sec * 1000)); }
public double llGetMass() { return 0; } public double llGetMass() { return 0; }
public void llCollisionFilter(string name, string id, int accept) { } public void llCollisionFilter(string name, string id, int accept) { }
@ -281,10 +297,12 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
public void llInstantMessage(string user, string message) { } public void llInstantMessage(string user, string message) { }
public void llEmail(string address, string subject, string message) { } public void llEmail(string address, string subject, string message) { }
public void llGetNextEmail(string address, string subject) { } public void llGetNextEmail(string address, string subject) { }
public string llGetKey() public string llGetKey()
{ {
return m_host.UUID.ToStringHyphenated(); return m_host.UUID.ToStringHyphenated();
} }
public void llSetBuoyancy(double buoyancy) { } public void llSetBuoyancy(double buoyancy) { }
public void llSetHoverHeight(double height, int water, double tau) { } public void llSetHoverHeight(double height, int water, double tau) { }
public void llStopHover() { } public void llStopHover() { }
@ -362,19 +380,59 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
public LSL_Types.Vector3 llGetTextureOffset(int face) { return new LSL_Types.Vector3(); } public LSL_Types.Vector3 llGetTextureOffset(int face) { return new LSL_Types.Vector3(); }
public LSL_Types.Vector3 llGetTextureScale(int side) { return new LSL_Types.Vector3(); } public LSL_Types.Vector3 llGetTextureScale(int side) { return new LSL_Types.Vector3(); }
public double llGetTextureRot(int side) { return 0; } public double llGetTextureRot(int side) { return 0; }
public int llSubStringIndex(string source, string pattern) public int llSubStringIndex(string source, string pattern)
{ {
return source.IndexOf(pattern); return source.IndexOf(pattern);
} }
public string llGetOwnerKey(string id) { return ""; } public string llGetOwnerKey(string id) { return ""; }
public LSL_Types.Vector3 llGetCenterOfMass() { return new LSL_Types.Vector3(); } public LSL_Types.Vector3 llGetCenterOfMass() { return new LSL_Types.Vector3(); }
public List<string> llListSort(List<string> src, int stride, int ascending) public List<string> llListSort(List<string> src, int stride, int ascending)
{ return new List<string>(); } {
public int llGetListLength(List<string> src) { return 0; } //List<string> nlist = src.Sort();
public int llList2Integer(List<string> src, int index) { return 0; }
public double llList2double(List<string> src, int index) { return 0; } //if (ascending == 0)
public string llList2String(List<string> src, int index) { return ""; } //{
public string llList2Key(List<string> src, int index) { return ""; } //nlist.Reverse();
//}
//return nlist;
return new List<string>(); ;
}
public int llGetListLength(List<string> src)
{
return src.Count;
}
public int llList2Integer(List<string> src, int index)
{
return Convert.ToInt32(src[index]);
}
public double llList2Double(List<string> src, int index)
{
return Convert.ToDouble(src[index]);
}
public float llList2Float(List<string> src, int index)
{
return Convert.ToSingle(src[index]);
}
public string llList2String(List<string> src, int index)
{
return src[index];
}
public string llList2Key(List<string> src, int index)
{
//return OpenSim.Framework.Types.ToStringHyphenated(src[index]);
return "";
}
public LSL_Types.Vector3 llList2Vector(List<string> src, int index) public LSL_Types.Vector3 llList2Vector(List<string> src, int index)
{ return new LSL_Types.Vector3(); } { return new LSL_Types.Vector3(); }
public LSL_Types.Quaternion llList2Rot(List<string> src, int index) public LSL_Types.Quaternion llList2Rot(List<string> src, int index)
@ -391,19 +449,25 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
{ return new List<string>(); } { return new List<string>(); }
public List<string> llList2ListStrided(List<string> src, int start, int end, int stride) public List<string> llList2ListStrided(List<string> src, int start, int end, int stride)
{ return new List<string>(); } { return new List<string>(); }
public LSL_Types.Vector3 llGetRegionCorner() public LSL_Types.Vector3 llGetRegionCorner()
{ return new LSL_Types.Vector3(World.RegionInfo.RegionLocX * 256, World.RegionInfo.RegionLocY * 256, 0); } {
return new LSL_Types.Vector3(World.RegionInfo.RegionLocX * 256, World.RegionInfo.RegionLocY * 256, 0);
}
public List<string> llListInsertList(List<string> dest, List<string> src, int start) public List<string> llListInsertList(List<string> dest, List<string> src, int start)
{ return new List<string>(); } { return new List<string>(); }
public int llListFindList(List<string> src, List<string> test) { return 0; } public int llListFindList(List<string> src, List<string> test) { return 0; }
public string llGetObjectName() { return ""; } public string llGetObjectName() { return ""; }
public void llSetObjectName(string name) { } public void llSetObjectName(string name) { }
public string llGetDate() public string llGetDate()
{ {
DateTime date = DateTime.Now.ToUniversalTime(); DateTime date = DateTime.Now.ToUniversalTime();
string result = date.ToString("yyyy-MM-dd"); string result = date.ToString("yyyy-MM-dd");
return result; return result;
} }
public int llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir) { return 0; } public int llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir) { return 0; }
public int llGetAgentInfo(string id) { return 0; } public int llGetAgentInfo(string id) { return 0; }
public void llAdjustSoundVolume(double volume) { } public void llAdjustSoundVolume(double volume) { }
@ -454,7 +518,12 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
public void llDialog(string avatar, string message, List<string> buttons, int chat_channel) { } public void llDialog(string avatar, string message, List<string> buttons, int chat_channel) { }
public void llVolumeDetect(int detect) { } public void llVolumeDetect(int detect) { }
public void llResetOtherScript(string name) { } public void llResetOtherScript(string name) { }
public int llGetScriptState(string name) { return 0; }
public int llGetScriptState(string name)
{
return 0;
}
public void llRemoteLoadScript() { } public void llRemoteLoadScript() { }
public void llSetRemoteScriptAccessPin(int pin) { } public void llSetRemoteScriptAccessPin(int pin) { }
public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param) { } public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param) { }

View File

@ -1,48 +1,104 @@
// autogenerated by generate_default_lsl.rb
integer touch_count = 0; integer touch_count = 0;
to_integer(float num)
{
llSay(0, num + " floor: " + llFloor(num));
llSay(0, num + " ceiling: " + llCeil(num));
llSay(0, num + " round: " + llRound(num));
}
default { default {
state_entry() touch_start(integer total_number) {
{ float angle45 = PI/4.0; // 45 degrees
llSay(0, "Hello, Avatar!"); float angle30 = PI/6.0; // 30 degrees
float sqrt2 = llSqrt(2.0);
if((llFabs(-1.5) != 1.5) || (llFabs(10.4) != 10.4)) {
llShout(0, "Houston, we have a big problem! llFabs() does not work! Need it for other tests!");
} }
llSetText("This is a text by llSetText", <1,0,0>, 1);
touch_start(integer total_number) llWhisper(0, "llWhispering a few random numbers between 0 and 100: " + llFrand(100) + "," + llFrand(100) + "," + llFrand(100) + "," + llFrand(100));
{ llShout(0, "llShouting the unix time: " + llGetUnixTime() + ", and region corner: " + llGetRegionCorner());
float angle45 = PI/4.0; // 45 degrees llShout(1, "Shouting a random number between 0 and 100 on the channel#1: " + llFrand(100));
float angle30 = PI/6.0; // 30 degrees if (llAbs(-1) != 1) {
float sqrt2 = llSqrt(2.0); llSay(0, "Assert failed: llAbs(-1) != 1");
float deltaCos = llCos(angle45) - sqrt2/2.0;
float deltaSin = llSin(angle30) - 0.5;
float deltaAtan = llAtan2(1, 1)*4 - PI;
float deltaTan = llTan(PI);
llSay(0, "deltaSin: " + deltaSin);
llShout(0, "deltaCos: " + deltaCos);
llWhisper(0, "deltaTan: " + deltaTan);
llWhisper(0, "deltaAtan: " + deltaAtan);
llSay(0, "Fabs(power(2^16)): " + llFabs(0-llPow(2, 16)));
llSay(0, "Abs(-1): " + llAbs(-1));
llSay(0, "One random(100): " + llFrand(100));
llSay(0, "Two random(100): " + llFrand(100));
llSay(0, "Three random(100): " + llFrand(100));
llSay(0, "Four random(100.0): " + llFrand(100.0));
llWhisper(0, "The unix time is: " + llGetUnixTime());
to_integer(2.4);
to_integer(2.5);
to_integer(2.6);
to_integer(3.51);
llSay(0, "Should be 112abd47ceaae1c05a826828650434a6: " + llMD5String("Hello, Avatar!", 0));
llSay(0, "Should be 9: " +llModPow(2, 16, 37));
llSay(0, "Region corner: " + (string)llGetRegionCorner());
llSetText("This is a text", <1,0,0>, 1);
touch_count++;
llSay(0, "Object was touched. Touch count: " + touch_count);
} }
if (llAbs(10) != 10) {
llSay(0, "Assert failed: llAbs(10) != 10");
}
if (llFabs((llCos(angle45) - sqrt2/2.0) - 0) > 0.000001) {
llSay(0, "Assert failed: (llCos(angle45) - sqrt2/2.0) differs from 0 by more than 0.000001");
llSay(0, " --> The actual result: " + (llCos(angle45) - sqrt2/2.0));
}
if (llFabs((llSin(angle30) - 0.5) - 0) > 0.000001) {
llSay(0, "Assert failed: (llSin(angle30) - 0.5) differs from 0 by more than 0.000001");
llSay(0, " --> The actual result: " + (llSin(angle30) - 0.5));
}
if (llFabs((llAtan2(1, 1)*4 - PI) - 0) > 0.000001) {
llSay(0, "Assert failed: (llAtan2(1, 1)*4 - PI) differs from 0 by more than 0.000001");
llSay(0, " --> The actual result: " + (llAtan2(1, 1)*4 - PI));
}
if (llFabs((llTan(PI)) - 0) > 0.000001) {
llSay(0, "Assert failed: (llTan(PI)) differs from 0 by more than 0.000001");
llSay(0, " --> The actual result: " + (llTan(PI)));
}
if (llFloor(2.4) != 2) {
llSay(0, "Assert failed: llFloor(2.4) != 2");
}
if (llCeil(2.4) != 3) {
llSay(0, "Assert failed: llCeil(2.4) != 3");
}
if (llRound(2.4) != 2) {
llSay(0, "Assert failed: llRound(2.4) != 2");
}
if (llFloor(2.5) != 2) {
llSay(0, "Assert failed: llFloor(2.5) != 2");
}
if (llCeil(2.5) != 3) {
llSay(0, "Assert failed: llCeil(2.5) != 3");
}
if (llRound(2.5) != 3) {
llSay(0, "Assert failed: llRound(2.5) != 3");
}
if (llFloor(2.51) != 2) {
llSay(0, "Assert failed: llFloor(2.51) != 2");
}
if (llCeil(2.51) != 3) {
llSay(0, "Assert failed: llCeil(2.51) != 3");
}
if (llRound(2.51) != 3) {
llSay(0, "Assert failed: llRound(2.51) != 3");
}
if (llFloor(3.49) != 3) {
llSay(0, "Assert failed: llFloor(3.49) != 3");
}
if (llCeil(3.49) != 4) {
llSay(0, "Assert failed: llCeil(3.49) != 4");
}
if (llRound(3.49) != 3) {
llSay(0, "Assert failed: llRound(3.49) != 3");
}
if (llFloor(3.5000001) != 3) {
llSay(0, "Assert failed: llFloor(3.5000001) != 3");
}
if (llCeil(3.5000001) != 4) {
llSay(0, "Assert failed: llCeil(3.5000001) != 4");
}
if (llRound(3.5000001) != 4) {
llSay(0, "Assert failed: llRound(3.5000001) != 4");
}
if (llFloor(3.51) != 3) {
llSay(0, "Assert failed: llFloor(3.51) != 3");
}
if (llCeil(3.51) != 4) {
llSay(0, "Assert failed: llCeil(3.51) != 4");
}
if (llRound(3.51) != 4) {
llSay(0, "Assert failed: llRound(3.51) != 4");
}
if ((llFabs(0-llPow(2, 16))) != 65536) {
llSay(0, "Assert failed: (llFabs(0-llPow(2, 16))) != 65536");
}
if (llMD5String("Hello, Avatar!",0) != "112abd47ceaae1c05a826828650434a6") {
llSay(0, "Assert failed: llMD5String('Hello, Avatar!',0) != '112abd47ceaae1c05a826828650434a6'");
}
if (llModPow(2, 16, 37) != 9) {
llSay(0, "Assert failed: llModPow(2, 16, 37) != 9");
}
touch_count++;
llSay(0, "Object was touched. Touch count: " + touch_count);
}
} }