@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.
Files changed (273) hide show
  1. package/dist/builtins/agents.d.ts +14 -0
  2. package/dist/builtins/agents.d.ts.map +1 -0
  3. package/dist/builtins/agents.js +117 -0
  4. package/dist/builtins/agents.js.map +1 -0
  5. package/dist/builtins/animation.d.ts +46 -0
  6. package/dist/builtins/animation.d.ts.map +1 -0
  7. package/dist/builtins/animation.js +316 -0
  8. package/dist/builtins/animation.js.map +1 -0
  9. package/dist/builtins/attachments.d.ts +9 -0
  10. package/dist/builtins/attachments.d.ts.map +1 -0
  11. package/dist/builtins/attachments.js +127 -0
  12. package/dist/builtins/attachments.js.map +1 -0
  13. package/dist/builtins/base64.d.ts +13 -2
  14. package/dist/builtins/base64.d.ts.map +1 -1
  15. package/dist/builtins/base64.js +8 -6
  16. package/dist/builtins/base64.js.map +1 -1
  17. package/dist/builtins/camera.d.ts +35 -0
  18. package/dist/builtins/camera.d.ts.map +1 -0
  19. package/dist/builtins/camera.js +104 -0
  20. package/dist/builtins/camera.js.map +1 -0
  21. package/dist/builtins/collision.d.ts +21 -0
  22. package/dist/builtins/collision.d.ts.map +1 -0
  23. package/dist/builtins/collision.js +44 -0
  24. package/dist/builtins/collision.js.map +1 -0
  25. package/dist/builtins/controls.d.ts +19 -0
  26. package/dist/builtins/controls.d.ts.map +1 -0
  27. package/dist/builtins/controls.js +27 -0
  28. package/dist/builtins/controls.js.map +1 -0
  29. package/dist/builtins/damage.d.ts +24 -0
  30. package/dist/builtins/damage.d.ts.map +1 -0
  31. package/dist/builtins/damage.js +166 -0
  32. package/dist/builtins/damage.js.map +1 -0
  33. package/dist/builtins/detected.d.ts +22 -1
  34. package/dist/builtins/detected.d.ts.map +1 -1
  35. package/dist/builtins/detected.js +28 -2
  36. package/dist/builtins/detected.js.map +1 -1
  37. package/dist/builtins/dialog.d.ts +23 -0
  38. package/dist/builtins/dialog.d.ts.map +1 -0
  39. package/dist/builtins/dialog.js +69 -0
  40. package/dist/builtins/dialog.js.map +1 -0
  41. package/dist/builtins/email.d.ts +61 -0
  42. package/dist/builtins/email.d.ts.map +1 -0
  43. package/dist/builtins/email.js +121 -0
  44. package/dist/builtins/email.js.map +1 -0
  45. package/dist/builtins/environment.d.ts +27 -0
  46. package/dist/builtins/environment.d.ts.map +1 -0
  47. package/dist/builtins/environment.js +126 -0
  48. package/dist/builtins/environment.js.map +1 -0
  49. package/dist/builtins/experience.d.ts +51 -0
  50. package/dist/builtins/experience.d.ts.map +1 -0
  51. package/dist/builtins/experience.js +202 -0
  52. package/dist/builtins/experience.js.map +1 -0
  53. package/dist/builtins/game-control.d.ts +17 -0
  54. package/dist/builtins/game-control.d.ts.map +1 -0
  55. package/dist/builtins/game-control.js +21 -0
  56. package/dist/builtins/game-control.js.map +1 -0
  57. package/dist/builtins/give.d.ts +16 -0
  58. package/dist/builtins/give.d.ts.map +1 -0
  59. package/dist/builtins/give.js +137 -0
  60. package/dist/builtins/give.js.map +1 -0
  61. package/dist/builtins/ground.d.ts +18 -0
  62. package/dist/builtins/ground.d.ts.map +1 -0
  63. package/dist/builtins/ground.js +83 -0
  64. package/dist/builtins/ground.js.map +1 -0
  65. package/dist/builtins/hash.d.ts +1 -0
  66. package/dist/builtins/hash.d.ts.map +1 -1
  67. package/dist/builtins/hash.js +12 -2
  68. package/dist/builtins/hash.js.map +1 -1
  69. package/dist/builtins/http.d.ts +99 -4
  70. package/dist/builtins/http.d.ts.map +1 -1
  71. package/dist/builtins/http.js +216 -6
  72. package/dist/builtins/http.js.map +1 -1
  73. package/dist/builtins/index.d.ts.map +1 -1
  74. package/dist/builtins/index.js +250 -14
  75. package/dist/builtins/index.js.map +1 -1
  76. package/dist/builtins/inventory.d.ts +8 -5
  77. package/dist/builtins/inventory.d.ts.map +1 -1
  78. package/dist/builtins/inventory.js +37 -15
  79. package/dist/builtins/inventory.js.map +1 -1
  80. package/dist/builtins/json.d.ts.map +1 -1
  81. package/dist/builtins/json.js +45 -34
  82. package/dist/builtins/json.js.map +1 -1
  83. package/dist/builtins/land.d.ts +29 -0
  84. package/dist/builtins/land.d.ts.map +1 -0
  85. package/dist/builtins/land.js +339 -0
  86. package/dist/builtins/land.js.map +1 -0
  87. package/dist/builtins/link-info.js +2 -2
  88. package/dist/builtins/link-info.js.map +1 -1
  89. package/dist/builtins/links.d.ts +20 -0
  90. package/dist/builtins/links.d.ts.map +1 -0
  91. package/dist/builtins/links.js +53 -0
  92. package/dist/builtins/links.js.map +1 -0
  93. package/dist/builtins/linksetdata.d.ts +5 -0
  94. package/dist/builtins/linksetdata.d.ts.map +1 -1
  95. package/dist/builtins/linksetdata.js +22 -9
  96. package/dist/builtins/linksetdata.js.map +1 -1
  97. package/dist/builtins/lists.d.ts +21 -0
  98. package/dist/builtins/lists.d.ts.map +1 -1
  99. package/dist/builtins/lists.js +137 -17
  100. package/dist/builtins/lists.js.map +1 -1
  101. package/dist/builtins/math.d.ts +18 -0
  102. package/dist/builtins/math.d.ts.map +1 -1
  103. package/dist/builtins/math.js +104 -5
  104. package/dist/builtins/math.js.map +1 -1
  105. package/dist/builtins/media.d.ts +8 -0
  106. package/dist/builtins/media.d.ts.map +1 -0
  107. package/dist/builtins/media.js +167 -0
  108. package/dist/builtins/media.js.map +1 -0
  109. package/dist/builtins/motion.d.ts +79 -0
  110. package/dist/builtins/motion.d.ts.map +1 -0
  111. package/dist/builtins/motion.js +396 -0
  112. package/dist/builtins/motion.js.map +1 -0
  113. package/dist/builtins/notecard-search.d.ts +15 -0
  114. package/dist/builtins/notecard-search.d.ts.map +1 -0
  115. package/dist/builtins/notecard-search.js +374 -0
  116. package/dist/builtins/notecard-search.js.map +1 -0
  117. package/dist/builtins/object-animation.d.ts +21 -0
  118. package/dist/builtins/object-animation.d.ts.map +1 -0
  119. package/dist/builtins/object-animation.js +193 -0
  120. package/dist/builtins/object-animation.js.map +1 -0
  121. package/dist/builtins/object-reads.d.ts +39 -0
  122. package/dist/builtins/object-reads.d.ts.map +1 -0
  123. package/dist/builtins/object-reads.js +332 -0
  124. package/dist/builtins/object-reads.js.map +1 -0
  125. package/dist/builtins/object.d.ts +11 -2
  126. package/dist/builtins/object.d.ts.map +1 -1
  127. package/dist/builtins/object.js +32 -8
  128. package/dist/builtins/object.js.map +1 -1
  129. package/dist/builtins/particles.d.ts +4 -0
  130. package/dist/builtins/particles.d.ts.map +1 -0
  131. package/dist/builtins/particles.js +65 -0
  132. package/dist/builtins/particles.js.map +1 -0
  133. package/dist/builtins/pathfinding.d.ts +39 -0
  134. package/dist/builtins/pathfinding.d.ts.map +1 -0
  135. package/dist/builtins/pathfinding.js +83 -0
  136. package/dist/builtins/pathfinding.js.map +1 -0
  137. package/dist/builtins/permissions.d.ts.map +1 -1
  138. package/dist/builtins/permissions.js +6 -0
  139. package/dist/builtins/permissions.js.map +1 -1
  140. package/dist/builtins/physics.d.ts +49 -0
  141. package/dist/builtins/physics.d.ts.map +1 -0
  142. package/dist/builtins/physics.js +47 -0
  143. package/dist/builtins/physics.js.map +1 -0
  144. package/dist/builtins/prim-accessors.d.ts +4 -0
  145. package/dist/builtins/prim-accessors.d.ts.map +1 -1
  146. package/dist/builtins/prim-accessors.js +75 -28
  147. package/dist/builtins/prim-accessors.js.map +1 -1
  148. package/dist/builtins/prim-params.d.ts.map +1 -1
  149. package/dist/builtins/prim-params.js +6 -2
  150. package/dist/builtins/prim-params.js.map +1 -1
  151. package/dist/builtins/raycast.d.ts +3 -0
  152. package/dist/builtins/raycast.d.ts.map +1 -0
  153. package/dist/builtins/raycast.js +65 -0
  154. package/dist/builtins/raycast.js.map +1 -0
  155. package/dist/builtins/region.d.ts +31 -0
  156. package/dist/builtins/region.d.ts.map +1 -0
  157. package/dist/builtins/region.js +125 -0
  158. package/dist/builtins/region.js.map +1 -0
  159. package/dist/builtins/remote-load.d.ts +3 -0
  160. package/dist/builtins/remote-load.d.ts.map +1 -0
  161. package/dist/builtins/remote-load.js +53 -0
  162. package/dist/builtins/remote-load.js.map +1 -0
  163. package/dist/builtins/rez.d.ts +10 -0
  164. package/dist/builtins/rez.d.ts.map +1 -0
  165. package/dist/builtins/rez.js +255 -0
  166. package/dist/builtins/rez.js.map +1 -0
  167. package/dist/builtins/rsa.d.ts +4 -0
  168. package/dist/builtins/rsa.d.ts.map +1 -0
  169. package/dist/builtins/rsa.js +44 -0
  170. package/dist/builtins/rsa.js.map +1 -0
  171. package/dist/builtins/script-control.d.ts +8 -3
  172. package/dist/builtins/script-control.d.ts.map +1 -1
  173. package/dist/builtins/script-control.js +27 -8
  174. package/dist/builtins/script-control.js.map +1 -1
  175. package/dist/builtins/sensor.d.ts +11 -0
  176. package/dist/builtins/sensor.d.ts.map +1 -0
  177. package/dist/builtins/sensor.js +145 -0
  178. package/dist/builtins/sensor.js.map +1 -0
  179. package/dist/builtins/sit.d.ts +23 -0
  180. package/dist/builtins/sit.d.ts.map +1 -0
  181. package/dist/builtins/sit.js +150 -0
  182. package/dist/builtins/sit.js.map +1 -0
  183. package/dist/builtins/sound.d.ts +19 -0
  184. package/dist/builtins/sound.d.ts.map +1 -0
  185. package/dist/builtins/sound.js +113 -0
  186. package/dist/builtins/sound.js.map +1 -0
  187. package/dist/builtins/strings.d.ts +6 -0
  188. package/dist/builtins/strings.d.ts.map +1 -1
  189. package/dist/builtins/strings.js +47 -6
  190. package/dist/builtins/strings.js.map +1 -1
  191. package/dist/builtins/targets.d.ts +12 -0
  192. package/dist/builtins/targets.d.ts.map +1 -0
  193. package/dist/builtins/targets.js +121 -0
  194. package/dist/builtins/targets.js.map +1 -0
  195. package/dist/builtins/time.d.ts +15 -5
  196. package/dist/builtins/time.d.ts.map +1 -1
  197. package/dist/builtins/time.js +36 -11
  198. package/dist/builtins/time.js.map +1 -1
  199. package/dist/builtins/vehicles.d.ts +22 -0
  200. package/dist/builtins/vehicles.d.ts.map +1 -0
  201. package/dist/builtins/vehicles.js +78 -0
  202. package/dist/builtins/vehicles.js.map +1 -0
  203. package/dist/builtins/viewer.d.ts +39 -0
  204. package/dist/builtins/viewer.d.ts.map +1 -0
  205. package/dist/builtins/viewer.js +74 -0
  206. package/dist/builtins/viewer.js.map +1 -0
  207. package/dist/clock.d.ts +45 -7
  208. package/dist/clock.d.ts.map +1 -1
  209. package/dist/clock.js +125 -14
  210. package/dist/clock.js.map +1 -1
  211. package/dist/dispatch.d.ts +3 -2
  212. package/dist/dispatch.d.ts.map +1 -1
  213. package/dist/dispatch.js +15 -10
  214. package/dist/dispatch.js.map +1 -1
  215. package/dist/experience.d.ts +39 -0
  216. package/dist/experience.d.ts.map +1 -0
  217. package/dist/experience.js +38 -0
  218. package/dist/experience.js.map +1 -0
  219. package/dist/index.d.ts +20 -3
  220. package/dist/index.d.ts.map +1 -1
  221. package/dist/index.js +1 -0
  222. package/dist/index.js.map +1 -1
  223. package/dist/interpreter.d.ts +5 -10
  224. package/dist/interpreter.d.ts.map +1 -1
  225. package/dist/interpreter.js +143 -70
  226. package/dist/interpreter.js.map +1 -1
  227. package/dist/inventory.d.ts +2 -0
  228. package/dist/inventory.d.ts.map +1 -1
  229. package/dist/inventory.js +2 -0
  230. package/dist/inventory.js.map +1 -1
  231. package/dist/linkset.d.ts +147 -11
  232. package/dist/linkset.d.ts.map +1 -1
  233. package/dist/linkset.js +401 -28
  234. package/dist/linkset.js.map +1 -1
  235. package/dist/memory.d.ts +5 -2
  236. package/dist/memory.d.ts.map +1 -1
  237. package/dist/memory.js +5 -2
  238. package/dist/memory.js.map +1 -1
  239. package/dist/prim-params.d.ts +27 -10
  240. package/dist/prim-params.d.ts.map +1 -1
  241. package/dist/prim-params.js +209 -125
  242. package/dist/prim-params.js.map +1 -1
  243. package/dist/prim.d.ts +95 -5
  244. package/dist/prim.d.ts.map +1 -1
  245. package/dist/prim.js +96 -7
  246. package/dist/prim.js.map +1 -1
  247. package/dist/runtime.d.ts +52 -3
  248. package/dist/runtime.d.ts.map +1 -1
  249. package/dist/script.d.ts +171 -12
  250. package/dist/script.d.ts.map +1 -1
  251. package/dist/script.js +480 -73
  252. package/dist/script.js.map +1 -1
  253. package/dist/typecheck.d.ts +3 -1
  254. package/dist/typecheck.d.ts.map +1 -1
  255. package/dist/typecheck.js +25 -5
  256. package/dist/typecheck.js.map +1 -1
  257. package/dist/values/coerce.d.ts +1 -1
  258. package/dist/values/coerce.d.ts.map +1 -1
  259. package/dist/values/coerce.js +10 -6
  260. package/dist/values/coerce.js.map +1 -1
  261. package/dist/values/format.d.ts +3 -1
  262. package/dist/values/format.d.ts.map +1 -1
  263. package/dist/values/format.js +10 -6
  264. package/dist/values/format.js.map +1 -1
  265. package/dist/values/ops.d.ts +3 -0
  266. package/dist/values/ops.d.ts.map +1 -1
  267. package/dist/values/ops.js +2 -2
  268. package/dist/values/ops.js.map +1 -1
  269. package/dist/world.d.ts +247 -1
  270. package/dist/world.d.ts.map +1 -1
  271. package/dist/world.js +318 -6
  272. package/dist/world.js.map +1 -1
  273. package/package.json +2 -2
@@ -0,0 +1,113 @@
1
+ import { NULL_KEY } from '../values/types.js';
2
+ import { InventoryType } from '../inventory.js';
3
+ import { SOUND_LOOP, SOUND_SYNC, SOUND_TRIGGER } from '../generated/constants.js';
4
+ import { sayError } from './debug.js';
5
+ const KEY = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
6
+ const volume = (value) => Math.max(0, Math.min(1, value));
7
+ /** Link sounds resolve names in the caller's inventory, before selecting targets. */
8
+ function resolve(ctx, name) {
9
+ const id = KEY.test(name) ? name : ctx.prim.inventory.find(it => it.name === name && it.type === InventoryType.SOUND)?.key;
10
+ if (id !== undefined && id.toLowerCase() !== NULL_KEY)
11
+ return id.toLowerCase();
12
+ sayError(ctx, `Could not find sound '${name}'.`);
13
+ return undefined;
14
+ }
15
+ function targets(ctx, link) {
16
+ // The documented legacy link-0 alias applies when a child addresses its root.
17
+ if (link === 0 && ctx.prim.linkNumber > 1)
18
+ return [ctx.linkset.prims[0]];
19
+ return ctx.linkset.resolveTargets(ctx.prim.linkNumber, link);
20
+ }
21
+ function attach(prim, sound, gain, loop, sync) {
22
+ prim.sound.current = { sound, volume: volume(gain), loop, sync };
23
+ }
24
+ function trigger(prim, sound, gain, bounds) {
25
+ const entry = { sound, volume: volume(gain), position: { ...prim.regionPosition() }, ...bounds };
26
+ prim.sound.triggers.push(entry);
27
+ }
28
+ function attached(loop, sync) {
29
+ return (ctx, args) => {
30
+ const sound = resolve(ctx, args[0]);
31
+ if (sound !== undefined)
32
+ attach(ctx.prim, sound, args[1], loop, sync);
33
+ return undefined;
34
+ };
35
+ }
36
+ export const llPlaySound = attached(false, 'none');
37
+ export const llLoopSound = attached(true, 'none');
38
+ export const llLoopSoundMaster = attached(true, 'master');
39
+ export const llLoopSoundSlave = attached(true, 'slave');
40
+ export const llPlaySoundSlave = attached(false, 'slave');
41
+ export const llLinkPlaySound = (ctx, args) => {
42
+ const sound = resolve(ctx, args[1]);
43
+ if (sound === undefined)
44
+ return undefined;
45
+ const flags = args[3];
46
+ for (const prim of targets(ctx, args[0])) {
47
+ if (flags & SOUND_TRIGGER)
48
+ trigger(prim, sound, args[2]);
49
+ else
50
+ attach(prim, sound, args[2], !!(flags & SOUND_LOOP), flags & SOUND_SYNC ? 'slave' : 'none');
51
+ }
52
+ return undefined;
53
+ };
54
+ export const llTriggerSound = (ctx, args) => {
55
+ const sound = resolve(ctx, args[0]);
56
+ if (sound !== undefined)
57
+ trigger(ctx.prim, sound, args[1]);
58
+ return undefined;
59
+ };
60
+ export const llTriggerSoundLimited = (ctx, args) => {
61
+ const sound = resolve(ctx, args[0]);
62
+ if (sound !== undefined)
63
+ trigger(ctx.prim, sound, args[1], {
64
+ topNorthEast: { ...args[2] }, bottomSouthWest: { ...args[3] },
65
+ });
66
+ return undefined;
67
+ };
68
+ export const llPreloadSound = (ctx, args) => {
69
+ const sound = resolve(ctx, args[0]);
70
+ if (sound !== undefined)
71
+ ctx.prim.sound.preloads.push(sound);
72
+ return undefined;
73
+ };
74
+ export const llStopSound = (ctx) => {
75
+ ctx.prim.sound.current = null;
76
+ return undefined;
77
+ };
78
+ export const llLinkStopSound = (ctx, args) => {
79
+ for (const prim of targets(ctx, args[0]))
80
+ prim.sound.current = null;
81
+ return undefined;
82
+ };
83
+ export const llAdjustSoundVolume = (ctx, args) => {
84
+ if (ctx.prim.sound.current)
85
+ ctx.prim.sound.current.volume = volume(args[0]);
86
+ return undefined;
87
+ };
88
+ export const llLinkAdjustSoundVolume = (ctx, args) => {
89
+ for (const prim of targets(ctx, args[0])) {
90
+ if (prim.sound.current)
91
+ prim.sound.current.volume = volume(args[1]);
92
+ }
93
+ return undefined;
94
+ };
95
+ export const llSetSoundQueueing = (ctx, args) => {
96
+ ctx.prim.sound.queueing = args[0] !== 0;
97
+ return undefined;
98
+ };
99
+ export const llLinkSetSoundQueueing = (ctx, args) => {
100
+ for (const prim of targets(ctx, args[0]))
101
+ prim.sound.queueing = args[1] !== 0;
102
+ return undefined;
103
+ };
104
+ export const llSetSoundRadius = (ctx, args) => {
105
+ ctx.prim.sound.radius = args[0];
106
+ return undefined;
107
+ };
108
+ export const llLinkSetSoundRadius = (ctx, args) => {
109
+ for (const prim of targets(ctx, args[0]))
110
+ prim.sound.radius = args[1];
111
+ return undefined;
112
+ };
113
+ //# sourceMappingURL=sound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound.js","sourceRoot":"","sources":["../../src/builtins/sound.ts"],"names":[],"mappings":"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"}
@@ -20,4 +20,10 @@ export declare const llToUpper: BuiltinImpl;
20
20
  export declare const llReplaceSubString: BuiltinImpl;
21
21
  export declare const llEscapeURL: BuiltinImpl;
22
22
  export declare const llUnescapeURL: BuiltinImpl;
23
+ /** llOrd(string val, integer index) — code point at index (negative counts from the end), or 0. */
24
+ export declare const llOrd: BuiltinImpl;
25
+ /** llChar(integer val) — the character for a code point; 0 gives "" and invalid code points U+FFFD. */
26
+ export declare const llChar: BuiltinImpl;
27
+ /** llHash(string val) — sdbm hash (multiplier 65599) over the Unicode code points. */
28
+ export declare const llHash: BuiltinImpl;
23
29
  //# sourceMappingURL=strings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/builtins/strings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,WAG5B,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,EAAE,WAK9B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,WAK5B,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,EAAE,WAK/B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAO5B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,WAO1B,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,WAC+B,CAAA;AACvD,eAAO,MAAM,SAAS,EAAE,WAC+B,CAAA;AAEvD,eAAO,MAAM,kBAAkB,EAAE,WA+BhC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,WAYzB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,WAO3B,CAAA"}
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/builtins/strings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,WAG5B,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,EAAE,WAK9B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,WAK5B,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,EAAE,WAK/B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAO5B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,WAO1B,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,WAC+B,CAAA;AACvD,eAAO,MAAM,SAAS,EAAE,WAMX,CAAA;AAEb,eAAO,MAAM,kBAAkB,EAAE,WA+BhC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,WAYzB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,WAkB3B,CAAA;AA4BD,mGAAmG;AACnG,eAAO,MAAM,KAAK,EAAE,WAInB,CAAA;AAED,uGAAuG;AACvG,eAAO,MAAM,MAAM,EAAE,WAKpB,CAAA;AAED,sFAAsF;AACtF,eAAO,MAAM,MAAM,EAAE,WAMpB,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { decodeUtf8Lenient } from './base64.js';
1
2
  import { STRING_TRIM_HEAD, STRING_TRIM_TAIL } from '../generated/constants.js';
2
3
  /** llStringLength(string s) — Unicode code-point count, not byte count. */
3
4
  export const llStringLength = (_ctx, args) => {
@@ -50,7 +51,12 @@ export const llStringTrim = (_ctx, args) => {
50
51
  return s;
51
52
  };
52
53
  export const llToLower = (_ctx, args) => (args[0] ?? '').toLowerCase();
53
- export const llToUpper = (_ctx, args) => (args[0] ?? '').toUpperCase();
54
+ export const llToUpper = (_ctx, args) => [...(args[0] ?? '')]
55
+ .map((ch) => {
56
+ const up = ch.toUpperCase();
57
+ return [...up].length > 1 ? ch : up;
58
+ })
59
+ .join('');
54
60
  export const llReplaceSubString = (_ctx, args) => {
55
61
  const src = args[0] ?? '';
56
62
  const pattern = args[1] ?? '';
@@ -101,12 +107,24 @@ export const llEscapeURL = (_ctx, args) => {
101
107
  };
102
108
  export const llUnescapeURL = (_ctx, args) => {
103
109
  const src = args[0] ?? '';
104
- try {
105
- return decodeURIComponent(src.endsWith('%') ? src.slice(0, -1) : src);
106
- }
107
- catch {
108
- return '';
110
+ const bytes = [];
111
+ let i = 0;
112
+ while (i < src.length) {
113
+ if (src[i] !== '%') {
114
+ bytes.push(...Buffer.from(String.fromCodePoint(src.codePointAt(i)), 'utf8'));
115
+ i += src.codePointAt(i) > 0xffff ? 2 : 1;
116
+ continue;
117
+ }
118
+ if (i + 2 >= src.length)
119
+ break;
120
+ const hex = src.slice(i + 1, i + 3);
121
+ if (!/^[0-9a-fA-F]{2}$/.test(hex))
122
+ return '';
123
+ bytes.push(parseInt(hex, 16));
124
+ i += 3;
109
125
  }
126
+ const nul = bytes.indexOf(0);
127
+ return decodeUtf8Lenient(Uint8Array.from(nul < 0 ? bytes : bytes.slice(0, nul)));
110
128
  };
111
129
  // ---- Helpers ----
112
130
  function resolveIndex(i, length) {
@@ -131,4 +149,27 @@ function deleteLslSubString(src, start, end) {
131
149
  }
132
150
  return chars.slice(Math.max(b + 1, 0), Math.min(a, len)).join('');
133
151
  }
152
+ /** llOrd(string val, integer index) — code point at index (negative counts from the end), or 0. */
153
+ export const llOrd = (_ctx, args) => {
154
+ const chars = [...(args[0] ?? '')];
155
+ const index = args[1] ?? 0;
156
+ return chars[resolveIndex(index, chars.length)]?.codePointAt(0) ?? 0;
157
+ };
158
+ /** llChar(integer val) — the character for a code point; 0 gives "" and invalid code points U+FFFD. */
159
+ export const llChar = (_ctx, args) => {
160
+ const code = args[0] ?? 0;
161
+ if (code === 0)
162
+ return '';
163
+ if (code < 0 || code > 0x10ffff || (code >= 0xd800 && code <= 0xdfff))
164
+ return '\ufffd';
165
+ return String.fromCodePoint(code);
166
+ };
167
+ /** llHash(string val) — sdbm hash (multiplier 65599) over the Unicode code points. */
168
+ export const llHash = (_ctx, args) => {
169
+ let h = 0;
170
+ for (const ch of args[0] ?? '') {
171
+ h = (Math.imul(h, 65599) + ch.codePointAt(0)) | 0;
172
+ }
173
+ return h;
174
+ };
134
175
  //# sourceMappingURL=strings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../src/builtins/strings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../src/builtins/strings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { BuiltinImpl } from '../runtime.js';
2
+ import type { Script } from '../script.js';
3
+ /** Inventory pauses checks while retaining values and handle numbers. */
4
+ export declare function pauseTargets(script: Script): void;
5
+ export declare function resumeTargets(script: Script): void;
6
+ /** Reset/deletion clear registrations and their handle counter; state changes preserve them. */
7
+ export declare function clearTargets(script: Script): void;
8
+ export declare const llTarget: BuiltinImpl;
9
+ export declare const llRotTarget: BuiltinImpl;
10
+ export declare const llTargetRemove: BuiltinImpl;
11
+ export declare const llRotTargetRemove: BuiltinImpl;
12
+ //# sourceMappingURL=targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/builtins/targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAiB1C,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGlD;AAED,gGAAgG;AAChG,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGjD;AAmED,eAAO,MAAM,QAAQ,EAAE,WAMtB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,WAMzB,CAAA;AAaD,eAAO,MAAM,cAAc,EAAE,WAA0E,CAAA;AACvG,eAAO,MAAM,iBAAiB,EAAE,WAA0E,CAAA"}
@@ -0,0 +1,121 @@
1
+ import { ZERO_ROTATION } from '../values/types.js';
2
+ import { llAngleBetween } from './math.js';
3
+ /** Aditi's stationary single-target handlers ran about once every 44 ms. */
4
+ const INTERVAL = 1000 / 22.5;
5
+ const targets = new WeakMap();
6
+ /** Inventory pauses checks while retaining values and handle numbers. */
7
+ export function pauseTargets(script) {
8
+ const entries = targets.get(script);
9
+ entries?.cancel?.();
10
+ if (entries)
11
+ entries.cancel = undefined;
12
+ }
13
+ export function resumeTargets(script) {
14
+ const entries = targets.get(script);
15
+ if (entries && !entries.cancel && (entries.positions.length || entries.rotations.length))
16
+ entries.resume?.();
17
+ }
18
+ /** Reset/deletion clear registrations and their handle counter; state changes preserve them. */
19
+ export function clearTargets(script) {
20
+ targets.get(script)?.cancel?.();
21
+ targets.delete(script);
22
+ }
23
+ function emit(ctx, event, payload = {}) {
24
+ // A sleeping handler retains one completed event per target, even after removal.
25
+ const pending = ctx.script.linkset.clock.pendingEvents();
26
+ if (pending.some(e => e.target === ctx.script && e.event === event &&
27
+ e.payload['tnum'] === payload['tnum'] && e.payload['handle'] === payload['handle']))
28
+ return;
29
+ ctx.state.clock.schedule(ctx.state.clock.now, event, payload);
30
+ }
31
+ function check(ctx, entries) {
32
+ if (!ctx.script.running || ctx.script.dead)
33
+ return;
34
+ const root = ctx.script.linkset.prims[0];
35
+ const position = root.regionPosition();
36
+ const rotation = root.regionRotation();
37
+ if (entries.positions.length) {
38
+ let reached = false;
39
+ for (const target of entries.positions) {
40
+ const p = target.value;
41
+ const distance = (p.x - position.x) ** 2 + (p.y - position.y) ** 2 + (p.z - position.z) ** 2;
42
+ if (distance < target.range ** 2) {
43
+ reached = true;
44
+ emit(ctx, 'at_target', { tnum: target.handle, targetpos: { ...p }, ourpos: { ...position } });
45
+ }
46
+ }
47
+ if (!reached)
48
+ emit(ctx, 'not_at_target');
49
+ }
50
+ if (entries.rotations.length) {
51
+ let reached = false;
52
+ for (const target of entries.rotations) {
53
+ if (Number(llAngleBetween(ctx, [target.value, rotation])) < target.range) {
54
+ reached = true;
55
+ emit(ctx, 'at_rot_target', { handle: target.handle, targetrot: { ...target.value }, ourrot: { ...rotation } });
56
+ }
57
+ }
58
+ if (!reached)
59
+ emit(ctx, 'not_at_rot_target');
60
+ }
61
+ }
62
+ function register(ctx) {
63
+ let entries = targets.get(ctx.script);
64
+ if (!entries) {
65
+ entries = { nextHandle: 1, positions: [], rotations: [], cancel: undefined, resume: undefined };
66
+ targets.set(ctx.script, entries);
67
+ }
68
+ if (!entries.cancel) {
69
+ const current = entries;
70
+ const schedule = () => {
71
+ if (!ctx.script.linkset.peers.includes(ctx.script.linkset))
72
+ return;
73
+ current.cancel = ctx.script.linkset.clock.scheduleTask(ctx.script, ctx.state.clock.now + INTERVAL, tick);
74
+ };
75
+ const tick = () => {
76
+ check(ctx, current);
77
+ schedule();
78
+ };
79
+ current.resume = schedule;
80
+ schedule();
81
+ }
82
+ return entries;
83
+ }
84
+ function normalize(rotation) {
85
+ const magnitude = Math.hypot(rotation.x, rotation.y, rotation.z, rotation.s);
86
+ if (magnitude === 0)
87
+ return ZERO_ROTATION;
88
+ return { x: rotation.x / magnitude, y: rotation.y / magnitude, z: rotation.z / magnitude, s: rotation.s / magnitude };
89
+ }
90
+ export const llTarget = (ctx, args) => {
91
+ const entries = register(ctx);
92
+ const handle = entries.nextHandle++;
93
+ entries.positions.push({ handle, value: { ...args[0] }, range: Number(args[1]) });
94
+ if (entries.positions.length > 8)
95
+ entries.positions.shift();
96
+ return handle;
97
+ };
98
+ export const llRotTarget = (ctx, args) => {
99
+ const entries = register(ctx);
100
+ const handle = entries.nextHandle++;
101
+ entries.rotations.push({ handle, value: normalize(args[0]), range: Number(args[1]) });
102
+ if (entries.rotations.length > 8)
103
+ entries.rotations.shift();
104
+ return handle;
105
+ };
106
+ function remove(ctx, handle, kind) {
107
+ const entries = targets.get(ctx.script);
108
+ if (!entries)
109
+ return;
110
+ const list = entries[kind];
111
+ const index = list.findIndex(target => target.handle === handle);
112
+ if (index >= 0)
113
+ list.splice(index, 1);
114
+ if (!entries.positions.length && !entries.rotations.length) {
115
+ entries.cancel?.();
116
+ entries.cancel = undefined;
117
+ }
118
+ }
119
+ export const llTargetRemove = (ctx, args) => { remove(ctx, Number(args[0]), 'positions'); };
120
+ export const llRotTargetRemove = (ctx, args) => { remove(ctx, Number(args[0]), 'rotations'); };
121
+ //# sourceMappingURL=targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/builtins/targets.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,21 @@ import type { BuiltinImpl } from '../runtime.js';
6
6
  /** llSetTimerEvent(float sec) — `sec <= 0` cancels; otherwise (re)arms. */
7
7
  export declare const llSetTimerEvent: BuiltinImpl;
8
8
  /**
9
- * llSleep(float sec) — synchronously advances the virtual clock.
9
+ * llMinEventDelay(float delay) — timer and touch_start events start at
10
+ * least `delay` seconds apart, counted from the call and then from the
11
+ * start of each of them. A reset clears it; a state change keeps it.
12
+ */
13
+ export declare const llMinEventDelay: BuiltinImpl;
14
+ /**
15
+ * llSleep(float sec) — suspends the script on the virtual clock.
10
16
  *
11
17
  * Per LSL:
12
18
  * - `sec <= 0` is a no-op; the script does not sleep at all.
13
19
  * - For positive `sec`, the wait is at least one server frame (~22.22 ms
14
20
  * at 45 Hz), so e.g. `llSleep(0.001)` actually waits ~22 ms.
15
21
  *
16
- * Events that arrive while the script is sleeping queue up but don't fire
17
- * on the calling script until the current handler returns. We model that
18
- * by advancing the linkset clock; the queue drain happens at the handler
19
- * boundary (inside Script.runHandler).
22
+ * Other scripts keep running while it sleeps. Events that arrive for the
23
+ * sleeping script queue up and fire after its current handler returns.
20
24
  */
21
25
  export declare const llSleep: BuiltinImpl;
22
26
  /** llGetTime() — seconds since script start (or last llResetTime). */
@@ -29,8 +33,14 @@ export declare const llResetTime: BuiltinImpl;
29
33
  export declare const llGetUnixTime: BuiltinImpl;
30
34
  /** llGetTimestamp() — UTC time as `YYYY-MM-DDThh:mm:ss.ffffffZ`. */
31
35
  export declare const llGetTimestamp: BuiltinImpl;
36
+ /** Microseconds since the Unix epoch as `YYYY-MM-DDThh:mm:ss.ffffffZ`. */
37
+ export declare function formatTimestamp(micros: number): string;
32
38
  /** llGetDate() — UTC date as `YYYY-MM-DD`. */
33
39
  export declare const llGetDate: BuiltinImpl;
34
40
  /** llGetRegionTimeDilation() — 1.0, a region running at full speed. */
35
41
  export declare const llGetRegionTimeDilation: BuiltinImpl;
42
+ /** llGetGMTclock() — whole seconds since midnight UTC. */
43
+ export declare const llGetGMTclock: BuiltinImpl;
44
+ /** llGetWallclock() — whole seconds since midnight US Pacific time, following daylight time. */
45
+ export declare const llGetWallclock: BuiltinImpl;
36
46
  //# sourceMappingURL=time.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/builtins/time.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD;;;GAGG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,WAI7B,CAAA;AAUD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,EAAE,WAMrB,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,SAAS,EAAE,WAEvB,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,EAAE,WAI/B,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,WAGzB,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,aAAa,EAAE,WAE3B,CAAA;AAED,oEAAoE;AACpE,eAAO,MAAM,cAAc,EAAE,WAK5B,CAAA;AAED,8CAA8C;AAC9C,eAAO,MAAM,SAAS,EAAE,WAEvB,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,uBAAuB,EAAE,WAAqB,CAAA"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/builtins/time.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD;;;GAGG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,WAI7B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,WAG7B,CAAA;AAUD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,EAAE,WAKrB,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,SAAS,EAAE,WAEvB,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,EAAE,WAI/B,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,WAGzB,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,aAAa,EAAE,WAE3B,CAAA;AAED,oEAAoE;AACpE,eAAO,MAAM,cAAc,EAAE,WAAoE,CAAA;AAEjG,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,8CAA8C;AAC9C,eAAO,MAAM,SAAS,EAAE,WAEvB,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,uBAAuB,EAAE,WAAqB,CAAA;AAY3D,0DAA0D;AAC1D,eAAO,MAAM,aAAa,EAAE,WAE3B,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,cAAc,EAAE,WAI5B,CAAA"}
@@ -1,4 +1,4 @@
1
- import { toInt32 } from '../values/types.js';
1
+ import { toFloat32, toInt32 } from '../values/types.js';
2
2
  /**
3
3
  * Time and timer built-ins. All operate on the virtual clock; no real
4
4
  * wall-clock time is read.
@@ -9,6 +9,15 @@ export const llSetTimerEvent = (ctx, args) => {
9
9
  ctx.state.clock.setTimer(seconds * 1000);
10
10
  return undefined;
11
11
  };
12
+ /**
13
+ * llMinEventDelay(float delay) — timer and touch_start events start at
14
+ * least `delay` seconds apart, counted from the call and then from the
15
+ * start of each of them. A reset clears it; a state change keeps it.
16
+ */
17
+ export const llMinEventDelay = (ctx, args) => {
18
+ ctx.state.clock.setMinEventDelay((args[0] ?? 0) * 1000);
19
+ return undefined;
20
+ };
12
21
  /**
13
22
  * Minimum llSleep advance for positive durations: one server frame at the
14
23
  * LSL-canonical 45 Hz tick (~22.222 ms). `llSleep(0)` and negative values
@@ -17,24 +26,21 @@ export const llSetTimerEvent = (ctx, args) => {
17
26
  */
18
27
  const FRAME_MS = 1000 / 45;
19
28
  /**
20
- * llSleep(float sec) — synchronously advances the virtual clock.
29
+ * llSleep(float sec) — suspends the script on the virtual clock.
21
30
  *
22
31
  * Per LSL:
23
32
  * - `sec <= 0` is a no-op; the script does not sleep at all.
24
33
  * - For positive `sec`, the wait is at least one server frame (~22.22 ms
25
34
  * at 45 Hz), so e.g. `llSleep(0.001)` actually waits ~22 ms.
26
35
  *
27
- * Events that arrive while the script is sleeping queue up but don't fire
28
- * on the calling script until the current handler returns. We model that
29
- * by advancing the linkset clock; the queue drain happens at the handler
30
- * boundary (inside Script.runHandler).
36
+ * Other scripts keep running while it sleeps. Events that arrive for the
37
+ * sleeping script queue up and fire after its current handler returns.
31
38
  */
32
39
  export const llSleep = (ctx, args) => {
33
40
  const seconds = args[0] ?? 0;
34
41
  if (seconds <= 0)
35
42
  return undefined;
36
- const ms = Math.max(FRAME_MS, seconds * 1000);
37
- ctx.state.clock.advance(ms);
43
+ ctx.sleep(Number.isNaN(seconds) ? FRAME_MS : Math.max(FRAME_MS, seconds * 1000));
38
44
  return undefined;
39
45
  };
40
46
  /** llGetTime() — seconds since script start (or last llResetTime). */
@@ -57,16 +63,35 @@ export const llGetUnixTime = (ctx) => {
57
63
  return toInt32(Math.floor(ctx.state.clock.unixMicros() / 1e6));
58
64
  };
59
65
  /** llGetTimestamp() — UTC time as `YYYY-MM-DDThh:mm:ss.ffffffZ`. */
60
- export const llGetTimestamp = (ctx) => {
61
- const micros = ctx.state.clock.unixMicros();
66
+ export const llGetTimestamp = (ctx) => formatTimestamp(ctx.state.clock.unixMicros());
67
+ /** Microseconds since the Unix epoch as `YYYY-MM-DDThh:mm:ss.ffffffZ`. */
68
+ export function formatTimestamp(micros) {
62
69
  const ms = Math.floor(micros / 1000);
63
70
  const fraction = String(micros - Math.floor(micros / 1e6) * 1e6).padStart(6, '0');
64
71
  return `${new Date(ms).toISOString().slice(0, 19)}.${fraction}Z`;
65
- };
72
+ }
66
73
  /** llGetDate() — UTC date as `YYYY-MM-DD`. */
67
74
  export const llGetDate = (ctx) => {
68
75
  return new Date(Math.floor(ctx.state.clock.unixMicros() / 1000)).toISOString().slice(0, 10);
69
76
  };
70
77
  /** llGetRegionTimeDilation() — 1.0, a region running at full speed. */
71
78
  export const llGetRegionTimeDilation = () => 1;
79
+ const DAY_SECONDS = 86_400;
80
+ const PACIFIC = new Intl.DateTimeFormat('en-US', {
81
+ timeZone: 'America/Los_Angeles',
82
+ hourCycle: 'h23',
83
+ hour: 'numeric',
84
+ minute: 'numeric',
85
+ second: 'numeric',
86
+ });
87
+ /** llGetGMTclock() — whole seconds since midnight UTC. */
88
+ export const llGetGMTclock = (ctx) => {
89
+ return Math.floor(ctx.state.clock.unixMicros() / 1e6) % DAY_SECONDS;
90
+ };
91
+ /** llGetWallclock() — whole seconds since midnight US Pacific time, following daylight time. */
92
+ export const llGetWallclock = (ctx) => {
93
+ const parts = PACIFIC.formatToParts(Math.floor(ctx.state.clock.unixMicros() / 1000));
94
+ const part = (type) => Number(parts.find((p) => p.type === type).value);
95
+ return part('hour') * 3600 + part('minute') * 60 + part('second');
96
+ };
72
97
  //# sourceMappingURL=time.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/builtins/time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/builtins/time.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { BuiltinImpl } from '../runtime.js';
2
+ import type { LslValue, Rotation, Vector } from '../values/types.js';
3
+ export type VehicleRequestName = 'llSetVehicleType' | 'llSetVehicleFlags' | 'llRemoveVehicleFlags' | 'llSetVehicleFloatParam' | 'llSetVehicleVectorParam' | 'llSetVehicleRotationParam';
4
+ export interface VehicleRequest {
5
+ name: VehicleRequestName;
6
+ args: readonly LslValue[];
7
+ }
8
+ /** Last requested configuration, not simulator motion or an LSL read-back. */
9
+ export interface VehicleSettings {
10
+ type: number;
11
+ flags: number;
12
+ /** VEHICLE_* parameter IDs. Explicit setters retain requested magnitudes. */
13
+ params: Record<number, number | Vector | Rotation>;
14
+ requests: VehicleRequest[];
15
+ }
16
+ export declare const llSetVehicleType: BuiltinImpl;
17
+ export declare const llSetVehicleFlags: BuiltinImpl;
18
+ export declare const llRemoveVehicleFlags: BuiltinImpl;
19
+ export declare const llSetVehicleFloatParam: BuiltinImpl;
20
+ export declare const llSetVehicleVectorParam: BuiltinImpl;
21
+ export declare const llSetVehicleRotationParam: BuiltinImpl;
22
+ //# sourceMappingURL=vehicles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicles.d.ts","sourceRoot":"","sources":["../../src/builtins/vehicles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEpE,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,sBAAsB,GAC9F,wBAAwB,GAAG,yBAAyB,GAAG,2BAA2B,CAAA;AACtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAA;IACxB,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAA;CAC1B;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAA;IAClD,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC3B;AAsCD,eAAO,MAAM,gBAAgB,aAK3B,CAAA;AACF,eAAO,MAAM,iBAAiB,aAE5B,CAAA;AACF,eAAO,MAAM,oBAAoB,aAE/B,CAAA;AACF,eAAO,MAAM,sBAAsB,aAMjC,CAAA;AACF,eAAO,MAAM,uBAAuB,aAKlC,CAAA;AACF,eAAO,MAAM,yBAAyB,aAIpC,CAAA"}