diff options
author | Tedd Hansen | 2007-09-15 14:57:07 +0000 |
---|---|---|
committer | Tedd Hansen | 2007-09-15 14:57:07 +0000 |
commit | 1e0f9604a6f5deabc85271a4fea0c558826bdbec (patch) | |
tree | fd87d250106165b1ff9a2bd4fa87285f00b7ac76 /OpenSim | |
parent | Prevent the crash due to exception in system ReadLine that I saw today (diff) | |
download | opensim-SC-1e0f9604a6f5deabc85271a4fea0c558826bdbec.zip opensim-SC-1e0f9604a6f5deabc85271a4fea0c558826bdbec.tar.gz opensim-SC-1e0f9604a6f5deabc85271a4fea0c558826bdbec.tar.bz2 opensim-SC-1e0f9604a6f5deabc85271a4fea0c558826bdbec.tar.xz |
Will display error in main chat if unsupported llFunction is used.
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs | 1601 |
1 files changed, 787 insertions, 814 deletions
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 index fe20e99..3404bac 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs | |||
@@ -1,814 +1,787 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | using libsecondlife; | 4 | using libsecondlife; |
5 | using OpenSim.Region.Environment.Scenes; | 5 | using OpenSim.Region.Environment.Scenes; |
6 | using OpenSim.Region.Environment.Scenes.Scripting; | 6 | using OpenSim.Region.Environment.Scenes.Scripting; |
7 | using OpenSim.Region.Environment.Interfaces; | 7 | using OpenSim.Region.Environment.Interfaces; |
8 | using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler; | 8 | using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler; |
9 | using OpenSim.Region.ScriptEngine.Common; | 9 | using OpenSim.Region.ScriptEngine.Common; |
10 | using OpenSim.Framework.Console; | 10 | using OpenSim.Framework.Console; |
11 | using OpenSim.Framework.Utilities; | 11 | using OpenSim.Framework.Utilities; |
12 | using System.Runtime.Remoting.Lifetime; | 12 | using System.Runtime.Remoting.Lifetime; |
13 | 13 | ||
14 | namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler | 14 | namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler |
15 | { | 15 | { |
16 | 16 | ||
17 | /// <summary> | 17 | /// <summary> |
18 | /// Contains all LSL ll-functions. This class will be in Default AppDomain. | 18 | /// Contains all LSL ll-functions. This class will be in Default AppDomain. |
19 | /// </summary> | 19 | /// </summary> |
20 | public class LSL_BuiltIn_Commands: MarshalByRefObject, LSL_BuiltIn_Commands_Interface | 20 | public class LSL_BuiltIn_Commands : MarshalByRefObject, LSL_BuiltIn_Commands_Interface |
21 | { | 21 | { |
22 | 22 | ||
23 | private System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); | 23 | private System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); |
24 | private ScriptEngine m_ScriptEngine; | 24 | private ScriptEngine m_ScriptEngine; |
25 | private SceneObjectPart m_host; | 25 | private SceneObjectPart m_host; |
26 | private uint m_localID; | 26 | private uint m_localID; |
27 | private LLUUID m_itemID; | 27 | private LLUUID m_itemID; |
28 | 28 | private bool throwErrorOnNotImplemented = true; | |
29 | public LSL_BuiltIn_Commands(ScriptEngine ScriptEngine, SceneObjectPart host, uint localID, LLUUID itemID) | 29 | |
30 | { | 30 | public LSL_BuiltIn_Commands(ScriptEngine ScriptEngine, SceneObjectPart host, uint localID, LLUUID itemID) |
31 | m_ScriptEngine = ScriptEngine; | 31 | { |
32 | m_host = host; | 32 | m_ScriptEngine = ScriptEngine; |
33 | m_localID = localID; | 33 | m_host = host; |
34 | m_itemID = itemID; | 34 | m_localID = localID; |
35 | 35 | m_itemID = itemID; | |
36 | 36 | ||
37 | //MainLog.Instance.Notice("ScriptEngine", "LSL_BaseClass.Start() called. Hosted by [" + m_host.Name + ":" + m_host.UUID + "@" + m_host.AbsolutePosition + "]"); | 37 | |
38 | } | 38 | //MainLog.Instance.Notice("ScriptEngine", "LSL_BaseClass.Start() called. Hosted by [" + m_host.Name + ":" + m_host.UUID + "@" + m_host.AbsolutePosition + "]"); |
39 | 39 | } | |
40 | 40 | ||
41 | private string m_state = "default"; | 41 | |
42 | 42 | private string m_state = "default"; | |
43 | public string State() | 43 | |
44 | { | 44 | public string State() |
45 | return m_state; | 45 | { |
46 | } | 46 | return m_state; |
47 | 47 | } | |
48 | // Object never expires | 48 | |
49 | public override Object InitializeLifetimeService() | 49 | // Object never expires |
50 | { | 50 | public override Object InitializeLifetimeService() |
51 | //Console.WriteLine("LSL_BuiltIn_Commands: InitializeLifetimeService()"); | 51 | { |
52 | // return null; | 52 | //Console.WriteLine("LSL_BuiltIn_Commands: InitializeLifetimeService()"); |
53 | ILease lease = (ILease)base.InitializeLifetimeService(); | 53 | // return null; |
54 | 54 | ILease lease = (ILease)base.InitializeLifetimeService(); | |
55 | if (lease.CurrentState == LeaseState.Initial) | 55 | |
56 | { | 56 | if (lease.CurrentState == LeaseState.Initial) |
57 | lease.InitialLeaseTime = TimeSpan.Zero; // TimeSpan.FromMinutes(1); | 57 | { |
58 | // lease.SponsorshipTimeout = TimeSpan.FromMinutes(2); | 58 | lease.InitialLeaseTime = TimeSpan.Zero; // TimeSpan.FromMinutes(1); |
59 | // lease.RenewOnCallTime = TimeSpan.FromSeconds(2); | 59 | // lease.SponsorshipTimeout = TimeSpan.FromMinutes(2); |
60 | } | 60 | // lease.RenewOnCallTime = TimeSpan.FromSeconds(2); |
61 | return lease; | 61 | } |
62 | } | 62 | return lease; |
63 | 63 | } | |
64 | 64 | ||
65 | public Scene World | 65 | |
66 | { | 66 | public Scene World |
67 | get { return m_ScriptEngine.World; } | 67 | { |
68 | } | 68 | get { return m_ScriptEngine.World; } |
69 | 69 | } | |
70 | //These are the implementations of the various ll-functions used by the LSL scripts. | 70 | |
71 | //starting out, we use the System.Math library for trig functions. - ckrinke 8-14-07 | 71 | //These are the implementations of the various ll-functions used by the LSL scripts. |
72 | public double llSin(double f) { return (double)Math.Sin(f); } | 72 | //starting out, we use the System.Math library for trig functions. - ckrinke 8-14-07 |
73 | public double llCos(double f) { return (double)Math.Cos(f); } | 73 | public double llSin(double f) { return (double)Math.Sin(f); } |
74 | public double llTan(double f) { return (double)Math.Tan(f); } | 74 | public double llCos(double f) { return (double)Math.Cos(f); } |
75 | public double llAtan2(double x, double y) { return (double)Math.Atan2(y, x); } | 75 | public double llTan(double f) { return (double)Math.Tan(f); } |
76 | public double llSqrt(double f) { return (double)Math.Sqrt(f); } | 76 | public double llAtan2(double x, double y) { return (double)Math.Atan2(y, x); } |
77 | public double llPow(double fbase, double fexponent) { return (double)Math.Pow(fbase, fexponent); } | 77 | public double llSqrt(double f) { return (double)Math.Sqrt(f); } |
78 | public int llAbs(int i) { return (int)Math.Abs(i); } | 78 | public double llPow(double fbase, double fexponent) { return (double)Math.Pow(fbase, fexponent); } |
79 | public double llFabs(double f) { return (double)Math.Abs(f); } | 79 | public int llAbs(int i) { return (int)Math.Abs(i); } |
80 | 80 | public double llFabs(double f) { return (double)Math.Abs(f); } | |
81 | public double llFrand(double mag) | 81 | |
82 | { | 82 | public double llFrand(double mag) |
83 | lock (Util.RandomClass) | 83 | { |
84 | { | 84 | lock (Util.RandomClass) |
85 | return Util.RandomClass.Next((int)mag); | 85 | { |
86 | } | 86 | return Util.RandomClass.Next((int)mag); |
87 | } | 87 | } |
88 | 88 | } | |
89 | public int llFloor(double f) { return (int)Math.Floor(f); } | 89 | |
90 | public int llCeil(double f) { return (int)Math.Ceiling(f); } | 90 | public int llFloor(double f) { return (int)Math.Floor(f); } |
91 | public int llRound(double f) { return (int)Math.Round(f, 3); } | 91 | public int llCeil(double f) { return (int)Math.Ceiling(f); } |
92 | 92 | public int llRound(double f) { return (int)Math.Round(f, 3); } | |
93 | //This next group are vector operations involving squaring and square root. ckrinke | 93 | |
94 | public double llVecMag(LSL_Types.Vector3 v) | 94 | //This next group are vector operations involving squaring and square root. ckrinke |
95 | { | 95 | public double llVecMag(LSL_Types.Vector3 v) |
96 | return (v.X*v.X + v.Y*v.Y + v.Z*v.Z); | 96 | { |
97 | } | 97 | return (v.X * v.X + v.Y * v.Y + v.Z * v.Z); |
98 | 98 | } | |
99 | public LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v) | 99 | |
100 | { | 100 | public LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v) |
101 | double mag = v.X * v.X + v.Y * v.Y + v.Z * v.Z; | 101 | { |
102 | LSL_Types.Vector3 nor = new LSL_Types.Vector3(); | 102 | double mag = v.X * v.X + v.Y * v.Y + v.Z * v.Z; |
103 | nor.X = v.X / mag; nor.Y = v.Y / mag; nor.Z = v.Z / mag; | 103 | LSL_Types.Vector3 nor = new LSL_Types.Vector3(); |
104 | return nor; | 104 | nor.X = v.X / mag; nor.Y = v.Y / mag; nor.Z = v.Z / mag; |
105 | } | 105 | return nor; |
106 | 106 | } | |
107 | public double llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b) | 107 | |
108 | { | 108 | public double llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b) |
109 | double dx = a.X - b.X; double dy = a.Y - b.Y; double dz = a.Z - b.Z; | 109 | { |
110 | return Math.Sqrt(dx * dx + dy * dy + dz * dz); | 110 | double dx = a.X - b.X; double dy = a.Y - b.Y; double dz = a.Z - b.Z; |
111 | } | 111 | return Math.Sqrt(dx * dx + dy * dy + dz * dz); |
112 | 112 | } | |
113 | //Now we start getting into quaternions which means sin/cos, matrices and vectors. ckrinke | 113 | |
114 | public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r) | 114 | //Now we start getting into quaternions which means sin/cos, matrices and vectors. ckrinke |
115 | { | 115 | public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r) |
116 | //This implementation is from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions. ckrinke | 116 | { |
117 | LSL_Types.Quaternion t = new LSL_Types.Quaternion(r.X * r.X, r.Y * r.Y, r.Z * r.Z, r.R * r.R); | 117 | //This implementation is from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions. ckrinke |
118 | double m = (t.X + t.Y + t.Z + t.R); | 118 | LSL_Types.Quaternion t = new LSL_Types.Quaternion(r.X * r.X, r.Y * r.Y, r.Z * r.Z, r.R * r.R); |
119 | if (m == 0) return new LSL_Types.Vector3(); | 119 | double m = (t.X + t.Y + t.Z + t.R); |
120 | double n = 2 * (r.Y * r.R + r.X * r.Z); | 120 | if (m == 0) return new LSL_Types.Vector3(); |
121 | double p = m * m - n * n; | 121 | double n = 2 * (r.Y * r.R + r.X * r.Z); |
122 | if (p > 0) | 122 | double p = m * m - n * n; |
123 | return new LSL_Types.Vector3(Math.Atan2(2.0 * (r.X*r.R - r.Y*r.Z),(-t.X - t.Y + t.Z + t.R)), | 123 | if (p > 0) |
124 | Math.Atan2(n,Math.Sqrt(p)), Math.Atan2(2.0 * (r.Z*r.R - r.X*r.Y),( t.X - t.Y - t.Z + t.R))); | 124 | return new LSL_Types.Vector3(Math.Atan2(2.0 * (r.X * r.R - r.Y * r.Z), (-t.X - t.Y + t.Z + t.R)), |
125 | else if(n>0) | 125 | Math.Atan2(n, Math.Sqrt(p)), Math.Atan2(2.0 * (r.Z * r.R - r.X * r.Y), (t.X - t.Y - t.Z + t.R))); |
126 | return new LSL_Types.Vector3( 0.0, Math.PI/2, Math.Atan2((r.Z*r.R + r.X*r.Y), 0.5 - t.X - t.Z)); | 126 | else if (n > 0) |
127 | else | 127 | return new LSL_Types.Vector3(0.0, Math.PI / 2, Math.Atan2((r.Z * r.R + r.X * r.Y), 0.5 - t.X - t.Z)); |
128 | return new LSL_Types.Vector3( 0.0, -Math.PI/2, Math.Atan2((r.Z*r.R + r.X*r.Y), 0.5 - t.X - t.Z)); | 128 | else |
129 | } | 129 | return new LSL_Types.Vector3(0.0, -Math.PI / 2, Math.Atan2((r.Z * r.R + r.X * r.Y), 0.5 - t.X - t.Z)); |
130 | 130 | } | |
131 | public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) | 131 | |
132 | { | 132 | public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) |
133 | //this comes from from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions but is incomplete as of 8/19/07 | 133 | { |
134 | float err = 0.00001f; | 134 | //this comes from from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions but is incomplete as of 8/19/07 |
135 | double ax = Math.Sin(v.X / 2); double aw = Math.Cos(v.X / 2); | 135 | float err = 0.00001f; |
136 | double by = Math.Sin(v.Y / 2); double bw = Math.Cos(v.Y / 2); | 136 | double ax = Math.Sin(v.X / 2); double aw = Math.Cos(v.X / 2); |
137 | double cz = Math.Sin(v.Z / 2); double cw = Math.Cos(v.Z / 2); | 137 | double by = Math.Sin(v.Y / 2); double bw = Math.Cos(v.Y / 2); |
138 | LSL_Types.Quaternion a1 = new LSL_Types.Quaternion(0.0, 0.0, cz, cw); | 138 | double cz = Math.Sin(v.Z / 2); double cw = Math.Cos(v.Z / 2); |
139 | LSL_Types.Quaternion a2 = new LSL_Types.Quaternion(0.0, by, 0.0, bw); | 139 | LSL_Types.Quaternion a1 = new LSL_Types.Quaternion(0.0, 0.0, cz, cw); |
140 | LSL_Types.Quaternion a3 = new LSL_Types.Quaternion(ax, 0.0, 0.0, aw); | 140 | LSL_Types.Quaternion a2 = new LSL_Types.Quaternion(0.0, by, 0.0, bw); |
141 | LSL_Types.Quaternion a = new LSL_Types.Quaternion(); | 141 | LSL_Types.Quaternion a3 = new LSL_Types.Quaternion(ax, 0.0, 0.0, aw); |
142 | //This multiplication doesnt compile, yet. a = a1 * a2 * a3; | 142 | LSL_Types.Quaternion a = new LSL_Types.Quaternion(); |
143 | LSL_Types.Quaternion b = new LSL_Types.Quaternion(ax * bw * cw + aw * by * cz, | 143 | //This multiplication doesnt compile, yet. a = a1 * a2 * a3; |
144 | aw * by * cw - ax * bw * cz, aw * bw * cz + ax * by * cw, aw * bw * cw - ax * by * cz); | 144 | LSL_Types.Quaternion b = new LSL_Types.Quaternion(ax * bw * cw + aw * by * cz, |
145 | LSL_Types.Quaternion c = new LSL_Types.Quaternion(); | 145 | aw * by * cw - ax * bw * cz, aw * bw * cz + ax * by * cw, aw * bw * cw - ax * by * cz); |
146 | //This addition doesnt compile yet c = a + b; | 146 | LSL_Types.Quaternion c = new LSL_Types.Quaternion(); |
147 | LSL_Types.Quaternion d = new LSL_Types.Quaternion(); | 147 | //This addition doesnt compile yet c = a + b; |
148 | //This addition doesnt compile yet d = a - b; | 148 | LSL_Types.Quaternion d = new LSL_Types.Quaternion(); |
149 | if ((Math.Abs(c.X) > err && Math.Abs(d.X) > err) || | 149 | //This addition doesnt compile yet d = a - b; |
150 | (Math.Abs(c.Y) > err && Math.Abs(d.Y) > err) || | 150 | if ((Math.Abs(c.X) > err && Math.Abs(d.X) > err) || |
151 | (Math.Abs(c.Z) > err && Math.Abs(d.Z) > err) || | 151 | (Math.Abs(c.Y) > err && Math.Abs(d.Y) > err) || |
152 | (Math.Abs(c.R) > err && Math.Abs(d.R) > err)) | 152 | (Math.Abs(c.Z) > err && Math.Abs(d.Z) > err) || |
153 | { | 153 | (Math.Abs(c.R) > err && Math.Abs(d.R) > err)) |
154 | //return a new Quaternion that is null until I figure this out | 154 | { |
155 | // return b; | 155 | //return a new Quaternion that is null until I figure this out |
156 | // return a; | 156 | // return b; |
157 | } | 157 | // return a; |
158 | return new LSL_Types.Quaternion(); | 158 | } |
159 | } | 159 | return new LSL_Types.Quaternion(); |
160 | 160 | } | |
161 | public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up) { return new LSL_Types.Quaternion(); } | 161 | |
162 | public LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); } | 162 | public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up) { return new LSL_Types.Quaternion(); } |
163 | public LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); } | 163 | public LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); } |
164 | public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); } | 164 | public LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); } |
165 | public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 start, LSL_Types.Vector3 end) { return new LSL_Types.Quaternion(); } | 165 | public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); } |
166 | 166 | public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 start, LSL_Types.Vector3 end) { return new LSL_Types.Quaternion(); } | |
167 | public void llWhisper(int channelID, string text) | 167 | |
168 | { | 168 | public void llWhisper(int channelID, string text) |
169 | //type for whisper is 0 | 169 | { |
170 | World.SimChat(Helpers.StringToField(text), | 170 | //type for whisper is 0 |
171 | 0, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID); | 171 | World.SimChat(Helpers.StringToField(text), |
172 | } | 172 | 0, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID); |
173 | 173 | } | |
174 | public void llSay(int channelID, string text) | 174 | |
175 | { | 175 | public void llSay(int channelID, string text) |
176 | //type for say is 1 | 176 | { |
177 | 177 | //type for say is 1 | |
178 | World.SimChat(Helpers.StringToField(text), | 178 | |
179 | 1, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID); | 179 | World.SimChat(Helpers.StringToField(text), |
180 | } | 180 | 1, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID); |
181 | 181 | } | |
182 | public void llShout(int channelID, string text) | 182 | |
183 | { | 183 | public void llShout(int channelID, string text) |
184 | //type for shout is 2 | 184 | { |
185 | World.SimChat(Helpers.StringToField(text), | 185 | //type for shout is 2 |
186 | 2, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID); | 186 | World.SimChat(Helpers.StringToField(text), |
187 | } | 187 | 2, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID); |
188 | 188 | } | |
189 | public int llListen(int channelID, string name, string ID, string msg) { return 0; } | 189 | |
190 | public void llListenControl(int number, int active) { return; } | 190 | public int llListen(int channelID, string name, string ID, string msg) { NotImplemented("llListen"); return 0; } |
191 | public void llListenRemove(int number) { return; } | 191 | public void llListenControl(int number, int active) { NotImplemented("llListenControl"); return; } |
192 | public void llSensor(string name, string id, int type, double range, double arc) { return; } | 192 | public void llListenRemove(int number) { NotImplemented("llListenRemove"); return; } |
193 | public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate) { return; } | 193 | public void llSensor(string name, string id, int type, double range, double arc) { NotImplemented("llSensor"); return; } |
194 | public void llSensorRemove() { return; } | 194 | public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate) { NotImplemented("llSensorRepeat"); return; } |
195 | public string llDetectedName(int number) { return ""; } | 195 | public void llSensorRemove() { NotImplemented("llSensorRemove"); return; } |
196 | public string llDetectedKey(int number) { return ""; } | 196 | public string llDetectedName(int number) { NotImplemented("llDetectedName"); return ""; } |
197 | public string llDetectedOwner(int number) { return ""; } | 197 | public string llDetectedKey(int number) { NotImplemented("llDetectedKey"); return ""; } |
198 | public int llDetectedType(int number) { return 0; } | 198 | public string llDetectedOwner(int number) { NotImplemented("llDetectedOwner"); return ""; } |
199 | public LSL_Types.Vector3 llDetectedPos(int number) { return new LSL_Types.Vector3(); } | 199 | public int llDetectedType(int number) { NotImplemented("llDetectedType"); return 0; } |
200 | public LSL_Types.Vector3 llDetectedVel(int number) { return new LSL_Types.Vector3(); } | 200 | public LSL_Types.Vector3 llDetectedPos(int number) { NotImplemented("llDetectedPos"); return new LSL_Types.Vector3(); } |
201 | public LSL_Types.Vector3 llDetectedGrab(int number) { return new LSL_Types.Vector3(); } | 201 | public LSL_Types.Vector3 llDetectedVel(int number) { NotImplemented("llDetectedVel"); return new LSL_Types.Vector3(); } |
202 | public LSL_Types.Quaternion llDetectedRot(int number) { return new LSL_Types.Quaternion(); } | 202 | public LSL_Types.Vector3 llDetectedGrab(int number) { NotImplemented("llDetectedGrab"); return new LSL_Types.Vector3(); } |
203 | public int llDetectedGroup(int number) { return 0; } | 203 | public LSL_Types.Quaternion llDetectedRot(int number) { NotImplemented("llDetectedRot"); return new LSL_Types.Quaternion(); } |
204 | public int llDetectedLinkNumber(int number) { return 0; } | 204 | public int llDetectedGroup(int number) { NotImplemented("llDetectedGroup"); return 0; } |
205 | public void llDie() { return; } | 205 | public int llDetectedLinkNumber(int number) { NotImplemented("llDetectedLinkNumber"); return 0; } |
206 | public double llGround(LSL_Types.Vector3 offset) { return 0; } | 206 | public void llDie() { NotImplemented("llDie"); return; } |
207 | public double llCloud(LSL_Types.Vector3 offset) { return 0; } | 207 | public double llGround(LSL_Types.Vector3 offset) { NotImplemented("llGround"); return 0; } |
208 | public LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset) { return new LSL_Types.Vector3(); } | 208 | public double llCloud(LSL_Types.Vector3 offset) { NotImplemented("llCloud"); return 0; } |
209 | public void llSetStatus(int status, int value) { return; } | 209 | public LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset) { NotImplemented("llWind"); return new LSL_Types.Vector3(); } |
210 | public int llGetStatus(int status) { return 0; } | 210 | public void llSetStatus(int status, int value) { NotImplemented("llSetStatus"); return; } |
211 | 211 | public int llGetStatus(int status) { NotImplemented("llGetStatus"); return 0; } | |
212 | public void llSetScale(LSL_Types.Vector3 scale) | 212 | |
213 | { | 213 | public void llSetScale(LSL_Types.Vector3 scale) |
214 | // TODO: this needs to trigger a persistance save as well | 214 | { |
215 | LLVector3 tmp = m_host.Scale; | 215 | // TODO: this needs to trigger a persistance save as well |
216 | tmp.X = (float)scale.X; | 216 | LLVector3 tmp = m_host.Scale; |
217 | tmp.Y = (float)scale.Y; | 217 | tmp.X = (float)scale.X; |
218 | tmp.Z = (float)scale.Z; | 218 | tmp.Y = (float)scale.Y; |
219 | m_host.Scale = tmp; | 219 | tmp.Z = (float)scale.Z; |
220 | return; | 220 | m_host.Scale = tmp; |
221 | } | 221 | return; |
222 | public LSL_Types.Vector3 llGetScale() | 222 | } |
223 | { | 223 | public LSL_Types.Vector3 llGetScale() |
224 | return new LSL_Types.Vector3(m_host.Scale.X, m_host.Scale.Y, m_host.Scale.Z); | 224 | { |
225 | } | 225 | return new LSL_Types.Vector3(m_host.Scale.X, m_host.Scale.Y, m_host.Scale.Z); |
226 | 226 | } | |
227 | public void llSetColor(LSL_Types.Vector3 color, int face) { return; } | 227 | |
228 | public double llGetAlpha(int face) { return 0; } | 228 | public void llSetColor(LSL_Types.Vector3 color, int face) { NotImplemented("llSetColor"); return; } |
229 | public void llSetAlpha(double alpha, int face) { return; } | 229 | public double llGetAlpha(int face) { NotImplemented("llGetAlpha"); return 0; } |
230 | public LSL_Types.Vector3 llGetColor(int face) { return new LSL_Types.Vector3(); } | 230 | public void llSetAlpha(double alpha, int face) { NotImplemented("llSetAlpha"); return; } |
231 | public void llSetTexture(string texture, int face) { return; } | 231 | public LSL_Types.Vector3 llGetColor(int face) { NotImplemented("llGetColor"); return new LSL_Types.Vector3(); } |
232 | public void llScaleTexture(double u, double v, int face) { return; } | 232 | public void llSetTexture(string texture, int face) { NotImplemented("llSetTexture"); return; } |
233 | public void llOffsetTexture(double u, double v, int face) { return; } | 233 | public void llScaleTexture(double u, double v, int face) { NotImplemented("llScaleTexture"); return; } |
234 | public void llRotateTexture(double rotation, int face) { return; } | 234 | public void llOffsetTexture(double u, double v, int face) { NotImplemented("llOffsetTexture"); return; } |
235 | 235 | public void llRotateTexture(double rotation, int face) { NotImplemented("llRotateTexture"); return; } | |
236 | public string llGetTexture(int face) | 236 | |
237 | { | 237 | public string llGetTexture(int face) |
238 | return ""; | 238 | { |
239 | } | 239 | throw new NotImplementedException(cni); return ""; |
240 | 240 | } | |
241 | public void llSetPos(LSL_Types.Vector3 pos) | 241 | |
242 | { | 242 | public void llSetPos(LSL_Types.Vector3 pos) |
243 | LLVector3 tmp; | 243 | { |
244 | if (m_host.ParentID != 0) | 244 | LLVector3 tmp; |
245 | { | 245 | if (m_host.ParentID != 0) |
246 | m_host.UpdateOffSet(new LLVector3((float)pos.X, (float)pos.Y, (float)pos.Z)); | 246 | { |
247 | } | 247 | m_host.UpdateOffSet(new LLVector3((float)pos.X, (float)pos.Y, (float)pos.Z)); |
248 | else | 248 | } |
249 | { | 249 | else |
250 | m_host.UpdateGroupPosition(new LLVector3((float)pos.X, (float)pos.Y, (float)pos.Z)); | 250 | { |
251 | } | 251 | m_host.UpdateGroupPosition(new LLVector3((float)pos.X, (float)pos.Y, (float)pos.Z)); |
252 | } | 252 | } |
253 | 253 | } | |
254 | public LSL_Types.Vector3 llGetPos() | 254 | |
255 | { | 255 | public LSL_Types.Vector3 llGetPos() |
256 | return new LSL_Types.Vector3(m_host.AbsolutePosition.X, | 256 | { |
257 | m_host.AbsolutePosition.Y, | 257 | return new LSL_Types.Vector3(m_host.AbsolutePosition.X, |
258 | m_host.AbsolutePosition.Z); | 258 | m_host.AbsolutePosition.Y, |
259 | } | 259 | m_host.AbsolutePosition.Z); |
260 | 260 | } | |
261 | public LSL_Types.Vector3 llGetLocalPos() | 261 | |
262 | { | 262 | public LSL_Types.Vector3 llGetLocalPos() |
263 | if (m_host.ParentID != 0) { | 263 | { |
264 | return new LSL_Types.Vector3(m_host.OffsetPosition.X, | 264 | if (m_host.ParentID != 0) |
265 | m_host.OffsetPosition.Y, | 265 | { |
266 | m_host.OffsetPosition.Z); | 266 | return new LSL_Types.Vector3(m_host.OffsetPosition.X, |
267 | } else { | 267 | m_host.OffsetPosition.Y, |
268 | return new LSL_Types.Vector3(m_host.AbsolutePosition.X, | 268 | m_host.OffsetPosition.Z); |
269 | m_host.AbsolutePosition.Y, | 269 | } |
270 | m_host.AbsolutePosition.Z); | 270 | else |
271 | } | 271 | { |
272 | } | 272 | return new LSL_Types.Vector3(m_host.AbsolutePosition.X, |
273 | public void llSetRot(LSL_Types.Quaternion rot) | 273 | m_host.AbsolutePosition.Y, |
274 | { | 274 | m_host.AbsolutePosition.Z); |
275 | m_host.UpdateRotation(new LLQuaternion((float)rot.X, (float)rot.Y, (float)rot.Z, (float)rot.R)); | 275 | } |
276 | } | 276 | } |
277 | public LSL_Types.Quaternion llGetRot() | 277 | public void llSetRot(LSL_Types.Quaternion rot) |
278 | { | 278 | { |
279 | LLQuaternion q = m_host.RotationOffset; | 279 | m_host.UpdateRotation(new LLQuaternion((float)rot.X, (float)rot.Y, (float)rot.Z, (float)rot.R)); |
280 | return new LSL_Types.Quaternion(q.X, q.Y, q.Z, q.W); | 280 | } |
281 | } | 281 | public LSL_Types.Quaternion llGetRot() |
282 | public LSL_Types.Quaternion llGetLocalRot() { return new LSL_Types.Quaternion(); } | 282 | { |
283 | public void llSetForce(LSL_Types.Vector3 force, int local) { } | 283 | LLQuaternion q = m_host.RotationOffset; |
284 | public LSL_Types.Vector3 llGetForce() { return new LSL_Types.Vector3(); } | 284 | return new LSL_Types.Quaternion(q.X, q.Y, q.Z, q.W); |
285 | public int llTarget(LSL_Types.Vector3 position, double range) { return 0; } | 285 | } |
286 | public void llTargetRemove(int number) { } | 286 | public LSL_Types.Quaternion llGetLocalRot() { NotImplemented("llGetLocalRot"); return new LSL_Types.Quaternion(); } |
287 | public int llRotTarget(LSL_Types.Quaternion rot, double error) { return 0; } | 287 | public void llSetForce(LSL_Types.Vector3 force, int local) { NotImplemented("llSetForce"); } |
288 | public void llRotTargetRemove(int number) { } | 288 | public LSL_Types.Vector3 llGetForce() { NotImplemented("llGetForce"); return new LSL_Types.Vector3(); } |
289 | public void llMoveToTarget(LSL_Types.Vector3 target, double tau) { } | 289 | public int llTarget(LSL_Types.Vector3 position, double range) { NotImplemented("llTarget"); return 0; } |
290 | public void llStopMoveToTarget() { } | 290 | public void llTargetRemove(int number) { NotImplemented("llTargetRemove"); } |
291 | public void llApplyImpulse(LSL_Types.Vector3 force, int local) { } | 291 | public int llRotTarget(LSL_Types.Quaternion rot, double error) { NotImplemented("llRotTarget"); return 0; } |
292 | public void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local) { } | 292 | public void llRotTargetRemove(int number) { NotImplemented("llRotTargetRemove"); } |
293 | public void llSetTorque(LSL_Types.Vector3 torque, int local) { } | 293 | public void llMoveToTarget(LSL_Types.Vector3 target, double tau) { NotImplemented("llMoveToTarget"); } |
294 | public LSL_Types.Vector3 llGetTorque() { return new LSL_Types.Vector3(); } | 294 | public void llStopMoveToTarget() { NotImplemented("llStopMoveToTarget"); } |
295 | public void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local) { } | 295 | public void llApplyImpulse(LSL_Types.Vector3 force, int local) { NotImplemented("llApplyImpulse"); } |
296 | public LSL_Types.Vector3 llGetVel() { return new LSL_Types.Vector3(); } | 296 | public void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local) { NotImplemented("llApplyRotationalImpulse"); } |
297 | public LSL_Types.Vector3 llGetAccel() { return new LSL_Types.Vector3(); } | 297 | public void llSetTorque(LSL_Types.Vector3 torque, int local) { NotImplemented("llSetTorque"); } |
298 | public LSL_Types.Vector3 llGetOmega() { return new LSL_Types.Vector3(); } | 298 | public LSL_Types.Vector3 llGetTorque() { NotImplemented("llGetTorque"); return new LSL_Types.Vector3(); } |
299 | public double llGetTimeOfDay() { return 0; } | 299 | public void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local) { NotImplemented("llSetForceAndTorque"); } |
300 | 300 | public LSL_Types.Vector3 llGetVel() { NotImplemented("llGetVel"); return new LSL_Types.Vector3(); } | |
301 | public double llGetWallclock() | 301 | public LSL_Types.Vector3 llGetAccel() { NotImplemented("llGetAccel"); return new LSL_Types.Vector3(); } |
302 | { | 302 | public LSL_Types.Vector3 llGetOmega() { NotImplemented("llGetOmega"); return new LSL_Types.Vector3(); } |
303 | return DateTime.Now.TimeOfDay.TotalSeconds; | 303 | public double llGetTimeOfDay() { NotImplemented("llGetTimeOfDay"); return 0; } |
304 | } | 304 | |
305 | 305 | public double llGetWallclock() | |
306 | public double llGetTime() { return 0; } | 306 | { |
307 | public void llResetTime() { } | 307 | return DateTime.Now.TimeOfDay.TotalSeconds; |
308 | public double llGetAndResetTime() { return 0; } | 308 | } |
309 | public void llSound() { } | 309 | |
310 | public void llPlaySound(string sound, double volume) { } | 310 | public double llGetTime() { NotImplemented("llGetTime"); return 0; } |
311 | public void llLoopSound(string sound, double volume) { } | 311 | public void llResetTime() { NotImplemented("llResetTime"); } |
312 | public void llLoopSoundMaster(string sound, double volume) { } | 312 | public double llGetAndResetTime() { NotImplemented("llGetAndResetTime"); return 0; } |
313 | public void llLoopSoundSlave(string sound, double volume) { } | 313 | public void llSound() { NotImplemented("llSound"); } |
314 | public void llPlaySoundSlave(string sound, double volume) { } | 314 | public void llPlaySound(string sound, double volume) { NotImplemented("llPlaySound"); } |
315 | public void llTriggerSound(string sound, double volume) { } | 315 | public void llLoopSound(string sound, double volume) { NotImplemented("llLoopSound"); } |
316 | public void llStopSound() { } | 316 | public void llLoopSoundMaster(string sound, double volume) { NotImplemented("llLoopSoundMaster"); } |
317 | public void llPreloadSound(string sound) { } | 317 | public void llLoopSoundSlave(string sound, double volume) { NotImplemented("llLoopSoundSlave"); } |
318 | 318 | public void llPlaySoundSlave(string sound, double volume) { NotImplemented("llPlaySoundSlave"); } | |
319 | public string llGetSubString(string src, int start, int end) | 319 | public void llTriggerSound(string sound, double volume) { NotImplemented("llTriggerSound"); } |
320 | { | 320 | public void llStopSound() { NotImplemented("llStopSound"); } |
321 | return src.Substring(start, end); | 321 | public void llPreloadSound(string sound) { NotImplemented("llPreloadSound"); } |
322 | } | 322 | |
323 | 323 | public string llGetSubString(string src, int start, int end) | |
324 | public string llDeleteSubString(string src, int start, int end) {return "";} | 324 | { |
325 | public string llInsertString(string dst, int position, string src) { return ""; } | 325 | return src.Substring(start, end); |
326 | 326 | } | |
327 | public string llToUpper(string src) | 327 | |
328 | { | 328 | public string llDeleteSubString(string src, int start, int end) { NotImplemented("llDeleteSubString"); return ""; } |
329 | return src.ToUpper(); | 329 | public string llInsertString(string dst, int position, string src) { NotImplemented("llInsertString"); return ""; } |
330 | } | 330 | |
331 | 331 | public string llToUpper(string src) | |
332 | public string llToLower(string src) | 332 | { |
333 | { | 333 | return src.ToUpper(); |
334 | return src.ToLower(); | 334 | } |
335 | } | 335 | |
336 | 336 | public string llToLower(string src) | |
337 | public int llGiveMoney(string destination, int amount) { return 0; } | 337 | { |
338 | public void llMakeExplosion() { } | 338 | return src.ToLower(); |
339 | public void llMakeFountain() { } | 339 | } |
340 | public void llMakeSmoke() { } | 340 | |
341 | public void llMakeFire() { } | 341 | public int llGiveMoney(string destination, int amount) { NotImplemented("llGiveMoney"); return 0; } |
342 | public void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Quaternion rot, int param) { } | 342 | public void llMakeExplosion() { NotImplemented("llMakeExplosion"); } |
343 | public void llLookAt(LSL_Types.Vector3 target, double strength, double damping) { } | 343 | public void llMakeFountain() { NotImplemented("llMakeFountain"); } |
344 | public void llStopLookAt() { } | 344 | public void llMakeSmoke() { NotImplemented("llMakeSmoke"); } |
345 | 345 | public void llMakeFire() { NotImplemented("llMakeFire"); } | |
346 | public void llSetTimerEvent(double sec) | 346 | public void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Quaternion rot, int param) { NotImplemented("llRezObject"); } |
347 | { | 347 | public void llLookAt(LSL_Types.Vector3 target, double strength, double damping) { NotImplemented("llLookAt"); } |
348 | // Setting timer repeat | 348 | public void llStopLookAt() { NotImplemented("llStopLookAt"); } |
349 | m_ScriptEngine.m_LSLLongCmdHandler.SetTimerEvent(m_localID, m_itemID, sec); | 349 | |
350 | } | 350 | public void llSetTimerEvent(double sec) |
351 | 351 | { | |
352 | public void llSleep(double sec) | 352 | // Setting timer repeat |
353 | { | 353 | m_ScriptEngine.m_LSLLongCmdHandler.SetTimerEvent(m_localID, m_itemID, sec); |
354 | System.Threading.Thread.Sleep((int)(sec * 1000)); | 354 | } |
355 | } | 355 | |
356 | 356 | public void llSleep(double sec) | |
357 | public double llGetMass() { return 0; } | 357 | { |
358 | public void llCollisionFilter(string name, string id, int accept) { } | 358 | System.Threading.Thread.Sleep((int)(sec * 1000)); |
359 | public void llTakeControls(int controls, int accept, int pass_on) { } | 359 | } |
360 | public void llReleaseControls() { } | 360 | |
361 | public void llAttachToAvatar(int attachment) { } | 361 | public double llGetMass() { NotImplemented("llGetMass"); return 0; } |
362 | public void llDetachFromAvatar() { } | 362 | public void llCollisionFilter(string name, string id, int accept) { NotImplemented("llCollisionFilter"); } |
363 | public void llTakeCamera() { } | 363 | public void llTakeControls(int controls, int accept, int pass_on) { NotImplemented("llTakeControls"); } |
364 | public void llReleaseCamera() { } | 364 | public void llReleaseControls() { NotImplemented("llReleaseControls"); } |
365 | 365 | public void llAttachToAvatar(int attachment) { NotImplemented("llAttachToAvatar"); } | |
366 | public string llGetOwner() | 366 | public void llDetachFromAvatar() { NotImplemented("llDetachFromAvatar"); } |
367 | { | 367 | public void llTakeCamera() { NotImplemented("llTakeCamera"); } |
368 | return m_host.ObjectOwner.ToStringHyphenated(); | 368 | public void llReleaseCamera() { NotImplemented("llReleaseCamera"); } |
369 | } | 369 | |
370 | 370 | public string llGetOwner() | |
371 | public void llInstantMessage(string user, string message) { } | 371 | { |
372 | public void llEmail(string address, string subject, string message) { } | 372 | return m_host.ObjectOwner.ToStringHyphenated(); |
373 | public void llGetNextEmail(string address, string subject) { } | 373 | } |
374 | 374 | ||
375 | public string llGetKey() | 375 | public void llInstantMessage(string user, string message) { NotImplemented("llInstantMessage"); } |
376 | { | 376 | public void llEmail(string address, string subject, string message) { NotImplemented("llEmail"); } |
377 | return m_host.UUID.ToStringHyphenated(); | 377 | public void llGetNextEmail(string address, string subject) { NotImplemented("llGetNextEmail"); } |
378 | } | 378 | |
379 | 379 | public string llGetKey() | |
380 | public void llSetBuoyancy(double buoyancy) { } | 380 | { |
381 | public void llSetHoverHeight(double height, int water, double tau) { } | 381 | return m_host.UUID.ToStringHyphenated(); |
382 | public void llStopHover() { } | 382 | } |
383 | public void llMinEventDelay(double delay) { } | 383 | |
384 | public void llSoundPreload() { } | 384 | public void llSetBuoyancy(double buoyancy) { NotImplemented("llSetBuoyancy"); } |
385 | public void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping) { } | 385 | public void llSetHoverHeight(double height, int water, double tau) { NotImplemented("llSetHoverHeight"); } |
386 | 386 | public void llStopHover() { NotImplemented("llStopHover"); } | |
387 | public int llStringLength(string str) | 387 | public void llMinEventDelay(double delay) { NotImplemented("llMinEventDelay"); } |
388 | { | 388 | public void llSoundPreload() { NotImplemented("llSoundPreload"); } |
389 | if (str.Length > 0) | 389 | public void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping) { NotImplemented("llRotLookAt"); } |
390 | { | 390 | |
391 | return str.Length; | 391 | public int llStringLength(string str) |
392 | } | 392 | { |
393 | else | 393 | if (str.Length > 0) |
394 | { | 394 | { |
395 | return 0; | 395 | return str.Length; |
396 | } | 396 | } |
397 | } | 397 | else |
398 | 398 | { | |
399 | public void llStartAnimation(string anim) { } | 399 | return 0; |
400 | public void llStopAnimation(string anim) { } | 400 | } |
401 | public void llPointAt() { } | 401 | } |
402 | public void llStopPointAt() { } | 402 | |
403 | public void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain) { } | 403 | public void llStartAnimation(string anim) { NotImplemented("llStartAnimation"); } |
404 | public int llGetStartParameter() { return 0; } | 404 | public void llStopAnimation(string anim) { NotImplemented("llStopAnimation"); } |
405 | public void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos) { } | 405 | public void llPointAt() { NotImplemented("llPointAt"); } |
406 | public void llRequestPermissions(string agent, int perm) { } | 406 | public void llStopPointAt() { NotImplemented("llStopPointAt"); } |
407 | public string llGetPermissionsKey() { return ""; } | 407 | public void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain) { NotImplemented("llTargetOmega"); } |
408 | public int llGetPermissions() { return 0; } | 408 | public int llGetStartParameter() { NotImplemented("llGetStartParameter"); return 0; } |
409 | public int llGetLinkNumber() { return 0; } | 409 | public void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos) { NotImplemented("llGodLikeRezObject"); } |
410 | public void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face) { } | 410 | public void llRequestPermissions(string agent, int perm) { NotImplemented("llRequestPermissions"); } |
411 | public void llCreateLink(string target, int parent) { } | 411 | public string llGetPermissionsKey() { NotImplemented("llGetPermissionsKey"); return ""; } |
412 | public void llBreakLink(int linknum) { } | 412 | public int llGetPermissions() { NotImplemented("llGetPermissions"); return 0; } |
413 | public void llBreakAllLinks() { } | 413 | public int llGetLinkNumber() { NotImplemented("llGetLinkNumber"); return 0; } |
414 | public string llGetLinkKey(int linknum) { return ""; } | 414 | public void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face) { NotImplemented("llSetLinkColor"); } |
415 | public void llGetLinkName(int linknum) { } | 415 | public void llCreateLink(string target, int parent) { NotImplemented("llCreateLink"); } |
416 | public int llGetInventoryNumber(int type) { return 0; } | 416 | public void llBreakLink(int linknum) { NotImplemented("llBreakLink"); } |
417 | public string llGetInventoryName(int type, int number) { return ""; } | 417 | public void llBreakAllLinks() { NotImplemented("llBreakAllLinks"); } |
418 | public void llSetScriptState(string name, int run) { } | 418 | public string llGetLinkKey(int linknum) { NotImplemented("llGetLinkKey"); return ""; } |
419 | public double llGetEnergy() { return 1.0f; } | 419 | public void llGetLinkName(int linknum) { NotImplemented("llGetLinkName"); } |
420 | public void llGiveInventory(string destination, string inventory) { } | 420 | public int llGetInventoryNumber(int type) { NotImplemented("llGetInventoryNumber"); return 0; } |
421 | public void llRemoveInventory(string item) { } | 421 | public string llGetInventoryName(int type, int number) { NotImplemented("llGetInventoryName"); return ""; } |
422 | 422 | public void llSetScriptState(string name, int run) { NotImplemented("llSetScriptState"); } | |
423 | public void llSetText(string text, LSL_Types.Vector3 color, double alpha) | 423 | public double llGetEnergy() { return 1.0f; } |
424 | { | 424 | public void llGiveInventory(string destination, string inventory) { NotImplemented("llGiveInventory"); } |
425 | // TEMP DISABLED UNTIL WE CAN AGREE UPON VECTOR/ROTATION FORMAT | 425 | public void llRemoveInventory(string item) { NotImplemented("llRemoveInventory"); } |
426 | //m_host.SetText(text, color, alpha); | 426 | |
427 | } | 427 | public void llSetText(string text, LSL_Types.Vector3 color, double alpha) { NotImplemented("llSetText"); } |
428 | 428 | ||
429 | public double llWater(LSL_Types.Vector3 offset) { return 0; } | 429 | public double llWater(LSL_Types.Vector3 offset) { NotImplemented("llWater"); return 0; } |
430 | public void llPassTouches(int pass) { } | 430 | public void llPassTouches(int pass) { NotImplemented("llPassTouches"); } |
431 | public string llRequestAgentData(string id, int data) { return ""; } | 431 | public string llRequestAgentData(string id, int data) { NotImplemented("llRequestAgentData"); return ""; } |
432 | public string llRequestInventoryData(string name) { return ""; } | 432 | public string llRequestInventoryData(string name) { NotImplemented("llRequestInventoryData"); return ""; } |
433 | public void llSetDamage(double damage) { } | 433 | public void llSetDamage(double damage) { NotImplemented("llSetDamage"); } |
434 | public void llTeleportAgentHome(string agent) { } | 434 | public void llTeleportAgentHome(string agent) { NotImplemented("llTeleportAgentHome"); } |
435 | public void llModifyLand(int action, int brush) { } | 435 | public void llModifyLand(int action, int brush) { } |
436 | public void llCollisionSound(string impact_sound, double impact_volume) { } | 436 | public void llCollisionSound(string impact_sound, double impact_volume) { NotImplemented("llCollisionSound"); } |
437 | public void llCollisionSprite(string impact_sprite) { } | 437 | public void llCollisionSprite(string impact_sprite) { NotImplemented("llCollisionSprite"); } |
438 | public string llGetAnimation(string id) { return ""; } | 438 | public string llGetAnimation(string id) { NotImplemented("llGetAnimation"); return ""; } |
439 | public void llResetScript() { } | 439 | public void llResetScript() { } |
440 | public void llMessageLinked(int linknum, int num, string str, string id) { } | 440 | public void llMessageLinked(int linknum, int num, string str, string id) { } |
441 | public void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local) { } | 441 | public void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local) { } |
442 | public void llPassCollisions(int pass) { } | 442 | public void llPassCollisions(int pass) { } |
443 | public string llGetScriptName() { return ""; } | 443 | public string llGetScriptName() { return ""; } |
444 | 444 | ||
445 | public int llGetNumberOfSides() { return 0; } | 445 | public int llGetNumberOfSides() { return 0; } |
446 | 446 | ||
447 | public LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle) { return new LSL_Types.Quaternion(); } | 447 | public LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle) { return new LSL_Types.Quaternion(); } |
448 | public LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot) { return new LSL_Types.Vector3(); } | 448 | public LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot) { return new LSL_Types.Vector3(); } |
449 | public void llRot2Angle() { } | 449 | public void llRot2Angle() { } |
450 | 450 | ||
451 | public double llAcos(double val) | 451 | public double llAcos(double val) |
452 | { | 452 | { |
453 | return (double)Math.Acos(val); | 453 | return (double)Math.Acos(val); |
454 | } | 454 | } |
455 | 455 | ||
456 | public double llAsin(double val) | 456 | public double llAsin(double val) |
457 | { | 457 | { |
458 | return (double)Math.Asin(val); | 458 | return (double)Math.Asin(val); |
459 | } | 459 | } |
460 | 460 | ||
461 | public double llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b) { return 0; } | 461 | public double llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b) { return 0; } |
462 | public string llGetInventoryKey(string name) { return ""; } | 462 | public string llGetInventoryKey(string name) { return ""; } |
463 | public void llAllowInventoryDrop(int add) { } | 463 | public void llAllowInventoryDrop(int add) { } |
464 | public LSL_Types.Vector3 llGetSunDirection() { return new LSL_Types.Vector3(); } | 464 | public LSL_Types.Vector3 llGetSunDirection() { return new LSL_Types.Vector3(); } |
465 | public LSL_Types.Vector3 llGetTextureOffset(int face) { return new LSL_Types.Vector3(); } | 465 | public LSL_Types.Vector3 llGetTextureOffset(int face) { return new LSL_Types.Vector3(); } |
466 | public LSL_Types.Vector3 llGetTextureScale(int side) { return new LSL_Types.Vector3(); } | 466 | public LSL_Types.Vector3 llGetTextureScale(int side) { return new LSL_Types.Vector3(); } |
467 | public double llGetTextureRot(int side) { return 0; } | 467 | public double llGetTextureRot(int side) { return 0; } |
468 | 468 | ||
469 | public int llSubStringIndex(string source, string pattern) | 469 | public int llSubStringIndex(string source, string pattern) |
470 | { | 470 | { |
471 | return source.IndexOf(pattern); | 471 | return source.IndexOf(pattern); |
472 | } | 472 | } |
473 | 473 | ||
474 | public string llGetOwnerKey(string id) | 474 | public string llGetOwnerKey(string id) { NotImplemented("llGetOwnerKey"); return ""; } |
475 | { | 475 | |
476 | return ""; | 476 | public LSL_Types.Vector3 llGetCenterOfMass() { NotImplemented("llGetCenterOfMass"); return new LSL_Types.Vector3(); } |
477 | } | 477 | |
478 | 478 | public List<string> llListSort(List<string> src, int stride, int ascending) { NotImplemented("llListSort"); return new List<string>(); ; } | |
479 | public LSL_Types.Vector3 llGetCenterOfMass() { return new LSL_Types.Vector3(); } | 479 | |
480 | 480 | public int llGetListLength(List<string> src) | |
481 | public List<string> llListSort(List<string> src, int stride, int ascending) | 481 | { |
482 | { | 482 | return src.Count; |
483 | //List<string> nlist = src.Sort(); | 483 | } |
484 | 484 | ||
485 | //if (ascending == 0) | 485 | public int llList2Integer(List<string> src, int index) |
486 | //{ | 486 | { |
487 | //nlist.Reverse(); | 487 | return Convert.ToInt32(src[index]); |
488 | //} | 488 | } |
489 | 489 | ||
490 | //return nlist; | 490 | public double llList2double(List<string> src, int index) |
491 | return new List<string>(); ; | 491 | { |
492 | } | 492 | return Convert.ToDouble(src[index]); |
493 | 493 | } | |
494 | public int llGetListLength(List<string> src) | 494 | |
495 | { | 495 | public float llList2Float(List<string> src, int index) |
496 | return src.Count; | 496 | { |
497 | } | 497 | return Convert.ToSingle(src[index]); |
498 | 498 | } | |
499 | public int llList2Integer(List<string> src, int index) | 499 | |
500 | { | 500 | public string llList2String(List<string> src, int index) |
501 | return Convert.ToInt32(src[index]); | 501 | { |
502 | } | 502 | return src[index]; |
503 | 503 | } | |
504 | public double llList2double(List<string> src, int index) | 504 | |
505 | { | 505 | public string llList2Key(List<string> src, int index) |
506 | return Convert.ToDouble(src[index]); | 506 | { |
507 | } | 507 | //return OpenSim.Framework.Types.ToStringHyphenated(src[index]); |
508 | 508 | return ""; | |
509 | public float llList2Float(List<string> src, int index) | 509 | } |
510 | { | 510 | |
511 | return Convert.ToSingle(src[index]); | 511 | public LSL_Types.Vector3 llList2Vector(List<string> src, int index) { NotImplemented("llList2Vector"); return new LSL_Types.Vector3(); } |
512 | } | 512 | public LSL_Types.Quaternion llList2Rot(List<string> src, int index) { NotImplemented("llList2Rot"); return new LSL_Types.Quaternion(); } |
513 | 513 | public List<string> llList2List(List<string> src, int start, int end) { NotImplemented("llList2List"); return new List<string>(); } | |
514 | public string llList2String(List<string> src, int index) | 514 | public List<string> llDeleteSubList(List<string> src, int start, int end) { NotImplemented("llDeleteSubList"); return new List<string>(); } |
515 | { | 515 | public int llGetListEntryType(List<string> src, int index) { NotImplemented("llGetListEntryType"); return 0; } |
516 | return src[index]; | 516 | public string llList2CSV(List<string> src) { NotImplemented("llList2CSV"); return ""; } |
517 | } | 517 | public List<string> llCSV2List(string src) { NotImplemented("llCSV2List"); return new List<string>(); } |
518 | 518 | public List<string> llListRandomize(List<string> src, int stride) { NotImplemented("llListRandomize"); return new List<string>(); } | |
519 | public string llList2Key(List<string> src, int index) | 519 | public List<string> llList2ListStrided(List<string> src, int start, int end, int stride) { NotImplemented("llList2ListStrided"); return new List<string>(); } |
520 | { | 520 | |
521 | //return OpenSim.Framework.Types.ToStringHyphenated(src[index]); | 521 | public LSL_Types.Vector3 llGetRegionCorner() |
522 | return ""; | 522 | { |
523 | } | 523 | return new LSL_Types.Vector3(World.RegionInfo.RegionLocX * 256, World.RegionInfo.RegionLocY * 256, 0); |
524 | 524 | } | |
525 | public LSL_Types.Vector3 llList2Vector(List<string> src, int index) | 525 | |
526 | { return new LSL_Types.Vector3(); } | 526 | public List<string> llListInsertList(List<string> dest, List<string> src, int start) { NotImplemented("llListInsertList"); return new List<string>(); } |
527 | public LSL_Types.Quaternion llList2Rot(List<string> src, int index) | 527 | public int llListFindList(List<string> src, List<string> test) { return 0; } |
528 | { return new LSL_Types.Quaternion(); } | 528 | |
529 | public List<string> llList2List(List<string> src, int start, int end) | 529 | public string llGetObjectName() |
530 | { return new List<string>(); } | 530 | { |
531 | public List<string> llDeleteSubList(List<string> src, int start, int end) | 531 | return m_host.Name; |
532 | { return new List<string>(); } | 532 | } |
533 | public int llGetListEntryType(List<string> src, int index) { return 0; } | 533 | |
534 | public string llList2CSV(List<string> src) { return ""; } | 534 | public void llSetObjectName(string name) |
535 | public List<string> llCSV2List(string src) | 535 | { |
536 | { return new List<string>(); } | 536 | m_host.Name = name; |
537 | public List<string> llListRandomize(List<string> src, int stride) | 537 | } |
538 | { return new List<string>(); } | 538 | |
539 | public List<string> llList2ListStrided(List<string> src, int start, int end, int stride) | 539 | public string llGetDate() |
540 | { return new List<string>(); } | 540 | { |
541 | 541 | DateTime date = DateTime.Now.ToUniversalTime(); | |
542 | public LSL_Types.Vector3 llGetRegionCorner() | 542 | string result = date.ToString("yyyy-MM-dd"); |
543 | { | 543 | return result; |
544 | return new LSL_Types.Vector3(World.RegionInfo.RegionLocX * 256, World.RegionInfo.RegionLocY * 256, 0); | 544 | } |
545 | } | 545 | |
546 | 546 | public int llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir) { NotImplemented("llEdgeOfWorld"); return 0; } | |
547 | public List<string> llListInsertList(List<string> dest, List<string> src, int start) | 547 | public int llGetAgentInfo(string id) { NotImplemented("llGetAgentInfo"); return 0; } |
548 | { return new List<string>(); } | 548 | public void llAdjustSoundVolume(double volume) { NotImplemented("llAdjustSoundVolume"); } |
549 | public int llListFindList(List<string> src, List<string> test) { return 0; } | 549 | public void llSetSoundQueueing(int queue) { NotImplemented("llSetSoundQueueing"); } |
550 | 550 | public void llSetSoundRadius(double radius) { NotImplemented("llSetSoundRadius"); } | |
551 | public string llGetObjectName() | 551 | public string llKey2Name(string id) { NotImplemented("llKey2Name"); return ""; } |
552 | { | 552 | public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate) { NotImplemented("llSetTextureAnim"); } |
553 | return m_host.Name; | 553 | public void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, LSL_Types.Vector3 bottom_south_west) { NotImplemented("llTriggerSoundLimited"); } |
554 | } | 554 | public void llEjectFromLand(string pest) { NotImplemented("llEjectFromLand"); } |
555 | 555 | ||
556 | public void llSetObjectName(string name) | 556 | public void llParseString2List() { NotImplemented("llParseString2List"); } |
557 | { | 557 | |
558 | m_host.Name = name; | 558 | public int llOverMyLand(string id) { NotImplemented("llOverMyLand"); return 0; } |
559 | } | 559 | public string llGetLandOwnerAt(LSL_Types.Vector3 pos) { NotImplemented("llGetLandOwnerAt"); return ""; } |
560 | 560 | public string llGetNotecardLine(string name, int line) { NotImplemented("llGetNotecardLine"); return ""; } | |
561 | public string llGetDate() | 561 | public LSL_Types.Vector3 llGetAgentSize(string id) { NotImplemented("llGetAgentSize"); return new LSL_Types.Vector3(); } |
562 | { | 562 | public int llSameGroup(string agent) { NotImplemented("llSameGroup"); return 0; } |
563 | DateTime date = DateTime.Now.ToUniversalTime(); | 563 | public void llUnSit(string id) { NotImplemented("llUnSit"); } |
564 | string result = date.ToString("yyyy-MM-dd"); | 564 | public LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset) { NotImplemented("llGroundSlope"); return new LSL_Types.Vector3(); } |
565 | return result; | 565 | public LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset) { NotImplemented("llGroundNormal"); return new LSL_Types.Vector3(); } |
566 | } | 566 | public LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset) { NotImplemented("llGroundContour"); return new LSL_Types.Vector3(); } |
567 | 567 | public int llGetAttached() { NotImplemented("llGetAttached"); return 0; } | |
568 | public int llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir) { return 0; } | 568 | public int llGetFreeMemory() { NotImplemented("llGetFreeMemory"); return 0; } |
569 | public int llGetAgentInfo(string id) { return 0; } | 569 | |
570 | public void llAdjustSoundVolume(double volume) { } | 570 | public string llGetRegionName() |
571 | public void llSetSoundQueueing(int queue) { } | 571 | { |
572 | public void llSetSoundRadius(double radius) { } | 572 | return World.RegionInfo.RegionName; |
573 | public string llKey2Name(string id) { return ""; } | 573 | } |
574 | public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate) { } | 574 | |
575 | public void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, LSL_Types.Vector3 bottom_south_west) { } | 575 | public double llGetRegionTimeDilation() { return 1.0f; } |
576 | public void llEjectFromLand(string pest) { } | 576 | public double llGetRegionFPS() { return 10.0f; } |
577 | 577 | public void llParticleSystem(List<Object> rules) { NotImplemented("llParticleSystem"); } | |
578 | public void llParseString2List() { } | 578 | public void llGroundRepel(double height, int water, double tau) { NotImplemented("llGroundRepel"); } |
579 | 579 | public void llGiveInventoryList() { NotImplemented("llGiveInventoryList"); } | |
580 | public int llOverMyLand(string id) { return 0; } | 580 | public void llSetVehicleType(int type) { NotImplemented("llSetVehicleType"); } |
581 | public string llGetLandOwnerAt(LSL_Types.Vector3 pos) { return ""; } | 581 | public void llSetVehicledoubleParam(int param, double value) { NotImplemented("llSetVehicledoubleParam"); } |
582 | public string llGetNotecardLine(string name, int line) { return ""; } | 582 | public void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec) { NotImplemented("llSetVehicleVectorParam"); } |
583 | public LSL_Types.Vector3 llGetAgentSize(string id) { return new LSL_Types.Vector3(); } | 583 | public void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot) { NotImplemented("llSetVehicleRotationParam"); } |
584 | public int llSameGroup(string agent) { return 0; } | 584 | public void llSetVehicleFlags(int flags) { NotImplemented("llSetVehicleFlags"); } |
585 | public void llUnSit(string id) { } | 585 | public void llRemoveVehicleFlags(int flags) { NotImplemented("llRemoveVehicleFlags"); } |
586 | public LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset) { return new LSL_Types.Vector3(); } | 586 | public void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot) { NotImplemented("llSitTarget"); } |
587 | public LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset) { return new LSL_Types.Vector3(); } | 587 | public string llAvatarOnSitTarget() { NotImplemented("llAvatarOnSitTarget"); return ""; } |
588 | public LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset) { return new LSL_Types.Vector3(); } | 588 | public void llAddToLandPassList(string avatar, double hours) { NotImplemented("llAddToLandPassList"); } |
589 | public int llGetAttached() { return 0; } | 589 | |
590 | public int llGetFreeMemory() { return 0; } | 590 | public void llSetTouchText(string text) |
591 | 591 | { | |
592 | public string llGetRegionName() | 592 | m_host.TouchName = text; |
593 | { | 593 | } |
594 | return World.RegionInfo.RegionName; | 594 | |
595 | } | 595 | public void llSetSitText(string text) |
596 | 596 | { | |
597 | public double llGetRegionTimeDilation() { return 1.0f; } | 597 | m_host.SitName = text; |
598 | public double llGetRegionFPS() { return 10.0f; } | 598 | } |
599 | public void llParticleSystem(List<Object> rules) { } | 599 | |
600 | public void llGroundRepel(double height, int water, double tau) { } | 600 | public void llSetCameraEyeOffset(LSL_Types.Vector3 offset) { NotImplemented("llSetCameraEyeOffset"); } |
601 | public void llGiveInventoryList() { } | 601 | public void llSetCameraAtOffset(LSL_Types.Vector3 offset) { NotImplemented("llSetCameraAtOffset"); } |
602 | public void llSetVehicleType(int type) { } | 602 | public void llDumpList2String() { NotImplemented("llDumpList2String"); } |
603 | public void llSetVehicledoubleParam(int param, double value) { } | 603 | public void llScriptDanger(LSL_Types.Vector3 pos) { NotImplemented("llScriptDanger"); } |
604 | public void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec) { } | 604 | public void llDialog(string avatar, string message, List<string> buttons, int chat_channel) { NotImplemented("llDialog"); } |
605 | public void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot) { } | 605 | public void llVolumeDetect(int detect) { NotImplemented("llVolumeDetect"); } |
606 | public void llSetVehicleFlags(int flags) { } | 606 | public void llResetOtherScript(string name) { NotImplemented("llResetOtherScript"); } |
607 | public void llRemoveVehicleFlags(int flags) { } | 607 | |
608 | public void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot) { } | 608 | public int llGetScriptState(string name) { NotImplemented("llGetScriptState"); return 0; } |
609 | public string llAvatarOnSitTarget() { return ""; } | 609 | |
610 | public void llAddToLandPassList(string avatar, double hours) { } | 610 | public void llRemoteLoadScript() { NotImplemented("llRemoteLoadScript"); } |
611 | 611 | public void llSetRemoteScriptAccessPin(int pin) { NotImplemented("llSetRemoteScriptAccessPin"); } | |
612 | public void llSetTouchText(string text) | 612 | public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param) { NotImplemented("llRemoteLoadScriptPin"); } |
613 | { | 613 | public void llOpenRemoteDataChannel() { NotImplemented("llOpenRemoteDataChannel"); } |
614 | m_host.TouchName = text; | 614 | public string llSendRemoteData(string channel, string dest, int idata, string sdata) { NotImplemented("llSendRemoteData"); return ""; } |
615 | } | 615 | public void llRemoteDataReply(string channel, string message_id, string sdata, int idata) { NotImplemented("llRemoteDataReply"); } |
616 | 616 | public void llCloseRemoteDataChannel(string channel) { NotImplemented("llCloseRemoteDataChannel"); } | |
617 | public void llSetSitText(string text) | 617 | |
618 | { | 618 | public string llMD5String(string src, int nonce) |
619 | m_host.SitName = text; | 619 | { |
620 | } | 620 | return Util.Md5Hash(src + ":" + nonce.ToString()); |
621 | 621 | } | |
622 | public void llSetCameraEyeOffset(LSL_Types.Vector3 offset) { } | 622 | |
623 | public void llSetCameraAtOffset(LSL_Types.Vector3 offset) { } | 623 | public void llSetPrimitiveParams(List<string> rules) { NotImplemented("llSetPrimitiveParams"); } |
624 | public void llDumpList2String() { } | 624 | public string llStringToBase64(string str) { NotImplemented("llStringToBase64"); return ""; } |
625 | public void llScriptDanger(LSL_Types.Vector3 pos) { } | 625 | public string llBase64ToString(string str) { NotImplemented("llBase64ToString"); return ""; } |
626 | public void llDialog(string avatar, string message, List<string> buttons, int chat_channel) { } | 626 | public void llXorBase64Strings() { NotImplemented("llXorBase64Strings"); } |
627 | public void llVolumeDetect(int detect) { } | 627 | public void llRemoteDataSetRegion() { NotImplemented("llRemoteDataSetRegion"); } |
628 | public void llResetOtherScript(string name) { } | 628 | public double llLog10(double val) { return (double)Math.Log10(val); } |
629 | 629 | public double llLog(double val) { return (double)Math.Log(val); } | |
630 | public int llGetScriptState(string name) | 630 | public List<string> llGetAnimationList(string id) { NotImplemented("llGetAnimationList"); return new List<string>(); } |
631 | { | 631 | public void llSetParcelMusicURL(string url) { NotImplemented("llSetParcelMusicURL"); } |
632 | return 0; | 632 | |
633 | } | 633 | public LSL_Types.Vector3 llGetRootPosition() { NotImplemented("llGetRootPosition"); return new LSL_Types.Vector3(); } |
634 | 634 | ||
635 | public void llRemoteLoadScript() { } | 635 | public LSL_Types.Quaternion llGetRootRotation() { NotImplemented("llGetRootRotation"); return new LSL_Types.Quaternion(); } |
636 | public void llSetRemoteScriptAccessPin(int pin) { } | 636 | |
637 | public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param) { } | 637 | public string llGetObjectDesc() |
638 | public void llOpenRemoteDataChannel() { } | 638 | { |
639 | public string llSendRemoteData(string channel, string dest, int idata, string sdata) { return ""; } | 639 | return m_host.Description; |
640 | public void llRemoteDataReply(string channel, string message_id, string sdata, int idata) { } | 640 | } |
641 | public void llCloseRemoteDataChannel(string channel) { } | 641 | |
642 | 642 | public void llSetObjectDesc(string desc) | |
643 | public string llMD5String(string src, int nonce) | 643 | { |
644 | { | 644 | m_host.Description = desc; |
645 | return Util.Md5Hash(src + ":" + nonce.ToString()); | 645 | } |
646 | } | 646 | |
647 | 647 | public string llGetCreator() | |
648 | public void llSetPrimitiveParams(List<string> rules) { } | 648 | { |
649 | public string llStringToBase64(string str) { return ""; } | 649 | return m_host.ObjectCreator.ToStringHyphenated(); |
650 | public string llBase64ToString(string str) { return ""; } | 650 | } |
651 | public void llXorBase64Strings() { } | 651 | |
652 | public void llRemoteDataSetRegion() { } | 652 | public string llGetTimestamp() { NotImplemented("llGetTimestamp"); return ""; } |
653 | public double llLog10(double val) { return (double)Math.Log10(val); } | 653 | public void llSetLinkAlpha(int linknumber, double alpha, int face) { NotImplemented("llSetLinkAlpha"); } |
654 | public double llLog(double val) { return (double)Math.Log(val); } | 654 | public int llGetNumberOfPrims() { NotImplemented("llGetNumberOfPrims"); return 0; } |
655 | public List<string> llGetAnimationList(string id) { return new List<string>(); } | 655 | public string llGetNumberOfNotecardLines(string name) { NotImplemented("llGetNumberOfNotecardLines"); return ""; } |
656 | public void llSetParcelMusicURL(string url) { } | 656 | public List<string> llGetBoundingBox(string obj) { NotImplemented("llGetBoundingBox"); return new List<string>(); } |
657 | 657 | public LSL_Types.Vector3 llGetGeometricCenter() { NotImplemented("llGetGeometricCenter"); return new LSL_Types.Vector3(); } | |
658 | public LSL_Types.Vector3 llGetRootPosition() | 658 | public void llGetPrimitiveParams() { NotImplemented("llGetPrimitiveParams"); } |
659 | { | 659 | public string llIntegerToBase64(int number) { NotImplemented("llIntegerToBase64"); return ""; } |
660 | throw new NotImplementedException("llGetRootPosition"); | 660 | public int llBase64ToInteger(string str) { NotImplemented("llBase64ToInteger"); return 0; } |
661 | //return m_root.AbsolutePosition; | 661 | |
662 | } | 662 | public double llGetGMTclock() |
663 | 663 | { | |
664 | public LSL_Types.Quaternion llGetRootRotation() | 664 | return DateTime.UtcNow.TimeOfDay.TotalSeconds; |
665 | { | 665 | } |
666 | return new LSL_Types.Quaternion(); | 666 | |
667 | } | 667 | public string llGetSimulatorHostname() |
668 | 668 | { | |
669 | public string llGetObjectDesc() | 669 | return System.Environment.MachineName; |
670 | { | 670 | } |
671 | return m_host.Description; | 671 | |
672 | } | 672 | public void llSetLocalRot(LSL_Types.Quaternion rot) { NotImplemented("llSetLocalRot"); } |
673 | 673 | public List<string> llParseStringKeepNulls(string src, List<string> seperators, List<string> spacers) { NotImplemented("llParseStringKeepNulls"); return new List<string>(); } | |
674 | public void llSetObjectDesc(string desc) | 674 | public void llRezAtRoot(string inventory, LSL_Types.Vector3 position, LSL_Types.Vector3 velocity, LSL_Types.Quaternion rot, int param) { NotImplemented("llRezAtRoot"); } |
675 | { | 675 | |
676 | m_host.Description = desc; | 676 | public int llGetObjectPermMask(int mask) { NotImplemented("llGetObjectPermMask"); return 0; } |
677 | } | 677 | |
678 | 678 | public void llSetObjectPermMask(int mask, int value) { NotImplemented("llSetObjectPermMask"); } | |
679 | public string llGetCreator() | 679 | |
680 | { | 680 | public void llGetInventoryPermMask(string item, int mask) { NotImplemented("llGetInventoryPermMask"); } |
681 | return m_host.ObjectCreator.ToStringHyphenated(); | 681 | public void llSetInventoryPermMask(string item, int mask, int value) { NotImplemented("llSetInventoryPermMask"); } |
682 | } | 682 | public string llGetInventoryCreator(string item) { NotImplemented("llGetInventoryCreator"); return ""; } |
683 | 683 | public void llOwnerSay(string msg) { NotImplemented("llOwnerSay"); } | |
684 | public string llGetTimestamp() { return ""; } | 684 | public void llRequestSimulatorData(string simulator, int data) { NotImplemented("llRequestSimulatorData"); } |
685 | public void llSetLinkAlpha(int linknumber, double alpha, int face) { } | 685 | public void llForceMouselook(int mouselook) { NotImplemented("llForceMouselook"); } |
686 | public int llGetNumberOfPrims() { return 0; } | 686 | public double llGetObjectMass(string id) { NotImplemented("llGetObjectMass"); return 0; } |
687 | public string llGetNumberOfNotecardLines(string name) { return ""; } | 687 | public void llListReplaceList() { NotImplemented("llListReplaceList"); } |
688 | public List<string> llGetBoundingBox(string obj) { return new List<string>(); } | 688 | |
689 | public LSL_Types.Vector3 llGetGeometricCenter() { return new LSL_Types.Vector3(); } | 689 | public void llLoadURL(string avatar_id, string message, string url) |
690 | public void llGetPrimitiveParams() { } | 690 | { |
691 | public string llIntegerToBase64(int number) { return ""; } | 691 | LLUUID avatarId = new LLUUID(avatar_id); |
692 | public int llBase64ToInteger(string str) { return 0; } | 692 | m_ScriptEngine.World.SendUrlToUser(avatarId, m_host.Name, m_host.UUID, m_host.ObjectOwner, false, message, url); |
693 | 693 | } | |
694 | public double llGetGMTclock() | 694 | |
695 | { | 695 | public void llParcelMediaCommandList(List<string> commandList) { NotImplemented("llParcelMediaCommandList"); } |
696 | return DateTime.UtcNow.TimeOfDay.TotalSeconds; | 696 | public void llParcelMediaQuery() { NotImplemented("llParcelMediaQuery"); } |
697 | } | 697 | |
698 | 698 | public int llModPow(int a, int b, int c) | |
699 | public string llGetSimulatorHostname() | 699 | { |
700 | { | 700 | Int64 tmp = 0; |
701 | return System.Environment.MachineName; | 701 | Int64 val = Math.DivRem(Convert.ToInt64(Math.Pow(a, b)), c, out tmp); |
702 | } | 702 | return Convert.ToInt32(tmp); |
703 | 703 | } | |
704 | public void llSetLocalRot(LSL_Types.Quaternion rot) { } | 704 | |
705 | public List<string> llParseStringKeepNulls(string src, List<string> seperators, List<string> spacers) | 705 | public int llGetInventoryType(string name) { NotImplemented("llGetInventoryType"); return 0; } |
706 | { return new List<string>(); } | 706 | |
707 | public void llRezAtRoot(string inventory, LSL_Types.Vector3 position, LSL_Types.Vector3 velocity, LSL_Types.Quaternion rot, int param) { } | 707 | public void llSetPayPrice(int price, List<string> quick_pay_buttons) { NotImplemented("llSetPayPrice"); } |
708 | 708 | public LSL_Types.Vector3 llGetCameraPos() { NotImplemented("llGetCameraPos"); return new LSL_Types.Vector3(); } | |
709 | public int llGetObjectPermMask(int mask) { return 0; } | 709 | public LSL_Types.Quaternion llGetCameraRot() { NotImplemented("llGetCameraRot"); return new LSL_Types.Quaternion(); } |
710 | 710 | public void llSetPrimURL() { NotImplemented("llSetPrimURL"); } | |
711 | public void llSetObjectPermMask(int mask, int value) { } | 711 | public void llRefreshPrimURL() { NotImplemented("llRefreshPrimURL"); } |
712 | 712 | ||
713 | public void llGetInventoryPermMask(string item, int mask) { } | 713 | public string llEscapeURL(string url) |
714 | public void llSetInventoryPermMask(string item, int mask, int value) { } | 714 | { |
715 | public string llGetInventoryCreator(string item) { return ""; } | 715 | try |
716 | public void llOwnerSay(string msg) { } | 716 | { |
717 | public void llRequestSimulatorData(string simulator, int data) { } | 717 | return Uri.EscapeUriString(url); |
718 | public void llForceMouselook(int mouselook) { } | 718 | } |
719 | public double llGetObjectMass(string id) { return 0; } | 719 | catch (Exception ex) |
720 | public void llListReplaceList() { } | 720 | { |
721 | 721 | return "llEscapeURL: " + ex.ToString(); | |
722 | public void llLoadURL(string avatar_id, string message, string url) | 722 | } |
723 | { | 723 | } |
724 | LLUUID avatarId = new LLUUID(avatar_id); | 724 | |
725 | m_ScriptEngine.World.SendUrlToUser(avatarId, m_host.Name, m_host.UUID, m_host.ObjectOwner, false, message, url); | 725 | public string llUnescapeURL(string url) |
726 | } | 726 | { |
727 | 727 | try | |
728 | public void llParcelMediaCommandList(List<string> commandList) { } | 728 | { |
729 | public void llParcelMediaQuery() { } | 729 | return Uri.UnescapeDataString(url); |
730 | 730 | } | |
731 | public int llModPow(int a, int b, int c) | 731 | catch (Exception ex) |
732 | { | 732 | { |
733 | Int64 tmp = 0; | 733 | return "llUnescapeURL: " + ex.ToString(); |
734 | Int64 val = Math.DivRem(Convert.ToInt64(Math.Pow(a, b)), c, out tmp); | 734 | } |
735 | return Convert.ToInt32(tmp); | 735 | } |
736 | } | 736 | public void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at) { NotImplemented("llMapDestination"); } |
737 | 737 | public void llAddToLandBanList(string avatar, double hours) { NotImplemented("llAddToLandBanList"); } | |
738 | public int llGetInventoryType(string name) { return 0; } | 738 | public void llRemoveFromLandPassList(string avatar) { NotImplemented("llRemoveFromLandPassList"); } |
739 | 739 | public void llRemoveFromLandBanList(string avatar) { NotImplemented("llRemoveFromLandBanList"); } | |
740 | public void llSetPayPrice(int price, List<string> quick_pay_buttons) { } | 740 | public void llSetCameraParams(List<string> rules) { NotImplemented("llSetCameraParams"); } |
741 | public LSL_Types.Vector3 llGetCameraPos() { return new LSL_Types.Vector3(); } | 741 | public void llClearCameraParams() { NotImplemented("llClearCameraParams"); } |
742 | public LSL_Types.Quaternion llGetCameraRot() { return new LSL_Types.Quaternion(); } | 742 | public double llListStatistics(int operation, List<string> src) { NotImplemented("llListStatistics"); return 0; } |
743 | public void llSetPrimURL() { } | 743 | |
744 | public void llRefreshPrimURL() { } | 744 | public int llGetUnixTime() |
745 | 745 | { | |
746 | public string llEscapeURL(string url) | 746 | return Util.UnixTimeSinceEpoch(); |
747 | { | 747 | } |
748 | try | 748 | |
749 | { | 749 | public int llGetParcelFlags(LSL_Types.Vector3 pos) { NotImplemented("llGetParcelFlags"); return 0; } |
750 | return Uri.EscapeUriString(url); | 750 | public int llGetRegionFlags() { NotImplemented("llGetRegionFlags"); return 0; } |
751 | } | 751 | public string llXorBase64StringsCorrect(string str1, string str2) { NotImplemented("llXorBase64StringsCorrect"); return ""; } |
752 | catch (Exception ex) | 752 | public void llHTTPRequest() { NotImplemented("llHTTPRequest"); } |
753 | { | 753 | public void llResetLandBanList() { NotImplemented("llResetLandBanList"); } |
754 | return "llEscapeURL: " + ex.ToString(); | 754 | public void llResetLandPassList() { NotImplemented("llResetLandPassList"); } |
755 | } | 755 | public int llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide) { NotImplemented("llGetParcelPrimCount"); return 0; } |
756 | } | 756 | public List<string> llGetParcelPrimOwners(LSL_Types.Vector3 pos) { NotImplemented("llGetParcelPrimOwners"); return new List<string>(); } |
757 | 757 | public int llGetObjectPrimCount(string object_id) { NotImplemented("llGetObjectPrimCount"); return 0; } | |
758 | public string llUnescapeURL(string url) | 758 | public int llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide) { NotImplemented("llGetParcelMaxPrims"); return 0; } |
759 | { | 759 | public List<string> llGetParcelDetails(LSL_Types.Vector3 pos, List<string> param) { NotImplemented("llGetParcelDetails"); return new List<string>(); } |
760 | try | 760 | |
761 | { | 761 | // |
762 | return Uri.UnescapeDataString(url); | 762 | // OpenSim functions |
763 | } | 763 | // |
764 | catch (Exception ex) | 764 | public string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer) |
765 | { | 765 | { |
766 | return "llUnescapeURL: " + ex.ToString(); | 766 | if (dynamicID == "") |
767 | } | 767 | { |
768 | } | 768 | IDynamicTextureManager textureManager = this.World.RequestModuleInterface<IDynamicTextureManager>(); |
769 | public void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at) { } | 769 | LLUUID createdTexture = textureManager.AddDynamicTextureURL(World.RegionInfo.SimUUID, this.m_host.UUID, contentType, url, extraParams, timer); |
770 | public void llAddToLandBanList(string avatar, double hours) { } | 770 | return createdTexture.ToStringHyphenated(); |
771 | public void llRemoveFromLandPassList(string avatar) { } | 771 | } |
772 | public void llRemoveFromLandBanList(string avatar) { } | 772 | else |
773 | public void llSetCameraParams(List<string> rules) { } | 773 | { |
774 | public void llClearCameraParams() { } | 774 | //TODO update existing dynamic textures |
775 | public double llListStatistics(int operation, List<string> src) { return 0; } | 775 | } |
776 | 776 | ||
777 | public int llGetUnixTime() | 777 | return LLUUID.Zero.ToStringHyphenated(); |
778 | { | 778 | } |
779 | return Util.UnixTimeSinceEpoch(); | 779 | |
780 | } | 780 | private void NotImplemented(string Command) |
781 | 781 | { | |
782 | public int llGetParcelFlags(LSL_Types.Vector3 pos) { return 0; } | 782 | if (throwErrorOnNotImplemented) |
783 | public int llGetRegionFlags() { return 0; } | 783 | throw new NotImplementedException("Command not implemented: " + Command); |
784 | public string llXorBase64StringsCorrect(string str1, string str2) { return ""; } | 784 | } |
785 | public void llHTTPRequest() { } | 785 | |
786 | public void llResetLandBanList() { } | 786 | } |
787 | public void llResetLandPassList() { } | 787 | } |
788 | public int llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide) { return 0; } | ||
789 | public List<string> llGetParcelPrimOwners(LSL_Types.Vector3 pos) { return new List<string>(); } | ||
790 | public int llGetObjectPrimCount(string object_id) { return 0; } | ||
791 | public int llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide) { return 0; } | ||
792 | public List<string> llGetParcelDetails(LSL_Types.Vector3 pos, List<string> param) { return new List<string>(); } | ||
793 | |||
794 | // | ||
795 | // OpenSim functions | ||
796 | // | ||
797 | public string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer) | ||
798 | { | ||
799 | if (dynamicID == "") | ||
800 | { | ||
801 | IDynamicTextureManager textureManager = this.World.RequestModuleInterface<IDynamicTextureManager>(); | ||
802 | LLUUID createdTexture = textureManager.AddDynamicTextureURL(World.RegionInfo.SimUUID, this.m_host.UUID, contentType, url, extraParams, timer); | ||
803 | return createdTexture.ToStringHyphenated(); | ||
804 | } | ||
805 | else | ||
806 | { | ||
807 | //TODO update existing dynamic textures | ||
808 | } | ||
809 | |||
810 | return LLUUID.Zero.ToStringHyphenated(); | ||
811 | } | ||
812 | |||
813 | } | ||
814 | } | ||