aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine
diff options
context:
space:
mode:
authorTedd Hansen2007-08-14 19:06:57 +0000
committerTedd Hansen2007-08-14 19:06:57 +0000
commit16defc30eb2a01ce80b59511120066531363cc83 (patch)
tree7264fe86b5ee4ab569ec1afb7cc3ddda3f33b2b1 /OpenSim/Region/ScriptEngine
parentCan now create some new empty inventory items (like notecards and scripts) fr... (diff)
downloadopensim-SC-16defc30eb2a01ce80b59511120066531363cc83.zip
opensim-SC-16defc30eb2a01ce80b59511120066531363cc83.tar.gz
opensim-SC-16defc30eb2a01ce80b59511120066531363cc83.tar.bz2
opensim-SC-16defc30eb2a01ce80b59511120066531363cc83.tar.xz
krinkec's updates to ll* interface and functions
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs175
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands_Interface.cs263
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs4
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs6
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs112
5 files changed, 342 insertions, 218 deletions
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
index 641a3f2..b3df390 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
@@ -24,6 +24,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
24 24
25 25
26 26
27
27 public float llSin(float f) { return 0; } 28 public float llSin(float f) { return 0; }
28 public float llCos(float f) { return 0; } 29 public float llCos(float f) { return 0; }
29 public float llTan(float f) { return 0; } 30 public float llTan(float f) { return 0; }
@@ -255,116 +256,120 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
255 public Int32 llOverMyLand(string id) { return 0; } 256 public Int32 llOverMyLand(string id) { return 0; }
256 public string llGetLandOwnerAt(Axiom.Math.Vector3 pos) { return ""; } 257 public string llGetLandOwnerAt(Axiom.Math.Vector3 pos) { return ""; }
257 public string llGetNotecardLine(string name, Int32 line) { return ""; } 258 public string llGetNotecardLine(string name, Int32 line) { return ""; }
258 public void llGetAgentSize() { } 259 public Axiom.Math.Vector3 llGetAgentSize(string id) { return new Axiom.Math.Vector3(); }
259 public void llSameGroup() { } 260 public Int32 llSameGroup(string agent) { return 0; }
260 public void llUnSit() { } 261 public void llUnSit(string id) { }
261 public void llGroundSlope() { } 262 public Axiom.Math.Vector3 llGroundSlope(Axiom.Math.Vector3 offset) { return new Axiom.Math.Vector3(); }
262 public void llGroundNormal() { } 263 public Axiom.Math.Vector3 llGroundNormal(Axiom.Math.Vector3 offset) { return new Axiom.Math.Vector3(); }
263 public void llGroundContour() { } 264 public Axiom.Math.Vector3 llGroundContour(Axiom.Math.Vector3 offset) { return new Axiom.Math.Vector3(); }
264 public void llGetAttached() { } 265 public Int32 llGetAttached() { return 0; }
265 public void llGetFreeMemory() { } 266 public Int32 llGetFreeMemory() { return 0; }
266 public void llGetRegionName() { } 267 public string llGetRegionName() { return ""; }
267 public void llGetRegionTimeDilation() { } 268 public float llGetRegionTimeDilation() { return 0; }
268 public void llGetRegionFPS() { } 269 public float llGetRegionFPS() { return 0; }
269 public void llParticleSystem() { } 270 public void llParticleSystem(List<Object> rules) { }
270 public void llGroundRepel() { } 271 public void llGroundRepel(float height, Int32 water, float tau) { }
271 public void llGiveInventoryList() { } 272 public void llGiveInventoryList() { }
272 public void llSetVehicleType() { } 273 public void llSetVehicleType(Int32 type) { }
273 public void llSetVehicleFloatParam() { } 274 public void llSetVehicleFloatParam(Int32 param, float value) { }
274 public void llSetVehicleVectorParam() { } 275 public void llSetVehicleVectorParam(Int32 param, Axiom.Math.Vector3 vec) { }
275 public void llSetVehicleRotationParam() { } 276 public void llSetVehicleRotationParam(Int32 param, Axiom.Math.Quaternion rot) { }
276 public void llSetVehicleFlags() { } 277 public void llSetVehicleFlags(Int32 flags) { }
277 public void llRemoveVehicleFlags() { } 278 public void llRemoveVehicleFlags(Int32 flags) { }
278 public void llSitTarget() { } 279 public void llSitTarget(Axiom.Math.Vector3 offset, Axiom.Math.Quaternion rot) { }
279 public void llAvatarOnSitTarget() { } 280 public string llAvatarOnSitTarget() { return ""; }
280 public void llAddToLandPassList() { } 281 public void llAddToLandPassList(string avatar, float hours) { }
281 public void llSetTouchText() { } 282 public void llSetTouchText(string text)
282 public void llSetSitText() { } 283 {
283 public void llSetCameraEyeOffset() { } 284 }
284 public void llSetCameraAtOffset() { } 285 public void llSetSitText(string text)
286 {
287 }
288 public void llSetCameraEyeOffset(Axiom.Math.Vector3 offset) { }
289 public void llSetCameraAtOffset(Axiom.Math.Vector3 offset) { }
285 public void llDumpList2String() { } 290 public void llDumpList2String() { }
286 public void llScriptDanger() { } 291 public void llScriptDanger(Axiom.Math.Vector3 pos) { }
287 public void llDialog() { } 292 public void llDialog() { }
288 public void llVolumeDetect() { } 293 public void llVolumeDetect(Int32 detect) { }
289 public void llResetOtherScript() { } 294 public void llResetOtherScript(string name) { }
290 public void llGetScriptState() { } 295 public Int32 llGetScriptState(string name) { return 0; }
291 public void llRemoteLoadScript() { } 296 public void llRemoteLoadScript() { }
292 public void llSetRemoteScriptAccessPin() { } 297 public void llSetRemoteScriptAccessPin(Int32 pin) { }
293 public void llRemoteLoadScriptPin() { } 298 public void llRemoteLoadScriptPin(string target, string name, Int32 pin, Int32 running, Int32 start_param) { }
294 public void llOpenRemoteDataChannel() { } 299 public void llOpenRemoteDataChannel() { }
295 public void llSendRemoteData() { } 300 public string llSendRemoteData(string channel, string dest, Int32 idata, string sdata) { return ""; }
296 public void llRemoteDataReply() { } 301 public void llRemoteDataReply(string channel, string message_id, string sdata, Int32 idata) { }
297 public void llCloseRemoteDataChannel() { } 302 public void llCloseRemoteDataChannel(string channel) { }
298 public void llMD5String() { } 303 public void llMD5String(string src, Int32 nonce) { }
299 public void llSetPrimitiveParams() { } 304 public void llSetPrimitiveParams() { }
300 public void llStringToBase64() { } 305 public string llStringToBase64(string str) { return ""; }
301 public void llBase64ToString() { } 306 public string llBase64ToString(string str) { return ""; }
302 public void llXorBase64Strings() { } 307 public void llXorBase64Strings() { }
303 public void llRemoteDataSetRegion() { } 308 public void llRemoteDataSetRegion() { }
304 public void llLog10() { } 309 public float llLog10(float val) { return 0; }
305 public void llLog() { } 310 public float llLog(float val) { return 0; }
306 public void llGetAnimationList() { } 311 public void llGetAnimationList() { }
307 public void llSetParcelMusicURL() { } 312 public void llSetParcelMusicURL(string url) { }
308 public void llGetRootPosition() { } 313 public Axiom.Math.Vector3 llGetRootPosition() { return new Axiom.Math.Vector3(); }
309 public void llGetRootRotation() { } 314 public Axiom.Math.Quaternion llGetRootRotation() { return new Axiom.Math.Quaternion(); }
310 public void llGetObjectDesc() { } 315 public string llGetObjectDesc() { return ""; }
311 public void llSetObjectDesc() { } 316 public void llSetObjectDesc(string desc) { }
312 public void llGetCreator() { } 317 public string llGetCreator() { return ""; }
313 public void llGetTimestamp() { } 318 public string llGetTimestamp() { return ""; }
314 public void llSetLinkAlpha() { } 319 public void llSetLinkAlpha(Int32 linknumber, float alpha, Int32 face) { }
315 public void llGetNumberOfPrims() { } 320 public Int32 llGetNumberOfPrims() { return 0; }
316 public void llGetNumberOfNotecardLines() { } 321 public string llGetNumberOfNotecardLines(string name) { return ""; }
317 public void llGetBoundingBox() { } 322 public void llGetBoundingBox() { }
318 public void llGetGeometricCenter() { } 323 public Axiom.Math.Vector3 llGetGeometricCenter() { return new Axiom.Math.Vector3(); }
319 public void llGetPrimitiveParams() { } 324 public void llGetPrimitiveParams() { }
320 public void llIntegerToBase64() { } 325 public string llIntegerToBase64(Int32 number) { return ""; }
321 public void llBase64ToInteger() { } 326 public Int32 llBase64ToInteger(string str) { return 0; }
322 public void llGetGMTclock() { } 327 public float llGetGMTclock() { return 0; }
323 public void llGetSimulatorHostname() { } 328 public string llGetSimulatorHostname() { return ""; }
324 public void llSetLocalRot() { } 329 public void llSetLocalRot(Axiom.Math.Quaternion rot) { }
325 public void llParseStringKeepNulls() { } 330 public void llParseStringKeepNulls() { }
326 public void llRezAtRoot() { } 331 public void llRezAtRoot(string inventory, Axiom.Math.Vector3 position, Axiom.Math.Vector3 velocity, Axiom.Math.Quaternion rot, Int32 param) { }
327 public void llGetObjectPermMask() { } 332 public Int32 llGetObjectPermMask(Int32 mask) { return 0; }
328 public void llSetObjectPermMask() { } 333 public void llSetObjectPermMask(Int32 mask, Int32 value) { }
329 public void llGetInventoryPermMask() { } 334 public void llGetInventoryPermMask(string item, Int32 mask) { }
330 public void llSetInventoryPermMask() { } 335 public void llSetInventoryPermMask(string item, Int32 mask, Int32 value) { }
331 public void llGetInventoryCreator() { } 336 public string llGetInventoryCreator(string item) { return ""; }
332 public void llOwnerSay() { } 337 public void llOwnerSay(string msg) { }
333 public void llRequestSimulatorData() { } 338 public void llRequestSimulatorData(string simulator, Int32 data) { }
334 public void llForceMouselook() { } 339 public void llForceMouselook(Int32 mouselook) { }
335 public void llGetObjectMass() { } 340 public float llGetObjectMass(string id) { return 0; }
336 public void llListReplaceList() { } 341 public void llListReplaceList() { }
337 public void llLoadURL() { } 342 public void llLoadURL(string avatar_id, string message, string url) { }
338 public void llParcelMediaCommandList() { } 343 public void llParcelMediaCommandList() { }
339 public void llParcelMediaQuery() { } 344 public void llParcelMediaQuery() { }
340 public void llModPow() { } 345 public Int32 llModPow(Int32 a, Int32 b, Int32 c) { return 0; }
341 public void llGetInventoryType() { } 346 public Int32 llGetInventoryType(string name) { return 0; }
342 public void llSetPayPrice() { } 347 public void llSetPayPrice() { }
343 public void llGetCameraPos() { } 348 public Axiom.Math.Vector3 llGetCameraPos() { return new Axiom.Math.Vector3(); }
344 public void llGetCameraRot() { } 349 public Axiom.Math.Quaternion llGetCameraRot() { return new Axiom.Math.Quaternion(); }
345 public void llSetPrimURL() { } 350 public void llSetPrimURL() { }
346 public void llRefreshPrimURL() { } 351 public void llRefreshPrimURL() { }
347 public void llEscapeURL() { } 352 public string llEscapeURL(string url) { return ""; }
348 public void llUnescapeURL() { } 353 public string llUnescapeURL(string url) { return ""; }
349 public void llMapDestination() { } 354 public void llMapDestination(string simname, Axiom.Math.Vector3 pos, Axiom.Math.Vector3 look_at) { }
350 public void llAddToLandBanList() { } 355 public void llAddToLandBanList(string avatar, float hours) { }
351 public void llRemoveFromLandPassList() { } 356 public void llRemoveFromLandPassList(string avatar) { }
352 public void llRemoveFromLandBanList() { } 357 public void llRemoveFromLandBanList(string avatar) { }
353 public void llSetCameraParams() { } 358 public void llSetCameraParams() { }
354 public void llClearCameraParams() { } 359 public void llClearCameraParams() { }
355 public void llListStatistics() { } 360 public void llListStatistics() { }
356 public void llGetUnixTime() { } 361 public Int32 llGetUnixTime() { return 0; }
357 public void llGetParcelFlags() { } 362 public Int32 llGetParcelFlags(Axiom.Math.Vector3 pos) { return 0; }
358 public void llGetRegionFlags() { } 363 public Int32 llGetRegionFlags() { return 0; }
359 public void llXorBase64StringsCorrect() { } 364 public string llXorBase64StringsCorrect(string str1, string str2) { return ""; }
360 public void llHTTPRequest() { } 365 public void llHTTPRequest() { }
361 public void llResetLandBanList() { } 366 public void llResetLandBanList() { }
362 public void llResetLandPassList() { } 367 public void llResetLandPassList() { }
363 public void llGetParcelPrimCount() { } 368 public Int32 llGetParcelPrimCount(Axiom.Math.Vector3 pos, Int32 category, Int32 sim_wide) { return 0; }
364 public void llGetParcelPrimOwners() { } 369 public void llGetParcelPrimOwners() { }
365 public void llGetObjectPrimCount() { } 370 public Int32 llGetObjectPrimCount(string object_id) { return 0; }
366 public void llGetParcelMaxPrims() { } 371 public Int32 llGetParcelMaxPrims(Axiom.Math.Vector3 pos, Int32 sim_wide) { return 0; }
367 public void llGetParcelDetails() { } 372 public List<string> llGetParcelDetails(Axiom.Math.Vector3 pos, List<string> param) { return new List<string>(); }
368 373
369 } 374 }
370} 375}
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands_Interface.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands_Interface.cs
index 8eefac8..b7eba61 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands_Interface.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands_Interface.cs
@@ -394,115 +394,208 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
394 string llGetLandOwnerAt(Axiom.Math.Vector3 pos); 394 string llGetLandOwnerAt(Axiom.Math.Vector3 pos);
395 //wiki: key llGetNotecardLine(string name, integer line) 395 //wiki: key llGetNotecardLine(string name, integer line)
396 string llGetNotecardLine(string name, Int32 line); 396 string llGetNotecardLine(string name, Int32 line);
397 void llGetAgentSize(); 397 //wiki: vector llGetAgentSize(key id)
398 void llSameGroup(); 398 Axiom.Math.Vector3 llGetAgentSize(string id);
399 void llUnSit(); 399 //wiki: integer llSameGroup(key agent)
400 void llGroundSlope(); 400 Int32 llSameGroup(string agent);
401 void llGroundNormal(); 401 //wiki: llUnSit(key id)
402 void llGroundContour(); 402 void llUnSit(string id);
403 void llGetAttached(); 403 //wiki: vector llGroundSlope(vector offset)
404 void llGetFreeMemory(); 404 Axiom.Math.Vector3 llGroundSlope(Axiom.Math.Vector3 offset);
405 void llGetRegionName(); 405 //wiki: vector llGroundNormal(vector offset)
406 void llGetRegionTimeDilation(); 406 Axiom.Math.Vector3 llGroundNormal(Axiom.Math.Vector3 offset);
407 void llGetRegionFPS(); 407 //wiki: vector llGroundContour(vector offset)
408 void llParticleSystem(); 408 Axiom.Math.Vector3 llGroundContour(Axiom.Math.Vector3 offset);
409 void llGroundRepel(); 409 //wiki: integer llGetAttached()
410 Int32 llGetAttached();
411 //wiki: integer llGetFreeMemory()
412 Int32 llGetFreeMemory();
413 //wiki: string llGetRegionName()
414 string llGetRegionName();
415 //wiki: float llGetRegionTimeDilation()
416 float llGetRegionTimeDilation();
417 //wiki: float llGetRegionFPS()
418 float llGetRegionFPS();
419 //wiki: llParticleSystem(List<Object> rules
420 void llParticleSystem(List<Object> rules);
421 //wiki: llGroundRepel(float height, integer water, float tau)
422 void llGroundRepel(float height, Int32 water, float tau);
410 void llGiveInventoryList(); 423 void llGiveInventoryList();
411 void llSetVehicleType(); 424 //wiki: llSetVehicleType(integer type)
412 void llSetVehicleFloatParam(); 425 void llSetVehicleType(Int32 type);
413 void llSetVehicleVectorParam(); 426 //wiki: llSetVehicleFloatParam(integer param, float value)
414 void llSetVehicleRotationParam(); 427 void llSetVehicleFloatParam(Int32 param, float value);
415 void llSetVehicleFlags(); 428 //wiki: llSetVehicleVectorParam(integer param, vector vec)
416 void llRemoveVehicleFlags(); 429 void llSetVehicleVectorParam(Int32 param, Axiom.Math.Vector3 vec);
417 void llSitTarget(); 430 //wiki: llSetVehicleRotationParam(integer param, rotation rot)
418 void llAvatarOnSitTarget(); 431 void llSetVehicleRotationParam(Int32 param, Axiom.Math.Quaternion rot);
419 void llAddToLandPassList(); 432 //wiki: llSetVehicleFlags(integer flags)
420 void llSetTouchText(); 433 void llSetVehicleFlags(Int32 flags);
421 void llSetSitText(); 434 //wiki: llRemoveVehicleFlags(integer flags)
422 void llSetCameraEyeOffset(); 435 void llRemoveVehicleFlags(Int32 flags);
423 void llSetCameraAtOffset(); 436 //wiki: llSitTarget(vector offset, rotation rot)
437 void llSitTarget(Axiom.Math.Vector3 offset, Axiom.Math.Quaternion rot);
438 //wiki key llAvatarOnSitTarget()
439 string llAvatarOnSitTarget();
440 //wiki: llAddToLandPassList(key avatar, float hours)
441 void llAddToLandPassList(string avatar, float hours);
442 //wiki: llSetTouchText(string text)
443 void llSetTouchText(string text);
444 //wiki: llSetSitText(string text)
445 void llSetSitText(string text);
446 //wiki: llSetCameraEyeOffset(vector offset)
447 void llSetCameraEyeOffset(Axiom.Math.Vector3 offset);
448 //wiki: llSeteCameraAtOffset(vector offset)
449 void llSetCameraAtOffset(Axiom.Math.Vector3 offset);
424 void llDumpList2String(); 450 void llDumpList2String();
425 void llScriptDanger(); 451 //wiki: integer llScriptDanger(vector pos)
452 void llScriptDanger(Axiom.Math.Vector3 pos);
426 void llDialog(); 453 void llDialog();
427 void llVolumeDetect(); 454 //wiki: llVolumeDetect(integer detect)
428 void llResetOtherScript(); 455 void llVolumeDetect(Int32 detect);
429 void llGetScriptState(); 456 //wiki: llResetOtherScript(string name)
457 void llResetOtherScript(string name);
458 //wiki: integer llGetScriptState(string name)
459 Int32 llGetScriptState(string name);
460 //wiki: (deprecated)
430 void llRemoteLoadScript(); 461 void llRemoteLoadScript();
431 void llSetRemoteScriptAccessPin(); 462 //wiki: llSetRemoteScriptAccessPin(integer pin)
432 void llRemoteLoadScriptPin(); 463 void llSetRemoteScriptAccessPin(Int32 pin);
464 //wiki: llRemoteLoadScriptPin(key target, string name, integer pin, integer running, integer start_param)
465 void llRemoteLoadScriptPin(string target, string name, Int32 pin, Int32 running, Int32 start_param);
466 //wiki: llOpenRemoteDataChannel()
433 void llOpenRemoteDataChannel(); 467 void llOpenRemoteDataChannel();
434 void llSendRemoteData(); 468 //wiki: key llSendRemoteData(key channel, string dest, integer idata, string sdata)
435 void llRemoteDataReply(); 469 string llSendRemoteData(string channel, string dest, Int32 idata, string sdata);
436 void llCloseRemoteDataChannel(); 470 //wiki: llRemoteDataReply(key channel, key message_id, string sdata, integer idata)
437 void llMD5String(); 471 void llRemoteDataReply(string channel, string message_id, string sdata, Int32 idata);
472 //wiki: llCloseRemoteDataChannel(key channel)
473 void llCloseRemoteDataChannel(string channel);
474 //wiki: string llMD5String(string src, integer nonce)
475 void llMD5String(string src, Int32 nonce);
438 void llSetPrimitiveParams(); 476 void llSetPrimitiveParams();
439 void llStringToBase64(); 477 //wiki: string llStringToBase64(string str)
440 void llBase64ToString(); 478 string llStringToBase64(string str);
479 //wiki: string llBase64ToString(string str)
480 string llBase64ToString(string str);
481 //wiki: (deprecated)
441 void llXorBase64Strings(); 482 void llXorBase64Strings();
483 //wiki: llRemoteDataSetRegion()
442 void llRemoteDataSetRegion(); 484 void llRemoteDataSetRegion();
443 void llLog10(); 485 //wiki: float llLog10(float val)
444 void llLog(); 486 float llLog10(float val);
487 //wiki: float llLog(float val)
488 float llLog(float val);
445 void llGetAnimationList(); 489 void llGetAnimationList();
446 void llSetParcelMusicURL(); 490 //wiki: llSetParcelMusicURL(string url)
447 void llGetRootPosition(); 491 void llSetParcelMusicURL(string url);
448 void llGetRootRotation(); 492 //wiki: vector llGetRootPosition()
449 void llGetObjectDesc(); 493 Axiom.Math.Vector3 llGetRootPosition();
450 void llSetObjectDesc(); 494 //wiki: rotation llGetRootRotation()
451 void llGetCreator(); 495 Axiom.Math.Quaternion llGetRootRotation();
452 void llGetTimestamp(); 496 //wiki: string llGetObjectDesc()
453 void llSetLinkAlpha(); 497 string llGetObjectDesc();
454 void llGetNumberOfPrims(); 498 //wiki: llSetObjectDesc(string desc)
455 void llGetNumberOfNotecardLines(); 499 void llSetObjectDesc(string desc);
500 //wiki: key llGetCreator()
501 string llGetCreator();
502 //wiki: string llGetTimestamp()
503 string llGetTimestamp();
504 //wiki: llSetLinkAlpha(integer linknumber, float alpha, integer face)
505 void llSetLinkAlpha(Int32 linknumber, float alpha, Int32 face);
506 //wiki: integer llGetNumberOfPrims()
507 Int32 llGetNumberOfPrims();
508 //wiki: key llGetNumberOfNotecardLines(string name)
509 string llGetNumberOfNotecardLines(string name);
456 void llGetBoundingBox(); 510 void llGetBoundingBox();
457 void llGetGeometricCenter(); 511 //wiki: vector llGetGeometricCenter()
512 Axiom.Math.Vector3 llGetGeometricCenter();
458 void llGetPrimitiveParams(); 513 void llGetPrimitiveParams();
459 void llIntegerToBase64(); 514 //wiki: string llIntegerToBase64(integer number)
460 void llBase64ToInteger(); 515 string llIntegerToBase64(Int32 number);
461 void llGetGMTclock(); 516 //wiki integer llBase64ToInteger(string str)
462 void llGetSimulatorHostname(); 517 Int32 llBase64ToInteger(string str);
463 void llSetLocalRot(); 518 //wiki: float llGetGMTclock()
519 float llGetGMTclock();
520 //wiki: string llGetSimulatorHostname()
521 string llGetSimulatorHostname();
522 //llSetLocalRot(rotation rot)
523 void llSetLocalRot(Axiom.Math.Quaternion rot);
464 void llParseStringKeepNulls(); 524 void llParseStringKeepNulls();
465 void llRezAtRoot(); 525 //wiki: llRezAtRoot(string inventory, vector position, vector velocity, rotation rot, integer param)
466 void llGetObjectPermMask(); 526 void llRezAtRoot(string inventory, Axiom.Math.Vector3 position, Axiom.Math.Vector3 velocity, Axiom.Math.Quaternion rot, Int32 param);
467 void llSetObjectPermMask(); 527 //wiki: integer llGetObjectPermMask(integer mask)
468 void llGetInventoryPermMask(); 528 Int32 llGetObjectPermMask(Int32 mask);
469 void llSetInventoryPermMask(); 529 //wiki: llSetObjectPermMask(integer mask, integer value)
470 void llGetInventoryCreator(); 530 void llSetObjectPermMask(Int32 mask, Int32 value);
471 void llOwnerSay(); 531 //wiki integer llGetInventoryPermMask(string item, integer mask)
472 void llRequestSimulatorData(); 532 void llGetInventoryPermMask(string item, Int32 mask);
473 void llForceMouselook(); 533 //wiki: llSetInventoryPermMask(string item, integer mask, integer value)
474 void llGetObjectMass(); 534 void llSetInventoryPermMask(string item, Int32 mask, Int32 value);
535 //wiki: key llGetInventoryCreator(string item)
536 string llGetInventoryCreator(string item);
537 //wiki: llOwnerSay(string msg)
538 void llOwnerSay(string msg);
539 //wiki: key llRequestSimulatorData(string simulator, integer data)
540 void llRequestSimulatorData(string simulator, Int32 data);
541 //wiki: llForceMouselook(integer mouselook)
542 void llForceMouselook(Int32 mouselook);
543 //wiki: float llGetObjectMass(key id)
544 float llGetObjectMass(string id);
475 void llListReplaceList(); 545 void llListReplaceList();
476 void llLoadURL(); 546 //wiki: llLoadURL(key avatar_id, string message, string url)
547 void llLoadURL(string avatar_id, string message, string url);
477 void llParcelMediaCommandList(); 548 void llParcelMediaCommandList();
478 void llParcelMediaQuery(); 549 void llParcelMediaQuery();
479 void llModPow(); 550 //wiki integer llModPow(integer a, integer b, integer c)
480 void llGetInventoryType(); 551 Int32 llModPow(Int32 a, Int32 b, Int32 c);
552 //wiki: integer llGetInventoryType(string name)
553 Int32 llGetInventoryType(string name);
481 void llSetPayPrice(); 554 void llSetPayPrice();
482 void llGetCameraPos(); 555 //wiki: vector llGetCameraPos()
483 void llGetCameraRot(); 556 Axiom.Math.Vector3 llGetCameraPos();
557 //wiki rotation llGetCameraRot()
558 Axiom.Math.Quaternion llGetCameraRot();
559 //wiki: (deprecated)
484 void llSetPrimURL(); 560 void llSetPrimURL();
561 //wiki: (deprecated)
485 void llRefreshPrimURL(); 562 void llRefreshPrimURL();
486 void llEscapeURL(); 563 //wiki: string llEscapeURL(string url)
487 void llUnescapeURL(); 564 string llEscapeURL(string url);
488 void llMapDestination(); 565 //wiki: string llUnescapeURL(string url)
489 void llAddToLandBanList(); 566 string llUnescapeURL(string url);
490 void llRemoveFromLandPassList(); 567 //wiki: llMapDestination(string simname, vector pos, vector look_at)
491 void llRemoveFromLandBanList(); 568 void llMapDestination(string simname, Axiom.Math.Vector3 pos, Axiom.Math.Vector3 look_at);
569 //wiki: llAddToLandBanList(key avatar, float hours)
570 void llAddToLandBanList(string avatar, float hours);
571 //wiki: llRemoveFromLandPassList(key avatar)
572 void llRemoveFromLandPassList(string avatar);
573 //wiki: llRemoveFromLandBanList(key avatar)
574 void llRemoveFromLandBanList(string avatar);
492 void llSetCameraParams(); 575 void llSetCameraParams();
493 void llClearCameraParams(); 576 void llClearCameraParams();
494 void llListStatistics(); 577 void llListStatistics();
495 void llGetUnixTime(); 578 //wiki: integer llGetUnixTime()
496 void llGetParcelFlags(); 579 Int32 llGetUnixTime();
497 void llGetRegionFlags(); 580 //wiki: integer llGetParcelFlags(vector pos)
498 void llXorBase64StringsCorrect(); 581 Int32 llGetParcelFlags(Axiom.Math.Vector3 pos);
582 //wiki: integer llGetRegionFlags()
583 Int32 llGetRegionFlags();
584 //wiki: string llXorBase64StringsCorrect(string str1, string str2)
585 string llXorBase64StringsCorrect(string str1, string str2);
499 void llHTTPRequest(); 586 void llHTTPRequest();
587 //wiki: llResetLandBanList()
500 void llResetLandBanList(); 588 void llResetLandBanList();
589 //wiki: llResetLandPassList()
501 void llResetLandPassList(); 590 void llResetLandPassList();
502 void llGetParcelPrimCount(); 591 //wiki integer llGetParcelPrimCount(vector pos, integer category, integer sim_wide)
592 Int32 llGetParcelPrimCount(Axiom.Math.Vector3 pos, Int32 category, Int32 sim_wide);
503 void llGetParcelPrimOwners(); 593 void llGetParcelPrimOwners();
504 void llGetObjectPrimCount(); 594 //wiki: integer llGetObjectPrimCount(key object_id)
505 void llGetParcelMaxPrims(); 595 Int32 llGetObjectPrimCount(string object_id);
506 void llGetParcelDetails(); 596 //wiki: integer llGetParcelMaxPrims( vector pos, integer sim_wide )
597 Int32 llGetParcelMaxPrims(Axiom.Math.Vector3 pos, Int32 sim_wide);
598 //wiki list llGetParcelDetails(vector pos, list params)
599 List<string> llGetParcelDetails(Axiom.Math.Vector3 pos, List<string> param);
507 } 600 }
508} 601}
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs
index 3b6f3e1..368ab11 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs
@@ -34,6 +34,10 @@ using System.Reflection;
34 34
35namespace OpenSim.Region.ScriptEngine.DotNetEngine 35namespace OpenSim.Region.ScriptEngine.DotNetEngine
36{ 36{
37 /// <summary>
38 /// EventQueueManager handles event queues
39 /// Events are queued and executed in separate thread
40 /// </summary>
37 class EventQueueManager 41 class EventQueueManager
38 { 42 {
39 private Thread EventQueueThread; 43 private Thread EventQueueThread;
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
index 5f26434..f7947f7 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
@@ -32,11 +32,11 @@ using System.Text;
32 32
33namespace OpenSim.Region.ScriptEngine.DotNetEngine 33namespace OpenSim.Region.ScriptEngine.DotNetEngine
34{ 34{
35 /// <summary>
36 /// This is the root object for ScriptEngine
37 /// </summary>
35 public class ScriptEngine : OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface 38 public class ScriptEngine : OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface
36 { 39 {
37 //
38 // This is the root object for ScriptEngine
39 //
40 40
41 internal OpenSim.Region.Environment.Scenes.Scene World; 41 internal OpenSim.Region.Environment.Scenes.Scene World;
42 internal EventManager myEventManager; // Handles and queues incoming events from OpenSim 42 internal EventManager myEventManager; // Handles and queues incoming events from OpenSim
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs
index 5f50a52..2de4e62 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs
@@ -34,6 +34,11 @@ using System.Reflection;
34 34
35namespace OpenSim.Region.ScriptEngine.DotNetEngine 35namespace OpenSim.Region.ScriptEngine.DotNetEngine
36{ 36{
37 /// <summary>
38 /// Loads scripts
39 /// Compiles them if necessary
40 /// Execute functions for EventQueueManager
41 /// </summary>
37 class ScriptManager 42 class ScriptManager
38 { 43 {
39 44
@@ -106,51 +111,63 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
106 111
107 // We will initialize and start the script. 112 // We will initialize and start the script.
108 // It will be up to the script itself to hook up the correct events. 113 // It will be up to the script itself to hook up the correct events.
109 string FileName; 114 string FileName = "";
110 115
111 // * Fetch script from server 116 try
112 // DEBUG - ScriptID is an actual filename during debug
113 // (therefore we can also check type by looking at extension)
114 FileName = ScriptID;
115
116 // * Does script need compile? Send it to LSL compiler first. (TODO: Use (and clean) compiler cache)
117 //myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager Script extension: " + System.IO.Path.GetExtension(FileName).ToLower());
118 switch (System.IO.Path.GetExtension(FileName).ToLower())
119 { 117 {
120 case ".txt":
121 case ".lsl":
122 case ".cs":
123 myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager Script is CS/LSL, compiling to .Net Assembly");
124 // Create a new instance of the compiler (currently we don't want reuse)
125 OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler LSLCompiler = new OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler();
126 // Compile
127 FileName = LSLCompiler.Compile(FileName);
128 break;
129 default:
130 throw new Exception("Unknown script type.");
131 }
132
133 myScriptEngine.m_logger.Verbose("ScriptEngine", "Compilation done");
134 // * Insert yield into code
135 FileName = ProcessYield(FileName);
136 118
137 // * Find next available AppDomain to put it in
138 AppDomain FreeAppDomain = GetFreeAppDomain();
139 119
140 // * Load and start script 120 // * Fetch script from server
141 //OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSO.LSL_BaseClass Script = LoadAndInitAssembly(FreeAppDomain, FileName); 121 // DEBUG - ScriptID is an actual filename during debug
142 OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass Script = LoadAndInitAssembly(FreeAppDomain, FileName); 122 // (therefore we can also check type by looking at extension)
143 string FullScriptID = ScriptID + "." + ObjectID; 123 FileName = ScriptID;
144 // Add it to our temporary active script keeper 124
145 //Scripts.Add(FullScriptID, Script); 125 // * Does script need compile? Send it to LSL compiler first. (TODO: Use (and clean) compiler cache)
146 SetScript(ObjectID, ScriptID, Script); 126 //myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager Script extension: " + System.IO.Path.GetExtension(FileName).ToLower());
147 // We need to give (untrusted) assembly a private instance of BuiltIns 127 switch (System.IO.Path.GetExtension(FileName).ToLower())
148 // this private copy will contain Read-Only FullScriptID so that it can bring that on to the server whenever needed. 128 {
149 //OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL_BuiltIn_Commands_Interface LSLB = new OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL_BuiltIn_Commands_TestImplementation(FullScriptID); 129 case ".txt":
130 case ".lsl":
131 case ".cs":
132 myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager Script is CS/LSL, compiling to .Net Assembly");
133 // Create a new instance of the compiler (currently we don't want reuse)
134 OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler LSLCompiler = new OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler();
135 // Compile
136 FileName = LSLCompiler.Compile(FileName);
137 break;
138 default:
139 throw new Exception("Unknown script type.");
140 }
141
142
143
144 myScriptEngine.m_logger.Verbose("ScriptEngine", "Compilation done");
145 // * Insert yield into code
146 FileName = ProcessYield(FileName);
147
148 // * Find next available AppDomain to put it in
149 AppDomain FreeAppDomain = GetFreeAppDomain();
150
151 // * Load and start script
152 //OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSO.LSL_BaseClass Script = LoadAndInitAssembly(FreeAppDomain, FileName);
153 OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass Script = LoadAndInitAssembly(FreeAppDomain, FileName);
154 string FullScriptID = ScriptID + "." + ObjectID;
155 // Add it to our temporary active script keeper
156 //Scripts.Add(FullScriptID, Script);
157 SetScript(ObjectID, ScriptID, Script);
158 // We need to give (untrusted) assembly a private instance of BuiltIns
159 // this private copy will contain Read-Only FullScriptID so that it can bring that on to the server whenever needed.
160 //OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL_BuiltIn_Commands_Interface LSLB = new OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL_BuiltIn_Commands_TestImplementation(FullScriptID);
161
162 // Start the script - giving it BuiltIns
163 //myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager initializing script, handing over private builtin command interface");
164 Script.Start(myScriptEngine.World, ScriptID);
150 165
151 // Start the script - giving it BuiltIns 166 }
152 //myScriptEngine.m_logger.Verbose("ScriptEngine", "ScriptManager initializing script, handing over private builtin command interface"); 167 catch (Exception e)
153 Script.Start(myScriptEngine.World, ScriptID); 168 {
169 myScriptEngine.m_logger.Error("ScriptEngine", "Exception loading script \"" + FileName + "\": " + e.ToString());
170 }
154 171
155 172
156 } 173 }
@@ -222,13 +239,18 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
222 OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass Script = myScriptEngine.myScriptManager.GetScript(ObjectID, ScriptID); 239 OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass Script = myScriptEngine.myScriptManager.GetScript(ObjectID, ScriptID);
223 240
224 Type type = Script.GetType(); 241 Type type = Script.GetType();
225 //object o = (object)Script;
226 242
227 //System.Collections.Generic.List<string> Functions = (System.Collections.Generic.List<string>) 243
228 //Type type = typeof(OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSO.LSL_BaseClass);
229 myScriptEngine.m_logger.Verbose("ScriptEngine", "Invoke: \"" + Script.State + "_event_" + FunctionName + "\""); 244 myScriptEngine.m_logger.Verbose("ScriptEngine", "Invoke: \"" + Script.State + "_event_" + FunctionName + "\"");
230 type.InvokeMember(Script.State + "_event_" + FunctionName, BindingFlags.InvokeMethod, null, Script, args); 245
231 //System.Collections.Generic.List<string> Functions = (System.Collections.Generic.List<string>)type.InvokeMember("GetFunctions", BindingFlags.InvokeMethod, null, Script, null); 246 try
247 {
248 type.InvokeMember(Script.State + "_event_" + FunctionName, BindingFlags.InvokeMethod, null, Script, args);
249 }
250 catch (Exception e)
251 {
252 myScriptEngine.m_logger.Error("ScriptEngine", "Exception attempting to executing script function: " + e.ToString());
253 }
232 254
233 255
234 //foreach (MemberInfo mi in type.GetMembers()) 256 //foreach (MemberInfo mi in type.GetMembers())