@rezless/vm 0.6.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builtins/agents.d.ts +14 -0
- package/dist/builtins/agents.d.ts.map +1 -0
- package/dist/builtins/agents.js +117 -0
- package/dist/builtins/agents.js.map +1 -0
- package/dist/builtins/animation.d.ts +46 -0
- package/dist/builtins/animation.d.ts.map +1 -0
- package/dist/builtins/animation.js +316 -0
- package/dist/builtins/animation.js.map +1 -0
- package/dist/builtins/attachments.d.ts +9 -0
- package/dist/builtins/attachments.d.ts.map +1 -0
- package/dist/builtins/attachments.js +127 -0
- package/dist/builtins/attachments.js.map +1 -0
- package/dist/builtins/base64.d.ts +13 -2
- package/dist/builtins/base64.d.ts.map +1 -1
- package/dist/builtins/base64.js +8 -6
- package/dist/builtins/base64.js.map +1 -1
- package/dist/builtins/camera.d.ts +35 -0
- package/dist/builtins/camera.d.ts.map +1 -0
- package/dist/builtins/camera.js +104 -0
- package/dist/builtins/camera.js.map +1 -0
- package/dist/builtins/collision.d.ts +21 -0
- package/dist/builtins/collision.d.ts.map +1 -0
- package/dist/builtins/collision.js +44 -0
- package/dist/builtins/collision.js.map +1 -0
- package/dist/builtins/controls.d.ts +19 -0
- package/dist/builtins/controls.d.ts.map +1 -0
- package/dist/builtins/controls.js +27 -0
- package/dist/builtins/controls.js.map +1 -0
- package/dist/builtins/damage.d.ts +24 -0
- package/dist/builtins/damage.d.ts.map +1 -0
- package/dist/builtins/damage.js +166 -0
- package/dist/builtins/damage.js.map +1 -0
- package/dist/builtins/detected.d.ts +22 -1
- package/dist/builtins/detected.d.ts.map +1 -1
- package/dist/builtins/detected.js +28 -2
- package/dist/builtins/detected.js.map +1 -1
- package/dist/builtins/dialog.d.ts +23 -0
- package/dist/builtins/dialog.d.ts.map +1 -0
- package/dist/builtins/dialog.js +69 -0
- package/dist/builtins/dialog.js.map +1 -0
- package/dist/builtins/email.d.ts +61 -0
- package/dist/builtins/email.d.ts.map +1 -0
- package/dist/builtins/email.js +121 -0
- package/dist/builtins/email.js.map +1 -0
- package/dist/builtins/environment.d.ts +27 -0
- package/dist/builtins/environment.d.ts.map +1 -0
- package/dist/builtins/environment.js +126 -0
- package/dist/builtins/environment.js.map +1 -0
- package/dist/builtins/experience.d.ts +51 -0
- package/dist/builtins/experience.d.ts.map +1 -0
- package/dist/builtins/experience.js +202 -0
- package/dist/builtins/experience.js.map +1 -0
- package/dist/builtins/game-control.d.ts +17 -0
- package/dist/builtins/game-control.d.ts.map +1 -0
- package/dist/builtins/game-control.js +21 -0
- package/dist/builtins/game-control.js.map +1 -0
- package/dist/builtins/give.d.ts +16 -0
- package/dist/builtins/give.d.ts.map +1 -0
- package/dist/builtins/give.js +137 -0
- package/dist/builtins/give.js.map +1 -0
- package/dist/builtins/ground.d.ts +18 -0
- package/dist/builtins/ground.d.ts.map +1 -0
- package/dist/builtins/ground.js +83 -0
- package/dist/builtins/ground.js.map +1 -0
- package/dist/builtins/hash.d.ts +1 -0
- package/dist/builtins/hash.d.ts.map +1 -1
- package/dist/builtins/hash.js +12 -2
- package/dist/builtins/hash.js.map +1 -1
- package/dist/builtins/http.d.ts +99 -4
- package/dist/builtins/http.d.ts.map +1 -1
- package/dist/builtins/http.js +216 -6
- package/dist/builtins/http.js.map +1 -1
- package/dist/builtins/index.d.ts.map +1 -1
- package/dist/builtins/index.js +250 -14
- package/dist/builtins/index.js.map +1 -1
- package/dist/builtins/inventory.d.ts +8 -5
- package/dist/builtins/inventory.d.ts.map +1 -1
- package/dist/builtins/inventory.js +37 -15
- package/dist/builtins/inventory.js.map +1 -1
- package/dist/builtins/json.d.ts.map +1 -1
- package/dist/builtins/json.js +45 -34
- package/dist/builtins/json.js.map +1 -1
- package/dist/builtins/land.d.ts +29 -0
- package/dist/builtins/land.d.ts.map +1 -0
- package/dist/builtins/land.js +339 -0
- package/dist/builtins/land.js.map +1 -0
- package/dist/builtins/link-info.js +2 -2
- package/dist/builtins/link-info.js.map +1 -1
- package/dist/builtins/links.d.ts +20 -0
- package/dist/builtins/links.d.ts.map +1 -0
- package/dist/builtins/links.js +53 -0
- package/dist/builtins/links.js.map +1 -0
- package/dist/builtins/linksetdata.d.ts +5 -0
- package/dist/builtins/linksetdata.d.ts.map +1 -1
- package/dist/builtins/linksetdata.js +22 -9
- package/dist/builtins/linksetdata.js.map +1 -1
- package/dist/builtins/lists.d.ts +21 -0
- package/dist/builtins/lists.d.ts.map +1 -1
- package/dist/builtins/lists.js +137 -17
- package/dist/builtins/lists.js.map +1 -1
- package/dist/builtins/math.d.ts +18 -0
- package/dist/builtins/math.d.ts.map +1 -1
- package/dist/builtins/math.js +104 -5
- package/dist/builtins/math.js.map +1 -1
- package/dist/builtins/media.d.ts +8 -0
- package/dist/builtins/media.d.ts.map +1 -0
- package/dist/builtins/media.js +167 -0
- package/dist/builtins/media.js.map +1 -0
- package/dist/builtins/motion.d.ts +79 -0
- package/dist/builtins/motion.d.ts.map +1 -0
- package/dist/builtins/motion.js +396 -0
- package/dist/builtins/motion.js.map +1 -0
- package/dist/builtins/notecard-search.d.ts +15 -0
- package/dist/builtins/notecard-search.d.ts.map +1 -0
- package/dist/builtins/notecard-search.js +374 -0
- package/dist/builtins/notecard-search.js.map +1 -0
- package/dist/builtins/object-animation.d.ts +21 -0
- package/dist/builtins/object-animation.d.ts.map +1 -0
- package/dist/builtins/object-animation.js +193 -0
- package/dist/builtins/object-animation.js.map +1 -0
- package/dist/builtins/object-reads.d.ts +39 -0
- package/dist/builtins/object-reads.d.ts.map +1 -0
- package/dist/builtins/object-reads.js +332 -0
- package/dist/builtins/object-reads.js.map +1 -0
- package/dist/builtins/object.d.ts +11 -2
- package/dist/builtins/object.d.ts.map +1 -1
- package/dist/builtins/object.js +32 -8
- package/dist/builtins/object.js.map +1 -1
- package/dist/builtins/particles.d.ts +4 -0
- package/dist/builtins/particles.d.ts.map +1 -0
- package/dist/builtins/particles.js +65 -0
- package/dist/builtins/particles.js.map +1 -0
- package/dist/builtins/pathfinding.d.ts +39 -0
- package/dist/builtins/pathfinding.d.ts.map +1 -0
- package/dist/builtins/pathfinding.js +83 -0
- package/dist/builtins/pathfinding.js.map +1 -0
- package/dist/builtins/permissions.d.ts.map +1 -1
- package/dist/builtins/permissions.js +6 -0
- package/dist/builtins/permissions.js.map +1 -1
- package/dist/builtins/physics.d.ts +49 -0
- package/dist/builtins/physics.d.ts.map +1 -0
- package/dist/builtins/physics.js +47 -0
- package/dist/builtins/physics.js.map +1 -0
- package/dist/builtins/prim-accessors.d.ts +4 -0
- package/dist/builtins/prim-accessors.d.ts.map +1 -1
- package/dist/builtins/prim-accessors.js +75 -28
- package/dist/builtins/prim-accessors.js.map +1 -1
- package/dist/builtins/prim-params.d.ts.map +1 -1
- package/dist/builtins/prim-params.js +6 -2
- package/dist/builtins/prim-params.js.map +1 -1
- package/dist/builtins/raycast.d.ts +3 -0
- package/dist/builtins/raycast.d.ts.map +1 -0
- package/dist/builtins/raycast.js +65 -0
- package/dist/builtins/raycast.js.map +1 -0
- package/dist/builtins/region.d.ts +31 -0
- package/dist/builtins/region.d.ts.map +1 -0
- package/dist/builtins/region.js +125 -0
- package/dist/builtins/region.js.map +1 -0
- package/dist/builtins/remote-load.d.ts +3 -0
- package/dist/builtins/remote-load.d.ts.map +1 -0
- package/dist/builtins/remote-load.js +53 -0
- package/dist/builtins/remote-load.js.map +1 -0
- package/dist/builtins/rez.d.ts +10 -0
- package/dist/builtins/rez.d.ts.map +1 -0
- package/dist/builtins/rez.js +255 -0
- package/dist/builtins/rez.js.map +1 -0
- package/dist/builtins/rsa.d.ts +4 -0
- package/dist/builtins/rsa.d.ts.map +1 -0
- package/dist/builtins/rsa.js +44 -0
- package/dist/builtins/rsa.js.map +1 -0
- package/dist/builtins/script-control.d.ts +8 -3
- package/dist/builtins/script-control.d.ts.map +1 -1
- package/dist/builtins/script-control.js +27 -8
- package/dist/builtins/script-control.js.map +1 -1
- package/dist/builtins/sensor.d.ts +11 -0
- package/dist/builtins/sensor.d.ts.map +1 -0
- package/dist/builtins/sensor.js +145 -0
- package/dist/builtins/sensor.js.map +1 -0
- package/dist/builtins/sit.d.ts +23 -0
- package/dist/builtins/sit.d.ts.map +1 -0
- package/dist/builtins/sit.js +150 -0
- package/dist/builtins/sit.js.map +1 -0
- package/dist/builtins/sound.d.ts +19 -0
- package/dist/builtins/sound.d.ts.map +1 -0
- package/dist/builtins/sound.js +113 -0
- package/dist/builtins/sound.js.map +1 -0
- package/dist/builtins/strings.d.ts +6 -0
- package/dist/builtins/strings.d.ts.map +1 -1
- package/dist/builtins/strings.js +47 -6
- package/dist/builtins/strings.js.map +1 -1
- package/dist/builtins/targets.d.ts +12 -0
- package/dist/builtins/targets.d.ts.map +1 -0
- package/dist/builtins/targets.js +121 -0
- package/dist/builtins/targets.js.map +1 -0
- package/dist/builtins/time.d.ts +15 -5
- package/dist/builtins/time.d.ts.map +1 -1
- package/dist/builtins/time.js +36 -11
- package/dist/builtins/time.js.map +1 -1
- package/dist/builtins/vehicles.d.ts +22 -0
- package/dist/builtins/vehicles.d.ts.map +1 -0
- package/dist/builtins/vehicles.js +78 -0
- package/dist/builtins/vehicles.js.map +1 -0
- package/dist/builtins/viewer.d.ts +39 -0
- package/dist/builtins/viewer.d.ts.map +1 -0
- package/dist/builtins/viewer.js +74 -0
- package/dist/builtins/viewer.js.map +1 -0
- package/dist/clock.d.ts +45 -7
- package/dist/clock.d.ts.map +1 -1
- package/dist/clock.js +125 -14
- package/dist/clock.js.map +1 -1
- package/dist/dispatch.d.ts +3 -2
- package/dist/dispatch.d.ts.map +1 -1
- package/dist/dispatch.js +15 -10
- package/dist/dispatch.js.map +1 -1
- package/dist/experience.d.ts +39 -0
- package/dist/experience.d.ts.map +1 -0
- package/dist/experience.js +38 -0
- package/dist/experience.js.map +1 -0
- package/dist/index.d.ts +20 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interpreter.d.ts +5 -10
- package/dist/interpreter.d.ts.map +1 -1
- package/dist/interpreter.js +143 -70
- package/dist/interpreter.js.map +1 -1
- package/dist/inventory.d.ts +2 -0
- package/dist/inventory.d.ts.map +1 -1
- package/dist/inventory.js +2 -0
- package/dist/inventory.js.map +1 -1
- package/dist/linkset.d.ts +147 -11
- package/dist/linkset.d.ts.map +1 -1
- package/dist/linkset.js +401 -28
- package/dist/linkset.js.map +1 -1
- package/dist/memory.d.ts +5 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +5 -2
- package/dist/memory.js.map +1 -1
- package/dist/prim-params.d.ts +27 -10
- package/dist/prim-params.d.ts.map +1 -1
- package/dist/prim-params.js +209 -125
- package/dist/prim-params.js.map +1 -1
- package/dist/prim.d.ts +95 -5
- package/dist/prim.d.ts.map +1 -1
- package/dist/prim.js +96 -7
- package/dist/prim.js.map +1 -1
- package/dist/runtime.d.ts +52 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/script.d.ts +171 -12
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +480 -73
- package/dist/script.js.map +1 -1
- package/dist/typecheck.d.ts +3 -1
- package/dist/typecheck.d.ts.map +1 -1
- package/dist/typecheck.js +25 -5
- package/dist/typecheck.js.map +1 -1
- package/dist/values/coerce.d.ts +1 -1
- package/dist/values/coerce.d.ts.map +1 -1
- package/dist/values/coerce.js +10 -6
- package/dist/values/coerce.js.map +1 -1
- package/dist/values/format.d.ts +3 -1
- package/dist/values/format.d.ts.map +1 -1
- package/dist/values/format.js +10 -6
- package/dist/values/format.js.map +1 -1
- package/dist/values/ops.d.ts +3 -0
- package/dist/values/ops.d.ts.map +1 -1
- package/dist/values/ops.js +2 -2
- package/dist/values/ops.js.map +1 -1
- package/dist/world.d.ts +247 -1
- package/dist/world.d.ts.map +1 -1
- package/dist/world.js +318 -6
- package/dist/world.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createPrivateKey, createPublicKey, sign, verify } from 'node:crypto';
|
|
2
|
+
import { decodeBase64Strict } from './base64.js';
|
|
3
|
+
const DIGESTS = new Set(['sha1', 'sha224', 'sha256', 'sha384', 'sha512']);
|
|
4
|
+
/**
|
|
5
|
+
* Second Life finds the BEGIN and END lines anywhere in the string and ignores
|
|
6
|
+
* all whitespace between them, so a key with its newlines stripped still reads.
|
|
7
|
+
* The BEGIN line names the key format; the END line's label is not checked.
|
|
8
|
+
*/
|
|
9
|
+
function readPem(pem, labels, read) {
|
|
10
|
+
const match = /-----BEGIN ([A-Z ]+)-----([\s\S]*?)-----END [A-Z ]*-----/.exec(pem);
|
|
11
|
+
if (!match || !labels.includes(match[1]))
|
|
12
|
+
return null;
|
|
13
|
+
const body = match[2].replace(/\s/g, '').replace(/.{1,64}/g, '$&\n');
|
|
14
|
+
try {
|
|
15
|
+
const key = read(`-----BEGIN ${match[1]}-----\n${body}-----END ${match[1]}-----\n`);
|
|
16
|
+
return key.asymmetricKeyType === 'rsa' ? key : null;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export const llSignRSA = (_ctx, args) => {
|
|
23
|
+
const algorithm = (args[2] ?? '').toLowerCase();
|
|
24
|
+
const key = readPem(args[0] ?? '', ['RSA PRIVATE KEY', 'PRIVATE KEY'], createPrivateKey);
|
|
25
|
+
if (!key || !DIGESTS.has(algorithm))
|
|
26
|
+
return '';
|
|
27
|
+
try {
|
|
28
|
+
return sign(algorithm, Buffer.from(args[1] ?? '', 'utf8'), key).toString('base64');
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
export const llVerifyRSA = (_ctx, args) => {
|
|
35
|
+
const algorithm = (args[3] ?? '').toLowerCase();
|
|
36
|
+
const key = readPem(args[0] ?? '', ['PUBLIC KEY'], createPublicKey);
|
|
37
|
+
if (!key || !DIGESTS.has(algorithm))
|
|
38
|
+
return 0;
|
|
39
|
+
const signature = decodeBase64Strict(args[2] ?? '');
|
|
40
|
+
if (signature.length !== Math.ceil(key.asymmetricKeyDetails.modulusLength / 8))
|
|
41
|
+
return 0;
|
|
42
|
+
return verify(algorithm, Buffer.from(args[1] ?? '', 'utf8'), key, signature) ? 1 : 0;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=rsa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsa.js","sourceRoot":"","sources":["../../src/builtins/rsa.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import type { BuiltinImpl } from '../runtime.js';
|
|
2
2
|
/**
|
|
3
3
|
* llResetOtherScript(string name) — reset a sibling script in the same prim.
|
|
4
|
-
*
|
|
4
|
+
* Says an error if no inventory item of that name exists; an inactive asset is left alone, and one
|
|
5
|
+
* naming itself resets at once as with llResetScript. The reset is scheduled via a
|
|
5
6
|
* synthetic `__reset` event so it runs on the next drain step rather than
|
|
6
7
|
* re-entering the target while the caller's handler is still on the stack.
|
|
7
8
|
*/
|
|
8
9
|
export declare const llResetOtherScript: BuiltinImpl;
|
|
9
|
-
/** llSetScriptState(string name, integer running) — enable/disable
|
|
10
|
+
/** llSetScriptState(string name, integer running) — enable/disable a script; one that stops itself stops at once. */
|
|
10
11
|
export declare const llSetScriptState: BuiltinImpl;
|
|
11
|
-
/** llGetScriptState(string name) — 1 if
|
|
12
|
+
/** llGetScriptState(string name) — 1 if running, 0 for an inactive asset; a missing item says an error. */
|
|
12
13
|
export declare const llGetScriptState: BuiltinImpl;
|
|
14
|
+
/** llGetStartParameter() — the object's rez parameter; 0 once the script has reset. */
|
|
15
|
+
export declare const llGetStartParameter: BuiltinImpl;
|
|
16
|
+
/** llGetStartString() — the object's rez string; a reset keeps it. */
|
|
17
|
+
export declare const llGetStartString: BuiltinImpl;
|
|
13
18
|
//# sourceMappingURL=script-control.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-control.d.ts","sourceRoot":"","sources":["../../src/builtins/script-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"script-control.d.ts","sourceRoot":"","sources":["../../src/builtins/script-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAWhC,CAAA;AAED,qHAAqH;AACrH,eAAO,MAAM,gBAAgB,EAAE,WAoB9B,CAAA;AAED,2GAA2G;AAC3G,eAAO,MAAM,gBAAgB,EAAE,WAK9B,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,EAAE,WAAgD,CAAA;AAElF,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,EAAE,WAA8C,CAAA"}
|
|
@@ -1,41 +1,60 @@
|
|
|
1
|
+
import { sayError } from './debug.js';
|
|
2
|
+
import { llResetScript } from './object.js';
|
|
1
3
|
/**
|
|
2
4
|
* llResetOtherScript(string name) — reset a sibling script in the same prim.
|
|
3
|
-
*
|
|
5
|
+
* Says an error if no inventory item of that name exists; an inactive asset is left alone, and one
|
|
6
|
+
* naming itself resets at once as with llResetScript. The reset is scheduled via a
|
|
4
7
|
* synthetic `__reset` event so it runs on the next drain step rather than
|
|
5
8
|
* re-entering the target while the caller's handler is still on the stack.
|
|
6
9
|
*/
|
|
7
10
|
export const llResetOtherScript = (ctx, args) => {
|
|
8
11
|
const name = args[0] ?? '';
|
|
9
12
|
const target = ctx.prim.findScript(name);
|
|
10
|
-
if (!target)
|
|
13
|
+
if (!target) {
|
|
14
|
+
if (!ctx.prim.inventory.some(item => item.name === name))
|
|
15
|
+
sayError(ctx, `Could not find script '${name}'`);
|
|
11
16
|
return undefined;
|
|
17
|
+
}
|
|
18
|
+
if (!target.running)
|
|
19
|
+
return undefined;
|
|
20
|
+
if (target === ctx.script)
|
|
21
|
+
return llResetScript(ctx, []);
|
|
12
22
|
ctx.linkset.clock.schedule(target, ctx.linkset.clock.now, '__reset', {});
|
|
13
23
|
return undefined;
|
|
14
24
|
};
|
|
15
|
-
/** llSetScriptState(string name, integer running) — enable/disable
|
|
25
|
+
/** llSetScriptState(string name, integer running) — enable/disable a script; one that stops itself stops at once. */
|
|
16
26
|
export const llSetScriptState = (ctx, args) => {
|
|
17
27
|
const name = args[0] ?? '';
|
|
18
28
|
const running = (args[1] ?? 0) !== 0;
|
|
19
29
|
const target = ctx.prim.findScript(name);
|
|
20
|
-
if (!target)
|
|
30
|
+
if (!target) {
|
|
31
|
+
sayError(ctx, `Could not find script '${name}'.`);
|
|
21
32
|
return undefined;
|
|
33
|
+
}
|
|
22
34
|
const wasRunning = target.running;
|
|
23
35
|
target.running = running;
|
|
36
|
+
if (target === ctx.script && !running)
|
|
37
|
+
ctx.sleep(0);
|
|
24
38
|
if (running && !wasRunning) {
|
|
25
|
-
//
|
|
26
|
-
// not a flood of catch-up events for every interval missed during pause.
|
|
39
|
+
// Ticks missed while paused collapse into one fired at once.
|
|
27
40
|
const v = target.clockView;
|
|
28
41
|
if (v.timerIntervalMs > 0) {
|
|
29
|
-
v.timerNextFireMs = ctx.linkset.clock.now
|
|
42
|
+
v.timerNextFireMs = Math.max(v.timerNextFireMs, ctx.linkset.clock.now);
|
|
30
43
|
}
|
|
31
44
|
target.resumeParked();
|
|
32
45
|
}
|
|
33
46
|
return undefined;
|
|
34
47
|
};
|
|
35
|
-
/** llGetScriptState(string name) — 1 if
|
|
48
|
+
/** llGetScriptState(string name) — 1 if running, 0 for an inactive asset; a missing item says an error. */
|
|
36
49
|
export const llGetScriptState = (ctx, args) => {
|
|
37
50
|
const name = args[0] ?? '';
|
|
38
51
|
const target = ctx.prim.findScript(name);
|
|
52
|
+
if (!target && !ctx.prim.inventory.some(item => item.name === name))
|
|
53
|
+
sayError(ctx, `Could not find script '${name}'.`);
|
|
39
54
|
return target && target.running ? 1 : 0;
|
|
40
55
|
};
|
|
56
|
+
/** llGetStartParameter() — the object's rez parameter; 0 once the script has reset. */
|
|
57
|
+
export const llGetStartParameter = (ctx) => ctx.script.startParameter;
|
|
58
|
+
/** llGetStartString() — the object's rez string; a reset keeps it. */
|
|
59
|
+
export const llGetStartString = (ctx) => ctx.linkset.startString;
|
|
41
60
|
//# sourceMappingURL=script-control.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-control.js","sourceRoot":"","sources":["../../src/builtins/script-control.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"script-control.js","sourceRoot":"","sources":["../../src/builtins/script-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BuiltinImpl } from '../runtime.js';
|
|
2
|
+
import type { Script } from '../script.js';
|
|
3
|
+
/** Inventory stops simulator work without discarding the registered scan. */
|
|
4
|
+
export declare function pauseSensors(script: Script): void;
|
|
5
|
+
export declare function resumeSensors(script: Script): void;
|
|
6
|
+
/** Reset and state changes discard scans; completed events belong to the event queue. */
|
|
7
|
+
export declare function stopSensors(script: Script): void;
|
|
8
|
+
export declare const llSensor: BuiltinImpl;
|
|
9
|
+
export declare const llSensorRepeat: BuiltinImpl;
|
|
10
|
+
export declare const llSensorRemove: BuiltinImpl;
|
|
11
|
+
//# sourceMappingURL=sensor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensor.d.ts","sourceRoot":"","sources":["../../src/builtins/sensor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAoB1C,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGlD;AAYD,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGhD;AA0ED,eAAO,MAAM,QAAQ,EAAE,WAOtB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAU5B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAQ5B,CAAA"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { NULL_KEY, ZERO_VECTOR } from '../values/types.js';
|
|
2
|
+
import { rotateVector } from '../values/ops.js';
|
|
3
|
+
const sensors = new WeakMap();
|
|
4
|
+
/** Inventory stops simulator work without discarding the registered scan. */
|
|
5
|
+
export function pauseSensors(script) {
|
|
6
|
+
const task = sensors.get(script);
|
|
7
|
+
task?.cancel?.();
|
|
8
|
+
if (task)
|
|
9
|
+
task.cancel = undefined;
|
|
10
|
+
}
|
|
11
|
+
export function resumeSensors(script) {
|
|
12
|
+
const task = sensors.get(script);
|
|
13
|
+
if (task && !task.cancel)
|
|
14
|
+
task.resume();
|
|
15
|
+
}
|
|
16
|
+
function sensorTask(ctx, delay, run) {
|
|
17
|
+
const task = { cancel: undefined, resume: () => {
|
|
18
|
+
if (!ctx.script.linkset.peers.includes(ctx.script.linkset))
|
|
19
|
+
return;
|
|
20
|
+
task.cancel = ctx.script.linkset.clock.scheduleTask(ctx.script, ctx.state.clock.now + delay, run);
|
|
21
|
+
} };
|
|
22
|
+
sensors.set(ctx.script, task);
|
|
23
|
+
task.resume();
|
|
24
|
+
return task;
|
|
25
|
+
}
|
|
26
|
+
/** Reset and state changes discard scans; completed events belong to the event queue. */
|
|
27
|
+
export function stopSensors(script) {
|
|
28
|
+
pauseSensors(script);
|
|
29
|
+
sensors.delete(script);
|
|
30
|
+
}
|
|
31
|
+
function query(args) {
|
|
32
|
+
const key = String(args[1]);
|
|
33
|
+
return {
|
|
34
|
+
name: String(args[0]),
|
|
35
|
+
key: /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(key) ? key.toLowerCase() : NULL_KEY,
|
|
36
|
+
type: Number(args[2]), radius: Math.min(Number(args[3]), 96), arc: Number(args[4]),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function targets(ctx) {
|
|
40
|
+
const world = ctx.script.linkset.world;
|
|
41
|
+
const out = [...(world?.objects ?? []), ...(world?.avatars ?? [])];
|
|
42
|
+
for (const linkset of ctx.script.linkset.peers) {
|
|
43
|
+
if (linkset === ctx.script.linkset || linkset.dead || !linkset.prims.length)
|
|
44
|
+
continue;
|
|
45
|
+
const root = linkset.prims[0];
|
|
46
|
+
const scripts = linkset.allScripts().filter((s) => !s.dead);
|
|
47
|
+
const properties = world?.sensorProperties.get(linkset);
|
|
48
|
+
out.push({
|
|
49
|
+
key: root.key, name: root.name, region: linkset.region ?? '',
|
|
50
|
+
position: root.regionPosition(), rotation: root.regionRotation(),
|
|
51
|
+
velocity: properties?.velocity ?? ZERO_VECTOR, owner: linkset.owner,
|
|
52
|
+
group: properties?.group ?? NULL_KEY, physical: (root.statusFlags & 1) !== 0,
|
|
53
|
+
scripted: scripts.length > 0,
|
|
54
|
+
active: properties?.active ?? scripts.some((s) => s.running && (s.timerInterval > 0 || s.wakeAt !== undefined || s.listens.some((l) => l.active))),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
function scan(ctx, q) {
|
|
60
|
+
if (!ctx.script.running || ctx.script.dead || q.radius <= 0 || q.type === 0)
|
|
61
|
+
return;
|
|
62
|
+
const origin = ctx.prim.regionPosition();
|
|
63
|
+
const forward = rotateVector({ x: 1, y: 0, z: 0 }, ctx.prim.regionRotation());
|
|
64
|
+
const group = ctx.script.linkset.world?.sensorProperties.get(ctx.script.linkset)?.group ?? NULL_KEY;
|
|
65
|
+
const found = [];
|
|
66
|
+
for (const target of targets(ctx)) {
|
|
67
|
+
// DAMAGEABLE matched nothing on the measured Aditi simulator, even with health and handlers.
|
|
68
|
+
if (q.type & 32)
|
|
69
|
+
continue;
|
|
70
|
+
if (target.region !== (ctx.script.linkset.region ?? ''))
|
|
71
|
+
continue;
|
|
72
|
+
if (q.key !== NULL_KEY && target.key.toLowerCase() !== q.key)
|
|
73
|
+
continue;
|
|
74
|
+
const avatar = target.username !== undefined;
|
|
75
|
+
if (q.name && q.name !== (avatar && (q.type & 16) !== 0 ? target.username : target.name))
|
|
76
|
+
continue;
|
|
77
|
+
if (avatar) {
|
|
78
|
+
if (!(q.type & 17) || (q.type & 8))
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
const active = target.physical || target.active;
|
|
83
|
+
if (q.type & 8) {
|
|
84
|
+
if (!target.scripted || !(active || (q.type & 4)))
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
else if (!(q.type & (active ? 2 : 4)))
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
const delta = { x: target.position.x - origin.x, y: target.position.y - origin.y, z: target.position.z - origin.z };
|
|
91
|
+
const distance = Math.hypot(delta.x, delta.y, delta.z);
|
|
92
|
+
if (distance >= q.radius)
|
|
93
|
+
continue;
|
|
94
|
+
if (q.arc > 0 && q.arc < Math.PI && distance > 0) {
|
|
95
|
+
const dot = (delta.x * forward.x + delta.y * forward.y + delta.z * forward.z) / distance;
|
|
96
|
+
// Measured at 45 and 90 degrees on Aditi, 2026-10-31.
|
|
97
|
+
if (dot + 0.0001 < Math.cos(q.arc))
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
found.push({ distance, entry: {
|
|
101
|
+
key: target.key, name: target.name, owner: target.owner,
|
|
102
|
+
group: Number(target.group === group),
|
|
103
|
+
pos: { ...target.position }, rot: { ...target.rotation }, vel: { ...target.velocity },
|
|
104
|
+
type: avatar ? 3 : (target.physical ? 2 : 4) | (target.scripted ? 8 : 0),
|
|
105
|
+
linkNumber: 0,
|
|
106
|
+
} });
|
|
107
|
+
}
|
|
108
|
+
const detected = found.sort((a, b) => a.distance - b.distance).slice(0, 32).map((f) => f.entry);
|
|
109
|
+
// A busy handler holds the latest completed result, rather than a backlog of scans.
|
|
110
|
+
ctx.script.linkset.clock.purgeEvent(ctx.script, detected.length ? 'sensor' : 'no_sensor');
|
|
111
|
+
ctx.state.clock.schedule(ctx.state.clock.now, detected.length ? 'sensor' : 'no_sensor', { num_detected: detected.length, detected });
|
|
112
|
+
}
|
|
113
|
+
export const llSensor = (ctx, args) => {
|
|
114
|
+
stopSensors(ctx.script);
|
|
115
|
+
const q = query(args);
|
|
116
|
+
sensorTask(ctx, 0, () => {
|
|
117
|
+
sensors.delete(ctx.script);
|
|
118
|
+
scan(ctx, q);
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
export const llSensorRepeat = (ctx, args) => {
|
|
122
|
+
stopSensors(ctx.script);
|
|
123
|
+
const rate = Number(args[5]);
|
|
124
|
+
if (rate < 0)
|
|
125
|
+
return;
|
|
126
|
+
if (rate === 0)
|
|
127
|
+
return llSensor(ctx, args);
|
|
128
|
+
const q = query(args);
|
|
129
|
+
const task = sensorTask(ctx, rate * 1000, () => {
|
|
130
|
+
scan(ctx, q);
|
|
131
|
+
task.resume();
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
export const llSensorRemove = (ctx) => {
|
|
135
|
+
stopSensors(ctx.script);
|
|
136
|
+
for (const event of ctx.script.linkset.clock.pendingEvents()) {
|
|
137
|
+
if (event.target === ctx.script && event.event === 'sensor')
|
|
138
|
+
event.payload['detected'] = [];
|
|
139
|
+
}
|
|
140
|
+
const stack = ctx.state.detectedStack;
|
|
141
|
+
const current = stack.at(-1);
|
|
142
|
+
if (current?.event === 'sensor')
|
|
143
|
+
stack[stack.length - 1] = { ...current, entries: [] };
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=sensor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensor.js","sourceRoot":"","sources":["../../src/builtins/sensor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { BuiltinImpl } from '../runtime.js';
|
|
2
|
+
import { type Vector } from '../values/types.js';
|
|
3
|
+
/** A teleport attempt. Accepted means the script's checks passed, not a network confirmation. */
|
|
4
|
+
export interface TeleportRequest {
|
|
5
|
+
readonly kind: 'local' | 'landmark' | 'global' | 'home';
|
|
6
|
+
readonly agent: string;
|
|
7
|
+
readonly time: number;
|
|
8
|
+
readonly accepted: boolean;
|
|
9
|
+
readonly region?: string;
|
|
10
|
+
readonly position?: Vector;
|
|
11
|
+
readonly lookAt?: Vector;
|
|
12
|
+
readonly landmark?: string;
|
|
13
|
+
readonly globalCoordinates?: Vector;
|
|
14
|
+
}
|
|
15
|
+
export declare const llAvatarOnSitTarget: BuiltinImpl;
|
|
16
|
+
export declare const llAvatarOnLinkSitTarget: BuiltinImpl;
|
|
17
|
+
export declare const llSitOnLink: BuiltinImpl;
|
|
18
|
+
export declare const llUnSit: BuiltinImpl;
|
|
19
|
+
export declare const llSetAgentRot: BuiltinImpl;
|
|
20
|
+
export declare const llTeleportAgent: BuiltinImpl;
|
|
21
|
+
export declare const llTeleportAgentGlobalCoords: BuiltinImpl;
|
|
22
|
+
export declare const llTeleportAgentHome: BuiltinImpl;
|
|
23
|
+
//# sourceMappingURL=sit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sit.d.ts","sourceRoot":"","sources":["../../src/builtins/sit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAA;AAG7D,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAMzE,iGAAiG;AACjG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAA;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CACpC;AAeD,eAAO,MAAM,mBAAmB,EAAE,WAA0C,CAAA;AAC5E,eAAO,MAAM,uBAAuB,EAAE,WAAsE,CAAA;AAE5G,eAAO,MAAM,WAAW,EAAE,WAgBzB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,WAOrB,CAAA;AAOD,eAAO,MAAM,aAAa,EAAE,WAS3B,CAAA;AA+BD,eAAO,MAAM,eAAe,EAAE,WAmB7B,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,WAYzC,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,WAajC,CAAA"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { NULL_KEY } from '../values/types.js';
|
|
2
|
+
import { rotateVector } from '../values/ops.js';
|
|
3
|
+
import { AGENT_SITTING, INVENTORY_LANDMARK, LINK_THIS, PERMISSION_TELEPORT, PERMISSION_TRIGGER_ANIMATION } from '../generated/constants.js';
|
|
4
|
+
import { sayError } from './debug.js';
|
|
5
|
+
import { isAgentInRegion } from './viewer.js';
|
|
6
|
+
const sameKey = (a, b) => a.toLowerCase() === b.toLowerCase();
|
|
7
|
+
const avatar = (ctx, key) => ctx.linkset.world?.avatars.find(a => sameKey(a.key, key) && a.region === ctx.linkset.region);
|
|
8
|
+
function prim(ctx, link) {
|
|
9
|
+
return link === LINK_THIS ? ctx.prim : link > 0 ? ctx.linkset.prims[link - 1] : undefined;
|
|
10
|
+
}
|
|
11
|
+
function sitter(ctx, target) {
|
|
12
|
+
if (!target?.params.sitTarget.enabled)
|
|
13
|
+
return NULL_KEY;
|
|
14
|
+
return ctx.linkset.world?.avatars.find(a => a.region === ctx.linkset.region && a.sittingOn === target)?.key ?? NULL_KEY;
|
|
15
|
+
}
|
|
16
|
+
export const llAvatarOnSitTarget = ctx => sitter(ctx, ctx.prim);
|
|
17
|
+
export const llAvatarOnLinkSitTarget = (ctx, args) => sitter(ctx, prim(ctx, args[0]));
|
|
18
|
+
export const llSitOnLink = (ctx, args) => {
|
|
19
|
+
const xp = ctx.state.experience;
|
|
20
|
+
if (!xp)
|
|
21
|
+
return -1;
|
|
22
|
+
const agent = avatar(ctx, args[0]);
|
|
23
|
+
if (!agent)
|
|
24
|
+
return -4;
|
|
25
|
+
if (!xp.allowedHere)
|
|
26
|
+
return -1;
|
|
27
|
+
if (![...xp.agents].some(key => sameKey(key, agent.key)))
|
|
28
|
+
return -2;
|
|
29
|
+
const requested = prim(ctx, args[1]);
|
|
30
|
+
if (!requested)
|
|
31
|
+
return -5;
|
|
32
|
+
if (ctx.linkset.attachment)
|
|
33
|
+
return -7;
|
|
34
|
+
const targets = [requested, ...ctx.linkset.prims.filter(p => p !== requested)];
|
|
35
|
+
const seat = targets.find(p => p.params.sitTarget.enabled &&
|
|
36
|
+
!ctx.linkset.world.avatars.some(a => a.sittingOn === p));
|
|
37
|
+
if (!seat)
|
|
38
|
+
return -3;
|
|
39
|
+
ctx.linkset.world.sitAvatar(agent, seat);
|
|
40
|
+
return 1;
|
|
41
|
+
};
|
|
42
|
+
export const llUnSit = (ctx, args) => {
|
|
43
|
+
const agent = avatar(ctx, args[0]);
|
|
44
|
+
if (!agent)
|
|
45
|
+
return undefined;
|
|
46
|
+
const world = ctx.linkset.world;
|
|
47
|
+
const land = world.parcelAt(agent.region, agent.position);
|
|
48
|
+
if (agent.sittingOn?.linkset === ctx.linkset || (land && land.owner !== NULL_KEY && sameKey(land.owner, ctx.linkset.owner)))
|
|
49
|
+
world.standAvatar(agent);
|
|
50
|
+
return undefined;
|
|
51
|
+
};
|
|
52
|
+
function yawRotation(x, y) {
|
|
53
|
+
const half = Math.atan2(y, x) / 2;
|
|
54
|
+
return { x: 0, y: 0, z: Math.sin(half), s: Math.cos(half) };
|
|
55
|
+
}
|
|
56
|
+
export const llSetAgentRot = (ctx, args) => {
|
|
57
|
+
if (!(ctx.state.permissions.granted & PERMISSION_TRIGGER_ANIMATION))
|
|
58
|
+
return undefined;
|
|
59
|
+
const agent = avatar(ctx, ctx.state.permissions.agent);
|
|
60
|
+
if (!agent)
|
|
61
|
+
return undefined;
|
|
62
|
+
const forward = rotateVector({ x: 1, y: 0, z: 0 }, args[0]);
|
|
63
|
+
const rotation = yawRotation(forward.x, forward.y);
|
|
64
|
+
if (agent.info & AGENT_SITTING)
|
|
65
|
+
agent.standingRotation = rotation;
|
|
66
|
+
else
|
|
67
|
+
agent.rotation = rotation;
|
|
68
|
+
return undefined;
|
|
69
|
+
};
|
|
70
|
+
function mayTeleport(ctx, key) {
|
|
71
|
+
if (ctx.linkset.attachment?.temporary) {
|
|
72
|
+
sayError(ctx, 'Temporary attachments cannot teleport agents');
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
const xp = ctx.state.experience;
|
|
76
|
+
const experience = xp?.allowedHere && [...xp.agents].some(agent => sameKey(agent, key));
|
|
77
|
+
const permission = (ctx.state.permissions.granted & PERMISSION_TELEPORT) &&
|
|
78
|
+
sameKey(ctx.state.permissions.agent, key) && sameKey(ctx.linkset.owner, key);
|
|
79
|
+
if (!experience && !permission) {
|
|
80
|
+
sayError(ctx, 'Script trying to teleport agent without current permission!');
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
return isAgentInRegion(ctx, key);
|
|
84
|
+
}
|
|
85
|
+
function move(ctx, key, destination, lookAt) {
|
|
86
|
+
const agent = avatar(ctx, key);
|
|
87
|
+
if (!agent)
|
|
88
|
+
return;
|
|
89
|
+
const world = ctx.linkset.world;
|
|
90
|
+
world.standAvatar(agent);
|
|
91
|
+
if (lookAt) {
|
|
92
|
+
const local = destination.region === ctx.linkset.region;
|
|
93
|
+
agent.rotation = yawRotation(lookAt.x - (local ? destination.position.x : 0), lookAt.y - (local ? destination.position.y : 0));
|
|
94
|
+
}
|
|
95
|
+
agent.region = destination.region;
|
|
96
|
+
agent.position = { ...destination.position };
|
|
97
|
+
}
|
|
98
|
+
export const llTeleportAgent = (ctx, args) => {
|
|
99
|
+
const key = args[0].toLowerCase();
|
|
100
|
+
const landmark = args[1];
|
|
101
|
+
const position = { ...args[2] };
|
|
102
|
+
const lookAt = { ...args[3] };
|
|
103
|
+
let accepted = mayTeleport(ctx, key);
|
|
104
|
+
let destination;
|
|
105
|
+
if (accepted && landmark) {
|
|
106
|
+
const item = ctx.prim.inventory.find(i => i.name === landmark && i.type === INVENTORY_LANDMARK);
|
|
107
|
+
destination = item ? ctx.linkset.world?.landmarks.get(item.key.toLowerCase()) : undefined;
|
|
108
|
+
if (!destination) {
|
|
109
|
+
sayError(ctx, 'Teleport failed: landmark name provided but assets is missing or invalid.');
|
|
110
|
+
accepted = false;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else if (ctx.linkset.region !== undefined)
|
|
114
|
+
destination = { region: ctx.linkset.region, position };
|
|
115
|
+
ctx.state.teleportRequests.push({ kind: landmark ? 'landmark' : 'local', agent: key, time: ctx.state.clock.now,
|
|
116
|
+
accepted, landmark, position: { ...(destination?.position ?? position) }, lookAt, ...(destination ? { region: destination.region } : {}) });
|
|
117
|
+
if (accepted && destination)
|
|
118
|
+
move(ctx, key, destination, lookAt);
|
|
119
|
+
return undefined;
|
|
120
|
+
};
|
|
121
|
+
export const llTeleportAgentGlobalCoords = (ctx, args) => {
|
|
122
|
+
const key = args[0].toLowerCase();
|
|
123
|
+
const globalCoordinates = { ...args[1] };
|
|
124
|
+
const position = { ...args[2] };
|
|
125
|
+
const lookAt = { ...args[3] };
|
|
126
|
+
const permitted = mayTeleport(ctx, key);
|
|
127
|
+
const region = ctx.linkset.world?.regionAt(globalCoordinates.x, globalCoordinates.y);
|
|
128
|
+
const accepted = permitted && (ctx.linkset.world === undefined || region !== undefined);
|
|
129
|
+
ctx.state.teleportRequests.push({ kind: 'global', agent: key, time: ctx.state.clock.now,
|
|
130
|
+
accepted, globalCoordinates, position, lookAt, ...(region ? { region: region.name } : {}) });
|
|
131
|
+
if (accepted && region)
|
|
132
|
+
move(ctx, key, { region: region.name, position }, lookAt);
|
|
133
|
+
return undefined;
|
|
134
|
+
};
|
|
135
|
+
export const llTeleportAgentHome = (ctx, args) => {
|
|
136
|
+
const key = args[0].toLowerCase();
|
|
137
|
+
const agent = avatar(ctx, key);
|
|
138
|
+
const { world, region } = ctx.linkset;
|
|
139
|
+
const land = region === undefined ? undefined : world?.parcelAt(region, ctx.prim.regionPosition());
|
|
140
|
+
const targetLand = agent ? world?.parcelAt(agent.region, agent.position) : undefined;
|
|
141
|
+
const accepted = land !== undefined && targetLand !== undefined && land.owner !== NULL_KEY &&
|
|
142
|
+
sameKey(land.owner, ctx.linkset.owner) && sameKey(targetLand.owner, ctx.linkset.owner);
|
|
143
|
+
const destination = agent?.home;
|
|
144
|
+
ctx.state.teleportRequests.push({ kind: 'home', agent: key, time: ctx.state.clock.now, accepted,
|
|
145
|
+
...(destination ? { region: destination.region, position: { ...destination.position } } : {}) });
|
|
146
|
+
if (accepted && destination)
|
|
147
|
+
move(ctx, key, destination);
|
|
148
|
+
return undefined;
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=sit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sit.js","sourceRoot":"","sources":["../../src/builtins/sit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { BuiltinImpl } from '../runtime.js';
|
|
2
|
+
export declare const llPlaySound: BuiltinImpl;
|
|
3
|
+
export declare const llLoopSound: BuiltinImpl;
|
|
4
|
+
export declare const llLoopSoundMaster: BuiltinImpl;
|
|
5
|
+
export declare const llLoopSoundSlave: BuiltinImpl;
|
|
6
|
+
export declare const llPlaySoundSlave: BuiltinImpl;
|
|
7
|
+
export declare const llLinkPlaySound: BuiltinImpl;
|
|
8
|
+
export declare const llTriggerSound: BuiltinImpl;
|
|
9
|
+
export declare const llTriggerSoundLimited: BuiltinImpl;
|
|
10
|
+
export declare const llPreloadSound: BuiltinImpl;
|
|
11
|
+
export declare const llStopSound: BuiltinImpl;
|
|
12
|
+
export declare const llLinkStopSound: BuiltinImpl;
|
|
13
|
+
export declare const llAdjustSoundVolume: BuiltinImpl;
|
|
14
|
+
export declare const llLinkAdjustSoundVolume: BuiltinImpl;
|
|
15
|
+
export declare const llSetSoundQueueing: BuiltinImpl;
|
|
16
|
+
export declare const llLinkSetSoundQueueing: BuiltinImpl;
|
|
17
|
+
export declare const llSetSoundRadius: BuiltinImpl;
|
|
18
|
+
export declare const llLinkSetSoundRadius: BuiltinImpl;
|
|
19
|
+
//# sourceMappingURL=sound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../../src/builtins/sound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAA;AA0C7D,eAAO,MAAM,WAAW,aAA0B,CAAA;AAClD,eAAO,MAAM,WAAW,aAAyB,CAAA;AACjD,eAAO,MAAM,iBAAiB,aAA2B,CAAA;AACzD,eAAO,MAAM,gBAAgB,aAA0B,CAAA;AACvD,eAAO,MAAM,gBAAgB,aAA2B,CAAA;AAExD,eAAO,MAAM,eAAe,EAAE,WAS7B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAI5B,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,WAMnC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAI5B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,WAGzB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,WAG7B,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,WAGjC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,WAKrC,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,WAGhC,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,WAGpC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,WAG9B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,WAGlC,CAAA"}
|