aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
blob: 15de03b97993c5ad813a1a9eeea8a45981a85271 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
using System;
using System.Collections.Generic;
using System.Text;
using libsecondlife;
using OpenSim.Region.Environment.Scenes;
using OpenSim.Region.Environment.Scenes.Scripting;
using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler;
using OpenSim.Region.ScriptEngine.Common;
using OpenSim.Framework.Console;

namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
{

    /// <summary>
    /// Contains all LSL ll-functions. This class will be in Default AppDomain.
    /// </summary>
    public class LSL_BuiltIn_Commands: LSL_BuiltIn_Commands_Interface
    {
        private System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
        private ScriptManager m_manager;
        private IScriptHost m_host;

        public LSL_BuiltIn_Commands(ScriptManager manager, IScriptHost host)
        {
            m_manager = manager;
            m_host = host;

            MainLog.Instance.Notice("ScriptEngine", "LSL_BaseClass.Start() called. Hosted by [" + m_host.Name + ":" + m_host.UUID + "@" + m_host.AbsolutePosition + "]");
        }


        private string m_state = "default";
        public string State() {
            return m_state;
        }

        public Scene World
        {
            get { return m_manager.World; }
        }

        //These are the implementations of the various ll-functions used by the LSL scripts.
        //starting out, we use the System.Math library for trig functions. - CFK 8-14-07
        public double llSin(double f) { return (double)Math.Sin(f); }
        public double llCos(double f) { return (double)Math.Cos(f); }
        public double llTan(double f) { return (double)Math.Tan(f); }
        public double llAtan2(double x, double y) { return (double)Math.Atan2(y, x); }
        public double llSqrt(double f) { return (double)Math.Sqrt(f); }
        public double llPow(double fbase, double fexponent) { return (double)Math.Pow(fbase, fexponent); }
        public int llAbs(int i) { return (int)Math.Abs(i); }
        public double llFabs(double f) { return (double)Math.Abs(f); }

        public double llFrand(double mag)
        {
            lock (OpenSim.Framework.Utilities.Util.RandomClass)
            {
                return OpenSim.Framework.Utilities.Util.RandomClass.Next((int)mag);
            }
        }
        public int llFloor(double f) { return (int)Math.Floor(f); }
        public int llCeil(double f) { return (int)Math.Ceiling(f); }
        public int llRound(double f) { return (int)Math.Round(f, 1); }
        public double llVecMag(LSL_Types.Vector3 v) { return 0; }
        public LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v) { return new LSL_Types.Vector3(); }
        public double llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b) { return 0; }
        public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); }
        public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) { return new LSL_Types.Quaternion(); }
        public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up) { return new LSL_Types.Quaternion(); }
        public LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); }
        public LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); }
        public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); }
        public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 start, LSL_Types.Vector3 end) { return new LSL_Types.Quaternion(); }

        public void llWhisper(int channelID, string text)
        {
            //Common.SendToDebug("INTERNAL FUNCTION llWhisper(" + channelID + ", \"" + text + "\");");
            Console.WriteLine("llWhisper Channel " + channelID + ", Text: \"" + text + "\"");
            //type for whisper is 0
            World.SimChat(Helpers.StringToField(text),
                          0, m_host.AbsolutePosition, m_host.Name, m_host.UUID);


        }
        //public void llSay(int channelID, string text)
        public void llSay(int channelID, string text)
        {
            //TODO: DO SOMETHING USEFUL HERE
            //Common.SendToDebug("INTERNAL FUNCTION llSay(" + (int)channelID + ", \"" + (string)text + "\");");
            Console.WriteLine("llSay Channel " + channelID + ", Text: \"" + text + "\"");
            //type for say is 1

            World.SimChat(Helpers.StringToField(text),
                           1, m_host.AbsolutePosition, m_host.Name, m_host.UUID);
        }

        public void llShout(int channelID, string text)
        {
            Console.WriteLine("llShout Channel " + channelID + ", Text: \"" + text + "\"");
            //type for shout is 2
            World.SimChat(Helpers.StringToField(text),
                          2, m_host.AbsolutePosition, m_host.Name, m_host.UUID);

        }

        public int llListen(int channelID, string name, string ID, string msg) { return 0; }
        public void llListenControl(int number, int active) { return; }
        public void llListenRemove(int number) { return; }
        public void llSensor(string name, string id, int type, double range, double arc) { return; }
        public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate) { return; }
        public void llSensorRemove() { return; }
        public string llDetectedName(int number) { return ""; }
        public string llDetectedKey(int number) { return ""; }
        public string llDetectedOwner(int number) { return ""; }
        public int llDetectedType(int number) { return 0; }
        public LSL_Types.Vector3 llDetectedPos(int number) { return new LSL_Types.Vector3(); }
        public LSL_Types.Vector3 llDetectedVel(int number) { return new LSL_Types.Vector3(); }
        public LSL_Types.Vector3 llDetectedGrab(int number) { return new LSL_Types.Vector3(); }
        public LSL_Types.Quaternion llDetectedRot(int number) { return new LSL_Types.Quaternion(); }
        public int llDetectedGroup(int number) { return 0; }
        public int llDetectedLinkNumber(int number) { return 0; }
        public void llDie() { return; }
        public double llGround(LSL_Types.Vector3 offset) { return 0; }
        public double llCloud(LSL_Types.Vector3 offset) { return 0; }
        public LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset) { return new LSL_Types.Vector3(); }
        public void llSetStatus(int status, int value) { return; }
        public int llGetStatus(int status) { return 0; }
        public void llSetScale(LSL_Types.Vector3 scale) { return; }
        public LSL_Types.Vector3 llGetScale() { return new LSL_Types.Vector3(); }
        public void llSetColor(LSL_Types.Vector3 color, int face) { return; }
        public double llGetAlpha(int face) { return 0; }
        public void llSetAlpha(double alpha, int face) { return; }
        public LSL_Types.Vector3 llGetColor(int face) { return new LSL_Types.Vector3(); }
        public void llSetTexture(string texture, int face) { return; }
        public void llScaleTexture(double u, double v, int face) { return; }
        public void llOffsetTexture(double u, double v, int face) { return; }
        public void llRotateTexture(double rotation, int face) { return; }
        public string llGetTexture(int face) { return ""; }
        public void llSetPos(LSL_Types.Vector3 pos) { return; }

        public LSL_Types.Vector3 llGetPos()
        {
            throw new NotImplementedException("llGetPos");
            // return m_host.AbsolutePosition;
        }

        public LSL_Types.Vector3 llGetLocalPos() { return new LSL_Types.Vector3(); }
        public void llSetRot(LSL_Types.Quaternion rot) { }
        public LSL_Types.Quaternion llGetRot() { return new LSL_Types.Quaternion(); }
        public LSL_Types.Quaternion llGetLocalRot() { return new LSL_Types.Quaternion(); }
        public void llSetForce(LSL_Types.Vector3 force, int local) { }
        public LSL_Types.Vector3 llGetForce() { return new LSL_Types.Vector3(); }
        public int llTarget(LSL_Types.Vector3 position, double range) { return 0; }
        public void llTargetRemove(int number) { }
        public int llRotTarget(LSL_Types.Quaternion rot, double error) { return 0; }
        public void llRotTargetRemove(int number) { }
        public void llMoveToTarget(LSL_Types.Vector3 target, double tau) { }
        public void llStopMoveToTarget() { }
        public void llApplyImpulse(LSL_Types.Vector3 force, int local) { }
        public void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local) { }
        public void llSetTorque(LSL_Types.Vector3 torque, int local) { }
        public LSL_Types.Vector3 llGetTorque() { return new LSL_Types.Vector3(); }
        public void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local) { }
        public LSL_Types.Vector3 llGetVel() { return new LSL_Types.Vector3(); }
        public LSL_Types.Vector3 llGetAccel() { return new LSL_Types.Vector3(); }
        public LSL_Types.Vector3 llGetOmega() { return new LSL_Types.Vector3(); }
        public double llGetTimeOfDay() { return 0; }
        public double llGetWallclock() { return 0; }
        public double llGetTime() { return 0; }
        public void llResetTime() { }
        public double llGetAndResetTime() { return 0; }
        public void llSound() { }
        public void llPlaySound(string sound, double volume) { }
        public void llLoopSound(string sound, double volume) { }
        public void llLoopSoundMaster(string sound, double volume) { }
        public void llLoopSoundSlave(string sound, double volume) { }
        public void llPlaySoundSlave(string sound, double volume) { }
        public void llTriggerSound(string sound, double volume) { }
        public void llStopSound() { }
        public void llPreloadSound(string sound) { }
        public string llGetSubString(string src, int start, int end) { return src.Substring(start, end); }
        public string llDeleteSubString(string src, int start, int end) { return ""; }
        public string llInsertString(string dst, int position, string src) { return ""; }
        public string llToUpper(string src) { return src.ToUpper(); }
        public string llToLower(string src) { return src.ToLower(); }
        public int llGiveMoney(string destination, int amount) { return 0; }
        public void llMakeExplosion() { }
        public void llMakeFountain() { }
        public void llMakeSmoke() { }
        public void llMakeFire() { }
        public void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Quaternion rot, int param) { }
        public void llLookAt(LSL_Types.Vector3 target, double strength, double damping) { }
        public void llStopLookAt() { }
        public void llSetTimerEvent(double sec) { }
        public void llSleep(double sec) { System.Threading.Thread.Sleep((int)(sec * 1000)); }
        public double llGetMass() { return 0; }
        public void llCollisionFilter(string name, string id, int accept) { }
        public void llTakeControls(int controls, int accept, int pass_on) { }
        public void llReleaseControls() { }
        public void llAttachToAvatar(int attachment) { }
        public void llDetachFromAvatar() { }
        public void llTakeCamera() { }
        public void llReleaseCamera() { }
        public string llGetOwner() { return ""; }
        public void llInstantMessage(string user, string message) { }
        public void llEmail(string address, string subject, string message) { }
        public void llGetNextEmail(string address, string subject) { }
        public string llGetKey() { return ""; }
        public void llSetBuoyancy(double buoyancy) { }
        public void llSetHoverHeight(double height, int water, double tau) { }
        public void llStopHover() { }
        public void llMinEventDelay(double delay) { }
        public void llSoundPreload() { }
        public void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping) { }

        public int llStringLength(string str)
        {
            if (str.Length > 0)
            {
                return str.Length;
            }
            else
            {
                return 0;
            }
        }

        public void llStartAnimation(string anim) { }
        public void llStopAnimation(string anim) { }
        public void llPointAt() { }
        public void llStopPointAt() { }
        public void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain) { }
        public int llGetStartParameter() { return 0; }
        public void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos) { }
        public void llRequestPermissions(string agent, int perm) { }
        public string llGetPermissionsKey() { return ""; }
        public int llGetPermissions() { return 0; }
        public int llGetLinkNumber() { return 0; }
        public void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face) { }
        public void llCreateLink(string target, int parent) { }
        public void llBreakLink(int linknum) { }
        public void llBreakAllLinks() { }
        public string llGetLinkKey(int linknum) { return ""; }
        public void llGetLinkName(int linknum) { }
        public int llGetInventoryNumber(int type) { return 0; }
        public string llGetInventoryName(int type, int number) { return ""; }
        public void llSetScriptState(string name, int run) { }
        public double llGetEnergy() { return 1.0f; }
        public void llGiveInventory(string destination, string inventory) { }
        public void llRemoveInventory(string item) { }

        public void llSetText(string text, LSL_Types.Vector3 color, double alpha)
        {
            // TEMP DISABLED UNTIL WE CAN AGREE UPON VECTOR/ROTATION FORMAT
            //m_host.SetText(text, color, alpha);
        }

        public double llWater(LSL_Types.Vector3 offset) { return 0; }
        public void llPassTouches(int pass) { }
        public string llRequestAgentData(string id, int data) { return ""; }
        public string llRequestInventoryData(string name) { return ""; }
        public void llSetDamage(double damage) { }
        public void llTeleportAgentHome(string agent) { }
        public void llModifyLand(int action, int brush) { }
        public void llCollisionSound(string impact_sound, double impact_volume) { }
        public void llCollisionSprite(string impact_sprite) { }
        public string llGetAnimation(string id) { return ""; }
        public void llResetScript() { }
        public void llMessageLinked(int linknum, int num, string str, string id) { }
        public void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local) { }
        public void llPassCollisions(int pass) { }
        public string llGetScriptName() { return ""; }
        public int llGetNumberOfSides() { return 0; }
        public LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle) { return new LSL_Types.Quaternion(); }
        public LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot) { return new LSL_Types.Vector3(); }
        public void llRot2Angle() { }
        public double llAcos(double val) { return (double)Math.Acos(val); }
        public double llAsin(double val) { return (double)Math.Asin(val); }
        public double llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b) { return 0; }
        public string llGetInventoryKey(string name) { return ""; }
        public void llAllowInventoryDrop(int add) { }
        public LSL_Types.Vector3 llGetSunDirection() { return new LSL_Types.Vector3(); }
        public LSL_Types.Vector3 llGetTextureOffset(int face) { return new LSL_Types.Vector3(); }
        public LSL_Types.Vector3 llGetTextureScale(int side) { return new LSL_Types.Vector3(); }
        public double llGetTextureRot(int side) { return 0; }
        public int llSubStringIndex(string source, string pattern) { return 0; }
        public string llGetOwnerKey(string id) { return ""; }
        public LSL_Types.Vector3 llGetCenterOfMass() { return new LSL_Types.Vector3(); }
        public List<string> llListSort(List<string> src, int stride, int ascending)
        { return new List<string>(); }
        public int llGetListLength(List<string> src) { return 0; }
        public int llList2Integer(List<string> src, int index) { return 0; }
        public double llList2double(List<string> src, int index) { return 0; }
        public string llList2String(List<string> src, int index) { return ""; }
        public string llList2Key(List<string> src, int index) { return ""; }
        public LSL_Types.Vector3 llList2Vector(List<string> src, int index)
        { return new LSL_Types.Vector3(); }
        public LSL_Types.Quaternion llList2Rot(List<string> src, int index)
        { return new LSL_Types.Quaternion(); }
        public List<string> llList2List(List<string> src, int start, int end)
        { return new List<string>(); }
        public List<string> llDeleteSubList(List<string> src, int start, int end)
        { return new List<string>(); }
        public int llGetListEntryType(List<string> src, int index) { return 0; }
        public string llList2CSV(List<string> src) { return ""; }
        public List<string> llCSV2List(string src)
        { return new List<string>(); }
        public List<string> llListRandomize(List<string> src, int stride)
        { return new List<string>(); }
        public List<string> llList2ListStrided(List<string> src, int start, int end, int stride)
        { return new List<string>(); }
        public LSL_Types.Vector3 llGetRegionCorner()
        { return new LSL_Types.Vector3(World.RegionInfo.RegionLocX * 256, World.RegionInfo.RegionLocY * 256, 0); }
        public List<string> llListInsertList(List<string> dest, List<string> src, int start)
        { return new List<string>(); }
        public int llListFindList(List<string> src, List<string> test) { return 0; }
        public string llGetObjectName() { return ""; }
        public void llSetObjectName(string name) { }
        public string llGetDate() { return ""; }
        public int llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir) { return 0; }
        public int llGetAgentInfo(string id) { return 0; }
        public void llAdjustSoundVolume(double volume) { }
        public void llSetSoundQueueing(int queue) { }
        public void llSetSoundRadius(double radius) { }
        public string llKey2Name(string id) { return ""; }
        public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate) { }
        public void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, LSL_Types.Vector3 bottom_south_west) { }
        public void llEjectFromLand(string pest) { }
        public void llParseString2List() { }
        public int llOverMyLand(string id) { return 0; }
        public string llGetLandOwnerAt(LSL_Types.Vector3 pos) { return ""; }
        public string llGetNotecardLine(string name, int line) { return ""; }
        public LSL_Types.Vector3 llGetAgentSize(string id) { return new LSL_Types.Vector3(); }
        public int llSameGroup(string agent) { return 0; }
        public void llUnSit(string id) { }
        public LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset) { return new LSL_Types.Vector3(); }
        public LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset) { return new LSL_Types.Vector3(); }
        public LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset) { return new LSL_Types.Vector3(); }
        public int llGetAttached() { return 0; }
        public int llGetFreeMemory() { return 0; }
        public string llGetRegionName() { return m_manager.RegionName; }
        public double llGetRegionTimeDilation() { return 1.0f; }
        public double llGetRegionFPS() { return 10.0f; }
        public void llParticleSystem(List<Object> rules) { }
        public void llGroundRepel(double height, int water, double tau) { }
        public void llGiveInventoryList() { }
        public void llSetVehicleType(int type) { }
        public void llSetVehicledoubleParam(int param, double value) { }
        public void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec) { }
        public void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot) { }
        public void llSetVehicleFlags(int flags) { }
        public void llRemoveVehicleFlags(int flags) { }
        public void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot) { }
        public string llAvatarOnSitTarget() { return ""; }
        public void llAddToLandPassList(string avatar, double hours) { }
        public void llSetTouchText(string text)
        {
        }

        public void llSetSitText(string text)
        {
        }
        public void llSetCameraEyeOffset(LSL_Types.Vector3 offset) { }
        public void llSetCameraAtOffset(LSL_Types.Vector3 offset) { }
        public void llDumpList2String() { }
        public void llScriptDanger(LSL_Types.Vector3 pos) { }
        public void llDialog(string avatar, string message, List<string> buttons, int chat_channel) { }
        public void llVolumeDetect(int detect) { }
        public void llResetOtherScript(string name) { }
        public int llGetScriptState(string name) { return 0; }
        public void llRemoteLoadScript() { }
        public void llSetRemoteScriptAccessPin(int pin) { }
        public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param) { }
        public void llOpenRemoteDataChannel() { }
        public string llSendRemoteData(string channel, string dest, int idata, string sdata) { return ""; }
        public void llRemoteDataReply(string channel, string message_id, string sdata, int idata) { }
        public void llCloseRemoteDataChannel(string channel) { }
        public string llMD5String(string src, int nonce)
        {
            return OpenSim.Framework.Utilities.Util.Md5Hash(src + ":" + nonce.ToString());
        }
        public void llSetPrimitiveParams(List<string> rules) { }
        public string llStringToBase64(string str) { return ""; }
        public string llBase64ToString(string str) { return ""; }
        public void llXorBase64Strings() { }
        public void llRemoteDataSetRegion() { }
        public double llLog10(double val) { return (double)Math.Log10(val); }
        public double llLog(double val) { return (double)Math.Log(val); }
        public List<string> llGetAnimationList(string id) { return new List<string>(); }
        public void llSetParcelMusicURL(string url) { }

        public LSL_Types.Vector3 llGetRootPosition()
        {
            throw new NotImplementedException("llGetRootPosition");
            //return m_root.AbsolutePosition;
        }

        public LSL_Types.Quaternion llGetRootRotation()
        {
            return new LSL_Types.Quaternion();
        }

        public string llGetObjectDesc() { return ""; }
        public void llSetObjectDesc(string desc) { }
        public string llGetCreator() { return ""; }
        public string llGetTimestamp() { return ""; }
        public void llSetLinkAlpha(int linknumber, double alpha, int face) { }
        public int llGetNumberOfPrims() { return 0; }
        public string llGetNumberOfNotecardLines(string name) { return ""; }
        public List<string> llGetBoundingBox(string obj) { return new List<string>(); }
        public LSL_Types.Vector3 llGetGeometricCenter() { return new LSL_Types.Vector3(); }
        public void llGetPrimitiveParams() { }
        public string llIntegerToBase64(int number) { return ""; }
        public int llBase64ToInteger(string str) { return 0; }
        public double llGetGMTclock() { return 0; }
        public string llGetSimulatorHostname() { return ""; }
        public void llSetLocalRot(LSL_Types.Quaternion rot) { }
        public List<string> llParseStringKeepNulls(string src, List<string> seperators, List<string> spacers)
        { return new List<string>(); }
        public void llRezAtRoot(string inventory, LSL_Types.Vector3 position, LSL_Types.Vector3 velocity, LSL_Types.Quaternion rot, int param) { }
        public int llGetObjectPermMask(int mask) { return 0; }
        public void llSetObjectPermMask(int mask, int value) { }
        public void llGetInventoryPermMask(string item, int mask) { }
        public void llSetInventoryPermMask(string item, int mask, int value) { }
        public string llGetInventoryCreator(string item) { return ""; }
        public void llOwnerSay(string msg) { }
        public void llRequestSimulatorData(string simulator, int data) { }
        public void llForceMouselook(int mouselook) { }
        public double llGetObjectMass(string id) { return 0; }
        public void llListReplaceList() { }
        public void llLoadURL(string avatar_id, string message, string url) { }
        public void llParcelMediaCommandList(List<string> commandList) { }
        public void llParcelMediaQuery() { }

        public int llModPow(int a, int b, int c)
        {
            Int64 tmp = 0;
            Int64 val = Math.DivRem(Convert.ToInt64(Math.Pow(a, b)), c, out tmp);

            return Convert.ToInt32(tmp);
        }

        public int llGetInventoryType(string name) { return 0; }
        public void llSetPayPrice(int price, List<string> quick_pay_buttons) { }
        public LSL_Types.Vector3 llGetCameraPos() { return new LSL_Types.Vector3(); }
        public LSL_Types.Quaternion llGetCameraRot() { return new LSL_Types.Quaternion(); }
        public void llSetPrimURL() { }
        public void llRefreshPrimURL() { }
        public string llEscapeURL(string url) { return ""; }
        public string llUnescapeURL(string url) { return ""; }
        public void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at) { }
        public void llAddToLandBanList(string avatar, double hours) { }
        public void llRemoveFromLandPassList(string avatar) { }
        public void llRemoveFromLandBanList(string avatar) { }
        public void llSetCameraParams(List<string> rules) { }
        public void llClearCameraParams() { }
        public double llListStatistics(int operation, List<string> src) { return 0; }
        public int llGetUnixTime()
        {
            return OpenSim.Framework.Utilities.Util.UnixTimeSinceEpoch();
        }
        public int llGetParcelFlags(LSL_Types.Vector3 pos) { return 0; }
        public int llGetRegionFlags() { return 0; }
        public string llXorBase64StringsCorrect(string str1, string str2) { return ""; }
        public void llHTTPRequest() { }
        public void llResetLandBanList() { }
        public void llResetLandPassList() { }
        public int llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide) { return 0; }
        public List<string> llGetParcelPrimOwners(LSL_Types.Vector3 pos) { return new List<string>(); }
        public int llGetObjectPrimCount(string object_id) { return 0; }
        public int llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide) { return 0; }
        public List<string> llGetParcelDetails(LSL_Types.Vector3 pos, List<string> param) { return new List<string>(); }


    }
}