@rezless/vm 0.4.0 → 0.5.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/base64.d.ts.map +1 -1
- package/dist/builtins/base64.js +29 -2
- package/dist/builtins/base64.js.map +1 -1
- package/dist/builtins/chat.d.ts +7 -1
- package/dist/builtins/chat.d.ts.map +1 -1
- package/dist/builtins/chat.js +26 -29
- package/dist/builtins/chat.js.map +1 -1
- package/dist/builtins/dataserver.d.ts +2 -1
- package/dist/builtins/dataserver.d.ts.map +1 -1
- package/dist/builtins/dataserver.js +5 -4
- package/dist/builtins/dataserver.js.map +1 -1
- package/dist/builtins/debug.d.ts +4 -0
- package/dist/builtins/debug.d.ts.map +1 -0
- package/dist/builtins/debug.js +7 -0
- package/dist/builtins/debug.js.map +1 -0
- package/dist/builtins/http.d.ts +8 -1
- package/dist/builtins/http.d.ts.map +1 -1
- package/dist/builtins/http.js +87 -9
- package/dist/builtins/http.js.map +1 -1
- package/dist/builtins/identity.d.ts +2 -0
- package/dist/builtins/identity.d.ts.map +1 -1
- package/dist/builtins/identity.js +9 -1
- package/dist/builtins/identity.js.map +1 -1
- package/dist/builtins/index.d.ts.map +1 -1
- package/dist/builtins/index.js +29 -7
- package/dist/builtins/index.js.map +1 -1
- package/dist/builtins/inventory.d.ts +13 -2
- package/dist/builtins/inventory.d.ts.map +1 -1
- package/dist/builtins/inventory.js +82 -43
- package/dist/builtins/inventory.js.map +1 -1
- package/dist/builtins/json.d.ts.map +1 -1
- package/dist/builtins/json.js +11 -36
- package/dist/builtins/json.js.map +1 -1
- package/dist/builtins/link-info.d.ts +1 -1
- package/dist/builtins/link-info.d.ts.map +1 -1
- package/dist/builtins/link-info.js +2 -2
- package/dist/builtins/link-info.js.map +1 -1
- package/dist/builtins/linksetdata.d.ts.map +1 -1
- package/dist/builtins/linksetdata.js +298 -31
- package/dist/builtins/linksetdata.js.map +1 -1
- package/dist/builtins/listen.d.ts +3 -1
- package/dist/builtins/listen.d.ts.map +1 -1
- package/dist/builtins/listen.js +9 -1
- package/dist/builtins/listen.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 +82 -38
- package/dist/builtins/lists.js.map +1 -1
- package/dist/builtins/math.d.ts +27 -4
- package/dist/builtins/math.d.ts.map +1 -1
- package/dist/builtins/math.js +118 -41
- package/dist/builtins/math.js.map +1 -1
- package/dist/builtins/permissions.d.ts +18 -0
- package/dist/builtins/permissions.d.ts.map +1 -0
- package/dist/builtins/permissions.js +17 -0
- package/dist/builtins/permissions.js.map +1 -0
- package/dist/builtins/prim-accessors.d.ts +1 -0
- package/dist/builtins/prim-accessors.d.ts.map +1 -1
- package/dist/builtins/prim-accessors.js +44 -42
- package/dist/builtins/prim-accessors.js.map +1 -1
- package/dist/builtins/prim-params.d.ts +1 -1
- package/dist/builtins/prim-params.d.ts.map +1 -1
- package/dist/builtins/prim-params.js +19 -11
- package/dist/builtins/prim-params.js.map +1 -1
- package/dist/builtins/strings.d.ts.map +1 -1
- package/dist/builtins/strings.js +37 -33
- package/dist/builtins/strings.js.map +1 -1
- package/dist/builtins/time.d.ts +2 -0
- package/dist/builtins/time.d.ts.map +1 -1
- package/dist/builtins/time.js +2 -0
- package/dist/builtins/time.js.map +1 -1
- package/dist/clock.d.ts +23 -9
- package/dist/clock.d.ts.map +1 -1
- package/dist/clock.js +40 -13
- package/dist/clock.js.map +1 -1
- package/dist/dispatch.d.ts.map +1 -1
- package/dist/dispatch.js +10 -3
- package/dist/dispatch.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interpreter.js +2 -2
- 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 +4 -0
- package/dist/inventory.js.map +1 -1
- package/dist/keys.d.ts +6 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +20 -0
- package/dist/keys.js.map +1 -0
- package/dist/linkset.d.ts +28 -3
- package/dist/linkset.d.ts.map +1 -1
- package/dist/linkset.js +66 -7
- package/dist/linkset.js.map +1 -1
- package/dist/prim-params.d.ts +5 -0
- package/dist/prim-params.d.ts.map +1 -1
- package/dist/prim-params.js +187 -107
- package/dist/prim-params.js.map +1 -1
- package/dist/prim.d.ts +6 -1
- package/dist/prim.d.ts.map +1 -1
- package/dist/prim.js +23 -3
- package/dist/prim.js.map +1 -1
- package/dist/runtime.d.ts +11 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/script.d.ts +27 -2
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +89 -27
- package/dist/script.js.map +1 -1
- package/dist/values/coerce.d.ts +11 -0
- package/dist/values/coerce.d.ts.map +1 -1
- package/dist/values/coerce.js +65 -38
- package/dist/values/coerce.js.map +1 -1
- package/dist/values/format.d.ts +24 -16
- package/dist/values/format.d.ts.map +1 -1
- package/dist/values/format.js +42 -25
- package/dist/values/format.js.map +1 -1
- package/dist/values/ops.d.ts +2 -1
- package/dist/values/ops.d.ts.map +1 -1
- package/dist/values/ops.js +13 -5
- package/dist/values/ops.js.map +1 -1
- package/dist/values/utf8.d.ts +3 -0
- package/dist/values/utf8.d.ts.map +1 -0
- package/dist/values/utf8.js +14 -0
- package/dist/values/utf8.js.map +1 -0
- package/dist/world.d.ts +29 -0
- package/dist/world.d.ts.map +1 -0
- package/dist/world.js +29 -0
- package/dist/world.js.map +1 -0
- package/package.json +2 -2
package/dist/linkset.js
CHANGED
|
@@ -4,6 +4,7 @@ import { NULL_KEY } from './values/types.js';
|
|
|
4
4
|
import { LINK_ROOT, LINK_SET, LINK_ALL_OTHERS, LINK_ALL_CHILDREN, LINK_THIS, } from './generated/constants.js';
|
|
5
5
|
// Re-export so `import { LINK_* } from '@rezless/vm'` keeps working.
|
|
6
6
|
export { LINK_ROOT, LINK_SET, LINK_ALL_OTHERS, LINK_ALL_CHILDREN, LINK_THIS };
|
|
7
|
+
const CHAT_RANGE = { whisper: 10, say: 20, shout: 100 };
|
|
7
8
|
/**
|
|
8
9
|
* A linkset owns the shared world state for its prims and scripts: the
|
|
9
10
|
* single virtual clock, the LSD store, the cross-script link_message
|
|
@@ -25,14 +26,27 @@ export class Linkset {
|
|
|
25
26
|
* `clearLinkedMessages()` between scenarios to keep memory bounded.
|
|
26
27
|
*/
|
|
27
28
|
linkedMessages = [];
|
|
29
|
+
/** Virtual times of recent llHTTPRequest calls, for the per-object throttle. */
|
|
30
|
+
httpRequestTimes = [];
|
|
28
31
|
/** Drop every captured cross-script linked-message entry. */
|
|
29
32
|
clearLinkedMessages() {
|
|
30
33
|
this.linkedMessages.length = 0;
|
|
31
34
|
}
|
|
32
35
|
owner;
|
|
36
|
+
world;
|
|
37
|
+
region;
|
|
33
38
|
constructor(opts = {}) {
|
|
34
39
|
this.owner = opts.owner ?? NULL_KEY;
|
|
35
|
-
this.
|
|
40
|
+
this.region = opts.region;
|
|
41
|
+
if (opts.world) {
|
|
42
|
+
opts.world.corner(opts.region);
|
|
43
|
+
this.world = opts.world;
|
|
44
|
+
this.clock = opts.world.clock;
|
|
45
|
+
opts.world.linksets.push(this);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.clock = new LinksetClock(opts.startUnixTime);
|
|
49
|
+
}
|
|
36
50
|
}
|
|
37
51
|
/** Add a prim to the linkset; assigns a 1-based linkNumber. */
|
|
38
52
|
addPrim(prim) {
|
|
@@ -130,13 +144,53 @@ export class Linkset {
|
|
|
130
144
|
}
|
|
131
145
|
this.drainQueue();
|
|
132
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Queue chat a script in prim `from` sent on the listens of every prim it
|
|
149
|
+
* reaches, in this linkset and the rest of its world. Whisper, say and
|
|
150
|
+
* shout reach prims within 10, 20 and 100 m in any region; llRegionSay
|
|
151
|
+
* reaches the sender's region, and llRegionSayTo only the prim keyed `to`
|
|
152
|
+
* in that region. A prim never hears its own chat.
|
|
153
|
+
*/
|
|
154
|
+
routeChat(from, type, channel, message, to) {
|
|
155
|
+
const origin = this.globalPosition(from);
|
|
156
|
+
const range = CHAT_RANGE[type] ?? 0;
|
|
157
|
+
const reaches = (linkset, p) => {
|
|
158
|
+
if (type === 'regionSay')
|
|
159
|
+
return linkset.region === this.region;
|
|
160
|
+
if (type === 'regionSayTo')
|
|
161
|
+
return linkset.region === this.region && to !== NULL_KEY && p.key === to;
|
|
162
|
+
return distanceSquared(origin, linkset.globalPosition(p)) <= range * range;
|
|
163
|
+
};
|
|
164
|
+
for (const linkset of this.world?.linksets ?? [this]) {
|
|
165
|
+
for (const p of linkset.prims) {
|
|
166
|
+
if (p === from || !reaches(linkset, p))
|
|
167
|
+
continue;
|
|
168
|
+
for (const s of p.scripts)
|
|
169
|
+
s.matchChatListens({ channel, name: from.name, key: from.key, message });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
globalPosition(prim) {
|
|
174
|
+
const p = prim.regionPosition();
|
|
175
|
+
if (!this.world)
|
|
176
|
+
return p;
|
|
177
|
+
const corner = this.world.corner(this.region);
|
|
178
|
+
return { x: corner.x + p.x, y: corner.y + p.y, z: p.z };
|
|
179
|
+
}
|
|
133
180
|
/**
|
|
134
181
|
* Advance the shared clock by `ms` and drain every event that becomes
|
|
135
|
-
* due, dispatching each to its
|
|
182
|
+
* due across the linkset, or its whole world, dispatching each to its
|
|
183
|
+
* target script. The clock steps to each
|
|
184
|
+
* event's due time before its handler runs, so handlers see the time the
|
|
185
|
+
* event fired rather than the end of the window.
|
|
136
186
|
*/
|
|
137
187
|
advanceTime(ms) {
|
|
138
|
-
|
|
139
|
-
|
|
188
|
+
if (ms < 0)
|
|
189
|
+
throw new Error('cannot advance time backwards');
|
|
190
|
+
const until = this.clock.now + ms;
|
|
191
|
+
this.drainQueue(until);
|
|
192
|
+
if (this.clock.now < until)
|
|
193
|
+
this.clock.now = until;
|
|
140
194
|
}
|
|
141
195
|
/**
|
|
142
196
|
* Drain due events in chronological order. Each event is delivered to
|
|
@@ -150,14 +204,16 @@ export class Linkset {
|
|
|
150
204
|
* up on the next outer drain. Worth-the-trade for avoiding an O(scripts)
|
|
151
205
|
* allocation per event.
|
|
152
206
|
*/
|
|
153
|
-
drainQueue() {
|
|
154
|
-
const scripts = this.allScripts();
|
|
207
|
+
drainQueue(until = this.clock.now) {
|
|
208
|
+
const scripts = this.world?.allScripts() ?? this.allScripts();
|
|
155
209
|
if (scripts.length === 0)
|
|
156
210
|
return;
|
|
157
211
|
while (true) {
|
|
158
|
-
const next = this.clock.takeNextDue(scripts);
|
|
212
|
+
const next = this.clock.takeNextDue(scripts, Math.max(until, this.clock.now));
|
|
159
213
|
if (!next)
|
|
160
214
|
return;
|
|
215
|
+
if (next.at > this.clock.now)
|
|
216
|
+
this.clock.now = next.at;
|
|
161
217
|
const target = next.target;
|
|
162
218
|
if (target.dead)
|
|
163
219
|
continue;
|
|
@@ -177,4 +233,7 @@ export class Linkset {
|
|
|
177
233
|
}
|
|
178
234
|
}
|
|
179
235
|
}
|
|
236
|
+
function distanceSquared(a, b) {
|
|
237
|
+
return (a.x - b.x) ** 2 + (a.y - b.y) ** 2 + (a.z - b.z) ** 2;
|
|
238
|
+
}
|
|
180
239
|
//# sourceMappingURL=linkset.js.map
|
package/dist/linkset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkset.js","sourceRoot":"","sources":["../src/linkset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"linkset.js","sourceRoot":"","sources":["../src/linkset.ts"],"names":[],"mappings":"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"}
|
package/dist/prim-params.d.ts
CHANGED
|
@@ -193,6 +193,8 @@ export type PrimShape = {
|
|
|
193
193
|
export declare function defaultFace(): PrimFace;
|
|
194
194
|
export declare function defaultShape(): PrimShape;
|
|
195
195
|
export declare function defaultPrimParams(): PrimParams;
|
|
196
|
+
/** Face indexes a face argument names: every face for ALL_SIDES, none past the shape's face count. */
|
|
197
|
+
export declare function faceIndices(p: PrimParams, face: number): number[];
|
|
196
198
|
/**
|
|
197
199
|
* Slot count for a PRIM_* rule's *write* form, given the rule constant
|
|
198
200
|
* and (for variable-shape rules like PRIM_TYPE) the rules list + cursor
|
|
@@ -221,5 +223,8 @@ export declare function readPrimParam(prim: Prim, param: number, rules: Readonly
|
|
|
221
223
|
} | null;
|
|
222
224
|
/** LSL types of the values `readPrimParam` returns for `param`. */
|
|
223
225
|
export declare function primParamTypes(param: number, values: ReadonlyArray<LslValue>): Array<LslType | undefined>;
|
|
226
|
+
export declare function checkPrimRule(param: number, rules: ReadonlyArray<LslValue>, cursor: number): string | null;
|
|
227
|
+
/** Face count of a prim shape, as llGetNumberOfSides reports it. */
|
|
228
|
+
export declare function numberOfSides(shape: PrimShape): number;
|
|
224
229
|
export {};
|
|
225
230
|
//# sourceMappingURL=prim-params.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prim-params.d.ts","sourceRoot":"","sources":["../src/prim-params.ts"],"names":[],"mappings":"AAmEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"prim-params.d.ts","sourceRoot":"","sources":["../src/prim-params.ts"],"names":[],"mappings":"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"}
|