@rezless/vm 0.7.0 → 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 +8 -0
- package/dist/builtins/base64.d.ts.map +1 -1
- package/dist/builtins/base64.js +1 -1
- 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 +27 -1
- 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/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 +235 -10
- package/dist/builtins/index.js.map +1 -1
- package/dist/builtins/inventory.d.ts +1 -0
- package/dist/builtins/inventory.d.ts.map +1 -1
- package/dist/builtins/inventory.js +1 -1
- package/dist/builtins/inventory.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/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 +16 -0
- package/dist/builtins/linksetdata.js.map +1 -1
- package/dist/builtins/lists.d.ts +6 -0
- package/dist/builtins/lists.d.ts.map +1 -1
- package/dist/builtins/lists.js +19 -6
- package/dist/builtins/lists.js.map +1 -1
- package/dist/builtins/math.d.ts +16 -0
- package/dist/builtins/math.d.ts.map +1 -1
- package/dist/builtins/math.js +74 -0
- 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 +6 -0
- package/dist/builtins/object.d.ts.map +1 -1
- package/dist/builtins/object.js +19 -3
- 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 +3 -0
- package/dist/builtins/prim-accessors.d.ts.map +1 -1
- package/dist/builtins/prim-accessors.js +27 -7
- package/dist/builtins/prim-accessors.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 +6 -2
- package/dist/builtins/script-control.d.ts.map +1 -1
- package/dist/builtins/script-control.js +9 -4
- 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/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 +12 -0
- package/dist/builtins/time.d.ts.map +1 -1
- package/dist/builtins/time.js +32 -4
- 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 +29 -1
- package/dist/clock.d.ts.map +1 -1
- package/dist/clock.js +89 -5
- package/dist/clock.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 +0 -1
- package/dist/interpreter.d.ts.map +1 -1
- 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 +139 -11
- package/dist/linkset.d.ts.map +1 -1
- package/dist/linkset.js +376 -24
- package/dist/linkset.js.map +1 -1
- package/dist/prim-params.d.ts.map +1 -1
- package/dist/prim-params.js +11 -3
- package/dist/prim-params.js.map +1 -1
- package/dist/prim.d.ts +94 -4
- package/dist/prim.d.ts.map +1 -1
- package/dist/prim.js +94 -5
- package/dist/prim.js.map +1 -1
- package/dist/runtime.d.ts +41 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/script.d.ts +147 -2
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +373 -19
- package/dist/script.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,374 @@
|
|
|
1
|
+
import { nextDataserverKey } from './dataserver.js';
|
|
2
|
+
import { sayError } from './debug.js';
|
|
3
|
+
import { InventoryType } from '../inventory.js';
|
|
4
|
+
import { NULL_KEY } from '../values/types.js';
|
|
5
|
+
import { EOF, NAK } from '../generated/constants.js';
|
|
6
|
+
import { own } from '../own.js';
|
|
7
|
+
const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
8
|
+
const MAX_DEFAULT_MATCHES = 64;
|
|
9
|
+
/**
|
|
10
|
+
* Find a notecard by name or asset key. A name that isn't a notecard says an error; a key that
|
|
11
|
+
* matches no notecard here is silent, as an uncached notecard is in-world.
|
|
12
|
+
*/
|
|
13
|
+
function findNotecard(ctx, name) {
|
|
14
|
+
const inventory = ctx.prim.inventory;
|
|
15
|
+
const byName = inventory.find((it) => it.name === name);
|
|
16
|
+
const item = byName ?? (UUID.test(name) ? inventory.find((it) => it.type === InventoryType.NOTECARD && it.key.toLowerCase() === name.toLowerCase()) : undefined);
|
|
17
|
+
if (item && item.type === InventoryType.NOTECARD && item.notecardLines)
|
|
18
|
+
return { lines: item.notecardLines };
|
|
19
|
+
if (!byName && UUID.test(name))
|
|
20
|
+
return 'unknown-key';
|
|
21
|
+
sayError(ctx, `Could not find notecard '${name}'.`);
|
|
22
|
+
return 'missing';
|
|
23
|
+
}
|
|
24
|
+
class PatternError extends Error {
|
|
25
|
+
reason;
|
|
26
|
+
position;
|
|
27
|
+
constructor(reason, position) {
|
|
28
|
+
super(reason);
|
|
29
|
+
this.reason = reason;
|
|
30
|
+
this.position = position;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const utf8 = new TextEncoder();
|
|
34
|
+
/** A byte as one UTF-16 unit: ASCII as itself, anything higher in the private use area so no JS class or case fold touches it. */
|
|
35
|
+
const byteChar = (b) => (b < 0x80 ? String.fromCharCode(b) : String.fromCharCode(0xe000 + b));
|
|
36
|
+
const byteSource = (b) => (b < 0x80 ? escapeAscii(b) : `\\u${(0xe000 + b).toString(16)}`);
|
|
37
|
+
function escapeAscii(b) {
|
|
38
|
+
const c = String.fromCharCode(b);
|
|
39
|
+
if (/[A-Za-z0-9 ]/.test(c))
|
|
40
|
+
return c;
|
|
41
|
+
return `\\x${b.toString(16).padStart(2, '0')}`;
|
|
42
|
+
}
|
|
43
|
+
const POSIX_CLASSES = {
|
|
44
|
+
alpha: 'A-Za-z',
|
|
45
|
+
digit: '0-9',
|
|
46
|
+
alnum: 'A-Za-z0-9',
|
|
47
|
+
upper: 'A-Z',
|
|
48
|
+
lower: 'a-z',
|
|
49
|
+
space: '\\t\\n\\v\\f\\r ',
|
|
50
|
+
blank: ' \\t',
|
|
51
|
+
punct: '!-\\/:-@\\[-`{-~',
|
|
52
|
+
xdigit: '0-9A-Fa-f',
|
|
53
|
+
word: '\\w',
|
|
54
|
+
d: '0-9',
|
|
55
|
+
l: 'a-z',
|
|
56
|
+
s: '\\t\\n\\v\\f\\r ',
|
|
57
|
+
u: 'A-Z',
|
|
58
|
+
w: '\\w',
|
|
59
|
+
cntrl: '\\x00-\\x1f\\x7f',
|
|
60
|
+
print: '\\x20-\\x7e',
|
|
61
|
+
graph: '\\x21-\\x7e',
|
|
62
|
+
};
|
|
63
|
+
const CLASS_ESCAPES = {
|
|
64
|
+
d: '\\d',
|
|
65
|
+
D: '\\D',
|
|
66
|
+
w: '\\w',
|
|
67
|
+
W: '\\W',
|
|
68
|
+
s: '\\s',
|
|
69
|
+
S: '\\S',
|
|
70
|
+
l: '[a-z]',
|
|
71
|
+
L: '[^a-z]',
|
|
72
|
+
u: '[A-Z]',
|
|
73
|
+
U: '[^A-Z]',
|
|
74
|
+
};
|
|
75
|
+
const SET_CLASS_ESCAPES = { d: '\\d', D: '\\D', w: '\\w', W: '\\W', s: '\\s', S: '\\S', l: 'a-z', u: 'A-Z' };
|
|
76
|
+
const CONTROL_ESCAPES = { e: '\\x1b', n: '\\n', t: '\\t', r: '\\r', f: '\\f', v: '\\v' };
|
|
77
|
+
const ANCHOR_ESCAPES = {
|
|
78
|
+
A: '(?<![\\s\\S])',
|
|
79
|
+
G: '(?<![\\s\\S])',
|
|
80
|
+
z: '(?![\\s\\S])',
|
|
81
|
+
Z: '(?=\\n?(?![\\s\\S]))',
|
|
82
|
+
b: '\\b',
|
|
83
|
+
B: '\\B',
|
|
84
|
+
'<': '(?<!\\w)(?=\\w)',
|
|
85
|
+
'>': '(?<=\\w)(?!\\w)',
|
|
86
|
+
};
|
|
87
|
+
const isDigit = (c) => c !== undefined && c >= '0' && c <= '9';
|
|
88
|
+
/**
|
|
89
|
+
* Translate a Second Life notecard pattern (a byte-oriented POSIX-extended dialect with Perl escapes,
|
|
90
|
+
* as measured in-world) into the source of a JS RegExp over byteChar text. Throws PatternError with
|
|
91
|
+
* the simulator's message and byte position.
|
|
92
|
+
*/
|
|
93
|
+
function translate(p) {
|
|
94
|
+
const s = Array.from(p, (b) => String.fromCharCode(b)).join('');
|
|
95
|
+
let out = '';
|
|
96
|
+
let i = 0;
|
|
97
|
+
let depth = 0;
|
|
98
|
+
let last = 'none';
|
|
99
|
+
const quantifier = (at, text) => {
|
|
100
|
+
if (last === 'quantifier' || last === 'anchor')
|
|
101
|
+
throw new PatternError('Invalid repetition', at + 1);
|
|
102
|
+
if (last === 'none')
|
|
103
|
+
throw new PatternError('Invalid repetition', at);
|
|
104
|
+
out += text;
|
|
105
|
+
last = 'quantifier';
|
|
106
|
+
};
|
|
107
|
+
const emit = (source, kind) => {
|
|
108
|
+
out += source;
|
|
109
|
+
last = kind;
|
|
110
|
+
};
|
|
111
|
+
while (i < s.length) {
|
|
112
|
+
const c = s[i];
|
|
113
|
+
if (c === '\\') {
|
|
114
|
+
const e = s[i + 1];
|
|
115
|
+
if (e === undefined)
|
|
116
|
+
throw new PatternError('Invalid or trailing escape', s.length);
|
|
117
|
+
if (isDigit(e) && e !== '0')
|
|
118
|
+
throw new PatternError('Invalid or trailing escape', i);
|
|
119
|
+
if (e === 'Q') {
|
|
120
|
+
const close = s.indexOf('\\E', i + 2);
|
|
121
|
+
const end = close === -1 ? s.length : close;
|
|
122
|
+
for (let k = i + 2; k < end; k++)
|
|
123
|
+
out += byteSource(p[k]);
|
|
124
|
+
if (end > i + 2)
|
|
125
|
+
last = 'atom';
|
|
126
|
+
else if (last === 'none')
|
|
127
|
+
last = 'anchor';
|
|
128
|
+
i = close === -1 ? end : end + 2;
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
if (e === 'x') {
|
|
132
|
+
if (s[i + 2] === '{')
|
|
133
|
+
throw new PatternError('Invalid contents of a {...} block', i);
|
|
134
|
+
const hex = /^[0-9a-fA-F]{1,2}/.exec(s.slice(i + 2))?.[0];
|
|
135
|
+
if (!hex)
|
|
136
|
+
throw new PatternError('Invalid or trailing escape', i);
|
|
137
|
+
emit(byteSource(parseInt(hex, 16)), 'atom');
|
|
138
|
+
i += 2 + hex.length;
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
const anchor = own(ANCHOR_ESCAPES, e);
|
|
142
|
+
if (anchor)
|
|
143
|
+
emit(anchor, 'anchor');
|
|
144
|
+
else
|
|
145
|
+
emit(own(CLASS_ESCAPES, e) ?? own(CONTROL_ESCAPES, e) ?? byteSource(p[i + 1]), 'atom');
|
|
146
|
+
i += 2;
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
if (c === '[') {
|
|
150
|
+
const [source, end] = translateSet(p, s, i);
|
|
151
|
+
emit(source, 'atom');
|
|
152
|
+
i = end;
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
if (c === '{') {
|
|
156
|
+
const [text, end] = brace(s, i);
|
|
157
|
+
quantifier(i, text);
|
|
158
|
+
i = end;
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
if (c === '(') {
|
|
162
|
+
if (s[i + 1] === '?')
|
|
163
|
+
throw new PatternError('Invalid repetition', i + 2);
|
|
164
|
+
depth++;
|
|
165
|
+
emit('(', 'none');
|
|
166
|
+
}
|
|
167
|
+
else if (c === ')') {
|
|
168
|
+
if (depth === 0)
|
|
169
|
+
throw new PatternError("Mismatched '(' and ')'", i);
|
|
170
|
+
depth--;
|
|
171
|
+
emit(')', 'atom');
|
|
172
|
+
}
|
|
173
|
+
else if (c === '|')
|
|
174
|
+
emit('|', 'none');
|
|
175
|
+
else if (c === '^' || c === '$')
|
|
176
|
+
emit(c, 'anchor');
|
|
177
|
+
else if (c === '.')
|
|
178
|
+
emit('[\\s\\S]', 'atom');
|
|
179
|
+
else if (c === '*' || c === '+' || c === '?')
|
|
180
|
+
quantifier(i, c);
|
|
181
|
+
else
|
|
182
|
+
emit(byteSource(p[i]), 'atom');
|
|
183
|
+
i++;
|
|
184
|
+
}
|
|
185
|
+
if (depth > 0)
|
|
186
|
+
throw new PatternError("Mismatched '(' and ')'", s.length);
|
|
187
|
+
return out;
|
|
188
|
+
}
|
|
189
|
+
/** Read the {n}, {n,} or {n,m} repeat at `start`; returns its text and the index after it. */
|
|
190
|
+
function brace(s, start) {
|
|
191
|
+
const m = /^\{(\d+)(?:,(\d*))?/.exec(s.slice(start));
|
|
192
|
+
if (!m)
|
|
193
|
+
throw new PatternError("Mismatched '{' and '}'", start + 1);
|
|
194
|
+
const end = start + m[0].length;
|
|
195
|
+
if (s[end] !== '}')
|
|
196
|
+
throw new PatternError("Mismatched '{' and '}'", end);
|
|
197
|
+
if (m[2] && Number(m[2]) < Number(m[1])) {
|
|
198
|
+
throw new PatternError('Invalid contents of a {...} block', start + 2 + m[1].length);
|
|
199
|
+
}
|
|
200
|
+
return [m[0] + '}', end + 1];
|
|
201
|
+
}
|
|
202
|
+
const BAD_CLASS = 'Invalid character class name was specified in a [[:name:]] block';
|
|
203
|
+
/**
|
|
204
|
+
* Translate the bracket expression at `start`; returns its JS source and the index after it. A
|
|
205
|
+
* backslash in a set is literal unless it starts a class escape such as \\d.
|
|
206
|
+
*/
|
|
207
|
+
function translateSet(p, s, start) {
|
|
208
|
+
let i = start + 1;
|
|
209
|
+
let out = '[';
|
|
210
|
+
if (s[i] === '^') {
|
|
211
|
+
out += '^';
|
|
212
|
+
i++;
|
|
213
|
+
}
|
|
214
|
+
const setStart = i;
|
|
215
|
+
let posix = false;
|
|
216
|
+
while (i < s.length) {
|
|
217
|
+
const c = s[i];
|
|
218
|
+
if (c === ']' && i > setStart)
|
|
219
|
+
return [out + ']', i + 1];
|
|
220
|
+
const close = c === '[' && s[i + 1] === ':' ? s.indexOf(':]', i + 2) : -1;
|
|
221
|
+
if (close !== -1) {
|
|
222
|
+
const name = s.slice(i + 2, close);
|
|
223
|
+
const members = own(POSIX_CLASSES, name);
|
|
224
|
+
if (members === undefined)
|
|
225
|
+
throw new PatternError(BAD_CLASS, i + 2);
|
|
226
|
+
out += members;
|
|
227
|
+
posix = true;
|
|
228
|
+
i = close + 2;
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
const setClass = c === '\\' ? own(SET_CLASS_ESCAPES, s[i + 1] ?? '') : undefined;
|
|
232
|
+
if (setClass) {
|
|
233
|
+
out += setClass;
|
|
234
|
+
i += 2;
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
if (s[i + 1] === '-' && i + 2 < s.length && s[i + 2] !== ']') {
|
|
238
|
+
const close = s.indexOf(']', i + 3);
|
|
239
|
+
if (p[i + 2] < p[i])
|
|
240
|
+
throw new PatternError(BAD_CLASS, close === -1 ? s.length : close + 1);
|
|
241
|
+
out += `${byteSource(p[i])}-${byteSource(p[i + 2])}`;
|
|
242
|
+
i += 3;
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
out += byteSource(p[i]);
|
|
246
|
+
i++;
|
|
247
|
+
}
|
|
248
|
+
throw new PatternError(posix ? "Mismatched '(' and ')'" : 'Invalid character set [...]', s.length);
|
|
249
|
+
}
|
|
250
|
+
/** Compile `pattern` against the notecard, or say the regex error and return undefined. */
|
|
251
|
+
function compile(ctx, lines, pattern) {
|
|
252
|
+
const caseless = pattern.startsWith('(?i)');
|
|
253
|
+
const body = utf8.encode(caseless ? pattern.slice(4) : pattern);
|
|
254
|
+
let source;
|
|
255
|
+
try {
|
|
256
|
+
source = translate(body);
|
|
257
|
+
}
|
|
258
|
+
catch (err) {
|
|
259
|
+
if (!(err instanceof PatternError))
|
|
260
|
+
throw err;
|
|
261
|
+
const shown = Array.from(body, (b) => (b < 0x80 ? String.fromCharCode(b) : '?')).join('');
|
|
262
|
+
sayError(ctx, `Regex error: ${err.reason} in "${shown}" at position ${err.position}`);
|
|
263
|
+
return undefined;
|
|
264
|
+
}
|
|
265
|
+
const bytes = utf8.encode(lines.join('\n'));
|
|
266
|
+
const text = Array.from(bytes, byteChar).join('');
|
|
267
|
+
return { text, bytes, source, flags: caseless ? 'mi' : 'm' };
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Every match as [byte index, byte length]. The simulator takes the longest match at each start, where
|
|
271
|
+
* JS alternation takes the first branch that matches, so a pattern with alternatives retries each match
|
|
272
|
+
* for a longer end.
|
|
273
|
+
*/
|
|
274
|
+
function* matches(search) {
|
|
275
|
+
const regex = new RegExp(search.source, `g${search.flags}`);
|
|
276
|
+
const alternation = search.source.includes('|');
|
|
277
|
+
for (let m = regex.exec(search.text); m; m = regex.exec(search.text)) {
|
|
278
|
+
const length = alternation ? longest(search, m.index, m[0].length) : m[0].length;
|
|
279
|
+
yield [m.index, length];
|
|
280
|
+
regex.lastIndex = m.index + Math.max(length, 1);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
function longest(search, index, length) {
|
|
284
|
+
// One character of context keeps ^, \b and \A right at the start; the lookbehind requires a longer end.
|
|
285
|
+
const offset = index > 0 ? 1 : 0;
|
|
286
|
+
const tail = search.text.slice(index - offset);
|
|
287
|
+
for (;;) {
|
|
288
|
+
const longer = new RegExp(`(?:${search.source})(?<=(?<![\\s\\S])[\\s\\S]{${offset + length + 1},})`, `y${search.flags}`);
|
|
289
|
+
longer.lastIndex = offset;
|
|
290
|
+
const m = longer.exec(tail);
|
|
291
|
+
if (!m)
|
|
292
|
+
return length;
|
|
293
|
+
length = m[0].length;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
const isContinuation = (b) => (b & 0xc0) === 0x80;
|
|
297
|
+
/**
|
|
298
|
+
* Returns [line, column, length] for a byte range, counting columns and length in characters as the simulator
|
|
299
|
+
* does: a character cut off at either end of the range still counts as one.
|
|
300
|
+
*/
|
|
301
|
+
function locator(bytes) {
|
|
302
|
+
const leads = new Int32Array(bytes.length + 1);
|
|
303
|
+
const lines = new Int32Array(bytes.length + 1);
|
|
304
|
+
const lineStarts = new Int32Array(bytes.length + 1);
|
|
305
|
+
for (let k = 0; k < bytes.length; k++) {
|
|
306
|
+
const b = bytes[k];
|
|
307
|
+
leads[k + 1] = leads[k] + (isContinuation(b) ? 0 : 1);
|
|
308
|
+
lines[k + 1] = lines[k] + (b === 0x0a ? 1 : 0);
|
|
309
|
+
lineStarts[k + 1] = b === 0x0a ? k + 1 : lineStarts[k];
|
|
310
|
+
}
|
|
311
|
+
return (index, length) => {
|
|
312
|
+
const end = index + length;
|
|
313
|
+
let cut = 0;
|
|
314
|
+
while (index + cut < end && isContinuation(bytes[index + cut]))
|
|
315
|
+
cut++;
|
|
316
|
+
return [lines[index], leads[index] - leads[lineStarts[index]], leads[end] - leads[index] + cut];
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* llFindNotecardTextSync(string name, string pattern, integer start, integer count, list options) —
|
|
321
|
+
* [line, column, length] for each match after the first `start`. A count of 0 returns up to 64
|
|
322
|
+
* matches, a negative count one. Returns [NAK] for a notecard that isn't here, and [] for an invalid
|
|
323
|
+
* pattern. Notecards are always cached here. Options are ignored.
|
|
324
|
+
*/
|
|
325
|
+
export const llFindNotecardTextSync = (ctx, args) => {
|
|
326
|
+
const name = args[0] ?? '';
|
|
327
|
+
const pattern = args[1] ?? '';
|
|
328
|
+
const start = Math.max(0, args[2] ?? 0);
|
|
329
|
+
const count = args[3] ?? 0;
|
|
330
|
+
const notecard = findNotecard(ctx, name);
|
|
331
|
+
if (typeof notecard === 'string')
|
|
332
|
+
return [NAK];
|
|
333
|
+
const search = compile(ctx, notecard.lines, pattern);
|
|
334
|
+
if (!search)
|
|
335
|
+
return [];
|
|
336
|
+
const limit = count === 0 ? MAX_DEFAULT_MATCHES : count < 0 ? 1 : count;
|
|
337
|
+
const locate = locator(search.bytes);
|
|
338
|
+
const out = [];
|
|
339
|
+
let seen = 0;
|
|
340
|
+
for (const [index, length] of matches(search)) {
|
|
341
|
+
if (seen++ < start)
|
|
342
|
+
continue;
|
|
343
|
+
out.push(...locate(index, length));
|
|
344
|
+
if (out.length / 3 >= limit)
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
return out;
|
|
348
|
+
};
|
|
349
|
+
/**
|
|
350
|
+
* llFindNotecardTextCount(string name, string pattern, list options) — raise dataserver with the
|
|
351
|
+
* number of matches. Returns NULL_KEY with no event for a missing notecard or an invalid pattern; a key
|
|
352
|
+
* that matches no notecard here delivers EOF.
|
|
353
|
+
*/
|
|
354
|
+
export const llFindNotecardTextCount = (ctx, args) => {
|
|
355
|
+
const name = args[0] ?? '';
|
|
356
|
+
const pattern = args[1] ?? '';
|
|
357
|
+
const notecard = findNotecard(ctx, name);
|
|
358
|
+
if (notecard === 'missing')
|
|
359
|
+
return NULL_KEY;
|
|
360
|
+
let data = EOF;
|
|
361
|
+
if (notecard !== 'unknown-key') {
|
|
362
|
+
const search = compile(ctx, notecard.lines, pattern);
|
|
363
|
+
if (!search)
|
|
364
|
+
return NULL_KEY;
|
|
365
|
+
data = String(Array.from(matches(search)).length);
|
|
366
|
+
}
|
|
367
|
+
const key = nextDataserverKey(ctx);
|
|
368
|
+
ctx.state.dataserverRequests.push({ key, source: 'notecard_text_count', args: [name, pattern], fulfilled: true });
|
|
369
|
+
const at = ctx.state.clock.now + (ctx.spec?.delay ?? 0) * 1000;
|
|
370
|
+
for (const s of ctx.prim.scripts)
|
|
371
|
+
ctx.state.clock.scheduleOn(s, at, 'dataserver', { queryid: key, data });
|
|
372
|
+
return key;
|
|
373
|
+
};
|
|
374
|
+
//# sourceMappingURL=notecard-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notecard-search.js","sourceRoot":"","sources":["../../src/builtins/notecard-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { BuiltinImpl } from '../runtime.js';
|
|
2
|
+
/**
|
|
3
|
+
* llStartObjectAnimation(string anim) — play `anim` on this prim of an
|
|
4
|
+
* animated object. `anim` is an inventory animation's name or a built-in
|
|
5
|
+
* animation's name; a UUID is not accepted. A name it can't find says an
|
|
6
|
+
* error on DEBUG_CHANNEL. In an object that isn't animated nothing plays.
|
|
7
|
+
*/
|
|
8
|
+
export declare const llStartObjectAnimation: BuiltinImpl;
|
|
9
|
+
/**
|
|
10
|
+
* llStopObjectAnimation(string anim) — stop `anim`, given as a name (as for
|
|
11
|
+
* llStartObjectAnimation) or the animation's UUID. Stopping one that isn't
|
|
12
|
+
* playing does nothing; a name it can't find says an error.
|
|
13
|
+
*/
|
|
14
|
+
export declare const llStopObjectAnimation: BuiltinImpl;
|
|
15
|
+
/**
|
|
16
|
+
* llGetObjectAnimationNames() — the animations this prim plays, ordered by
|
|
17
|
+
* UUID. Each reads as the name of the first inventory animation with that
|
|
18
|
+
* UUID, or as the UUID.
|
|
19
|
+
*/
|
|
20
|
+
export declare const llGetObjectAnimationNames: BuiltinImpl;
|
|
21
|
+
//# sourceMappingURL=object-animation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-animation.d.ts","sourceRoot":"","sources":["../../src/builtins/object-animation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAA;AA+J7D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAMpC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAOnC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAGvC,CAAA"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { InventoryType } from '../inventory.js';
|
|
2
|
+
import { NULL_KEY } from '../values/types.js';
|
|
3
|
+
import { compareNames } from './inventory.js';
|
|
4
|
+
import { sayError } from './debug.js';
|
|
5
|
+
const KEY_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
6
|
+
/** The simulator's built-in animations, by name. */
|
|
7
|
+
const BUILTIN_ANIMATIONS = new Map(Object.entries({
|
|
8
|
+
aim_l_bow: '46bb4359-de38-4ed8-6a22-f1f52fe8f506',
|
|
9
|
+
aim_r_bazooka: 'b5b4a67d-0aee-30d2-72cd-77b333e932ef',
|
|
10
|
+
aim_r_handgun: '3147d815-6338-b932-f011-16b56d9ac18b',
|
|
11
|
+
aim_r_rifle: 'ea633413-8006-180a-c3ba-96dd1d756720',
|
|
12
|
+
angry_fingerwag: 'c1bc7f36-3ba0-d844-f93c-93be945d644f',
|
|
13
|
+
angry_tantrum: '11000694-3f41-adc2-606b-eee1d66f3724',
|
|
14
|
+
away: 'fd037134-85d4-f241-72c6-4f42164fedee',
|
|
15
|
+
backflip: 'c4ca6188-9127-4f31-0158-23c4e2f93304',
|
|
16
|
+
blowkiss: 'db84829b-462c-ee83-1e27-9bbee66bd624',
|
|
17
|
+
bow: '82e99230-c906-1403-4d9c-3889dd98daba',
|
|
18
|
+
brush: '349a3801-54f9-bf2c-3bd0-1ac89772af01',
|
|
19
|
+
busy: 'efcf670c-2d18-8128-973a-034ebc806b67',
|
|
20
|
+
clap: '9b0c1c4e-8ac7-7969-1494-28c874c4f668',
|
|
21
|
+
courtbow: '9ba1c942-08be-e43a-fb29-16ad440efc50',
|
|
22
|
+
crouch: '201f3fdf-cb1f-dbec-201f-7333e328ae7c',
|
|
23
|
+
crouchwalk: '47f5f6fb-22e5-ae44-f871-73aaaf4a6022',
|
|
24
|
+
dance1: 'b68a3d7c-de9e-fc87-eec8-543d787e5b0d',
|
|
25
|
+
dance2: '928cae18-e31d-76fd-9cc9-2f55160ff818',
|
|
26
|
+
dance3: '30047778-10ea-1af7-6881-4db7a3a5a114',
|
|
27
|
+
dance4: '951469f4-c7b2-c818-9dee-ad7eea8c30b7',
|
|
28
|
+
dance5: '4bd69a1d-1114-a0b4-625f-84e0a5237155',
|
|
29
|
+
dance6: 'cd28b69b-9c95-bb78-3f94-8d605ff1bb12',
|
|
30
|
+
dance7: 'a54d8ee2-28bb-80a9-7f0c-7afbbe24a5d6',
|
|
31
|
+
dance8: 'b0dc417c-1f11-af36-2e80-7e7489fa7cdc',
|
|
32
|
+
dead: '57abaae6-1d17-7b1b-5f98-6d11a6411276',
|
|
33
|
+
drink: '0f86e355-dd31-a61c-fdb0-3a96b9aad05f',
|
|
34
|
+
express_afraid: '6b61c8e8-4747-0d75-12d7-e49ff207a4ca',
|
|
35
|
+
express_afraid_emote: 'aa2df84d-cf8f-7218-527b-424a52de766e',
|
|
36
|
+
express_anger: '5747a48e-073e-c331-f6f3-7c2149613d3e',
|
|
37
|
+
express_anger_emote: '1a03b575-9634-b62a-5767-3a679e81f4de',
|
|
38
|
+
express_bored: 'b906c4ba-703b-1940-32a3-0c7f7d791510',
|
|
39
|
+
express_bored_emote: '214aa6c1-ba6a-4578-f27c-ce7688f61d0d',
|
|
40
|
+
express_cry: '92624d3e-1068-f1aa-a5ec-8244585193ed',
|
|
41
|
+
express_cry_emote: 'd535471b-85bf-3b4d-a542-93bea4f59d33',
|
|
42
|
+
express_disdain: 'd4416ff1-09d3-300f-4183-1b68a19b9fc1',
|
|
43
|
+
express_embarrased: '514af488-9051-044a-b3fc-d4dbf76377c6',
|
|
44
|
+
express_embarrassed_emote: '0b8c8211-d78c-33e8-fa28-c51a9594e424',
|
|
45
|
+
express_frown: 'fee3df48-fa3d-1015-1e26-a205810e3001',
|
|
46
|
+
express_kiss: '1e8d90cc-a84e-e135-884c-7c82c8b03a14',
|
|
47
|
+
express_laugh: '18b3a4b5-b463-bd48-e4b6-71eaac76c515',
|
|
48
|
+
express_laugh_emote: '62570842-0950-96f8-341c-809e65110823',
|
|
49
|
+
express_open_mouth: 'd63bc1f9-fc81-9625-a0c6-007176d82eb7',
|
|
50
|
+
express_repulsed: '36f81a92-f076-5893-dc4b-7c3795e487cf',
|
|
51
|
+
express_repulsed_emote: 'f76cda94-41d4-a229-2872-e0296e58afe1',
|
|
52
|
+
express_sad: '0eb702e2-cc5a-9a88-56a5-661a55c0676a',
|
|
53
|
+
express_sad_emote: 'eb6ebfb2-a4b3-a19c-d388-4dd5c03823f7',
|
|
54
|
+
express_shrug: '70ea714f-3a97-d742-1b01-590a8fcd1db5',
|
|
55
|
+
express_shrug_emote: 'a351b1bc-cc94-aac2-7bea-a7e6ebad15ef',
|
|
56
|
+
express_smile: 'b7c7c833-e3d3-c4e3-9fc0-131237446312',
|
|
57
|
+
express_surprise: '313b9881-4302-73c0-c7d0-0e7a36b6c224',
|
|
58
|
+
express_surprise_emote: '728646d9-cc79-08b2-32d6-937f0a835c24',
|
|
59
|
+
express_tongue_out: '835965c6-7f2f-bda2-5deb-2478737f91bf',
|
|
60
|
+
express_toothsmile: 'b92ec1a5-e7ce-a76b-2b05-bcdb9311417e',
|
|
61
|
+
express_wink: '869ecdad-a44b-671e-3266-56aef2e3ac2e',
|
|
62
|
+
express_wink_emote: 'da020525-4d94-59d6-23d7-81fdebf33148',
|
|
63
|
+
express_worry: '9f496bd2-589a-709f-16cc-69bf7df1d36c',
|
|
64
|
+
express_worry_emote: '9c05e5c7-6f07-6ca4-ed5a-b230390c3950',
|
|
65
|
+
falldown: '666307d9-a860-572d-6fd4-c3ab8865c094',
|
|
66
|
+
female_run_new: '85995026-eade-5d78-d364-94a64512cb66',
|
|
67
|
+
female_walk: 'f5fc7433-043d-e819-8298-f519a119b688',
|
|
68
|
+
female_walk_new: 'd60c41d2-7c24-7074-d3fa-6101cea22a51',
|
|
69
|
+
fist_pump: '7db00ccd-f380-f3ee-439d-61968ec69c8a',
|
|
70
|
+
fly: 'aec4610c-757f-bc4e-c092-c6e9caf18daf',
|
|
71
|
+
flyslow: '2b5a38b2-5e00-3a97-a495-4c826bc443e6',
|
|
72
|
+
hello: '9b29cd61-c45b-5689-ded2-91756b8d76a9',
|
|
73
|
+
hold_l_bow: '8b102617-bcba-037b-86c1-b76219f90c88',
|
|
74
|
+
hold_r_bazooka: 'ef62d355-c815-4816-2474-b1acc21094a6',
|
|
75
|
+
hold_r_handgun: 'efdc1727-8b8a-c800-4077-975fc27ee2f2',
|
|
76
|
+
hold_r_rifle: '3d94bad0-c55b-7dcc-8763-033c59405d33',
|
|
77
|
+
hold_throw_r: '7570c7b5-1f22-56dd-56ef-a9168241bbb6',
|
|
78
|
+
hover: '4ae8016b-31b9-03bb-c401-b1ea941db41d',
|
|
79
|
+
hover_down: '20f063ea-8306-2562-0b07-5c853b37b31e',
|
|
80
|
+
hover_up: '62c5de58-cb33-5743-3d07-9e4cd4352864',
|
|
81
|
+
impatient: '5ea3991f-c293-392e-6860-91dfa01278a3',
|
|
82
|
+
jump: '2305bd75-1ca9-b03b-1faa-b176b8a8c49e',
|
|
83
|
+
jumpforjoy: '709ea28e-1573-c023-8bf8-520c8bc637fa',
|
|
84
|
+
kick_roundhouse_r: '49aea43b-5ac3-8a44-b595-96100af0beda',
|
|
85
|
+
kissmybutt: '19999406-3a3a-d58c-a2ac-d72e555dcf51',
|
|
86
|
+
land: '7a17b059-12b2-41b1-570a-186368b6aa6f',
|
|
87
|
+
laugh_short: 'ca5b3f14-3194-7a2b-c894-aa699b718d1f',
|
|
88
|
+
motorcycle_sit: '08464f78-3a8e-2944-cba5-0c94aff3af29',
|
|
89
|
+
musclebeach: '315c3a41-a5f3-0ba4-27da-f893f769e69b',
|
|
90
|
+
no_head: '5a977ed9-7f72-44e9-4c4c-6e913df8ae74',
|
|
91
|
+
no_unhappy: 'd83fa0e5-97ed-7eb2-e798-7bd006215cb4',
|
|
92
|
+
nyanya: 'f061723d-0a18-754f-66ee-29a44795a32f',
|
|
93
|
+
peace: 'b312b10e-65ab-a0a4-8b3c-1326ea8e3ed9',
|
|
94
|
+
point_me: '17c024cc-eef2-f6a0-3527-9869876d7752',
|
|
95
|
+
point_you: 'ec952cca-61ef-aa3b-2789-4d1344f016de',
|
|
96
|
+
prejump: '7a4e87fe-de39-6fcb-6223-024b00893244',
|
|
97
|
+
punch_l: 'f3300ad9-3462-1d07-2044-0fef80062da0',
|
|
98
|
+
punch_onetwo: 'eefc79be-daae-a239-8c04-890f5d23654a',
|
|
99
|
+
punch_r: 'c8e42d32-7310-6906-c903-cab5d4a34656',
|
|
100
|
+
rps_countdown: '35db4f7e-28c2-6679-cea9-3ee108f7fc7f',
|
|
101
|
+
rps_paper: '0836b67f-7f7b-f37b-c00a-460dc1521f5a',
|
|
102
|
+
rps_rock: '42dd95d5-0bc6-6392-f650-777304946c0f',
|
|
103
|
+
rps_scissors: '16803a9f-5140-e042-4d7b-d28ba247c325',
|
|
104
|
+
run: '05ddbff8-aaa9-92a1-2b74-8fe77a29b445',
|
|
105
|
+
run_new: '1ab1b236-cd08-21e6-0cbc-0d923fc6eca2',
|
|
106
|
+
salute: 'cd7668a6-7011-d7e2-ead8-fc69eff1a104',
|
|
107
|
+
shoot_l_bow: 'e04d450d-fdb5-0432-fd68-818aaf5935f8',
|
|
108
|
+
shout: '6bd01860-4ebd-127a-bb3d-d1427e8e0c42',
|
|
109
|
+
sit: '1a5fe8ac-a804-8a5d-7cbd-56bd83184568',
|
|
110
|
+
sit_female: 'b1709c8d-ecd3-54a1-4f28-d55ac0840782',
|
|
111
|
+
sit_generic: '245f3c54-f1c0-bf2e-811f-46d8eeb386e7',
|
|
112
|
+
sit_ground: '1c7600d6-661f-b87b-efe2-d7421eb93c86',
|
|
113
|
+
sit_ground_constrained: '1a2bd58e-87ff-0df8-0b4c-53e047b0bb6e',
|
|
114
|
+
sit_to_stand: 'a8dee56f-2eae-9e7a-05a2-6fb92b97e21e',
|
|
115
|
+
sleep: 'f2bed5f9-9d44-39af-b0cd-257b2a17fe40',
|
|
116
|
+
smoke_idle: 'd2f2ee58-8ad1-06c9-d8d3-3827ba31567a',
|
|
117
|
+
smoke_inhale: '6802d553-49da-0778-9f85-1599a2266526',
|
|
118
|
+
smoke_throw_down: '0a9fb970-8b44-9114-d3a9-bf69cfe804d6',
|
|
119
|
+
snapshot: 'eae8905b-271a-99e2-4c0e-31106afd100c',
|
|
120
|
+
soft_land: 'f4f00d6e-b9fe-9292-f4cb-0ae06ea58d57',
|
|
121
|
+
stand_1: '15468e00-3400-bb66-cecc-646d7c14458e',
|
|
122
|
+
stand_2: '370f3a20-6ca6-9971-848c-9a01bc42ae3c',
|
|
123
|
+
stand: '2408fe9e-df1d-1d7d-f4ff-1384fa7b350f',
|
|
124
|
+
stand_3: '42b46214-4b44-79ae-deb8-0df61424ff4b',
|
|
125
|
+
stand_4: 'f22fed8b-a5ed-2c93-64d5-bdd8b93c889f',
|
|
126
|
+
standup: '3da1d753-028a-5446-24f3-9c9b856d9422',
|
|
127
|
+
stretch: '80700431-74ec-a008-14f8-77575e73693f',
|
|
128
|
+
stride: '1cb562b0-ba21-2202-efb3-30f82cdf9595',
|
|
129
|
+
surf: '41426836-7437-7e89-025d-0aa4d10f1d69',
|
|
130
|
+
sword_strike_r: '85428680-6bf9-3e64-b489-6f81087c24bd',
|
|
131
|
+
talk: '5c682a95-6da4-a463-0bf6-0f5b7be129d1',
|
|
132
|
+
throw_r: 'aa134404-7dac-7aca-2cba-435f9db875ca',
|
|
133
|
+
tryon_shirt: '83ff59fe-2346-f236-9009-4e3608af64c1',
|
|
134
|
+
turn_180: '038fcec9-5ebd-8a8e-0e2e-6e71a0a1ac53',
|
|
135
|
+
turnback_180: '6883a61a-b27b-5914-a61e-dda118a9ee2c',
|
|
136
|
+
turnleft: '56e0ba0d-4a9f-7f27-6117-32f2ebbf6135',
|
|
137
|
+
turnright: '2d6daa51-3192-6794-8e2e-a15f8338ec30',
|
|
138
|
+
type: 'c541c47f-e0c0-058b-ad1a-d6ae3a4584d9',
|
|
139
|
+
walk: '6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0',
|
|
140
|
+
walk_new: '33339176-7ddc-9397-94a4-bf3403cbc8f5',
|
|
141
|
+
whisper: '7693f268-06c7-ea71-fa21-2b30d6533f8f',
|
|
142
|
+
whistle: 'b1ed7982-c68e-a982-7561-52a88a5298c0',
|
|
143
|
+
wink_hollywood: 'c0c4030f-c02b-49de-24ba-2331f43fe41c',
|
|
144
|
+
yes_happy: 'b8c8b2a3-9008-1771-3bfc-90924955ab2d',
|
|
145
|
+
yes_head: '15dd911d-be82-2856-26db-27659b142875',
|
|
146
|
+
yoga_float: '42ecd00b-9947-a97c-400a-bbc9174c7aeb',
|
|
147
|
+
}));
|
|
148
|
+
const animations = (ctx) => ctx.prim.inventory.filter((it) => it.type === InventoryType.ANIMATION).sort((a, b) => compareNames(a.name, b.name));
|
|
149
|
+
/** An inventory animation by exact name first, then a built-in name in any case. */
|
|
150
|
+
function lookup(ctx, name) {
|
|
151
|
+
return (animations(ctx).find((it) => it.name === name)?.key ?? BUILTIN_ANIMATIONS.get(name.toLowerCase()))?.toLowerCase();
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* llStartObjectAnimation(string anim) — play `anim` on this prim of an
|
|
155
|
+
* animated object. `anim` is an inventory animation's name or a built-in
|
|
156
|
+
* animation's name; a UUID is not accepted. A name it can't find says an
|
|
157
|
+
* error on DEBUG_CHANNEL. In an object that isn't animated nothing plays.
|
|
158
|
+
*/
|
|
159
|
+
export const llStartObjectAnimation = (ctx, args) => {
|
|
160
|
+
const name = args[0] ?? '';
|
|
161
|
+
const id = lookup(ctx, name);
|
|
162
|
+
if (id === undefined)
|
|
163
|
+
sayError(ctx, `Could not find animation '${name}'`);
|
|
164
|
+
else if (ctx.linkset.animesh)
|
|
165
|
+
ctx.prim.objectAnimations.add(id);
|
|
166
|
+
return undefined;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* llStopObjectAnimation(string anim) — stop `anim`, given as a name (as for
|
|
170
|
+
* llStartObjectAnimation) or the animation's UUID. Stopping one that isn't
|
|
171
|
+
* playing does nothing; a name it can't find says an error.
|
|
172
|
+
*/
|
|
173
|
+
export const llStopObjectAnimation = (ctx, args) => {
|
|
174
|
+
const name = args[0] ?? '';
|
|
175
|
+
let id = lookup(ctx, name);
|
|
176
|
+
if (id === undefined && KEY_PATTERN.test(name) && name !== NULL_KEY)
|
|
177
|
+
id = name.toLowerCase();
|
|
178
|
+
if (id === undefined)
|
|
179
|
+
sayError(ctx, `Could not find animation '${name}'.`);
|
|
180
|
+
else
|
|
181
|
+
ctx.prim.objectAnimations.delete(id);
|
|
182
|
+
return undefined;
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* llGetObjectAnimationNames() — the animations this prim plays, ordered by
|
|
186
|
+
* UUID. Each reads as the name of the first inventory animation with that
|
|
187
|
+
* UUID, or as the UUID.
|
|
188
|
+
*/
|
|
189
|
+
export const llGetObjectAnimationNames = (ctx) => {
|
|
190
|
+
const inventory = animations(ctx);
|
|
191
|
+
return [...ctx.prim.objectAnimations].sort().map((id) => inventory.find((it) => it.key.toLowerCase() === id)?.name ?? id);
|
|
192
|
+
};
|
|
193
|
+
//# sourceMappingURL=object-animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-animation.js","sourceRoot":"","sources":["../../src/builtins/object-animation.ts"],"names":[],"mappings":"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"}
|