diff options
author | Tedd Hansen | 2007-08-14 19:06:57 +0000 |
---|---|---|
committer | Tedd Hansen | 2007-08-14 19:06:57 +0000 |
commit | 16defc30eb2a01ce80b59511120066531363cc83 (patch) | |
tree | 7264fe86b5ee4ab569ec1afb7cc3ddda3f33b2b1 /OpenSim/Region/ScriptEngine | |
parent | Can now create some new empty inventory items (like notecards and scripts) fr... (diff) | |
download | opensim-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')
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 | ||
35 | namespace OpenSim.Region.ScriptEngine.DotNetEngine | 35 | namespace 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 | ||
33 | namespace OpenSim.Region.ScriptEngine.DotNetEngine | 33 | namespace 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 | ||
35 | namespace OpenSim.Region.ScriptEngine.DotNetEngine | 35 | namespace 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()) |