aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/XEngine/Script
diff options
context:
space:
mode:
authorlbsa712008-06-24 21:09:49 +0000
committerlbsa712008-06-24 21:09:49 +0000
commit6b7930104bdb845d3b9c085dc04f52b6446f23b1 (patch)
tree05ee45781a455817fa400bb99f30f4d19d4eb1f8 /OpenSim/Region/ScriptEngine/XEngine/Script
parentbased on positive feedback on performance of making keys fixed length (diff)
downloadopensim-SC_OLD-6b7930104bdb845d3b9c085dc04f52b6446f23b1.zip
opensim-SC_OLD-6b7930104bdb845d3b9c085dc04f52b6446f23b1.tar.gz
opensim-SC_OLD-6b7930104bdb845d3b9c085dc04f52b6446f23b1.tar.bz2
opensim-SC_OLD-6b7930104bdb845d3b9c085dc04f52b6446f23b1.tar.xz
* Applied patch from Melanie, mantis issue #1581 - "Refactor LSL language, api and compiler out of XEngine"
"First stage in a major Script Engine refactor, that will result in the LSL implementaions ebing reconverged. Not there yet, but one major part is done." Thank you, Melanie!
Diffstat (limited to 'OpenSim/Region/ScriptEngine/XEngine/Script')
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/Script/AssemblyResolver.cs65
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs2397
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/Script/ILSL_ScriptCommands.cs653
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/Script/IOSSL_ScriptCommands.cs68
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/Script/IScript.cs46
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/Script/LSL_Types.cs1512
6 files changed, 0 insertions, 4741 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Script/AssemblyResolver.cs b/OpenSim/Region/ScriptEngine/XEngine/Script/AssemblyResolver.cs
deleted file mode 100644
index cf15b67..0000000
--- a/OpenSim/Region/ScriptEngine/XEngine/Script/AssemblyResolver.cs
+++ /dev/null
@@ -1,65 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.IO;
30using System.Reflection;
31
32namespace OpenSim.Region.ScriptEngine.XEngine.Script
33{
34 [Serializable]
35 public class AssemblyResolver
36 {
37 public static Assembly OnAssemblyResolve(object sender,
38 ResolveEventArgs args)
39 {
40 if (!(sender is System.AppDomain))
41 return null;
42
43 AppDomain myDomain = (AppDomain)sender;
44 string dirName = myDomain.FriendlyName;
45
46 string[] pathList = new string[] {"bin", "ScriptEngines",
47 Path.Combine("ScriptEngines", dirName)};
48
49 string assemblyName = args.Name;
50 if (assemblyName.IndexOf(",") != -1)
51 assemblyName = args.Name.Substring(0, args.Name.IndexOf(","));
52
53 foreach (string s in pathList)
54 {
55 string path = Path.Combine(Directory.GetCurrentDirectory(),
56 Path.Combine(s, assemblyName))+".dll";
57
58 if (File.Exists(path))
59 return Assembly.LoadFrom(path);
60 }
61
62 return null;
63 }
64 }
65}
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs b/OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs
deleted file mode 100644
index fc9f8fc..0000000
--- a/OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs
+++ /dev/null
@@ -1,2397 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Runtime.Remoting.Lifetime;
30using System.Threading;
31using System.Reflection;
32using System.Collections;
33using System.Collections.Generic;
34using OpenSim.Region.Environment.Interfaces;
35using integer = OpenSim.Region.ScriptEngine.XEngine.Script.LSL_Types.LSLInteger;
36using key = System.String;
37using vector = OpenSim.Region.ScriptEngine.XEngine.Script.LSL_Types.Vector3;
38using rotation = OpenSim.Region.ScriptEngine.XEngine.Script.LSL_Types.Quaternion;
39
40namespace OpenSim.Region.ScriptEngine.XEngine.Script
41{
42 public class BuiltIn_Commands_BaseClass : MarshalByRefObject, IOSSL_ScriptCommands, ILSL_ScriptCommands, IScript
43 {
44 //private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
45
46 // Object never expires
47 public override Object InitializeLifetimeService()
48 {
49 //Console.WriteLine("LSL_BaseClass: InitializeLifetimeService()");
50 // return null;
51 ILease lease = (ILease)base.InitializeLifetimeService();
52
53 if (lease.CurrentState == LeaseState.Initial)
54 {
55 lease.InitialLeaseTime = TimeSpan.Zero; // TimeSpan.FromMinutes(1);
56 //lease.SponsorshipTimeout = TimeSpan.FromMinutes(2);
57 //lease.RenewOnCallTime = TimeSpan.FromSeconds(2);
58 }
59 return lease;
60 }
61
62 public ILSL_ScriptCommands m_LSL_Functions;
63 public IOSSL_ScriptCommands m_OSSL_Functions;
64
65 public BuiltIn_Commands_BaseClass()
66 {
67 }
68
69 public Type Start(ILSL_ScriptCommands LSL_Functions, IOSSL_ScriptCommands OSSL_Functions)
70 {
71 m_LSL_Functions = LSL_Functions;
72 m_OSSL_Functions = OSSL_Functions;
73 m_InitialValues=GetVars();
74 return GetType();
75 }
76
77 private Dictionary<string, object> m_InitialValues =
78 new Dictionary<string, object>();
79 private Dictionary<string, FieldInfo> m_Fields =
80 new Dictionary<string, FieldInfo>();
81
82 public Dictionary<string, object> GetVars()
83 {
84 Dictionary<string, object> vars = new Dictionary<string, object>();
85
86 if (m_Fields == null)
87 return vars;
88
89 m_Fields.Clear();
90
91 Type t = GetType();
92
93 FieldInfo[] fields = t.GetFields(BindingFlags.NonPublic |
94 BindingFlags.Public |
95 BindingFlags.Instance |
96 BindingFlags.DeclaredOnly);
97
98 foreach (FieldInfo field in fields)
99 {
100 m_Fields[field.Name]=field;
101
102 vars[field.Name]=field.GetValue(this);
103 }
104
105 return vars;
106 }
107
108 public void SetVars(Dictionary<string, object> vars)
109 {
110 foreach (KeyValuePair<string, object> var in vars)
111 {
112 if (m_Fields.ContainsKey(var.Key))
113 {
114 m_Fields[var.Key].SetValue(this, var.Value);
115 }
116 }
117 }
118
119 public void ResetVars()
120 {
121 SetVars(m_InitialValues);
122 }
123
124 public string State
125 {
126 get { return m_LSL_Functions.State; }
127 set { m_LSL_Functions.State = value; }
128 }
129
130 public void state(string newState)
131 {
132 m_LSL_Functions.state(newState);
133 }
134
135 public void llSay(int channelID, string text)
136 {
137 m_LSL_Functions.llSay(channelID, text);
138 }
139
140 //
141 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
142 //
143 // They are only forwarders to LSL_BuiltIn_Commands.cs
144 //
145
146 public ICommander GetCommander(string name)
147 {
148 return m_LSL_Functions.GetCommander(name);
149 }
150
151 public double llSin(double f)
152 {
153 return m_LSL_Functions.llSin(f);
154 }
155 public double llCos(double f)
156 {
157 return m_LSL_Functions.llCos(f);
158 }
159
160 public double llTan(double f)
161 {
162 return m_LSL_Functions.llTan(f);
163 }
164
165 public double llAtan2(double x, double y)
166 {
167 return m_LSL_Functions.llAtan2(x, y);
168 }
169
170 public double llSqrt(double f)
171 {
172 return m_LSL_Functions.llSqrt(f);
173 }
174
175 public double llPow(double fbase, double fexponent)
176 {
177 return m_LSL_Functions.llPow(fbase, fexponent);
178 }
179
180 public LSL_Types.LSLInteger llAbs(int i)
181 {
182 return m_LSL_Functions.llAbs(i);
183 }
184
185 public double llFabs(double f)
186 {
187 return m_LSL_Functions.llFabs(f);
188 }
189
190 public double llFrand(double mag)
191 {
192 return m_LSL_Functions.llFrand(mag);
193 }
194
195 public LSL_Types.LSLInteger llFloor(double f)
196 {
197 return m_LSL_Functions.llFloor(f);
198 }
199
200 public LSL_Types.LSLInteger llCeil(double f)
201 {
202 return m_LSL_Functions.llCeil(f);
203 }
204
205 public LSL_Types.LSLInteger llRound(double f)
206 {
207 return m_LSL_Functions.llRound(f);
208 }
209
210 public double llVecMag(vector v)
211 {
212 return m_LSL_Functions.llVecMag(v);
213 }
214
215 public vector llVecNorm(vector v)
216 {
217 return m_LSL_Functions.llVecNorm(v);
218 }
219
220 public double llVecDist(vector a, vector b)
221 {
222 return m_LSL_Functions.llVecDist(a, b);
223 }
224
225 public vector llRot2Euler(rotation r)
226 {
227 return m_LSL_Functions.llRot2Euler(r);
228 }
229
230 public rotation llEuler2Rot(vector v)
231 {
232 return m_LSL_Functions.llEuler2Rot(v);
233 }
234
235 public rotation llAxes2Rot(vector fwd, vector left, vector up)
236 {
237 return m_LSL_Functions.llAxes2Rot(fwd, left, up);
238 }
239
240 public vector llRot2Fwd(rotation r)
241 {
242 return m_LSL_Functions.llRot2Fwd(r);
243 }
244
245 public vector llRot2Left(rotation r)
246 {
247 return m_LSL_Functions.llRot2Left(r);
248 }
249
250 public vector llRot2Up(rotation r)
251 {
252 return m_LSL_Functions.llRot2Up(r);
253 }
254
255 public rotation llRotBetween(vector start, vector end)
256 {
257 return m_LSL_Functions.llRotBetween(start, end);
258 }
259
260 public void llWhisper(int channelID, string text)
261 {
262 m_LSL_Functions.llWhisper(channelID, text);
263 }
264
265 //
266 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
267 //
268 public void llShout(int channelID, string text)
269 {
270 m_LSL_Functions.llShout(channelID, text);
271 }
272
273 public void llRegionSay(int channelID, string text)
274 {
275 m_LSL_Functions.llRegionSay(channelID, text);
276 }
277
278 public LSL_Types.LSLInteger llListen(int channelID, string name, string ID, string msg)
279 {
280 return m_LSL_Functions.llListen(channelID, name, ID, msg);
281 }
282
283 public void llListenControl(int number, int active)
284 {
285 m_LSL_Functions.llListenControl(number, active);
286 }
287
288 public void llListenRemove(int number)
289 {
290 m_LSL_Functions.llListenRemove(number);
291 }
292
293 public void llSensor(string name, string id, int type, double range, double arc)
294 {
295 m_LSL_Functions.llSensor(name, id, type, range, arc);
296 }
297
298 public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate)
299 {
300 m_LSL_Functions.llSensorRepeat(name, id, type, range, arc, rate);
301 }
302
303 public void llSensorRemove()
304 {
305 m_LSL_Functions.llSensorRemove();
306 }
307
308 public string llDetectedName(int number)
309 {
310 return m_LSL_Functions.llDetectedName(number);
311 }
312
313 public string llDetectedKey(int number)
314 {
315 return m_LSL_Functions.llDetectedKey(number);
316 }
317
318 public string llDetectedOwner(int number)
319 {
320 return m_LSL_Functions.llDetectedOwner(number);
321 }
322
323 public LSL_Types.LSLInteger llDetectedType(int number)
324 {
325 return m_LSL_Functions.llDetectedType(number);
326 }
327
328 public vector llDetectedPos(int number)
329 {
330 return m_LSL_Functions.llDetectedPos(number);
331 }
332
333 public vector llDetectedVel(int number)
334 {
335 return m_LSL_Functions.llDetectedVel(number);
336 }
337
338 public vector llDetectedGrab(int number)
339 {
340 return m_LSL_Functions.llDetectedGrab(number);
341 }
342
343 public rotation llDetectedRot(int number)
344 {
345 return m_LSL_Functions.llDetectedRot(number);
346 }
347
348 public LSL_Types.LSLInteger llDetectedGroup(int number)
349 {
350 return m_LSL_Functions.llDetectedGroup(number);
351 }
352
353 public LSL_Types.LSLInteger llDetectedLinkNumber(int number)
354 {
355 return m_LSL_Functions.llDetectedLinkNumber(number);
356 }
357
358 //
359 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
360 //
361 public void llDie()
362 {
363 m_LSL_Functions.llDie();
364 }
365
366 public double llGround(vector offset)
367 {
368 return m_LSL_Functions.llGround(offset);
369 }
370
371 public double llCloud(vector offset)
372 {
373 return m_LSL_Functions.llCloud(offset);
374 }
375
376 public vector llWind(vector offset)
377 {
378 return m_LSL_Functions.llWind(offset);
379 }
380
381 public void llSetStatus(int status, int value)
382 {
383 m_LSL_Functions.llSetStatus(status, value);
384 }
385
386 public LSL_Types.LSLInteger llGetStatus(int status)
387 {
388 return m_LSL_Functions.llGetStatus(status);
389 }
390
391 public void llSetScale(vector scale)
392 {
393 m_LSL_Functions.llSetScale(scale);
394 }
395
396 public vector llGetScale()
397 {
398 return m_LSL_Functions.llGetScale();
399 }
400
401 public void llSetColor(vector color, int face)
402 {
403 m_LSL_Functions.llSetColor(color, face);
404 }
405
406 public double llGetAlpha(int face)
407 {
408 return m_LSL_Functions.llGetAlpha(face);
409 }
410
411 public void llSetAlpha(double alpha, int face)
412 {
413 m_LSL_Functions.llSetAlpha(alpha, face);
414 }
415
416 public vector llGetColor(int face)
417 {
418 return m_LSL_Functions.llGetColor(face);
419 }
420
421 public void llSetTexture(string texture, int face)
422 {
423 m_LSL_Functions.llSetTexture(texture, face);
424 }
425
426 public void llScaleTexture(double u, double v, int face)
427 {
428 m_LSL_Functions.llScaleTexture(u, v, face);
429 }
430
431 public void llOffsetTexture(double u, double v, int face)
432 {
433 m_LSL_Functions.llOffsetTexture(u, v, face);
434 }
435
436 public void llRotateTexture(double rotation, int face)
437 {
438 m_LSL_Functions.llRotateTexture(rotation, face);
439 }
440
441 public string llGetTexture(int face)
442 {
443 return m_LSL_Functions.llGetTexture(face);
444 }
445
446 //
447 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
448 //
449 public void llSetPos(vector pos)
450 {
451 m_LSL_Functions.llSetPos(pos);
452 }
453
454 public vector llGetPos()
455 {
456 return m_LSL_Functions.llGetPos();
457 }
458
459 public vector llGetLocalPos()
460 {
461 return m_LSL_Functions.llGetLocalPos();
462 }
463
464 public void llSetRot(rotation rot)
465 {
466 m_LSL_Functions.llSetRot(rot);
467 }
468
469 public rotation llGetRot()
470 {
471 return m_LSL_Functions.llGetRot();
472 }
473
474 public rotation llGetLocalRot()
475 {
476 return m_LSL_Functions.llGetLocalRot();
477 }
478
479 public void llSetForce(vector force, int local)
480 {
481 m_LSL_Functions.llSetForce(force, local);
482 }
483
484 public vector llGetForce()
485 {
486 return m_LSL_Functions.llGetForce();
487 }
488
489 public LSL_Types.LSLInteger llTarget(vector position, double range)
490 {
491 return m_LSL_Functions.llTarget(position, range);
492 }
493
494 public void llTargetRemove(int number)
495 {
496 m_LSL_Functions.llTargetRemove(number);
497 }
498
499 public LSL_Types.LSLInteger llRotTarget(rotation rot, double error)
500 {
501 return m_LSL_Functions.llRotTarget(rot, error);
502 }
503
504 public void llRotTargetRemove(int number)
505 {
506 m_LSL_Functions.llRotTargetRemove(number);
507 }
508
509 public void llMoveToTarget(vector target, double tau)
510 {
511 m_LSL_Functions.llMoveToTarget(target, tau);
512 }
513
514 public void llStopMoveToTarget()
515 {
516 m_LSL_Functions.llStopMoveToTarget();
517 }
518
519 public void llApplyImpulse(vector force, int local)
520 {
521 m_LSL_Functions.llApplyImpulse(force, local);
522 }
523
524 //
525 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
526 //
527 public void llApplyRotationalImpulse(vector force, int local)
528 {
529 m_LSL_Functions.llApplyRotationalImpulse(force, local);
530 }
531
532 public void llSetTorque(vector torque, int local)
533 {
534 m_LSL_Functions.llSetTorque(torque, local);
535 }
536
537 public vector llGetTorque()
538 {
539 return m_LSL_Functions.llGetTorque();
540 }
541
542 public void llSetForceAndTorque(vector force, vector torque, int local)
543 {
544 m_LSL_Functions.llSetForceAndTorque(force, torque, local);
545 }
546
547 public vector llGetVel()
548 {
549 return m_LSL_Functions.llGetVel();
550 }
551
552 public vector llGetAccel()
553 {
554 return m_LSL_Functions.llGetAccel();
555 }
556
557 public vector llGetOmega()
558 {
559 return m_LSL_Functions.llGetOmega();
560 }
561
562 public double llGetTimeOfDay()
563 {
564 return m_LSL_Functions.llGetTimeOfDay();
565 }
566
567 public double llGetWallclock()
568 {
569 return m_LSL_Functions.llGetWallclock();
570 }
571
572 public double llGetTime()
573 {
574 return m_LSL_Functions.llGetTime();
575 }
576
577 public void llResetTime()
578 {
579 m_LSL_Functions.llResetTime();
580 }
581
582 public double llGetAndResetTime()
583 {
584 return m_LSL_Functions.llGetAndResetTime();
585 }
586
587 public void llSound()
588 {
589 m_LSL_Functions.llSound();
590 }
591
592 public void llPlaySound(string sound, double volume)
593 {
594 m_LSL_Functions.llPlaySound(sound, volume);
595 }
596
597 public void llLoopSound(string sound, double volume)
598 {
599 m_LSL_Functions.llLoopSound(sound, volume);
600 }
601
602 public void llLoopSoundMaster(string sound, double volume)
603 {
604 m_LSL_Functions.llLoopSoundMaster(sound, volume);
605 }
606
607 public void llLoopSoundSlave(string sound, double volume)
608 {
609 m_LSL_Functions.llLoopSoundSlave(sound, volume);
610 }
611
612 public void llPlaySoundSlave(string sound, double volume)
613 {
614 m_LSL_Functions.llPlaySoundSlave(sound, volume);
615 }
616
617 //
618 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
619 //
620 public void llTriggerSound(string sound, double volume)
621 {
622 m_LSL_Functions.llTriggerSound(sound, volume);
623 }
624
625 public void llStopSound()
626 {
627 m_LSL_Functions.llStopSound();
628 }
629
630 public void llPreloadSound(string sound)
631 {
632 m_LSL_Functions.llPreloadSound(sound);
633 }
634
635 public string llGetSubString(string src, int start, int end)
636 {
637 return m_LSL_Functions.llGetSubString(src, start, end);
638 }
639
640 public string llDeleteSubString(string src, int start, int end)
641 {
642 return m_LSL_Functions.llDeleteSubString(src, start, end);
643 }
644
645 public string llInsertString(string dst, int position, string src)
646 {
647 return m_LSL_Functions.llInsertString(dst, position, src);
648 }
649
650 public string llToUpper(string source)
651 {
652 return m_LSL_Functions.llToUpper(source);
653 }
654
655 public string llToLower(string source)
656 {
657 return m_LSL_Functions.llToLower(source);
658 }
659
660 public LSL_Types.LSLInteger llGiveMoney(string destination, int amount)
661 {
662 return m_LSL_Functions.llGiveMoney(destination, amount);
663 }
664
665 public void llMakeExplosion()
666 {
667 m_LSL_Functions.llMakeExplosion();
668 }
669
670 public void llMakeFountain()
671 {
672 m_LSL_Functions.llMakeFountain();
673 }
674
675 public void llMakeSmoke()
676 {
677 m_LSL_Functions.llMakeSmoke();
678 }
679
680 public void llMakeFire()
681 {
682 m_LSL_Functions.llMakeFire();
683 }
684
685 public void llRezObject(string inventory, vector pos, vector vel, rotation rot, int param)
686 {
687 m_LSL_Functions.llRezObject(inventory, pos, vel, rot, param);
688 }
689
690 public void llLookAt(vector target, double strength, double damping)
691 {
692 m_LSL_Functions.llLookAt(target, strength, damping);
693 }
694
695 public void llStopLookAt()
696 {
697 m_LSL_Functions.llStopLookAt();
698 }
699
700 public void llSetTimerEvent(double sec)
701 {
702 m_LSL_Functions.llSetTimerEvent(sec);
703 }
704
705 public void llSleep(double sec)
706 {
707 m_LSL_Functions.llSleep(sec);
708 }
709
710 //
711 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
712 //
713 public double llGetMass()
714 {
715 return m_LSL_Functions.llGetMass();
716 }
717
718 public void llCollisionFilter(string name, string id, int accept)
719 {
720 m_LSL_Functions.llCollisionFilter(name, id, accept);
721 }
722
723 public void llTakeControls(int controls, int accept, int pass_on)
724 {
725 m_LSL_Functions.llTakeControls(controls, accept, pass_on);
726 }
727
728 public void llReleaseControls()
729 {
730 m_LSL_Functions.llReleaseControls();
731 }
732
733 public void llAttachToAvatar(int attachment)
734 {
735 m_LSL_Functions.llAttachToAvatar(attachment);
736 }
737
738 public void llDetachFromAvatar()
739 {
740 m_LSL_Functions.llDetachFromAvatar();
741 }
742
743 public void llTakeCamera()
744 {
745 m_LSL_Functions.llTakeCamera();
746 }
747
748 public void llReleaseCamera()
749 {
750 m_LSL_Functions.llReleaseCamera();
751 }
752
753 public string llGetOwner()
754 {
755 return m_LSL_Functions.llGetOwner();
756 }
757
758 public void llInstantMessage(string user, string message)
759 {
760 m_LSL_Functions.llInstantMessage(user, message);
761 }
762
763 public void llEmail(string address, string subject, string message)
764 {
765 m_LSL_Functions.llEmail(address, subject, message);
766 }
767
768 public void llGetNextEmail(string address, string subject)
769 {
770 m_LSL_Functions.llGetNextEmail(address, subject);
771 }
772
773 public string llGetKey()
774 {
775 return m_LSL_Functions.llGetKey();
776 }
777
778 public void llSetBuoyancy(double buoyancy)
779 {
780 m_LSL_Functions.llSetBuoyancy(buoyancy);
781 }
782
783 public void llSetHoverHeight(double height, int water, double tau)
784 {
785 m_LSL_Functions.llSetHoverHeight(height, water, tau);
786 }
787
788 public void llStopHover()
789 {
790 m_LSL_Functions.llStopHover();
791 }
792
793 public void llMinEventDelay(double delay)
794 {
795 m_LSL_Functions.llMinEventDelay(delay);
796 }
797
798 public void llSoundPreload()
799 {
800 m_LSL_Functions.llSoundPreload();
801 }
802
803 public void llRotLookAt(rotation target, double strength, double damping)
804 {
805 m_LSL_Functions.llRotLookAt(target, strength, damping);
806 }
807
808 //
809 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
810 //
811 public LSL_Types.LSLInteger llStringLength(string str)
812 {
813 return m_LSL_Functions.llStringLength(str);
814 }
815
816 public void llStartAnimation(string anim)
817 {
818 m_LSL_Functions.llStartAnimation(anim);
819 }
820
821 public void llStopAnimation(string anim)
822 {
823 m_LSL_Functions.llStopAnimation(anim);
824 }
825
826 public void llPointAt()
827 {
828 m_LSL_Functions.llPointAt();
829 }
830
831 public void llStopPointAt()
832 {
833 m_LSL_Functions.llStopPointAt();
834 }
835
836 public void llTargetOmega(vector axis, double spinrate, double gain)
837 {
838 m_LSL_Functions.llTargetOmega(axis, spinrate, gain);
839 }
840
841 public LSL_Types.LSLInteger llGetStartParameter()
842 {
843 return m_LSL_Functions.llGetStartParameter();
844 }
845
846 public void llGodLikeRezObject(string inventory, vector pos)
847 {
848 m_LSL_Functions.llGodLikeRezObject(inventory, pos);
849 }
850
851 public void llRequestPermissions(string agent, int perm)
852 {
853 m_LSL_Functions.llRequestPermissions(agent, perm);
854 }
855
856 public string llGetPermissionsKey()
857 {
858 return m_LSL_Functions.llGetPermissionsKey();
859 }
860
861 public LSL_Types.LSLInteger llGetPermissions()
862 {
863 return m_LSL_Functions.llGetPermissions();
864 }
865
866 public LSL_Types.LSLInteger llGetLinkNumber()
867 {
868 return m_LSL_Functions.llGetLinkNumber();
869 }
870
871 public void llSetLinkColor(int linknumber, vector color, int face)
872 {
873 m_LSL_Functions.llSetLinkColor(linknumber, color, face);
874 }
875
876 public void llCreateLink(string target, int parent)
877 {
878 m_LSL_Functions.llCreateLink(target, parent);
879 }
880
881 public void llBreakLink(int linknum)
882 {
883 m_LSL_Functions.llBreakLink(linknum);
884 }
885
886 public void llBreakAllLinks()
887 {
888 m_LSL_Functions.llBreakAllLinks();
889 }
890
891 public string llGetLinkKey(int linknum)
892 {
893 return m_LSL_Functions.llGetLinkKey(linknum);
894 }
895
896 public string llGetLinkName(int linknum)
897 {
898 return m_LSL_Functions.llGetLinkName(linknum);
899 }
900
901 public LSL_Types.LSLInteger llGetInventoryNumber(int type)
902 {
903 return m_LSL_Functions.llGetInventoryNumber(type);
904 }
905
906 public string llGetInventoryName(int type, int number)
907 {
908 return m_LSL_Functions.llGetInventoryName(type, number);
909 }
910
911 //
912 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
913 //
914 public void llSetScriptState(string name, int run)
915 {
916 m_LSL_Functions.llSetScriptState(name, run);
917 }
918
919 public double llGetEnergy()
920 {
921 return m_LSL_Functions.llGetEnergy();
922 }
923
924 public void llGiveInventory(string destination, string inventory)
925 {
926 m_LSL_Functions.llGiveInventory(destination, inventory);
927 }
928
929 public void llRemoveInventory(string item)
930 {
931 m_LSL_Functions.llRemoveInventory(item);
932 }
933
934 public void llSetText(string text, vector color, double alpha)
935 {
936 m_LSL_Functions.llSetText(text, color, alpha);
937 }
938
939 public double llWater(vector offset)
940 {
941 return m_LSL_Functions.llWater(offset);
942 }
943
944 public void llPassTouches(int pass)
945 {
946 m_LSL_Functions.llPassTouches(pass);
947 }
948
949 public string llRequestAgentData(string id, int data)
950 {
951 return m_LSL_Functions.llRequestAgentData(id, data);
952 }
953
954 public string llRequestInventoryData(string name)
955 {
956 return m_LSL_Functions.llRequestInventoryData(name);
957 }
958
959 public void llSetDamage(double damage)
960 {
961 m_LSL_Functions.llSetDamage(damage);
962 }
963
964 public void llTeleportAgentHome(string agent)
965 {
966 m_LSL_Functions.llTeleportAgentHome(agent);
967 }
968
969 public void llModifyLand(int action, int brush)
970 {
971 m_LSL_Functions.llModifyLand(action, brush);
972 }
973
974 public void llCollisionSound(string impact_sound, double impact_volume)
975 {
976 m_LSL_Functions.llCollisionSound(impact_sound, impact_volume);
977 }
978
979 public void llCollisionSprite(string impact_sprite)
980 {
981 m_LSL_Functions.llCollisionSprite(impact_sprite);
982 }
983
984 public string llGetAnimation(string id)
985 {
986 return m_LSL_Functions.llGetAnimation(id);
987 }
988
989 public void llResetScript()
990 {
991 m_LSL_Functions.llResetScript();
992 }
993
994 public void llMessageLinked(int linknum, int num, string str, string id)
995 {
996 m_LSL_Functions.llMessageLinked(linknum, num, str, id);
997 }
998
999 public void llPushObject(string target, vector impulse, vector ang_impulse, int local)
1000 {
1001 m_LSL_Functions.llPushObject(target, impulse, ang_impulse, local);
1002 }
1003
1004 public void llPassCollisions(int pass)
1005 {
1006 m_LSL_Functions.llPassCollisions(pass);
1007 }
1008
1009 public string llGetScriptName()
1010 {
1011 return m_LSL_Functions.llGetScriptName();
1012 }
1013
1014 public LSL_Types.LSLInteger llGetNumberOfSides()
1015 {
1016 return m_LSL_Functions.llGetNumberOfSides();
1017 }
1018
1019 //
1020 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1021 //
1022 public rotation llAxisAngle2Rot(vector axis, double angle)
1023 {
1024 return m_LSL_Functions.llAxisAngle2Rot(axis, angle);
1025 }
1026
1027 public vector llRot2Axis(rotation rot)
1028 {
1029 return m_LSL_Functions.llRot2Axis(rot);
1030 }
1031
1032 public double llRot2Angle(rotation rot)
1033 {
1034 return m_LSL_Functions.llRot2Angle(rot);
1035 }
1036
1037 public double llAcos(double val)
1038 {
1039 return m_LSL_Functions.llAcos(val);
1040 }
1041
1042 public double llAsin(double val)
1043 {
1044 return m_LSL_Functions.llAsin(val);
1045 }
1046
1047 public double llAngleBetween(rotation a, rotation b)
1048 {
1049 return m_LSL_Functions.llAngleBetween(a, b);
1050 }
1051
1052 public string llGetInventoryKey(string name)
1053 {
1054 return m_LSL_Functions.llGetInventoryKey(name);
1055 }
1056
1057 public void llAllowInventoryDrop(int add)
1058 {
1059 m_LSL_Functions.llAllowInventoryDrop(add);
1060 }
1061
1062 public vector llGetSunDirection()
1063 {
1064 return m_LSL_Functions.llGetSunDirection();
1065 }
1066
1067 public vector llGetTextureOffset(int face)
1068 {
1069 return m_LSL_Functions.llGetTextureOffset(face);
1070 }
1071
1072 public vector llGetTextureScale(int side)
1073 {
1074 return m_LSL_Functions.llGetTextureScale(side);
1075 }
1076
1077 public double llGetTextureRot(int side)
1078 {
1079 return m_LSL_Functions.llGetTextureRot(side);
1080 }
1081
1082 public LSL_Types.LSLInteger llSubStringIndex(string source, string pattern)
1083 {
1084 return m_LSL_Functions.llSubStringIndex(source, pattern);
1085 }
1086
1087 public string llGetOwnerKey(string id)
1088 {
1089 return m_LSL_Functions.llGetOwnerKey(id);
1090 }
1091
1092 public vector llGetCenterOfMass()
1093 {
1094 return m_LSL_Functions.llGetCenterOfMass();
1095 }
1096
1097 public LSL_Types.list llListSort(LSL_Types.list src, int stride, int ascending)
1098 {
1099 return m_LSL_Functions.llListSort(src, stride, ascending);
1100 }
1101
1102 public LSL_Types.LSLInteger llGetListLength(LSL_Types.list src)
1103 {
1104 return m_LSL_Functions.llGetListLength(src);
1105 }
1106
1107 //
1108 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1109 //
1110 public LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index)
1111 {
1112 return m_LSL_Functions.llList2Integer(src, index);
1113 }
1114
1115 public string llList2String(LSL_Types.list src, int index)
1116 {
1117 return m_LSL_Functions.llList2String(src, index);
1118 }
1119
1120 public string llList2Key(LSL_Types.list src, int index)
1121 {
1122 return m_LSL_Functions.llList2Key(src, index);
1123 }
1124
1125 public vector llList2Vector(LSL_Types.list src, int index)
1126 {
1127 return m_LSL_Functions.llList2Vector(src, index);
1128 }
1129
1130 public rotation llList2Rot(LSL_Types.list src, int index)
1131 {
1132 return m_LSL_Functions.llList2Rot(src, index);
1133 }
1134
1135 public LSL_Types.list llList2List(LSL_Types.list src, int start, int end)
1136 {
1137 return m_LSL_Functions.llList2List(src, start, end);
1138 }
1139
1140 public LSL_Types.list llDeleteSubList(LSL_Types.list src, int start, int end)
1141 {
1142 return m_LSL_Functions.llDeleteSubList(src, start, end);
1143 }
1144
1145 public LSL_Types.LSLInteger llGetListEntryType(LSL_Types.list src, int index)
1146 {
1147 return m_LSL_Functions.llGetListEntryType(src, index);
1148 }
1149
1150 public string llList2CSV(LSL_Types.list src)
1151 {
1152 return m_LSL_Functions.llList2CSV(src);
1153 }
1154
1155 public LSL_Types.list llCSV2List(string src)
1156 {
1157 return m_LSL_Functions.llCSV2List(src);
1158 }
1159
1160 public LSL_Types.list llListRandomize(LSL_Types.list src, int stride)
1161 {
1162 return m_LSL_Functions.llListRandomize(src, stride);
1163 }
1164
1165 public LSL_Types.list llList2ListStrided(LSL_Types.list src, int start, int end, int stride)
1166 {
1167 return m_LSL_Functions.llList2ListStrided(src, start, end, stride);
1168 }
1169
1170 public vector llGetRegionCorner()
1171 {
1172 return m_LSL_Functions.llGetRegionCorner();
1173 }
1174
1175 public LSL_Types.list llListInsertList(LSL_Types.list dest, LSL_Types.list src, int start)
1176 {
1177 return m_LSL_Functions.llListInsertList(dest, src, start);
1178 }
1179
1180 public LSL_Types.LSLInteger llListFindList(LSL_Types.list src, LSL_Types.list test)
1181 {
1182 return m_LSL_Functions.llListFindList(src, test);
1183 }
1184
1185 public string llGetObjectName()
1186 {
1187 return m_LSL_Functions.llGetObjectName();
1188 }
1189
1190 public void llSetObjectName(string name)
1191 {
1192 m_LSL_Functions.llSetObjectName(name);
1193 }
1194
1195 public string llGetDate()
1196 {
1197 return m_LSL_Functions.llGetDate();
1198 }
1199
1200 public LSL_Types.LSLInteger llEdgeOfWorld(vector pos, vector dir)
1201 {
1202 return m_LSL_Functions.llEdgeOfWorld(pos, dir);
1203 }
1204
1205 public LSL_Types.LSLInteger llGetAgentInfo(string id)
1206 {
1207 return m_LSL_Functions.llGetAgentInfo(id);
1208 }
1209
1210 //
1211 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1212 //
1213 public void llAdjustSoundVolume(double volume)
1214 {
1215 m_LSL_Functions.llAdjustSoundVolume(volume);
1216 }
1217
1218 public void llSetSoundQueueing(int queue)
1219 {
1220 m_LSL_Functions.llSetSoundQueueing(queue);
1221 }
1222
1223 public void llSetSoundRadius(double radius)
1224 {
1225 m_LSL_Functions.llSetSoundRadius(radius);
1226 }
1227
1228 public string llKey2Name(string id)
1229 {
1230 return m_LSL_Functions.llKey2Name(id);
1231 }
1232
1233 public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate)
1234 {
1235 m_LSL_Functions.llSetTextureAnim(mode, face, sizex, sizey, start, length, rate);
1236 }
1237
1238 public void llTriggerSoundLimited(string sound, double volume, vector top_north_east, vector bottom_south_west)
1239 {
1240 m_LSL_Functions.llTriggerSoundLimited(sound, volume, top_north_east, bottom_south_west);
1241 }
1242
1243 public void llEjectFromLand(string pest)
1244 {
1245 m_LSL_Functions.llEjectFromLand(pest);
1246 }
1247
1248 public LSL_Types.list llParseString2List(string str, LSL_Types.list separators, LSL_Types.list spacers)
1249 {
1250 return m_LSL_Functions.llParseString2List(str,separators,spacers);
1251 }
1252
1253 public LSL_Types.LSLInteger llOverMyLand(string id)
1254 {
1255 return m_LSL_Functions.llOverMyLand(id);
1256 }
1257
1258 public string llGetLandOwnerAt(vector pos)
1259 {
1260 return m_LSL_Functions.llGetLandOwnerAt(pos);
1261 }
1262
1263 public string llGetNotecardLine(string name, int line)
1264 {
1265 return m_LSL_Functions.llGetNotecardLine(name, line);
1266 }
1267
1268 public vector llGetAgentSize(string id)
1269 {
1270 return m_LSL_Functions.llGetAgentSize(id);
1271 }
1272
1273 public LSL_Types.LSLInteger llSameGroup(string agent)
1274 {
1275 return m_LSL_Functions.llSameGroup(agent);
1276 }
1277
1278 public void llUnSit(string id)
1279 {
1280 m_LSL_Functions.llUnSit(id);
1281 }
1282
1283 public vector llGroundSlope(vector offset)
1284 {
1285 return m_LSL_Functions.llGroundSlope(offset);
1286 }
1287
1288 public vector llGroundNormal(vector offset)
1289 {
1290 return m_LSL_Functions.llGroundNormal(offset);
1291 }
1292
1293 public vector llGroundContour(vector offset)
1294 {
1295 return m_LSL_Functions.llGroundContour(offset);
1296 }
1297
1298 public LSL_Types.LSLInteger llGetAttached()
1299 {
1300 return m_LSL_Functions.llGetAttached();
1301 }
1302
1303 public LSL_Types.LSLInteger llGetFreeMemory()
1304 {
1305 return m_LSL_Functions.llGetFreeMemory();
1306 }
1307
1308 public string llGetRegionName()
1309 {
1310 return m_LSL_Functions.llGetRegionName();
1311 }
1312
1313 public double llGetRegionTimeDilation()
1314 {
1315 return m_LSL_Functions.llGetRegionTimeDilation();
1316 }
1317
1318 public double llGetRegionFPS()
1319 {
1320 return m_LSL_Functions.llGetRegionFPS();
1321 }
1322
1323 //
1324 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1325 //
1326 public void llParticleSystem(LSL_Types.list rules)
1327 {
1328 m_LSL_Functions.llParticleSystem(rules);
1329 }
1330
1331 public void llGroundRepel(double height, int water, double tau)
1332 {
1333 m_LSL_Functions.llGroundRepel(height, water, tau);
1334 }
1335
1336 public void llGiveInventoryList(string destination, string category, LSL_Types.list inventory)
1337 {
1338 m_LSL_Functions.llGiveInventoryList(destination, category, inventory);
1339 }
1340
1341 public void llSetVehicleType(int type)
1342 {
1343 m_LSL_Functions.llSetVehicleType(type);
1344 }
1345
1346 public void llSetVehicledoubleParam(int param, double value)
1347 {
1348 m_LSL_Functions.llSetVehicledoubleParam(param, value);
1349 }
1350
1351 public void llSetVehicleFloatParam(int param, float value)
1352 {
1353 m_LSL_Functions.llSetVehicleFloatParam(param, value);
1354 }
1355
1356 public void llSetVehicleVectorParam(int param, vector vec)
1357 {
1358 m_LSL_Functions.llSetVehicleVectorParam(param, vec);
1359 }
1360
1361 public void llSetVehicleRotationParam(int param, rotation rot)
1362 {
1363 m_LSL_Functions.llSetVehicleRotationParam(param, rot);
1364 }
1365
1366 public void llSetVehicleFlags(int flags)
1367 {
1368 m_LSL_Functions.llSetVehicleFlags(flags);
1369 }
1370
1371 public void llRemoveVehicleFlags(int flags)
1372 {
1373 m_LSL_Functions.llRemoveVehicleFlags(flags);
1374 }
1375
1376 public void llSitTarget(vector offset, rotation rot)
1377 {
1378 m_LSL_Functions.llSitTarget(offset, rot);
1379 }
1380
1381 public string llAvatarOnSitTarget()
1382 {
1383 return m_LSL_Functions.llAvatarOnSitTarget();
1384 }
1385
1386 public void llAddToLandPassList(string avatar, double hours)
1387 {
1388 m_LSL_Functions.llAddToLandPassList(avatar, hours);
1389 }
1390
1391 public void llSetTouchText(string text)
1392 {
1393 m_LSL_Functions.llSetTouchText(text);
1394 }
1395
1396 public void llSetSitText(string text)
1397 {
1398 m_LSL_Functions.llSetSitText(text);
1399 }
1400
1401 public void llSetCameraEyeOffset(vector offset)
1402 {
1403 m_LSL_Functions.llSetCameraEyeOffset(offset);
1404 }
1405
1406 public void llSetCameraAtOffset(vector offset)
1407 {
1408 m_LSL_Functions.llSetCameraAtOffset(offset);
1409 }
1410
1411 public string llDumpList2String(LSL_Types.list src, string seperator)
1412 {
1413 return m_LSL_Functions.llDumpList2String(src, seperator);
1414 }
1415
1416 public LSL_Types.LSLInteger llScriptDanger(vector pos)
1417 {
1418 return m_LSL_Functions.llScriptDanger(pos);
1419 }
1420
1421 public void llDialog(string avatar, string message, LSL_Types.list buttons, int chat_channel)
1422 {
1423 m_LSL_Functions.llDialog(avatar, message, buttons, chat_channel);
1424 }
1425
1426 public void llVolumeDetect(int detect)
1427 {
1428 m_LSL_Functions.llVolumeDetect(detect);
1429 }
1430
1431 public void llResetOtherScript(string name)
1432 {
1433 m_LSL_Functions.llResetOtherScript(name);
1434 }
1435
1436 public LSL_Types.LSLInteger llGetScriptState(string name)
1437 {
1438 return m_LSL_Functions.llGetScriptState(name);
1439 }
1440
1441 public void llRemoteLoadScript()
1442 {
1443 m_LSL_Functions.llRemoteLoadScript();
1444 }
1445
1446 public void llSetRemoteScriptAccessPin(int pin)
1447 {
1448 m_LSL_Functions.llSetRemoteScriptAccessPin(pin);
1449 }
1450
1451 public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param)
1452 {
1453 m_LSL_Functions.llRemoteLoadScriptPin(target, name, pin, running, start_param);
1454 }
1455
1456 //
1457 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1458 //
1459 public void llOpenRemoteDataChannel()
1460 {
1461 m_LSL_Functions.llOpenRemoteDataChannel();
1462 }
1463
1464 public string llSendRemoteData(string channel, string dest, int idata, string sdata)
1465 {
1466 return m_LSL_Functions.llSendRemoteData(channel, dest, idata, sdata);
1467 }
1468
1469 public void llRemoteDataReply(string channel, string message_id, string sdata, int idata)
1470 {
1471 m_LSL_Functions.llRemoteDataReply(channel, message_id, sdata, idata);
1472 }
1473
1474 public void llCloseRemoteDataChannel(string channel)
1475 {
1476 m_LSL_Functions.llCloseRemoteDataChannel(channel);
1477 }
1478
1479 public string llMD5String(string src, int nonce)
1480 {
1481 return m_LSL_Functions.llMD5String(src, nonce);
1482 }
1483
1484 public void llSetPrimitiveParams(LSL_Types.list rules)
1485 {
1486 m_LSL_Functions.llSetPrimitiveParams(rules);
1487 }
1488
1489 public void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules)
1490 {
1491 m_LSL_Functions.llSetLinkPrimitiveParams(linknumber, rules);
1492 }
1493 public string llStringToBase64(string str)
1494 {
1495 return m_LSL_Functions.llStringToBase64(str);
1496 }
1497
1498 public string llBase64ToString(string str)
1499 {
1500 return m_LSL_Functions.llBase64ToString(str);
1501 }
1502
1503 public void llXorBase64Strings()
1504 {
1505 m_LSL_Functions.llXorBase64Strings();
1506 }
1507
1508 public void llRemoteDataSetRegion()
1509 {
1510 m_LSL_Functions.llRemoteDataSetRegion();
1511 }
1512
1513 public double llLog10(double val)
1514 {
1515 return m_LSL_Functions.llLog10(val);
1516 }
1517
1518 public double llLog(double val)
1519 {
1520 return m_LSL_Functions.llLog(val);
1521 }
1522
1523 public LSL_Types.list llGetAnimationList(string id)
1524 {
1525 return m_LSL_Functions.llGetAnimationList(id);
1526 }
1527
1528 public void llSetParcelMusicURL(string url)
1529 {
1530 m_LSL_Functions.llSetParcelMusicURL(url);
1531 }
1532
1533 public vector llGetRootPosition()
1534 {
1535 return m_LSL_Functions.llGetRootPosition();
1536 }
1537
1538 public rotation llGetRootRotation()
1539 {
1540 return m_LSL_Functions.llGetRootRotation();
1541 }
1542
1543 public string llGetObjectDesc()
1544 {
1545 return m_LSL_Functions.llGetObjectDesc();
1546 }
1547
1548 public void llSetObjectDesc(string desc)
1549 {
1550 m_LSL_Functions.llSetObjectDesc(desc);
1551 }
1552
1553 public string llGetCreator()
1554 {
1555 return m_LSL_Functions.llGetCreator();
1556 }
1557
1558 public string llGetTimestamp()
1559 {
1560 return m_LSL_Functions.llGetTimestamp();
1561 }
1562
1563 public void llSetLinkAlpha(int linknumber, double alpha, int face)
1564 {
1565 m_LSL_Functions.llSetLinkAlpha(linknumber, alpha, face);
1566 }
1567
1568 public LSL_Types.LSLInteger llGetNumberOfPrims()
1569 {
1570 return m_LSL_Functions.llGetNumberOfPrims();
1571 }
1572
1573 public string llGetNumberOfNotecardLines(string name)
1574 {
1575 return m_LSL_Functions.llGetNumberOfNotecardLines(name);
1576 }
1577
1578 public LSL_Types.list llGetBoundingBox(string obj)
1579 {
1580 return m_LSL_Functions.llGetBoundingBox(obj);
1581 }
1582
1583 public vector llGetGeometricCenter()
1584 {
1585 return m_LSL_Functions.llGetGeometricCenter();
1586 }
1587
1588 public LSL_Types.list llGetPrimitiveParams(LSL_Types.list rules)
1589 {
1590 return m_LSL_Functions.llGetPrimitiveParams(rules);
1591 }
1592
1593 //
1594 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1595 //
1596 public string llIntegerToBase64(int number)
1597 {
1598 return m_LSL_Functions.llIntegerToBase64(number);
1599 }
1600
1601 public LSL_Types.LSLInteger llBase64ToInteger(string str)
1602 {
1603 return m_LSL_Functions.llBase64ToInteger(str);
1604 }
1605
1606 public double llGetGMTclock()
1607 {
1608 return m_LSL_Functions.llGetGMTclock();
1609 }
1610
1611 public string llGetSimulatorHostname()
1612 {
1613 return m_LSL_Functions.llGetSimulatorHostname();
1614 }
1615
1616 public void llSetLocalRot(rotation rot)
1617 {
1618 m_LSL_Functions.llSetLocalRot(rot);
1619 }
1620
1621 public LSL_Types.list llParseStringKeepNulls(string src, LSL_Types.list seperators, LSL_Types.list spacers)
1622 {
1623 return m_LSL_Functions.llParseStringKeepNulls(src, seperators, spacers);
1624 }
1625
1626 public void llRezAtRoot(string inventory, vector position, vector velocity, rotation rot, int param)
1627 {
1628 m_LSL_Functions.llRezAtRoot(inventory, position, velocity, rot, param);
1629 }
1630
1631 public LSL_Types.LSLInteger llGetObjectPermMask(int mask)
1632 {
1633 return m_LSL_Functions.llGetObjectPermMask(mask);
1634 }
1635
1636 public void llSetObjectPermMask(int mask, int value)
1637 {
1638 m_LSL_Functions.llSetObjectPermMask(mask, value);
1639 }
1640
1641 public LSL_Types.LSLInteger llGetInventoryPermMask(string item, int mask)
1642 {
1643 return m_LSL_Functions.llGetInventoryPermMask(item, mask);
1644 }
1645
1646 public void llSetInventoryPermMask(string item, int mask, int value)
1647 {
1648 m_LSL_Functions.llSetInventoryPermMask(item, mask, value);
1649 }
1650
1651 public string llGetInventoryCreator(string item)
1652 {
1653 return m_LSL_Functions.llGetInventoryCreator(item);
1654 }
1655
1656 public void llOwnerSay(string msg)
1657 {
1658 m_LSL_Functions.llOwnerSay(msg);
1659 }
1660
1661 public string llRequestSimulatorData(string simulator, int data)
1662 {
1663 return m_LSL_Functions.llRequestSimulatorData(simulator, data);
1664 }
1665
1666 public void llForceMouselook(int mouselook)
1667 {
1668 m_LSL_Functions.llForceMouselook(mouselook);
1669 }
1670
1671 public double llGetObjectMass(string id)
1672 {
1673 return m_LSL_Functions.llGetObjectMass(id);
1674 }
1675
1676 public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end)
1677 {
1678 return m_LSL_Functions.llListReplaceList(dest, src, start, end);
1679 }
1680
1681 public void llLoadURL(string avatar_id, string message, string url)
1682 {
1683 m_LSL_Functions.llLoadURL(avatar_id, message, url);
1684 }
1685
1686 public void llParcelMediaCommandList(LSL_Types.list commandList)
1687 {
1688 m_LSL_Functions.llParcelMediaCommandList(commandList);
1689 }
1690
1691 public void llParcelMediaQuery()
1692 {
1693 m_LSL_Functions.llParcelMediaQuery();
1694 }
1695
1696 public LSL_Types.LSLInteger llModPow(int a, int b, int c)
1697 {
1698 return m_LSL_Functions.llModPow(a, b, c);
1699 }
1700
1701 //
1702 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1703 //
1704 public LSL_Types.LSLInteger llGetInventoryType(string name)
1705 {
1706 return m_LSL_Functions.llGetInventoryType(name);
1707 }
1708
1709 public void llSetPayPrice(int price, LSL_Types.list quick_pay_buttons)
1710 {
1711 m_LSL_Functions.llSetPayPrice(price, quick_pay_buttons);
1712 }
1713
1714 public vector llGetCameraPos()
1715 {
1716 return m_LSL_Functions.llGetCameraPos();
1717 }
1718
1719 public rotation llGetCameraRot()
1720 {
1721 return m_LSL_Functions.llGetCameraRot();
1722 }
1723
1724 public void llSetPrimURL()
1725 {
1726 m_LSL_Functions.llSetPrimURL();
1727 }
1728
1729 public void llRefreshPrimURL()
1730 {
1731 m_LSL_Functions.llRefreshPrimURL();
1732 }
1733
1734 public string llEscapeURL(string url)
1735 {
1736 return m_LSL_Functions.llEscapeURL(url);
1737 }
1738
1739 public string llUnescapeURL(string url)
1740 {
1741 return m_LSL_Functions.llUnescapeURL(url);
1742 }
1743
1744 public void llMapDestination(string simname, vector pos, vector look_at)
1745 {
1746 m_LSL_Functions.llMapDestination(simname, pos, look_at);
1747 }
1748
1749 public void llAddToLandBanList(string avatar, double hours)
1750 {
1751 m_LSL_Functions.llAddToLandBanList(avatar, hours);
1752 }
1753
1754 public void llRemoveFromLandPassList(string avatar)
1755 {
1756 m_LSL_Functions.llRemoveFromLandPassList(avatar);
1757 }
1758
1759 public void llRemoveFromLandBanList(string avatar)
1760 {
1761 m_LSL_Functions.llRemoveFromLandBanList(avatar);
1762 }
1763
1764 public void llSetCameraParams(LSL_Types.list rules)
1765 {
1766 m_LSL_Functions.llSetCameraParams(rules);
1767 }
1768
1769 public void llClearCameraParams()
1770 {
1771 m_LSL_Functions.llClearCameraParams();
1772 }
1773
1774 public double llListStatistics(int operation, LSL_Types.list src)
1775 {
1776 return m_LSL_Functions.llListStatistics(operation, src);
1777 }
1778
1779 public LSL_Types.LSLInteger llGetUnixTime()
1780 {
1781 return m_LSL_Functions.llGetUnixTime();
1782 }
1783
1784 public LSL_Types.LSLInteger llGetParcelFlags(vector pos)
1785 {
1786 return m_LSL_Functions.llGetParcelFlags(pos);
1787 }
1788
1789 public LSL_Types.LSLInteger llGetRegionFlags()
1790 {
1791 return m_LSL_Functions.llGetRegionFlags();
1792 }
1793
1794 public string llXorBase64StringsCorrect(string str1, string str2)
1795 {
1796 return m_LSL_Functions.llXorBase64StringsCorrect(str1, str2);
1797 }
1798
1799 public string llHTTPRequest(string url, LSL_Types.list parameters, string body)
1800 {
1801 return m_LSL_Functions.llHTTPRequest(url, parameters, body);
1802 }
1803
1804 public void llResetLandBanList()
1805 {
1806 m_LSL_Functions.llResetLandBanList();
1807 }
1808
1809 public void llResetLandPassList()
1810 {
1811 m_LSL_Functions.llResetLandPassList();
1812 }
1813
1814 public LSL_Types.LSLInteger llGetParcelPrimCount(vector pos, int category, int sim_wide)
1815 {
1816 return m_LSL_Functions.llGetParcelPrimCount(pos, category, sim_wide);
1817 }
1818
1819 public LSL_Types.list llGetParcelPrimOwners(vector pos)
1820 {
1821 return m_LSL_Functions.llGetParcelPrimOwners(pos);
1822 }
1823
1824 public LSL_Types.LSLInteger llGetObjectPrimCount(string object_id)
1825 {
1826 return m_LSL_Functions.llGetObjectPrimCount(object_id);
1827 }
1828
1829 //
1830 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1831 //
1832 public LSL_Types.LSLInteger llGetParcelMaxPrims(vector pos, int sim_wide)
1833 {
1834 return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide);
1835 }
1836
1837 public LSL_Types.list llGetParcelDetails(vector pos, LSL_Types.list param)
1838 {
1839 return m_LSL_Functions.llGetParcelDetails(pos, param);
1840 }
1841
1842 public void llSetLinkTexture(int linknumber, string texture, int face)
1843 {
1844 m_LSL_Functions.llSetLinkTexture(linknumber, texture, face);
1845 }
1846
1847 public string llStringTrim(string src, int type)
1848 {
1849 return m_LSL_Functions.llStringTrim(src, type);
1850 }
1851
1852 public LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args)
1853 {
1854 return m_LSL_Functions.llGetObjectDetails(id, args);
1855 }
1856
1857 public double llList2Float(LSL_Types.list src, int index)
1858 {
1859 return m_LSL_Functions.llList2Float(src, index);
1860 }
1861
1862 // LSL CONSTANTS
1863 public const int TRUE = 1;
1864 public const int FALSE = 0;
1865
1866 public const int STATUS_PHYSICS = 1;
1867 public const int STATUS_ROTATE_X = 2;
1868 public const int STATUS_ROTATE_Y = 4;
1869 public const int STATUS_ROTATE_Z = 8;
1870 public const int STATUS_PHANTOM = 16;
1871 public const int STATUS_SANDBOX = 32;
1872 public const int STATUS_BLOCK_GRAB = 64;
1873 public const int STATUS_DIE_AT_EDGE = 128;
1874 public const int STATUS_RETURN_AT_EDGE = 256;
1875 public const int STATUS_CAST_SHADOWS = 512;
1876
1877 public const int AGENT = 1;
1878 public const int ACTIVE = 2;
1879 public const int PASSIVE = 4;
1880 public const int SCRIPTED = 8;
1881
1882 public const int CONTROL_FWD = 1;
1883 public const int CONTROL_BACK = 2;
1884 public const int CONTROL_LEFT = 4;
1885 public const int CONTROL_RIGHT = 8;
1886 public const int CONTROL_UP = 16;
1887 public const int CONTROL_DOWN = 32;
1888 public const int CONTROL_ROT_LEFT = 256;
1889 public const int CONTROL_ROT_RIGHT = 512;
1890 public const int CONTROL_LBUTTON = 268435456;
1891 public const int CONTROL_ML_LBUTTON = 1073741824;
1892
1893 //Permissions
1894 public const int PERMISSION_DEBIT = 2;
1895 public const int PERMISSION_TAKE_CONTROLS = 4;
1896 public const int PERMISSION_REMAP_CONTROLS = 8;
1897 public const int PERMISSION_TRIGGER_ANIMATION = 16;
1898 public const int PERMISSION_ATTACH = 32;
1899 public const int PERMISSION_RELEASE_OWNERSHIP = 64;
1900 public const int PERMISSION_CHANGE_LINKS = 128;
1901 public const int PERMISSION_CHANGE_JOINTS = 256;
1902 public const int PERMISSION_CHANGE_PERMISSIONS = 512;
1903 public const int PERMISSION_TRACK_CAMERA = 1024;
1904
1905 public const int AGENT_FLYING = 1;
1906 public const int AGENT_ATTACHMENTS = 2;
1907 public const int AGENT_SCRIPTED = 4;
1908 public const int AGENT_MOUSELOOK = 8;
1909 public const int AGENT_SITTING = 16;
1910 public const int AGENT_ON_OBJECT = 32;
1911 public const int AGENT_AWAY = 64;
1912 public const int AGENT_WALKING = 128;
1913 public const int AGENT_IN_AIR = 256;
1914 public const int AGENT_TYPING = 512;
1915 public const int AGENT_CROUCHING = 1024;
1916 public const int AGENT_BUSY = 2048;
1917 public const int AGENT_ALWAYS_RUN = 4096;
1918
1919 //Particle Systems
1920 public const int PSYS_PART_INTERP_COLOR_MASK = 1;
1921 public const int PSYS_PART_INTERP_SCALE_MASK = 2;
1922 public const int PSYS_PART_BOUNCE_MASK = 4;
1923 public const int PSYS_PART_WIND_MASK = 8;
1924 public const int PSYS_PART_FOLLOW_SRC_MASK = 16;
1925 public const int PSYS_PART_FOLLOW_VELOCITY_MASK = 32;
1926 public const int PSYS_PART_TARGET_POS_MASK = 64;
1927 public const int PSYS_PART_TARGET_LINEAR_MASK = 128;
1928 public const int PSYS_PART_EMISSIVE_MASK = 256;
1929 public const int PSYS_PART_FLAGS = 0;
1930 public const int PSYS_PART_START_COLOR = 1;
1931 public const int PSYS_PART_START_ALPHA = 2;
1932 public const int PSYS_PART_END_COLOR = 3;
1933 public const int PSYS_PART_END_ALPHA = 4;
1934 public const int PSYS_PART_START_SCALE = 5;
1935 public const int PSYS_PART_END_SCALE = 6;
1936 public const int PSYS_PART_MAX_AGE = 7;
1937 public const int PSYS_SRC_ACCEL = 8;
1938 public const int PSYS_SRC_PATTERN = 9;
1939 public const int PSYS_SRC_INNERANGLE = 10;
1940 public const int PSYS_SRC_OUTERANGLE = 11;
1941 public const int PSYS_SRC_TEXTURE = 12;
1942 public const int PSYS_SRC_BURST_RATE = 13;
1943 public const int PSYS_SRC_BURST_PART_COUNT = 15;
1944 public const int PSYS_SRC_BURST_RADIUS = 16;
1945 public const int PSYS_SRC_BURST_SPEED_MIN = 17;
1946 public const int PSYS_SRC_BURST_SPEED_MAX = 18;
1947 public const int PSYS_SRC_MAX_AGE = 19;
1948 public const int PSYS_SRC_TARGET_KEY = 20;
1949 public const int PSYS_SRC_OMEGA = 21;
1950 public const int PSYS_SRC_ANGLE_BEGIN = 22;
1951 public const int PSYS_SRC_ANGLE_END = 23;
1952 public const int PSYS_SRC_PATTERN_DROP = 1;
1953 public const int PSYS_SRC_PATTERN_EXPLODE = 2;
1954 public const int PSYS_SRC_PATTERN_ANGLE = 4;
1955 public const int PSYS_SRC_PATTERN_ANGLE_CONE = 8;
1956 public const int PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY = 16;
1957
1958 public const int VEHICLE_TYPE_NONE = 0;
1959 public const int VEHICLE_TYPE_SLED = 1;
1960 public const int VEHICLE_TYPE_CAR = 2;
1961 public const int VEHICLE_TYPE_BOAT = 3;
1962 public const int VEHICLE_TYPE_AIRPLANE = 4;
1963 public const int VEHICLE_TYPE_BALLOON = 5;
1964 public const int VEHICLE_LINEAR_FRICTION_TIMESCALE = 16;
1965 public const int VEHICLE_ANGULAR_FRICTION_TIMESCALE = 17;
1966 public const int VEHICLE_LINEAR_MOTOR_DIRECTION = 18;
1967 public const int VEHICLE_LINEAR_MOTOR_OFFSET = 20;
1968 public const int VEHICLE_ANGULAR_MOTOR_DIRECTION = 19;
1969 public const int VEHICLE_HOVER_HEIGHT = 24;
1970 public const int VEHICLE_HOVER_EFFICIENCY = 25;
1971 public const int VEHICLE_HOVER_TIMESCALE = 26;
1972 public const int VEHICLE_BUOYANCY = 27;
1973 public const int VEHICLE_LINEAR_DEFLECTION_EFFICIENCY = 28;
1974 public const int VEHICLE_LINEAR_DEFLECTION_TIMESCALE = 29;
1975 public const int VEHICLE_LINEAR_MOTOR_TIMESCALE = 30;
1976 public const int VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE = 31;
1977 public const int VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY = 32;
1978 public const int VEHICLE_ANGULAR_DEFLECTION_TIMESCALE = 33;
1979 public const int VEHICLE_ANGULAR_MOTOR_TIMESCALE = 34;
1980 public const int VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE = 35;
1981 public const int VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY = 36;
1982 public const int VEHICLE_VERTICAL_ATTRACTION_TIMESCALE = 37;
1983 public const int VEHICLE_BANKING_EFFICIENCY = 38;
1984 public const int VEHICLE_BANKING_MIX = 39;
1985 public const int VEHICLE_BANKING_TIMESCALE = 40;
1986 public const int VEHICLE_REFERENCE_FRAME = 44;
1987 public const int VEHICLE_FLAG_NO_DEFLECTION_UP = 1;
1988 public const int VEHICLE_FLAG_LIMIT_ROLL_ONLY = 2;
1989 public const int VEHICLE_FLAG_HOVER_WATER_ONLY = 4;
1990 public const int VEHICLE_FLAG_HOVER_TERRAIN_ONLY = 8;
1991 public const int VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT = 16;
1992 public const int VEHICLE_FLAG_HOVER_UP_ONLY = 32;
1993 public const int VEHICLE_FLAG_LIMIT_MOTOR_UP = 64;
1994 public const int VEHICLE_FLAG_MOUSELOOK_STEER = 128;
1995 public const int VEHICLE_FLAG_MOUSELOOK_BANK = 256;
1996 public const int VEHICLE_FLAG_CAMERA_DECOUPLED = 512;
1997
1998 public const int INVENTORY_ALL = -1;
1999 public const int INVENTORY_NONE = -1;
2000 public const int INVENTORY_TEXTURE = 0;
2001 public const int INVENTORY_SOUND = 1;
2002 public const int INVENTORY_LANDMARK = 3;
2003 public const int INVENTORY_CLOTHING = 5;
2004 public const int INVENTORY_OBJECT = 6;
2005 public const int INVENTORY_NOTECARD = 7;
2006 public const int INVENTORY_SCRIPT = 10;
2007 public const int INVENTORY_BODYPART = 13;
2008 public const int INVENTORY_ANIMATION = 20;
2009 public const int INVENTORY_GESTURE = 21;
2010
2011 public const int ATTACH_CHEST = 1;
2012 public const int ATTACH_HEAD = 2;
2013 public const int ATTACH_LSHOULDER = 3;
2014 public const int ATTACH_RSHOULDER = 4;
2015 public const int ATTACH_LHAND = 5;
2016 public const int ATTACH_RHAND = 6;
2017 public const int ATTACH_LFOOT = 7;
2018 public const int ATTACH_RFOOT = 8;
2019 public const int ATTACH_BACK = 9;
2020 public const int ATTACH_PELVIS = 10;
2021 public const int ATTACH_MOUTH = 11;
2022 public const int ATTACH_CHIN = 12;
2023 public const int ATTACH_LEAR = 13;
2024 public const int ATTACH_REAR = 14;
2025 public const int ATTACH_LEYE = 15;
2026 public const int ATTACH_REYE = 16;
2027 public const int ATTACH_NOSE = 17;
2028 public const int ATTACH_RUARM = 18;
2029 public const int ATTACH_RLARM = 19;
2030 public const int ATTACH_LUARM = 20;
2031 public const int ATTACH_LLARM = 21;
2032 public const int ATTACH_RHIP = 22;
2033 public const int ATTACH_RULEG = 23;
2034 public const int ATTACH_RLLEG = 24;
2035 public const int ATTACH_LHIP = 25;
2036 public const int ATTACH_LULEG = 26;
2037 public const int ATTACH_LLLEG = 27;
2038 public const int ATTACH_BELLY = 28;
2039 public const int ATTACH_RPEC = 29;
2040 public const int ATTACH_LPEC = 30;
2041
2042 public const int LAND_LEVEL = 0;
2043 public const int LAND_RAISE = 1;
2044 public const int LAND_LOWER = 2;
2045 public const int LAND_SMOOTH = 3;
2046 public const int LAND_NOISE = 4;
2047 public const int LAND_REVERT = 5;
2048 public const int LAND_SMALL_BRUSH = 1;
2049 public const int LAND_MEDIUM_BRUSH = 2;
2050 public const int LAND_LARGE_BRUSH = 3;
2051
2052 //Agent Dataserver
2053 public const int DATA_ONLINE = 1;
2054 public const int DATA_NAME = 2;
2055 public const int DATA_BORN = 3;
2056 public const int DATA_RATING = 4;
2057 public const int DATA_SIM_POS = 5;
2058 public const int DATA_SIM_STATUS = 6;
2059 public const int DATA_SIM_RATING = 7;
2060 public const int DATA_PAYINFO = 8;
2061
2062 public const int ANIM_ON = 1;
2063 public const int LOOP = 2;
2064 public const int REVERSE = 4;
2065 public const int PING_PONG = 8;
2066 public const int SMOOTH = 16;
2067 public const int ROTATE = 32;
2068 public const int SCALE = 64;
2069 public const int ALL_SIDES = -1;
2070 public const int LINK_SET = -1;
2071 public const int LINK_ROOT = 1;
2072 public const int LINK_ALL_OTHERS = -2;
2073 public const int LINK_ALL_CHILDREN = -3;
2074 public const int LINK_THIS = -4;
2075 public const int CHANGED_INVENTORY = 1;
2076 public const int CHANGED_COLOR = 2;
2077 public const int CHANGED_SHAPE = 4;
2078 public const int CHANGED_SCALE = 8;
2079 public const int CHANGED_TEXTURE = 16;
2080 public const int CHANGED_LINK = 32;
2081 public const int CHANGED_ALLOWED_DROP = 64;
2082 public const int CHANGED_OWNER = 128;
2083 public const int CHANGED_REGION_RESTART = 256;
2084 public const int TYPE_INVALID = 0;
2085 public const int TYPE_INTEGER = 1;
2086 public const int TYPE_double = 2;
2087 public const int TYPE_STRING = 3;
2088 public const int TYPE_KEY = 4;
2089 public const int TYPE_VECTOR = 5;
2090 public const int TYPE_ROTATION = 6;
2091
2092 //XML RPC Remote Data Channel
2093 public const int REMOTE_DATA_CHANNEL = 1;
2094 public const int REMOTE_DATA_REQUEST = 2;
2095 public const int REMOTE_DATA_REPLY = 3;
2096
2097 //llHTTPRequest
2098 public const int HTTP_METHOD = 0;
2099 public const int HTTP_MIMETYPE = 1;
2100 public const int HTTP_BODY_MAXLENGTH = 2;
2101 public const int HTTP_VERIFY_CERT = 3;
2102
2103 public const int PRIM_MATERIAL = 2;
2104 public const int PRIM_PHYSICS = 3;
2105 public const int PRIM_TEMP_ON_REZ = 4;
2106 public const int PRIM_PHANTOM = 5;
2107 public const int PRIM_POSITION = 6;
2108 public const int PRIM_SIZE = 7;
2109 public const int PRIM_ROTATION = 8;
2110 public const int PRIM_TYPE = 9;
2111 public const int PRIM_TEXTURE = 17;
2112 public const int PRIM_COLOR = 18;
2113 public const int PRIM_BUMP_SHINY = 19;
2114 public const int PRIM_FULLBRIGHT = 20;
2115 public const int PRIM_FLEXIBLE = 21;
2116 public const int PRIM_TEXGEN = 22;
2117 public const int PRIM_CAST_SHADOWS = 24; // Not implemented, here for completeness sake
2118 public const int PRIM_POINT_LIGHT = 23; // Huh?
2119 public const int PRIM_TEXGEN_DEFAULT = 0;
2120 public const int PRIM_TEXGEN_PLANAR = 1;
2121
2122 public const int PRIM_TYPE_BOX = 0;
2123 public const int PRIM_TYPE_CYLINDER = 1;
2124 public const int PRIM_TYPE_PRISM = 2;
2125 public const int PRIM_TYPE_SPHERE = 3;
2126 public const int PRIM_TYPE_TORUS = 4;
2127 public const int PRIM_TYPE_TUBE = 5;
2128 public const int PRIM_TYPE_RING = 6;
2129 public const int PRIM_TYPE_SCULPT = 7;
2130
2131 public const int PRIM_HOLE_DEFAULT = 0;
2132 public const int PRIM_HOLE_CIRCLE = 16;
2133 public const int PRIM_HOLE_SQUARE = 32;
2134 public const int PRIM_HOLE_TRIANGLE = 48;
2135
2136 public const int PRIM_MATERIAL_STONE = 0;
2137 public const int PRIM_MATERIAL_METAL = 1;
2138 public const int PRIM_MATERIAL_GLASS = 2;
2139 public const int PRIM_MATERIAL_WOOD = 3;
2140 public const int PRIM_MATERIAL_FLESH = 4;
2141 public const int PRIM_MATERIAL_PLASTIC = 5;
2142 public const int PRIM_MATERIAL_RUBBER = 6;
2143 public const int PRIM_MATERIAL_LIGHT = 7;
2144
2145 public const int PRIM_SHINY_NONE = 0;
2146 public const int PRIM_SHINY_LOW = 1;
2147 public const int PRIM_SHINY_MEDIUM = 2;
2148 public const int PRIM_SHINY_HIGH = 3;
2149 public const int PRIM_BUMP_NONE = 0;
2150 public const int PRIM_BUMP_BRIGHT = 1;
2151 public const int PRIM_BUMP_DARK = 2;
2152 public const int PRIM_BUMP_WOOD = 3;
2153 public const int PRIM_BUMP_BARK = 4;
2154 public const int PRIM_BUMP_BRICKS = 5;
2155 public const int PRIM_BUMP_CHECKER = 6;
2156 public const int PRIM_BUMP_CONCRETE = 7;
2157 public const int PRIM_BUMP_TILE = 8;
2158 public const int PRIM_BUMP_STONE = 9;
2159 public const int PRIM_BUMP_DISKS = 10;
2160 public const int PRIM_BUMP_GRAVEL = 11;
2161 public const int PRIM_BUMP_BLOBS = 12;
2162 public const int PRIM_BUMP_SIDING = 13;
2163 public const int PRIM_BUMP_LARGETILE = 14;
2164 public const int PRIM_BUMP_STUCCO = 15;
2165 public const int PRIM_BUMP_SUCTION = 16;
2166 public const int PRIM_BUMP_WEAVE = 17;
2167
2168 public const int PRIM_SCULPT_TYPE_SPHERE = 1;
2169 public const int PRIM_SCULPT_TYPE_TORUS = 2;
2170 public const int PRIM_SCULPT_TYPE_PLANE = 3;
2171 public const int PRIM_SCULPT_TYPE_CYLINDER = 4;
2172
2173 public const int MASK_BASE = 0;
2174 public const int MASK_OWNER = 1;
2175 public const int MASK_GROUP = 2;
2176 public const int MASK_EVERYONE = 3;
2177 public const int MASK_NEXT = 4;
2178
2179 public const int PERM_TRANSFER = 8192;
2180 public const int PERM_MODIFY = 16384;
2181 public const int PERM_COPY = 32768;
2182 public const int PERM_MOVE = 524288;
2183 public const int PERM_ALL = 2147483647;
2184
2185 public const int PARCEL_MEDIA_COMMAND_STOP = 0;
2186 public const int PARCEL_MEDIA_COMMAND_PAUSE = 1;
2187 public const int PARCEL_MEDIA_COMMAND_PLAY = 2;
2188 public const int PARCEL_MEDIA_COMMAND_LOOP = 3;
2189 public const int PARCEL_MEDIA_COMMAND_TEXTURE = 4;
2190 public const int PARCEL_MEDIA_COMMAND_URL = 5;
2191 public const int PARCEL_MEDIA_COMMAND_TIME = 6;
2192 public const int PARCEL_MEDIA_COMMAND_AGENT = 7;
2193 public const int PARCEL_MEDIA_COMMAND_UNLOAD = 8;
2194 public const int PARCEL_MEDIA_COMMAND_AUTO_ALIGN = 9;
2195
2196 public const int PAY_HIDE = -1;
2197 public const int PAY_DEFAULT = -2;
2198
2199 public const string NULL_KEY = "00000000-0000-0000-0000-000000000000";
2200 public const string EOF = "\n\n\n";
2201 public const double PI = 3.14159274f;
2202 public const double TWO_PI = 6.28318548f;
2203 public const double PI_BY_TWO = 1.57079637f;
2204 public const double DEG_TO_RAD = 0.01745329238f;
2205 public const double RAD_TO_DEG = 57.29578f;
2206 public const double SQRT2 = 1.414213538f;
2207 public const int STRING_TRIM_HEAD = 1;
2208 public const int STRING_TRIM_TAIL = 2;
2209 public const int STRING_TRIM = 3;
2210 public const int LIST_STAT_RANGE = 0;
2211 public const int LIST_STAT_MIN = 1;
2212 public const int LIST_STAT_MAX = 2;
2213 public const int LIST_STAT_MEAN = 3;
2214 public const int LIST_STAT_MEDIAN = 4;
2215 public const int LIST_STAT_STD_DEV = 5;
2216 public const int LIST_STAT_SUM = 6;
2217 public const int LIST_STAT_SUM_SQUARES = 7;
2218 public const int LIST_STAT_NUM_COUNT = 8;
2219 public const int LIST_STAT_GEOMETRIC_MEAN = 9;
2220 public const int LIST_STAT_HARMONIC_MEAN = 100;
2221
2222 //ParcelPrim Categories
2223 public const int PARCEL_COUNT_TOTAL = 0;
2224 public const int PARCEL_COUNT_OWNER = 1;
2225 public const int PARCEL_COUNT_GROUP = 2;
2226 public const int PARCEL_COUNT_OTHER = 3;
2227 public const int PARCEL_COUNT_SELECTED = 4;
2228 public const int PARCEL_COUNT_TEMP = 5;
2229
2230 public const int DEBUG_CHANNEL = 0x7FFFFFFF;
2231 public const int PUBLIC_CHANNEL = 0x00000000;
2232
2233 public const int OBJECT_NAME = 1;
2234 public const int OBJECT_DESC = 2;
2235 public const int OBJECT_POS = 3;
2236 public const int OBJECT_ROT = 4;
2237 public const int OBJECT_VELOCITY = 5;
2238 public const int OBJECT_OWNER = 6;
2239 public const int OBJECT_GROUP = 7;
2240 public const int OBJECT_CREATOR = 8;
2241
2242 // Can not be public const?
2243 public vector ZERO_VECTOR = new vector(0.0, 0.0, 0.0);
2244 public rotation ZERO_ROTATION = new rotation(0.0, 0, 0.0, 1.0);
2245
2246
2247 //
2248 // OSSL
2249 //
2250 // FIXME: Refactor so we don't need to pull the script engine
2251 // into the app domain
2252 //
2253
2254 public void osSetRegionWaterHeight(double height)
2255 {
2256 m_OSSL_Functions.osSetRegionWaterHeight(height);
2257 }
2258
2259 public double osList2Double(LSL_Types.list src, int index)
2260 {
2261 return m_OSSL_Functions.osList2Double(src, index);
2262 }
2263
2264 public string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams,
2265 int timer)
2266 {
2267 return m_OSSL_Functions.osSetDynamicTextureURL(dynamicID, contentType, url, extraParams, timer);
2268 }
2269
2270 public string osSetDynamicTextureData(string dynamicID, string contentType, string data, string extraParams,
2271 int timer)
2272 {
2273 return m_OSSL_Functions.osSetDynamicTextureData(dynamicID, contentType, data, extraParams, timer);
2274 }
2275
2276 public string osSetDynamicTextureURLBlend(string dynamicID, string contentType, string url, string extraParams,
2277 int timer, int alpha)
2278 {
2279 return m_OSSL_Functions.osSetDynamicTextureURLBlend(dynamicID, contentType, url, extraParams, timer, alpha);
2280 }
2281
2282 public string osSetDynamicTextureDataBlend(string dynamicID, string contentType, string data, string extraParams,
2283 int timer, int alpha)
2284 {
2285 return m_OSSL_Functions.osSetDynamicTextureDataBlend(dynamicID, contentType, data, extraParams, timer, alpha);
2286 }
2287
2288 public double osTerrainGetHeight(int x, int y)
2289 {
2290 return m_OSSL_Functions.osTerrainGetHeight(x, y);
2291 }
2292
2293 public int osTerrainSetHeight(int x, int y, double val)
2294 {
2295 return m_OSSL_Functions.osTerrainSetHeight(x, y, val);
2296 }
2297
2298 public int osRegionRestart(double seconds)
2299 {
2300 return m_OSSL_Functions.osRegionRestart(seconds);
2301 }
2302
2303 public void osRegionNotice(string msg)
2304 {
2305 m_OSSL_Functions.osRegionNotice(msg);
2306 }
2307
2308 public bool osConsoleCommand(string Command)
2309 {
2310 return m_OSSL_Functions.osConsoleCommand(Command);
2311 }
2312
2313 public void osSetParcelMediaURL(string url)
2314 {
2315 m_OSSL_Functions.osSetParcelMediaURL(url);
2316 }
2317
2318 public void osSetPrimFloatOnWater(int floatYN)
2319 {
2320 m_OSSL_Functions.osSetPrimFloatOnWater(floatYN);
2321 }
2322
2323 // Animation Functions
2324
2325 public void osAvatarPlayAnimation(string avatar, string animation)
2326 {
2327 m_OSSL_Functions.osAvatarPlayAnimation(avatar, animation);
2328 }
2329
2330 public void osAvatarStopAnimation(string avatar, string animation)
2331 {
2332 m_OSSL_Functions.osAvatarStopAnimation(avatar, animation);
2333 }
2334
2335
2336 //Texture Draw functions
2337
2338 public string osMovePen(string drawList, int x, int y)
2339 {
2340 return m_OSSL_Functions.osMovePen(drawList, x, y);
2341 }
2342
2343 public string osDrawLine(string drawList, int startX, int startY, int endX, int endY)
2344 {
2345 return m_OSSL_Functions.osDrawLine(drawList, startX, startY, endX, endY);
2346 }
2347
2348 public string osDrawLine(string drawList, int endX, int endY)
2349 {
2350 return m_OSSL_Functions.osDrawLine(drawList, endX, endY);
2351 }
2352
2353 public string osDrawText(string drawList, string text)
2354 {
2355 return m_OSSL_Functions.osDrawText(drawList, text);
2356 }
2357
2358 public string osDrawEllipse(string drawList, int width, int height)
2359 {
2360 return m_OSSL_Functions.osDrawEllipse(drawList, width, height);
2361 }
2362
2363 public string osDrawRectangle(string drawList, int width, int height)
2364 {
2365 return m_OSSL_Functions.osDrawRectangle(drawList, width, height);
2366 }
2367
2368 public string osDrawFilledRectangle(string drawList, int width, int height)
2369 {
2370 return m_OSSL_Functions.osDrawFilledRectangle(drawList, width, height);
2371 }
2372
2373 public string osSetFontSize(string drawList, int fontSize)
2374 {
2375 return m_OSSL_Functions.osSetFontSize(drawList, fontSize);
2376 }
2377
2378 public string osSetPenSize(string drawList, int penSize)
2379 {
2380 return m_OSSL_Functions.osSetPenSize(drawList, penSize);
2381 }
2382
2383 public string osSetPenColour(string drawList, string colour)
2384 {
2385 return m_OSSL_Functions.osSetPenColour(drawList, colour);
2386 }
2387
2388 public string osDrawImage(string drawList, int width, int height, string imageUrl)
2389 {
2390 return m_OSSL_Functions.osDrawImage(drawList, width, height, imageUrl);
2391 }
2392 public void osSetStateEvents(int events)
2393 {
2394 m_OSSL_Functions.osSetStateEvents(events);
2395 }
2396 }
2397}
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Script/ILSL_ScriptCommands.cs b/OpenSim/Region/ScriptEngine/XEngine/Script/ILSL_ScriptCommands.cs
deleted file mode 100644
index 9e8965c..0000000
--- a/OpenSim/Region/ScriptEngine/XEngine/Script/ILSL_ScriptCommands.cs
+++ /dev/null
@@ -1,653 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenSim.Region.Environment.Interfaces;
29
30namespace OpenSim.Region.ScriptEngine.XEngine.Script
31{
32 public interface ILSL_ScriptCommands
33 {
34 // Interface used for loading and executing scripts
35
36 string State { get; set ; }
37
38 void state(string newState);
39
40 ICommander GetCommander(string name);
41
42 void llSay(int channelID, string text);
43 double llSin(double f);
44 double llCos(double f);
45 double llTan(double f);
46 double llAtan2(double x, double y);
47 double llSqrt(double f);
48 double llPow(double fbase, double fexponent);
49 LSL_Types.LSLInteger llAbs(int i);
50 double llFabs(double f);
51 double llFrand(double mag);
52 LSL_Types.LSLInteger llFloor(double f);
53 LSL_Types.LSLInteger llCeil(double f);
54 LSL_Types.LSLInteger llRound(double f);
55 double llVecMag(LSL_Types.Vector3 v);
56 LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v);
57 double llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b);
58 LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r);
59 LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v);
60 LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up);
61 LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r);
62 LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r);
63 LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r);
64 LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 start, LSL_Types.Vector3 end);
65 void llWhisper(int channelID, string text);
66 //void llSay(int channelID, string text);
67 void llShout(int channelID, string text);
68 void llRegionSay(int channelID, string text);
69 LSL_Types.LSLInteger llListen(int channelID, string name, string ID, string msg);
70 void llListenControl(int number, int active);
71 void llListenRemove(int number);
72 void llSensor(string name, string id, int type, double range, double arc);
73 void llSensorRepeat(string name, string id, int type, double range, double arc, double rate);
74 void llSensorRemove();
75 string llDetectedName(int number);
76 string llDetectedKey(int number);
77 string llDetectedOwner(int number);
78 LSL_Types.LSLInteger llDetectedType(int number);
79 LSL_Types.Vector3 llDetectedPos(int number);
80 LSL_Types.Vector3 llDetectedVel(int number);
81 LSL_Types.Vector3 llDetectedGrab(int number);
82 LSL_Types.Quaternion llDetectedRot(int number);
83 LSL_Types.LSLInteger llDetectedGroup(int number);
84 LSL_Types.LSLInteger llDetectedLinkNumber(int number);
85 void llDie();
86 double llGround(LSL_Types.Vector3 offset);
87 double llCloud(LSL_Types.Vector3 offset);
88 LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset);
89 void llSetStatus(int status, int value);
90 LSL_Types.LSLInteger llGetStatus(int status);
91 void llSetScale(LSL_Types.Vector3 scale);
92 LSL_Types.Vector3 llGetScale();
93 void llSetColor(LSL_Types.Vector3 color, int face);
94 double llGetAlpha(int face);
95 void llSetAlpha(double alpha, int face);
96 LSL_Types.Vector3 llGetColor(int face);
97 void llSetTexture(string texture, int face);
98 void llScaleTexture(double u, double v, int face);
99 void llOffsetTexture(double u, double v, int face);
100 void llRotateTexture(double rotation, int face);
101 string llGetTexture(int face);
102 void llSetPos(LSL_Types.Vector3 pos);
103
104 //wiki: vector llGetPos()
105 LSL_Types.Vector3 llGetPos();
106 //wiki: vector llGetLocalPos()
107 LSL_Types.Vector3 llGetLocalPos();
108 //wiki: llSetRot(rotation rot)
109 void llSetRot(LSL_Types.Quaternion rot);
110 //wiki: rotation llGetRot()
111 LSL_Types.Quaternion llGetRot();
112 //wiki: rotation llGetLocalRot()
113 LSL_Types.Quaternion llGetLocalRot();
114 //wiki: llSetForce(vector force, integer local)
115 void llSetForce(LSL_Types.Vector3 force, int local);
116 //wiki: vector llGetForce()
117 LSL_Types.Vector3 llGetForce();
118 //wiki: integer llTarget(vector position, double range)
119 LSL_Types.LSLInteger llTarget(LSL_Types.Vector3 position, double range);
120 //wiki: llTargetRemove(integer number)
121 void llTargetRemove(int number);
122 //wiki: integer llRotTarget(rotation rot, double error)
123 LSL_Types.LSLInteger llRotTarget(LSL_Types.Quaternion rot, double error);
124 //wiki: integer llRotTargetRemove(integer number)
125 void llRotTargetRemove(int number);
126 //wiki: llMoveToTarget(vector target, double tau)
127 void llMoveToTarget(LSL_Types.Vector3 target, double tau);
128 //wiki: llStopMoveToTarget()
129 void llStopMoveToTarget();
130 //wiki: llApplyImpulse(vector force, integer local)
131 void llApplyImpulse(LSL_Types.Vector3 force, int local);
132 //wiki: llapplyRotationalImpulse(vector force, integer local)
133 void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local);
134 //wiki: llSetTorque(vector torque, integer local)
135 void llSetTorque(LSL_Types.Vector3 torque, int local);
136 //wiki: vector llGetTorque()
137 LSL_Types.Vector3 llGetTorque();
138 //wiki: llSeForceAndTorque(vector force, vector torque, integer local)
139 void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local);
140 //wiki: vector llGetVel()
141 LSL_Types.Vector3 llGetVel();
142 //wiki: vector llGetAccel()
143 LSL_Types.Vector3 llGetAccel();
144 //wiki: vector llGetOmega()
145 LSL_Types.Vector3 llGetOmega();
146 //wiki: double llGetTimeOfDay()
147 double llGetTimeOfDay();
148 //wiki: double llGetWallclock()
149 double llGetWallclock();
150 //wiki: double llGetTime()
151 double llGetTime();
152 //wiki: llResetTime()
153 void llResetTime();
154 //wiki: double llGetAndResetTime()
155 double llGetAndResetTime();
156 //wiki (deprecated) llSound(string sound, double volume, integer queue, integer loop)
157 void llSound();
158 //wiki: llPlaySound(string sound, double volume)
159 void llPlaySound(string sound, double volume);
160 //wiki: llLoopSound(string sound, double volume)
161 void llLoopSound(string sound, double volume);
162 //wiki: llLoopSoundMaster(string sound, double volume)
163 void llLoopSoundMaster(string sound, double volume);
164 //wiki: llLoopSoundSlave(string sound, double volume)
165 void llLoopSoundSlave(string sound, double volume);
166 //wiki llPlaySoundSlave(string sound, double volume)
167 void llPlaySoundSlave(string sound, double volume);
168 //wiki: llTriggerSound(string sound, double volume)
169 void llTriggerSound(string sound, double volume);
170 //wiki: llStopSound()
171 void llStopSound();
172 //wiki: llPreloadSound(string sound)
173 void llPreloadSound(string sound);
174 //wiki: string llGetSubString(string src, integer start, integer end)
175 string llGetSubString(string src, int start, int end);
176 //wiki: string llDeleteSubString(string src, integer start, integer end)
177 string llDeleteSubString(string src, int start, int end);
178 //wiki string llInsertString(string dst, integer position, string src)
179 string llInsertString(string dst, int position, string src);
180 //wiki: string llToUpper(string source)
181 string llToUpper(string source);
182 //wiki: string llToLower(string source)
183 string llToLower(string source);
184 //wiki: integer llGiveMoney(key destination, integer amount)
185 LSL_Types.LSLInteger llGiveMoney(string destination, int amount);
186 //wiki: (deprecated)
187 void llMakeExplosion();
188 //wiki: (deprecated)
189 void llMakeFountain();
190 //wiki: (deprecated)
191 void llMakeSmoke();
192 //wiki: (deprecated)
193 void llMakeFire();
194 //wiki: llRezObject(string inventory, vector pos, vector rel, rotation rot, integer param)
195 void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Vector3 vel, LSL_Types.Quaternion rot, int param);
196 //wiki: llLookAt(vector target, double strength, double damping)
197 void llLookAt(LSL_Types.Vector3 target, double strength, double damping);
198 //wiki: llStopLookAt()
199 void llStopLookAt();
200 //wiki: llSetTimerEvent(double sec)
201 void llSetTimerEvent(double sec);
202 //wiki: llSleep(double sec)
203 void llSleep(double sec);
204 //wiki: double llGetMass()
205 double llGetMass();
206 //wiki: llCollisionFilter(string name, key id, integer accept)
207 void llCollisionFilter(string name, string id, int accept);
208 //wiki: llTakeControls(integer controls, integer accept, integer pass_on)
209 void llTakeControls(int controls, int accept, int pass_on);
210 //wiki: llReleaseControls()
211 void llReleaseControls();
212 //wiki: llAttachToAvatar(integer attachment)
213 void llAttachToAvatar(int attachment);
214 //wiki: llDetachFromAvatar()
215 void llDetachFromAvatar();
216 //wiki: (deprecated) llTakeCamera()
217 void llTakeCamera();
218 //wiki: (deprecated) llReleaseCamera()
219 void llReleaseCamera();
220 //wiki: key llGetOwner()
221 string llGetOwner();
222 //wiki: llInstantMessage(key user, string message)
223 void llInstantMessage(string user, string message);
224 //wiki: llEmail(string address, string subject, string message)
225 void llEmail(string address, string subject, string message);
226 //wiki: llGetNextEmail(string address, string subject)
227 void llGetNextEmail(string address, string subject);
228 //wiki: key llGetKey()
229 string llGetKey();
230 //wiki: llSetBuoyancy(double buoyancy)
231 void llSetBuoyancy(double buoyancy);
232 //wiki: llSetHoverHeight(double height, integer water, double tau)
233 void llSetHoverHeight(double height, int water, double tau);
234 //wiki: llStopHover
235 void llStopHover();
236 //wiki: llMinEventDelay(double delay)
237 void llMinEventDelay(double delay);
238 //wiki: (deprecated) llSoundPreload()
239 void llSoundPreload();
240 //wiki: llRotLookAt(rotation target, double strength, double damping)
241 void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping);
242 //wiki: integer llStringLength(string str)
243 LSL_Types.LSLInteger llStringLength(string str);
244 //wiki: llStartAnimation(string anim)
245 void llStartAnimation(string anim);
246 //wiki: llStopAnimation(string anim)
247 void llStopAnimation(string anim);
248 //wiki: (deprecated) llPointAt
249 void llPointAt();
250 //wiki: (deprecated) llStopPointAt
251 void llStopPointAt();
252 //wiki: llTargetOmega(vector axis, double spinrate, double gain)
253 void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain);
254 //wiki: integer llGetStartParameter()
255 LSL_Types.LSLInteger llGetStartParameter();
256 //wiki: llGodLikeRezObject(key inventory, vector pos)
257 void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos);
258 //wiki: llRequestPermissions(key agent, integer perm)
259 void llRequestPermissions(string agent, int perm);
260 //wiki: key llGetPermissionsKey()
261 string llGetPermissionsKey();
262 //wiki: integer llGetPermissions()
263 LSL_Types.LSLInteger llGetPermissions();
264 //wiki integer llGetLinkNumber()
265 LSL_Types.LSLInteger llGetLinkNumber();
266 //wiki: llSetLinkColor(integer linknumber, vector color, integer face)
267 void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face);
268 //wiki: llCreateLink(key target, integer parent)
269 void llCreateLink(string target, int parent);
270 //wiki: llBreakLink(integer linknum)
271 void llBreakLink(int linknum);
272 //wiki: llBreakAllLinks()
273 void llBreakAllLinks();
274 //wiki: key llGetLinkKey(integer linknum)
275 string llGetLinkKey(int linknum);
276 //wiki: llGetLinkName(integer linknum)
277 string llGetLinkName(int linknum);
278 //wiki: integer llGetInventoryNumber(integer type)
279 LSL_Types.LSLInteger llGetInventoryNumber(int type);
280 //wiki: string llGetInventoryName(integer type, integer number)
281 string llGetInventoryName(int type, int number);
282 //wiki: llSetScriptState(string name, integer run)
283 void llSetScriptState(string name, int run);
284 //wiki: double llGetEnergy()
285 double llGetEnergy();
286 //wiki: llGiveInventory(key destination, string inventory)
287 void llGiveInventory(string destination, string inventory);
288 //wiki: llRemoveInventory(string item)
289 void llRemoveInventory(string item);
290 //wiki: llSetText(string text, vector color, double alpha)
291 void llSetText(string text, LSL_Types.Vector3 color, double alpha);
292 //wiki: double llWater(vector offset)
293 double llWater(LSL_Types.Vector3 offset);
294 //wiki: llPassTouches(integer pass)
295 void llPassTouches(int pass);
296 //wiki: key llRequestAgentData(key id, integer data)
297 string llRequestAgentData(string id, int data);
298 //wiki: key llRequestInventoryData(string name)
299 string llRequestInventoryData(string name);
300 //wiki: llSetDamage(double damage)
301 void llSetDamage(double damage);
302 //wiki: llTeleportAgentHome(key agent)
303 void llTeleportAgentHome(string agent);
304 //wiki: llModifyLand(integer action, integer brush)
305 void llModifyLand(int action, int brush);
306 //wiki: llCollisionSound(string impact_sound, double impact_volume)
307 void llCollisionSound(string impact_sound, double impact_volume);
308 //wiki: llCollisionSprite(string impact_sprite)
309 void llCollisionSprite(string impact_sprite);
310 //wiki: string llGetAnimation(key id)
311 string llGetAnimation(string id);
312 //wiki: llResetScript()
313 void llResetScript();
314 //wiki: llMessageLinked(integer linknum, integer num, string str, key id)
315 void llMessageLinked(int linknum, int num, string str, string id);
316 //wiki: llPushObject(key target, vector impulse, vector ang_impulse, integer local)
317 void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local);
318 //wiki: llPassCollisions(integer pass)
319 void llPassCollisions(int pass);
320 //wiki: string llGetScriptName()
321 string llGetScriptName();
322 //wiki: integer llGetNumberOfSides()
323 LSL_Types.LSLInteger llGetNumberOfSides();
324 //wiki: rotation llAxisAngle2Rot(vector axis, double angle)
325 LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle);
326 //wiki: vector llRot2Axis(rotation rot)
327 LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot);
328 //wiki: double llRot2Angle(rotation rot);
329 double llRot2Angle(LSL_Types.Quaternion rot);
330 //wiki: double llAcos(double val)
331 double llAcos(double val);
332 //wiki: double llAsin(double val)
333 double llAsin(double val);
334 //wiki: double llAngleBetween(rotation a, rotation b)
335 double llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b);
336 //wiki: string llGetInventoryKey(string name)
337 string llGetInventoryKey(string name);
338 //wiki: llAllowInventoryDrop(integer add)
339 void llAllowInventoryDrop(int add);
340 //wiki: vector llGetSunDirection()
341 LSL_Types.Vector3 llGetSunDirection();
342 //wiki: vector llGetTextureOffset(integer face)
343 LSL_Types.Vector3 llGetTextureOffset(int face);
344 //wiki: vector llGetTextureScale(integer side)
345 LSL_Types.Vector3 llGetTextureScale(int side);
346 //wiki: double llGetTextureRot(integer side)
347 double llGetTextureRot(int side);
348 //wiki: integer llSubStringIndex(string source, string pattern)
349 LSL_Types.LSLInteger llSubStringIndex(string source, string pattern);
350 //wiki: key llGetOwnerKey(key id)
351 string llGetOwnerKey(string id);
352 //wiki: vector llGetCenterOfMass()
353 LSL_Types.Vector3 llGetCenterOfMass();
354 //wiki: list llListSort(list src, integer stride, integer ascending)
355 LSL_Types.list llListSort(LSL_Types.list src, int stride, int ascending);
356 //integer llGetListLength(list src)
357 LSL_Types.LSLInteger llGetListLength(LSL_Types.list src);
358 //wiki: integer llList2Integer(list src, integer index)
359 LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index);
360 //wiki: double llList2double(list src, integer index)
361 double llList2Float(LSL_Types.list src, int index);
362 //wiki: string llList2String(list src, integer index)
363 string llList2String(LSL_Types.list src, int index);
364 //wiki: key llList2Key(list src, integer index)
365 string llList2Key(LSL_Types.list src, int index);
366 //wiki: vector llList2Vector(list src, integer index)
367 LSL_Types.Vector3 llList2Vector(LSL_Types.list src, int index);
368 //wiki rotation llList2Rot(list src, integer index)
369 LSL_Types.Quaternion llList2Rot(LSL_Types.list src, int index);
370 //wiki: list llList2List(list src, integer start, integer end)
371 LSL_Types.list llList2List(LSL_Types.list src, int start, int end);
372 //wiki: llDeleteSubList(list src, integer start, integer end)
373 LSL_Types.list llDeleteSubList(LSL_Types.list src, int start, int end);
374 //wiki: integer llGetListEntryType(list src, integer index)
375 LSL_Types.LSLInteger llGetListEntryType(LSL_Types.list src, int index);
376 //wiki: string llList2CSV(list src)
377 string llList2CSV(LSL_Types.list src);
378 //wiki: list llCSV2List(string src)
379 LSL_Types.list llCSV2List(string src);
380 //wiki: list llListRandomize(list src, integer stride)
381 LSL_Types.list llListRandomize(LSL_Types.list src, int stride);
382 //wiki: list llList2ListStrided(list src, integer start, integer end, integer stride)
383 LSL_Types.list llList2ListStrided(LSL_Types.list src, int start, int end, int stride);
384 //wiki: vector llGetRegionCorner()
385 LSL_Types.Vector3 llGetRegionCorner();
386 //wiki: list llListInsertList(list dest, list src, integer start)
387 LSL_Types.list llListInsertList(LSL_Types.list dest, LSL_Types.list src, int start);
388 //wiki: integer llListFindList(list src, list test)
389 LSL_Types.LSLInteger llListFindList(LSL_Types.list src, LSL_Types.list test);
390 //wiki: string llGetObjectName()
391 string llGetObjectName();
392 //wiki: llSetObjectName(string name)
393 void llSetObjectName(string name);
394 //wiki: string llGetDate()
395 string llGetDate();
396 //wiki: integer llEdgeOfWorld(vector pos, vector dir)
397 LSL_Types.LSLInteger llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir);
398 //wiki: integer llGetAgentInfo(key id)
399 LSL_Types.LSLInteger llGetAgentInfo(string id);
400 //wiki: llAdjustSoundVolume(double volume)
401 void llAdjustSoundVolume(double volume);
402 //wiki: llSetSoundQueueing(integer queue)
403 void llSetSoundQueueing(int queue);
404 //wiki: llSetSoundRadius(double radius)
405 void llSetSoundRadius(double radius);
406 //wiki: string llKey2Name(key id)
407 string llKey2Name(string id);
408 //wiki: llSetTextureAnim(integer mode, integer face, integer sizex, integer sizey, double start, double length, double rate)
409 void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate);
410 //wiki: llTriggerSoundLimited(string sound, double volume, vector top_north_east, vector bottom_south_west)
411 void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east,
412 LSL_Types.Vector3 bottom_south_west);
413
414 //wiki: llEjectFromLand(key pest)
415 void llEjectFromLand(string pest);
416 LSL_Types.list llParseString2List(string str, LSL_Types.list separators, LSL_Types.list spacers);
417 //wiki: integer llOverMyLand(key id)
418 LSL_Types.LSLInteger llOverMyLand(string id);
419 //wiki: key llGetLandOwnerAt(vector pos)
420 string llGetLandOwnerAt(LSL_Types.Vector3 pos);
421 //wiki: key llGetNotecardLine(string name, integer line)
422 string llGetNotecardLine(string name, int line);
423 //wiki: vector llGetAgentSize(key id)
424 LSL_Types.Vector3 llGetAgentSize(string id);
425 //wiki: integer llSameGroup(key agent)
426 LSL_Types.LSLInteger llSameGroup(string agent);
427 //wiki: llUnSit(key id)
428 void llUnSit(string id);
429 //wiki: vector llGroundSlope(vector offset)
430 LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset);
431 //wiki: vector llGroundNormal(vector offset)
432 LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset);
433 //wiki: vector llGroundContour(vector offset)
434 LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset);
435 //wiki: integer llGetAttached()
436 LSL_Types.LSLInteger llGetAttached();
437 //wiki: integer llGetFreeMemory()
438 LSL_Types.LSLInteger llGetFreeMemory();
439 //wiki: string llGetRegionName()
440 string llGetRegionName();
441 //wiki: double llGetRegionTimeDilation()
442 double llGetRegionTimeDilation();
443 //wiki: double llGetRegionFPS()
444 double llGetRegionFPS();
445 //wiki: llParticleSystem(List<Object> rules
446 void llParticleSystem(LSL_Types.list rules);
447 //wiki: llGroundRepel(double height, integer water, double tau)
448 void llGroundRepel(double height, int water, double tau);
449 //wiki: llGiveInventoryList(string destination, string category, LSL_Types.list inventory)
450 void llGiveInventoryList(string destination, string category, LSL_Types.list inventory);
451 //wiki: llSetVehicleType(integer type)
452 void llSetVehicleType(int type);
453 //wiki: llSetVehicledoubleParam(integer param, double value)
454 void llSetVehicledoubleParam(int param, double value);
455 // wiki: llSetVehicleFloatParam(integer param, float value)
456 void llSetVehicleFloatParam(int param, float value);
457 //wiki: llSetVehicleVectorParam(integer param, vector vec)
458 void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec);
459 //wiki: llSetVehicleRotationParam(integer param, rotation rot)
460 void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot);
461 //wiki: llSetVehicleFlags(integer flags)
462 void llSetVehicleFlags(int flags);
463 //wiki: llRemoveVehicleFlags(integer flags)
464 void llRemoveVehicleFlags(int flags);
465 //wiki: llSitTarget(vector offset, rotation rot)
466 void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot);
467 //wiki key llAvatarOnSitTarget()
468 string llAvatarOnSitTarget();
469 //wiki: llAddToLandPassList(key avatar, double hours)
470 void llAddToLandPassList(string avatar, double hours);
471 //wiki: llSetTouchText(string text)
472 void llSetTouchText(string text);
473 //wiki: llSetSitText(string text)
474 void llSetSitText(string text);
475 //wiki: llSetCameraEyeOffset(vector offset)
476 void llSetCameraEyeOffset(LSL_Types.Vector3 offset);
477 //wiki: llSeteCameraAtOffset(vector offset)
478 void llSetCameraAtOffset(LSL_Types.Vector3 offset);
479 //
480 string llDumpList2String(LSL_Types.list src, string seperator);
481 //wiki: integer llScriptDanger(vector pos)
482 LSL_Types.LSLInteger llScriptDanger(LSL_Types.Vector3 pos);
483 //wiki: llDialog(key avatar, string message, list buttons, integer chat_channel)
484 void llDialog(string avatar, string message, LSL_Types.list buttons, int chat_channel);
485 //wiki: llVolumeDetect(integer detect)
486 void llVolumeDetect(int detect);
487 //wiki: llResetOtherScript(string name)
488 void llResetOtherScript(string name);
489 //wiki: integer llGetScriptState(string name)
490 LSL_Types.LSLInteger llGetScriptState(string name);
491 //wiki: (deprecated)
492 void llRemoteLoadScript();
493 //wiki: llSetRemoteScriptAccessPin(integer pin)
494 void llSetRemoteScriptAccessPin(int pin);
495 //wiki: llRemoteLoadScriptPin(key target, string name, integer pin, integer running, integer start_param)
496 void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param);
497 //wiki: llOpenRemoteDataChannel()
498 void llOpenRemoteDataChannel();
499 //wiki: key llSendRemoteData(key channel, string dest, integer idata, string sdata)
500 string llSendRemoteData(string channel, string dest, int idata, string sdata);
501 //wiki: llRemoteDataReply(key channel, key message_id, string sdata, integer idata)
502 void llRemoteDataReply(string channel, string message_id, string sdata, int idata);
503 //wiki: llCloseRemoteDataChannel(key channel)
504 void llCloseRemoteDataChannel(string channel);
505 //wiki: string llMD5String(string src, integer nonce)
506 string llMD5String(string src, int nonce);
507 //wiki: llSetPrimitiveParams(list rules)
508 void llSetPrimitiveParams(LSL_Types.list rules);
509 //wiki: llSetLinkPrimitiveParams(integer linknumber, list rules)
510 void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules);
511 //wiki: string llStringToBase64(string str)
512 string llStringToBase64(string str);
513 //wiki: string llBase64ToString(string str)
514 string llBase64ToString(string str);
515 //wiki: (deprecated)
516 void llXorBase64Strings();
517 //wiki: llRemoteDataSetRegion()
518 void llRemoteDataSetRegion();
519 //wiki: double llLog10(double val)
520 double llLog10(double val);
521 //wiki: double llLog(double val)
522 double llLog(double val);
523 //wiki: list llGetAnimationList(key id)
524 LSL_Types.list llGetAnimationList(string id);
525 //wiki: llSetParcelMusicURL(string url)
526 void llSetParcelMusicURL(string url);
527 //wiki: vector llGetRootPosition()
528 LSL_Types.Vector3 llGetRootPosition();
529 //wiki: rotation llGetRootRotation()
530 LSL_Types.Quaternion llGetRootRotation();
531 //wiki: string llGetObjectDesc()
532 string llGetObjectDesc();
533 //wiki: llSetObjectDesc(string desc)
534 void llSetObjectDesc(string desc);
535 //wiki: key llGetCreator()
536 string llGetCreator();
537 //wiki: string llGetTimestamp()
538 string llGetTimestamp();
539 //wiki: llSetLinkAlpha(integer linknumber, double alpha, integer face)
540 void llSetLinkAlpha(int linknumber, double alpha, int face);
541 //wiki: integer llGetNumberOfPrims()
542 LSL_Types.LSLInteger llGetNumberOfPrims();
543 //wiki: key llGetNumberOfNotecardLines(string name)
544 string llGetNumberOfNotecardLines(string name);
545 //wiki: list llGetBoundingBox(key object)
546 LSL_Types.list llGetBoundingBox(string obj);
547 //wiki: vector llGetGeometricCenter()
548 LSL_Types.Vector3 llGetGeometricCenter();
549 //wiki: list llGetPrimitiveParams(list rules)
550 LSL_Types.list llGetPrimitiveParams(LSL_Types.list rules);
551 //wiki: string llIntegerToBase64(integer number)
552 string llIntegerToBase64(int number);
553 //wiki integer llBase64ToInteger(string str)
554 LSL_Types.LSLInteger llBase64ToInteger(string str);
555 //wiki: double llGetGMTclock()
556 double llGetGMTclock();
557 //wiki: string llGetSimulatorHostname()
558 string llGetSimulatorHostname();
559 //llSetLocalRot(rotation rot)
560 void llSetLocalRot(LSL_Types.Quaternion rot);
561 //wiki: list llParseStringKeepNulls(string src, list separators, list spacers)
562 LSL_Types.list llParseStringKeepNulls(string src, LSL_Types.list seperators, LSL_Types.list spacers);
563 //wiki: llRezAtRoot(string inventory, vector position, vector velocity, rotation rot, integer param)
564 void llRezAtRoot(string inventory, LSL_Types.Vector3 position, LSL_Types.Vector3 velocity,
565 LSL_Types.Quaternion rot, int param);
566
567 //wiki: integer llGetObjectPermMask(integer mask)
568 LSL_Types.LSLInteger llGetObjectPermMask(int mask);
569 //wiki: llSetObjectPermMask(integer mask, integer value)
570 void llSetObjectPermMask(int mask, int value);
571 //wiki integer llGetInventoryPermMask(string item, integer mask)
572 LSL_Types.LSLInteger llGetInventoryPermMask(string item, int mask);
573 //wiki: llSetInventoryPermMask(string item, integer mask, integer value)
574 void llSetInventoryPermMask(string item, int mask, int value);
575 //wiki: key llGetInventoryCreator(string item)
576 string llGetInventoryCreator(string item);
577 //wiki: llOwnerSay(string msg)
578 void llOwnerSay(string msg);
579 //wiki: key llRequestSimulatorData(string simulator, integer data)
580 string llRequestSimulatorData(string simulator, int data);
581 //wiki: llForceMouselook(integer mouselook)
582 void llForceMouselook(int mouselook);
583 //wiki: double llGetObjectMass(key id)
584 double llGetObjectMass(string id);
585 LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end);
586 //wiki: llLoadURL(key avatar_id, string message, string url)
587 void llLoadURL(string avatar_id, string message, string url);
588 //wiki: llParcelMediaCommandList(list commandList)
589 void llParcelMediaCommandList(LSL_Types.list commandList);
590 void llParcelMediaQuery();
591 //wiki integer llModPow(integer a, integer b, integer c)
592 LSL_Types.LSLInteger llModPow(int a, int b, int c);
593 //wiki: integer llGetInventoryType(string name)
594 LSL_Types.LSLInteger llGetInventoryType(string name);
595 //wiki: llSetPayPrice(integer price, list quick_pay_buttons)
596 void llSetPayPrice(int price, LSL_Types.list quick_pay_buttons);
597 //wiki: vector llGetCameraPos()
598 LSL_Types.Vector3 llGetCameraPos();
599 //wiki rotation llGetCameraRot()
600 LSL_Types.Quaternion llGetCameraRot();
601 //wiki: (deprecated)
602 void llSetPrimURL();
603 //wiki: (deprecated)
604 void llRefreshPrimURL();
605 //wiki: string llEscapeURL(string url)
606 string llEscapeURL(string url);
607 //wiki: string llUnescapeURL(string url)
608 string llUnescapeURL(string url);
609 //wiki: llMapDestination(string simname, vector pos, vector look_at)
610 void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at);
611 //wiki: llAddToLandBanList(key avatar, double hours)
612 void llAddToLandBanList(string avatar, double hours);
613 //wiki: llRemoveFromLandPassList(key avatar)
614 void llRemoveFromLandPassList(string avatar);
615 //wiki: llRemoveFromLandBanList(key avatar)
616 void llRemoveFromLandBanList(string avatar);
617 //wiki: llSetCameraParams(list rules)
618 void llSetCameraParams(LSL_Types.list rules);
619 //wiki: llClearCameraParams()
620 void llClearCameraParams();
621 //wiki: double llListStatistics(integer operation, list src)
622 double llListStatistics(int operation, LSL_Types.list src);
623 //wiki: integer llGetUnixTime()
624 LSL_Types.LSLInteger llGetUnixTime();
625 //wiki: integer llGetParcelFlags(vector pos)
626 LSL_Types.LSLInteger llGetParcelFlags(LSL_Types.Vector3 pos);
627 //wiki: integer llGetRegionFlags()
628 LSL_Types.LSLInteger llGetRegionFlags();
629 //wiki: string llXorBase64StringsCorrect(string str1, string str2)
630 string llXorBase64StringsCorrect(string str1, string str2);
631 string llHTTPRequest(string url, LSL_Types.list parameters, string body);
632 //wiki: llResetLandBanList()
633 void llResetLandBanList();
634 //wiki: llResetLandPassList()
635 void llResetLandPassList();
636 //wiki: integer llGetParcelPrimCount(vector pos, integer category, integer sim_wide)
637 LSL_Types.LSLInteger llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide);
638 //wiki: list llGetParcelPrimOwners(vector pos)
639 LSL_Types.list llGetParcelPrimOwners(LSL_Types.Vector3 pos);
640 //wiki: integer llGetObjectPrimCount(key object_id)
641 LSL_Types.LSLInteger llGetObjectPrimCount(string object_id);
642 //wiki: integer llGetParcelMaxPrims(vector pos, integer sim_wide)
643 LSL_Types.LSLInteger llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide);
644 //wiki: llGetParcelDetails(vector pos, list params)
645 LSL_Types.list llGetParcelDetails(LSL_Types.Vector3 pos, LSL_Types.list param);
646 //wiki: llSetLinkTexture(integer linknumber, string texture, integer face)
647 void llSetLinkTexture(int linknumber, string texture, int face);
648 //wiki: string llStringTrim(string src, int type)
649 string llStringTrim(string src, int type);
650 //wiki: LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args)
651 LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args);
652 }
653}
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Script/IOSSL_ScriptCommands.cs b/OpenSim/Region/ScriptEngine/XEngine/Script/IOSSL_ScriptCommands.cs
deleted file mode 100644
index 82d4673..0000000
--- a/OpenSim/Region/ScriptEngine/XEngine/Script/IOSSL_ScriptCommands.cs
+++ /dev/null
@@ -1,68 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28namespace OpenSim.Region.ScriptEngine.XEngine.Script
29{
30 public interface IOSSL_ScriptCommands
31 {
32 //OpenSim functions
33 string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer);
34 string osSetDynamicTextureURLBlend(string dynamicID, string contentType, string url, string extraParams,
35 int timer, int alpha);
36 string osSetDynamicTextureData(string dynamicID, string contentType, string data, string extraParams, int timer);
37 string osSetDynamicTextureDataBlend(string dynamicID, string contentType, string data, string extraParams,
38 int timer, int alpha);
39 double osTerrainGetHeight(int x, int y);
40 int osTerrainSetHeight(int x, int y, double val);
41 int osRegionRestart(double seconds);
42 void osRegionNotice(string msg);
43 bool osConsoleCommand(string Command);
44 void osSetParcelMediaURL(string url);
45 void osSetPrimFloatOnWater(int floatYN);
46
47 // Animation commands
48 void osAvatarPlayAnimation(string avatar, string animation);
49 void osAvatarStopAnimation(string avatar, string animation);
50
51 //texture draw functions
52 string osMovePen(string drawList, int x, int y);
53 string osDrawLine(string drawList, int startX, int startY, int endX, int endY);
54 string osDrawLine(string drawList, int endX, int endY);
55 string osDrawText(string drawList, string text);
56 string osDrawEllipse(string drawList, int width, int height);
57 string osDrawRectangle(string drawList, int width, int height);
58 string osDrawFilledRectangle(string drawList, int width, int height);
59 string osSetFontSize(string drawList, int fontSize);
60 string osSetPenSize(string drawList, int penSize);
61 string osSetPenColour(string drawList, string colour);
62 string osDrawImage(string drawList, int width, int height, string imageUrl);
63 void osSetStateEvents(int events);
64
65 double osList2Double(LSL_Types.list src, int index);
66 void osSetRegionWaterHeight(double height);
67 }
68}
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Script/IScript.cs b/OpenSim/Region/ScriptEngine/XEngine/Script/IScript.cs
deleted file mode 100644
index e5d0b33..0000000
--- a/OpenSim/Region/ScriptEngine/XEngine/Script/IScript.cs
+++ /dev/null
@@ -1,46 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System.Reflection;
29using System;
30using System.Collections;
31using System.Collections.Generic;
32using OpenSim.Region.Environment.Interfaces;
33
34namespace OpenSim.Region.ScriptEngine.XEngine.Script
35{
36 public interface IScript
37 {
38 Type Start(ILSL_ScriptCommands lsl, IOSSL_ScriptCommands ossl);
39
40 Dictionary<string, object> GetVars();
41 void SetVars(Dictionary<string, object> vars);
42 void ResetVars();
43
44 string State { get; set; }
45 }
46}
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Script/LSL_Types.cs b/OpenSim/Region/ScriptEngine/XEngine/Script/LSL_Types.cs
deleted file mode 100644
index 8bd3d73..0000000
--- a/OpenSim/Region/ScriptEngine/XEngine/Script/LSL_Types.cs
+++ /dev/null
@@ -1,1512 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections;
30using System.Text.RegularExpressions;
31
32namespace OpenSim.Region.ScriptEngine.XEngine.Script
33{
34 [Serializable]
35 public partial class LSL_Types
36 {
37 // Types are kept is separate .dll to avoid having to add whatever .dll it is in it to script AppDomain
38
39 [Serializable]
40 public struct Vector3
41 {
42 public double x;
43 public double y;
44 public double z;
45
46 #region Constructors
47
48 public Vector3(Vector3 vector)
49 {
50 x = (float)vector.x;
51 y = (float)vector.y;
52 z = (float)vector.z;
53 }
54
55 public Vector3(double X, double Y, double Z)
56 {
57 x = X;
58 y = Y;
59 z = Z;
60 }
61
62 public Vector3(string str)
63 {
64 str = str.Replace('<', ' ');
65 str = str.Replace('>', ' ');
66 string[] tmps = str.Split(new Char[] { ',', '<', '>' });
67 if (tmps.Length < 3)
68 {
69 x=y=z=0;
70 return;
71 }
72 bool res;
73 res = Double.TryParse(tmps[0], out x);
74 res = res & Double.TryParse(tmps[1], out y);
75 res = res & Double.TryParse(tmps[2], out z);
76 }
77
78 #endregion
79
80 #region Overriders
81
82 public override string ToString()
83 {
84 string s=String.Format("<{0:0.000000},{1:0.000000},{2:0.000000}>", x, y, z);
85 return s;
86 }
87
88 public static explicit operator LSLString(Vector3 vec)
89 {
90 string s=String.Format("<{0:0.000000},{1:0.000000},{2:0.000000}>", vec.x, vec.y, vec.z);
91 return new LSLString(s);
92 }
93
94 public static explicit operator string(Vector3 vec)
95 {
96 string s=String.Format("<{0:0.000000},{1:0.000000},{2:0.000000}>", vec.x, vec.y, vec.z);
97 return s;
98 }
99
100 public static explicit operator Vector3(string s)
101 {
102 return new Vector3(s);
103 }
104
105 public static bool operator ==(Vector3 lhs, Vector3 rhs)
106 {
107 return (lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z);
108 }
109
110 public static bool operator !=(Vector3 lhs, Vector3 rhs)
111 {
112 return !(lhs == rhs);
113 }
114
115 public override int GetHashCode()
116 {
117 return (x.GetHashCode() ^ y.GetHashCode() ^ z.GetHashCode());
118 }
119
120 public override bool Equals(object o)
121 {
122 if (!(o is Vector3)) return false;
123
124 Vector3 vector = (Vector3)o;
125
126 return (x == vector.x && x == vector.x && z == vector.z);
127 }
128
129 #endregion
130
131 #region Vector & Vector Math
132
133 // Vector-Vector Math
134 public static Vector3 operator +(Vector3 lhs, Vector3 rhs)
135 {
136 return new Vector3(lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z);
137 }
138
139 public static Vector3 operator -(Vector3 lhs, Vector3 rhs)
140 {
141 return new Vector3(lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z);
142 }
143
144 public static Vector3 operator *(Vector3 lhs, Vector3 rhs)
145 {
146 return new Vector3(lhs.x * rhs.x, lhs.y * rhs.y, lhs.z * rhs.z);
147 }
148
149 public static Vector3 operator %(Vector3 v1, Vector3 v2)
150 {
151 //Cross product
152 Vector3 tv;
153 tv.x = (v1.y * v2.z) - (v1.z * v2.y);
154 tv.y = (v1.z * v2.x) - (v1.x * v2.z);
155 tv.z = (v1.x * v2.y) - (v1.y * v2.x);
156 return tv;
157 }
158
159 #endregion
160
161 #region Vector & Float Math
162
163 // Vector-Float and Float-Vector Math
164 public static Vector3 operator *(Vector3 vec, float val)
165 {
166 return new Vector3(vec.x * val, vec.y * val, vec.z * val);
167 }
168
169 public static Vector3 operator *(float val, Vector3 vec)
170 {
171 return new Vector3(vec.x * val, vec.y * val, vec.z * val);
172 }
173
174 public static Vector3 operator /(Vector3 v, float f)
175 {
176 v.x = v.x / f;
177 v.y = v.y / f;
178 v.z = v.z / f;
179 return v;
180 }
181
182 #endregion
183
184 #region Vector & Double Math
185
186 public static Vector3 operator *(Vector3 vec, double val)
187 {
188 return new Vector3(vec.x * val, vec.y * val, vec.z * val);
189 }
190
191 public static Vector3 operator *(double val, Vector3 vec)
192 {
193 return new Vector3(vec.x * val, vec.y * val, vec.z * val);
194 }
195
196 public static Vector3 operator /(Vector3 v, double f)
197 {
198 v.x = v.x / f;
199 v.y = v.y / f;
200 v.z = v.z / f;
201 return v;
202 }
203
204 #endregion
205
206 #region Vector & Rotation Math
207
208 // Vector-Rotation Math
209 public static Vector3 operator *(Vector3 v, Quaternion r)
210 {
211 Quaternion vq = new Quaternion(v.x, v.y, v.z, 0);
212 Quaternion nq = new Quaternion(-r.x, -r.y, -r.z, r.s);
213
214 // adapted for operator * computing "b * a"
215 Quaternion result = nq * (vq * r);
216
217 return new Vector3(result.x, result.y, result.z);
218 }
219
220 public static Vector3 operator /(Vector3 v, Quaternion r)
221 {
222 r.s = -r.s;
223 return v * r;
224 }
225
226 #endregion
227
228 #region Static Helper Functions
229
230 public static double Dot(Vector3 v1, Vector3 v2)
231 {
232 return (v1.x * v2.x) + (v1.y * v2.y) + (v1.z * v2.z);
233 }
234
235 public static Vector3 Cross(Vector3 v1, Vector3 v2)
236 {
237 return new Vector3
238 (
239 v1.y * v2.z - v1.z * v2.y,
240 v1.z * v2.x - v1.x * v2.z,
241 v1.x * v2.y - v1.y * v2.x
242 );
243 }
244
245 public static double Mag(Vector3 v)
246 {
247 return Math.Sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
248 }
249
250 public static Vector3 Norm(Vector3 vector)
251 {
252 double mag = Mag(vector);
253 return new Vector3(vector.x / mag, vector.y / mag, vector.z / mag);
254 }
255
256 #endregion
257 }
258
259 [Serializable]
260 public struct Quaternion
261 {
262 public double x;
263 public double y;
264 public double z;
265 public double s;
266
267 #region Constructors
268
269 public Quaternion(Quaternion Quat)
270 {
271 x = (float)Quat.x;
272 y = (float)Quat.y;
273 z = (float)Quat.z;
274 s = (float)Quat.s;
275 if (x == 0 && y == 0 && z == 0 && s == 0)
276 s = 1;
277 }
278
279 public Quaternion(double X, double Y, double Z, double S)
280 {
281 x = X;
282 y = Y;
283 z = Z;
284 s = S;
285 if (x == 0 && y == 0 && z == 0 && s == 0)
286 s = 1;
287 }
288
289 public Quaternion(string str)
290 {
291 str = str.Replace('<', ' ');
292 str = str.Replace('>', ' ');
293 string[] tmps = str.Split(new Char[] { ',', '<', '>' });
294 if (tmps.Length < 4)
295 {
296 x=y=z=s=0;
297 return;
298 }
299 bool res;
300 res = Double.TryParse(tmps[0], out x);
301 res = res & Double.TryParse(tmps[1], out y);
302 res = res & Double.TryParse(tmps[2], out z);
303 res = res & Double.TryParse(tmps[3], out s);
304 if (x == 0 && y == 0 && z == 0 && s == 0)
305 s = 1;
306 }
307
308 #endregion
309
310 #region Overriders
311
312 public override int GetHashCode()
313 {
314 return (x.GetHashCode() ^ y.GetHashCode() ^ z.GetHashCode() ^ s.GetHashCode());
315 }
316
317 public override bool Equals(object o)
318 {
319 if (!(o is Quaternion)) return false;
320
321 Quaternion quaternion = (Quaternion)o;
322
323 return x == quaternion.x && y == quaternion.y && z == quaternion.z && s == quaternion.s;
324 }
325
326 public override string ToString()
327 {
328 string st=String.Format("<{0:0.000000},{1:0.000000},{2:0.000000},{3:0.000000}>", x, y, z, s);
329 return st;
330 }
331
332 public static explicit operator string(Quaternion r)
333 {
334 string s=String.Format("<{0:0.000000},{1:0.000000},{2:0.000000},{3:0.000000}>", r.x, r.y, r.z, r.s);
335 return s;
336 }
337
338 public static explicit operator LSLString(Quaternion r)
339 {
340 string s=String.Format("<{0:0.000000},{1:0.000000},{2:0.000000},{3:0.000000}>", r.x, r.y, r.z, r.s);
341 return new LSLString(s);
342 }
343
344 public static explicit operator Quaternion(string s)
345 {
346 return new Quaternion(s);
347 }
348
349 public static bool operator ==(Quaternion lhs, Quaternion rhs)
350 {
351 // Return true if the fields match:
352 return lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z && lhs.s == rhs.s;
353 }
354
355 public static bool operator !=(Quaternion lhs, Quaternion rhs)
356 {
357 return !(lhs == rhs);
358 }
359
360 #endregion
361
362 public static Quaternion operator +(Quaternion a, Quaternion b)
363 {
364 return new Quaternion(a.x + b.x, a.y + b.y, a.z + b.z, a.s + b.s);
365 }
366
367 public static Quaternion operator /(Quaternion a, Quaternion b)
368 {
369 b.s = -b.s;
370 return a * b;
371 }
372
373 public static Quaternion operator -(Quaternion a, Quaternion b)
374 {
375 return new Quaternion(a.x - b.x, a.y - b.y, a.z - b.z, a.s - b.s);
376 }
377
378 // using the equations below, we need to do "b * a" to be compatible with LSL
379 public static Quaternion operator *(Quaternion b, Quaternion a)
380 {
381 Quaternion c;
382 c.x = a.s * b.x + a.x * b.s + a.y * b.z - a.z * b.y;
383 c.y = a.s * b.y + a.y * b.s + a.z * b.x - a.x * b.z;
384 c.z = a.s * b.z + a.z * b.s + a.x * b.y - a.y * b.x;
385 c.s = a.s * b.s - a.x * b.x - a.y * b.y - a.z * b.z;
386 return c;
387 }
388 }
389
390 [Serializable]
391 public class list
392 {
393 private object[] m_data;
394
395 public list(params object[] args)
396 {
397 m_data = new object[args.Length];
398 m_data = args;
399 }
400
401 public int Length
402 {
403 get {
404 if (m_data == null)
405 m_data=new Object[0];
406 return m_data.Length;
407 }
408 }
409
410 public object[] Data
411 {
412 get {
413 if (m_data == null)
414 m_data=new Object[0];
415 return m_data;
416 }
417 }
418
419 public static list operator +(list a, list b)
420 {
421 object[] tmp;
422 tmp = new object[a.Length + b.Length];
423 a.Data.CopyTo(tmp, 0);
424 b.Data.CopyTo(tmp, a.Length);
425 return new list(tmp);
426 }
427
428 private void ExtendAndAdd(object o)
429 {
430 Array.Resize(ref m_data, Length + 1);
431 m_data.SetValue(o, Length - 1);
432 }
433
434 public static list operator +(list a, string s)
435 {
436 a.ExtendAndAdd(s);
437 return a;
438 }
439
440 public static list operator +(list a, int i)
441 {
442 a.ExtendAndAdd(i);
443 return a;
444 }
445
446 public static list operator +(list a, double d)
447 {
448 a.ExtendAndAdd(d);
449 return a;
450 }
451
452 public void Add(object o)
453 {
454 object[] tmp;
455 tmp = new object[m_data.Length + 1];
456 m_data.CopyTo(tmp, 0);
457 tmp[m_data.Length] = o;
458 m_data = tmp;
459 }
460
461 public bool Contains(object o)
462 {
463 bool ret = false;
464 foreach (object i in Data)
465 {
466 if (i == o)
467 {
468 ret = true;
469 break;
470 }
471 }
472 return ret;
473 }
474
475 public list DeleteSublist(int start, int end)
476 {
477 // Not an easy one
478 // If start <= end, remove that part
479 // if either is negative, count from the end of the array
480 // if the resulting start > end, remove all BUT that part
481
482 Object[] ret;
483
484 if (start < 0)
485 start=m_data.Length-start;
486
487 if (start < 0)
488 start=0;
489
490 if (end < 0)
491 end=m_data.Length-end;
492 if (end < 0)
493 end=0;
494
495 if (start > end)
496 {
497 if (end >= m_data.Length)
498 return new list(new Object[0]);
499
500 if (start >= m_data.Length)
501 start=m_data.Length-1;
502
503 return GetSublist(end, start);
504 }
505
506 // start >= 0 && end >= 0 here
507 if (start >= m_data.Length)
508 {
509 ret=new Object[m_data.Length];
510 Array.Copy(m_data, 0, ret, 0, m_data.Length);
511
512 return new list(ret);
513 }
514
515 if (end >= m_data.Length)
516 end=m_data.Length-1;
517
518 // now, this makes the math easier
519 int remove=end+1-start;
520
521 ret=new Object[m_data.Length-remove];
522 if (ret.Length == 0)
523 return new list(ret);
524
525 int src;
526 int dest=0;
527
528 for (src = 0; src < m_data.Length; src++)
529 {
530 if (src < start || src > end)
531 ret[dest++]=m_data[src];
532 }
533
534 return new list(ret);
535 }
536
537 public list GetSublist(int start, int end)
538 {
539
540 object[] ret;
541
542 // Take care of neg start or end's
543 // NOTE that either index may still be negative after
544 // adding the length, so we must take additional
545 // measures to protect against this. Note also that
546 // after normalisation the negative indices are no
547 // longer relative to the end of the list.
548
549 if (start < 0)
550 {
551 start = m_data.Length + start;
552 }
553
554 if (end < 0)
555 {
556 end = m_data.Length + end;
557 }
558
559 // The conventional case is start <= end
560 // NOTE that the case of an empty list is
561 // dealt with by the initial test. Start
562 // less than end is taken to be the most
563 // common case.
564
565 if (start <= end)
566 {
567
568 // Start sublist beyond length
569 // Also deals with start AND end still negative
570 if (start >= m_data.Length || end < 0)
571 {
572 return new list();
573 }
574
575 // Sublist extends beyond the end of the supplied list
576 if (end >= m_data.Length)
577 {
578 end = m_data.Length - 1;
579 }
580
581 // Sublist still starts before the beginning of the list
582 if (start < 0)
583 {
584 start = 0;
585 }
586
587 ret = new object[end - start + 1];
588
589 Array.Copy(m_data, start, ret, 0, end - start + 1);
590
591 return new list(ret);
592
593 }
594
595 // Deal with the segmented case: 0->end + start->EOL
596
597 else
598 {
599
600 list result = null;
601
602 // If end is negative, then prefix list is empty
603 if (end < 0)
604 {
605 result = new list();
606 // If start is still negative, then the whole of
607 // the existing list is returned. This case is
608 // only admitted if end is also still negative.
609 if (start < 0)
610 {
611 return this;
612 }
613
614 }
615 else
616 {
617 result = GetSublist(0,end);
618 }
619
620 // If start is outside of list, then just return
621 // the prefix, whatever it is.
622 if (start >= m_data.Length)
623 {
624 return result;
625 }
626
627 return result + GetSublist(start, Data.Length);
628
629 }
630 }
631
632 public list Sort(int stride, int ascending)
633 {
634 if (Data.Length == 0)
635 return new list(); // Don't even bother
636
637 string[] keys;
638
639 if (stride == 1) // The simple case
640 {
641 Object[] ret=new Object[Data.Length];
642
643 Array.Copy(Data, 0, ret, 0, Data.Length);
644
645 keys=new string[Data.Length];
646
647 for (int k = 0; k < Data.Length; k++)
648 keys[k] = Data[k].ToString();
649
650 Array.Sort(keys, ret);
651
652 if (ascending == 0)
653 Array.Reverse(ret);
654 return new list(ret);
655 }
656
657 int src=0;
658
659 int len=(Data.Length+stride-1)/stride;
660
661 keys=new string[len];
662 Object[][] vals=new Object[len][];
663
664 int i;
665
666 while (src < Data.Length)
667 {
668 Object[] o=new Object[stride];
669
670 for (i = 0; i < stride; i++)
671 {
672 if (src < Data.Length)
673 o[i]=Data[src++];
674 else
675 {
676 o[i]=new Object();
677 src++;
678 }
679 }
680
681 int idx=src/stride-1;
682 keys[idx]=o[0].ToString();
683 vals[idx]=o;
684 }
685
686 Array.Sort(keys, vals);
687 if (ascending == 0)
688 {
689 Array.Reverse(vals);
690 }
691
692 Object[] sorted=new Object[stride*vals.Length];
693
694 for (i = 0; i < vals.Length; i++)
695 for (int j = 0; j < stride; j++)
696 sorted[i*stride+j] = vals[i][j];
697
698 return new list(sorted);
699 }
700
701 #region CSV Methods
702
703 public static list FromCSV(string csv)
704 {
705 return new list(csv.Split(','));
706 }
707
708 public string ToCSV()
709 {
710 string ret = "";
711 foreach (object o in this.Data)
712 {
713 if (ret == "")
714 {
715 ret = o.ToString();
716 }
717 else
718 {
719 ret = ret + ", " + o.ToString();
720 }
721 }
722 return ret;
723 }
724
725 private string ToSoup()
726 {
727 string output;
728 output = String.Empty;
729 if (m_data.Length == 0)
730 {
731 return String.Empty;
732 }
733 foreach (object o in m_data)
734 {
735 output = output + o.ToString();
736 }
737 return output;
738 }
739
740 public static explicit operator String(list l)
741 {
742 return l.ToSoup();
743 }
744
745 public static explicit operator LSLString(list l)
746 {
747 return new LSLString(l.ToSoup());
748 }
749
750 public override string ToString()
751 {
752 return ToSoup();
753 }
754
755 #endregion
756
757 #region Statistic Methods
758
759 public double Min()
760 {
761 double minimum = double.PositiveInfinity;
762 double entry;
763 for (int i = 0; i < Data.Length; i++)
764 {
765 if (double.TryParse(Data[i].ToString(), out entry))
766 {
767 if (entry < minimum) minimum = entry;
768 }
769 }
770 return minimum;
771 }
772
773 public double Max()
774 {
775 double maximum = double.NegativeInfinity;
776 double entry;
777 for (int i = 0; i < Data.Length; i++)
778 {
779 if (double.TryParse(Data[i].ToString(), out entry))
780 {
781 if (entry > maximum) maximum = entry;
782 }
783 }
784 return maximum;
785 }
786
787 public double Range()
788 {
789 return (this.Max() / this.Min());
790 }
791
792 public int NumericLength()
793 {
794 int count = 0;
795 double entry;
796 for (int i = 0; i < Data.Length; i++)
797 {
798 if (double.TryParse(Data[i].ToString(), out entry))
799 {
800 count++;
801 }
802 }
803 return count;
804 }
805
806 public static list ToDoubleList(list src)
807 {
808 list ret = new list();
809 double entry;
810 for (int i = 0; i < src.Data.Length - 1; i++)
811 {
812 if (double.TryParse(src.Data[i].ToString(), out entry))
813 {
814 ret.Add(entry);
815 }
816 }
817 return ret;
818 }
819
820 public double Sum()
821 {
822 double sum = 0;
823 double entry;
824 for (int i = 0; i < Data.Length; i++)
825 {
826 if (double.TryParse(Data[i].ToString(), out entry))
827 {
828 sum = sum + entry;
829 }
830 }
831 return sum;
832 }
833
834 public double SumSqrs()
835 {
836 double sum = 0;
837 double entry;
838 for (int i = 0; i < Data.Length; i++)
839 {
840 if (double.TryParse(Data[i].ToString(), out entry))
841 {
842 sum = sum + Math.Pow(entry, 2);
843 }
844 }
845 return sum;
846 }
847
848 public double Mean()
849 {
850 return (this.Sum() / this.NumericLength());
851 }
852
853 public void NumericSort()
854 {
855 IComparer Numeric = new NumericComparer();
856 Array.Sort(Data, Numeric);
857 }
858
859 public void AlphaSort()
860 {
861 IComparer Alpha = new AlphaCompare();
862 Array.Sort(Data, Alpha);
863 }
864
865 public double Median()
866 {
867 return Qi(0.5);
868 }
869
870 public double GeometricMean()
871 {
872 double ret = 1.0;
873 list nums = ToDoubleList(this);
874 for (int i = 0; i < nums.Data.Length; i++)
875 {
876 ret *= (double)nums.Data[i];
877 }
878 return Math.Exp(Math.Log(ret) / (double)nums.Data.Length);
879 }
880
881 public double HarmonicMean()
882 {
883 double ret = 0.0;
884 list nums = ToDoubleList(this);
885 for (int i = 0; i < nums.Data.Length; i++)
886 {
887 ret += 1.0 / (double)nums.Data[i];
888 }
889 return ((double)nums.Data.Length / ret);
890 }
891
892 public double Variance()
893 {
894 double s = 0;
895 list num = ToDoubleList(this);
896 for (int i = 0; i < num.Data.Length; i++)
897 {
898 s += Math.Pow((double)num.Data[i], 2);
899 }
900 return (s - num.Data.Length * Math.Pow(num.Mean(), 2)) / (num.Data.Length - 1);
901 }
902
903 public double StdDev()
904 {
905 return Math.Sqrt(this.Variance());
906 }
907
908 public double Qi(double i)
909 {
910 list j = this;
911 j.NumericSort();
912
913 if (Math.Ceiling(this.Length * i) == this.Length * i)
914 {
915 return (double)((double)j.Data[(int)(this.Length * i - 1)] + (double)j.Data[(int)(this.Length * i)]) / 2;
916 }
917 else
918 {
919 return (double)j.Data[((int)(Math.Ceiling(this.Length * i))) - 1];
920 }
921 }
922
923 #endregion
924
925 public string ToPrettyString()
926 {
927 string output;
928 if (m_data.Length == 0)
929 {
930 return "[]";
931 }
932 output = "[";
933 foreach (object o in m_data)
934 {
935 if (o is String)
936 {
937 output = output + "\"" + o + "\", ";
938 }
939 else
940 {
941 output = output + o.ToString() + ", ";
942 }
943 }
944 output = output.Substring(0, output.Length - 2);
945 output = output + "]";
946 return output;
947 }
948
949 public class AlphaCompare : IComparer
950 {
951 int IComparer.Compare(object x, object y)
952 {
953 return string.Compare(x.ToString(), y.ToString());
954 }
955 }
956
957 public class NumericComparer : IComparer
958 {
959 int IComparer.Compare(object x, object y)
960 {
961 double a;
962 double b;
963 if (!double.TryParse(x.ToString(), out a))
964 {
965 a = 0.0;
966 }
967 if (!double.TryParse(y.ToString(), out b))
968 {
969 b = 0.0;
970 }
971 if (a < b)
972 {
973 return -1;
974 }
975 else if (a == b)
976 {
977 return 0;
978 }
979 else
980 {
981 return 1;
982 }
983 }
984 }
985
986 }
987
988 //
989 // BELOW IS WORK IN PROGRESS... IT WILL CHANGE, SO DON'T USE YET! :)
990 //
991
992 public struct StringTest
993 {
994 // Our own little string
995 internal string actualString;
996 public static implicit operator bool(StringTest mString)
997 {
998 if (mString.actualString.Length == 0)
999 return true;
1000 return false;
1001 }
1002 public override string ToString()
1003 {
1004 return actualString;
1005 }
1006
1007 }
1008
1009 [Serializable]
1010 public struct key
1011 {
1012 public string value;
1013
1014 #region Constructors
1015 public key(string s)
1016 {
1017 value = s;
1018 }
1019
1020 #endregion
1021
1022 #region Methods
1023
1024 static public bool Parse2Key(string s)
1025 {
1026 Regex isuuid = new Regex(@"^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$", RegexOptions.Compiled);
1027 if (isuuid.IsMatch(s))
1028 {
1029 return true;
1030 }
1031 else
1032 {
1033 return false;
1034 }
1035 }
1036
1037 #endregion
1038
1039 #region Operators
1040
1041 static public implicit operator Boolean(key k)
1042 {
1043 if (k.value.Length == 0)
1044 {
1045 return false;
1046 }
1047
1048 if (k.value == "00000000-0000-0000-0000-000000000000")
1049 {
1050 return false;
1051 }
1052 Regex isuuid = new Regex(@"^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$", RegexOptions.Compiled);
1053 if (isuuid.IsMatch(k.value))
1054 {
1055 return true;
1056 }
1057 else
1058 {
1059 return false;
1060 }
1061 }
1062
1063 static public implicit operator key(string s)
1064 {
1065 return new key(s);
1066 }
1067
1068 static public implicit operator String(key k)
1069 {
1070 return k.value;
1071 }
1072
1073 public static bool operator ==(key k1, key k2)
1074 {
1075 return k1.value == k2.value;
1076 }
1077 public static bool operator !=(key k1, key k2)
1078 {
1079 return k1.value != k2.value;
1080 }
1081
1082 #endregion
1083
1084 #region Overriders
1085
1086 public override bool Equals(object o)
1087 {
1088 return o.ToString() == value;
1089 }
1090
1091 public override int GetHashCode()
1092 {
1093 return value.GetHashCode();
1094 }
1095
1096 #endregion
1097 }
1098
1099 [Serializable]
1100 public struct LSLString
1101 {
1102 public string m_string;
1103 #region Constructors
1104 public LSLString(string s)
1105 {
1106 m_string = s;
1107 }
1108
1109 public LSLString(int i)
1110 {
1111 m_string=i.ToString();
1112 }
1113
1114 public LSLString(double d)
1115 {
1116 string s=String.Format("{0:0.000000}", d);
1117 m_string=s;
1118 }
1119
1120 public LSLString(LSLFloat f)
1121 {
1122 string s=String.Format("{0:0.000000}", f.value);
1123 m_string=s;
1124 }
1125
1126 #endregion
1127
1128 #region Operators
1129 static public implicit operator Boolean(LSLString s)
1130 {
1131 if (s.m_string.Length == 0)
1132 {
1133 return false;
1134 }
1135 else
1136 {
1137 return true;
1138 }
1139 }
1140
1141
1142
1143 static public implicit operator String(LSLString s)
1144 {
1145 return s.m_string;
1146 }
1147
1148 static public implicit operator LSLString(string s)
1149 {
1150 return new LSLString(s);
1151 }
1152
1153 public static string ToString(LSLString s)
1154 {
1155 return s.m_string;
1156 }
1157
1158 public override string ToString()
1159 {
1160 return m_string;
1161 }
1162
1163 public static bool operator ==(LSLString s1, string s2)
1164 {
1165 return s1.m_string == s2;
1166 }
1167
1168 public static bool operator !=(LSLString s1, string s2)
1169 {
1170 return s1.m_string != s2;
1171 }
1172
1173 public static explicit operator double(LSLString s)
1174 {
1175 return Convert.ToDouble(s.m_string);
1176 }
1177
1178 public static explicit operator LSLInteger(LSLString s)
1179 {
1180 return new LSLInteger(Convert.ToInt32(s.m_string));
1181 }
1182
1183 public static explicit operator LSLString(int i)
1184 {
1185 return new LSLString(i);
1186 }
1187
1188 public static explicit operator LSLString(double d)
1189 {
1190 return new LSLString(d);
1191 }
1192
1193 public static explicit operator LSLString(LSLFloat f)
1194 {
1195 return new LSLString(f);
1196 }
1197
1198 public static implicit operator Vector3(LSLString s)
1199 {
1200 return new Vector3(s.m_string);
1201 }
1202
1203 #endregion
1204
1205 #region Overriders
1206 public override bool Equals(object o)
1207 {
1208 return m_string == o.ToString();
1209 }
1210
1211 public override int GetHashCode()
1212 {
1213 return m_string.GetHashCode();
1214 }
1215
1216 #endregion
1217
1218 #region " Standard string functions "
1219 //Clone,CompareTo,Contains
1220 //CopyTo,EndsWith,Equals,GetEnumerator,GetHashCode,GetType,GetTypeCode
1221 //IndexOf,IndexOfAny,Insert,IsNormalized,LastIndexOf,LastIndexOfAny
1222 //Length,Normalize,PadLeft,PadRight,Remove,Replace,Split,StartsWith,Substring,ToCharArray,ToLowerInvariant
1223 //ToString,ToUpper,ToUpperInvariant,Trim,TrimEnd,TrimStart
1224 public bool Contains(string value) { return m_string.Contains(value); }
1225 public int IndexOf(string value) { return m_string.IndexOf(value); }
1226 public int Length { get { return m_string.Length; } }
1227
1228
1229 #endregion
1230 }
1231
1232 [Serializable]
1233 public struct LSLInteger
1234 {
1235 public int value;
1236
1237 #region Constructors
1238 public LSLInteger(int i)
1239 {
1240 value = i;
1241 }
1242
1243 public LSLInteger(double d)
1244 {
1245 value = (int)d;
1246 }
1247
1248 public LSLInteger(Object o)
1249 {
1250 if (!(o is Int32))
1251 value = 0;
1252 else
1253 value = (int)o;
1254 }
1255
1256 public LSLInteger(string s)
1257 {
1258 value = int.Parse(s);
1259 }
1260
1261 #endregion
1262
1263 #region Operators
1264
1265 static public implicit operator int(LSLInteger i)
1266 {
1267 return i.value;
1268 }
1269
1270 static public implicit operator uint(LSLInteger i)
1271 {
1272 return (uint)i.value;
1273 }
1274
1275 static public explicit operator LSLString(LSLInteger i)
1276 {
1277 return new LSLString(i.ToString());
1278 }
1279
1280 static public explicit operator string(LSLInteger i)
1281 {
1282 return i.ToString();
1283 }
1284
1285 static public implicit operator Boolean(LSLInteger i)
1286 {
1287 if (i.value == 0)
1288 {
1289 return false;
1290 }
1291 else
1292 {
1293 return true;
1294 }
1295 }
1296
1297 static public implicit operator LSLInteger(int i)
1298 {
1299 return new LSLInteger(i);
1300 }
1301
1302 static public explicit operator LSLInteger(string s)
1303 {
1304 return new LSLInteger(int.Parse(s));
1305 }
1306
1307 static public implicit operator LSLInteger(double d)
1308 {
1309 return new LSLInteger(d);
1310 }
1311
1312 static public bool operator ==(LSLInteger i1, LSLInteger i2)
1313 {
1314 bool ret = i1.value == i2.value;
1315 return ret;
1316 }
1317
1318 static public bool operator !=(LSLInteger i1, LSLInteger i2)
1319 {
1320 bool ret = i1.value != i2.value;
1321 return ret;
1322 }
1323
1324 static public LSLInteger operator &(LSLInteger i1, LSLInteger i2)
1325 {
1326 int ret = i1.value & i2.value;
1327 return ret;
1328 }
1329
1330 public static LSLInteger operator ++(LSLInteger i)
1331 {
1332 i.value++;
1333 return i;
1334 }
1335
1336
1337 public static LSLInteger operator --(LSLInteger i)
1338 {
1339 i.value--;
1340 return i;
1341 }
1342
1343 static public implicit operator System.Double(LSLInteger i)
1344 {
1345 return (double)i.value;
1346 }
1347
1348 static public implicit operator LSLFloat(LSLInteger i)
1349 {
1350 return new LSLFloat((double)i.value);
1351 }
1352
1353 public static bool operator true(LSLInteger i)
1354 {
1355 return i.value != 0;
1356 }
1357
1358 public static bool operator false(LSLInteger i)
1359 {
1360 return i.value == 0;
1361 }
1362
1363 #endregion
1364
1365 #region Overriders
1366
1367 public override string ToString()
1368 {
1369 return this.value.ToString();
1370 }
1371
1372 public override bool Equals(object o)
1373 {
1374 if (o is Int32)
1375 {
1376 return value == (Int32)o;
1377 }
1378 if (o is LSLInteger)
1379 {
1380 return value == ((LSLInteger)o).value;
1381 }
1382 return false;
1383 }
1384
1385 public override int GetHashCode()
1386 {
1387 return value.GetHashCode();
1388 }
1389
1390 #endregion
1391 }
1392
1393 [Serializable]
1394 public struct LSLFloat
1395 {
1396 public double value;
1397
1398 #region Constructors
1399
1400 public LSLFloat(int i)
1401 {
1402 value = (double)i;
1403 }
1404
1405 public LSLFloat(double d)
1406 {
1407 value = d;
1408 }
1409
1410 public LSLFloat(string s)
1411 {
1412 value = double.Parse(s);
1413 }
1414
1415 public LSLFloat(Object o)
1416 {
1417 if (!((o is double) || (o is float)))
1418 {
1419 value = 0.0;
1420 return;
1421 }
1422
1423 value = (double)o;
1424 }
1425
1426 #endregion
1427
1428 #region Operators
1429
1430 static public implicit operator int(LSLFloat f)
1431 {
1432 return (int)f.value;
1433 }
1434
1435 static public implicit operator uint(LSLFloat f)
1436 {
1437 return (uint) Math.Abs(f.value);
1438 }
1439
1440 static public implicit operator Boolean(LSLFloat f)
1441 {
1442 if (f.value == 0.0)
1443 {
1444 return false;
1445 }
1446 else
1447 {
1448 return true;
1449 }
1450 }
1451
1452 static public implicit operator LSLFloat(int i)
1453 {
1454 return new LSLFloat(i);
1455 }
1456
1457 static public implicit operator LSLFloat(string s)
1458 {
1459 return new LSLFloat(double.Parse(s));
1460 }
1461
1462 static public implicit operator LSLFloat(double d)
1463 {
1464 return new LSLFloat(d);
1465 }
1466
1467 static public bool operator ==(LSLFloat f1, LSLFloat f2)
1468 {
1469 return f1.value == f2.value;
1470 }
1471
1472 static public bool operator !=(LSLFloat f1, LSLFloat f2)
1473 {
1474 return f1.value != f2.value;
1475 }
1476
1477 static public LSLFloat operator ++(LSLFloat f)
1478 {
1479 f.value++;
1480 return f;
1481 }
1482
1483 static public LSLFloat operator --(LSLFloat f)
1484 {
1485 f.value--;
1486 return f;
1487 }
1488
1489 static public implicit operator System.Double(LSLFloat f)
1490 {
1491 return f.value;
1492 }
1493
1494 static public explicit operator LSLString(LSLFloat f)
1495 {
1496 string v = String.Format("{0:0.000000}", f.value);
1497 return new LSLString(v);
1498 }
1499
1500 #endregion
1501
1502 #region Overriders
1503
1504 public override string ToString()
1505 {
1506 return String.Format("{0:0.000000}", this.value);
1507 }
1508
1509 #endregion
1510 }
1511 }
1512}