@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.
Files changed (235) 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 +8 -0
  14. package/dist/builtins/base64.d.ts.map +1 -1
  15. package/dist/builtins/base64.js +1 -1
  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 +27 -1
  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/http.d.ts +99 -4
  66. package/dist/builtins/http.d.ts.map +1 -1
  67. package/dist/builtins/http.js +216 -6
  68. package/dist/builtins/http.js.map +1 -1
  69. package/dist/builtins/index.d.ts.map +1 -1
  70. package/dist/builtins/index.js +235 -10
  71. package/dist/builtins/index.js.map +1 -1
  72. package/dist/builtins/inventory.d.ts +1 -0
  73. package/dist/builtins/inventory.d.ts.map +1 -1
  74. package/dist/builtins/inventory.js +1 -1
  75. package/dist/builtins/inventory.js.map +1 -1
  76. package/dist/builtins/land.d.ts +29 -0
  77. package/dist/builtins/land.d.ts.map +1 -0
  78. package/dist/builtins/land.js +339 -0
  79. package/dist/builtins/land.js.map +1 -0
  80. package/dist/builtins/links.d.ts +20 -0
  81. package/dist/builtins/links.d.ts.map +1 -0
  82. package/dist/builtins/links.js +53 -0
  83. package/dist/builtins/links.js.map +1 -0
  84. package/dist/builtins/linksetdata.d.ts +5 -0
  85. package/dist/builtins/linksetdata.d.ts.map +1 -1
  86. package/dist/builtins/linksetdata.js +16 -0
  87. package/dist/builtins/linksetdata.js.map +1 -1
  88. package/dist/builtins/lists.d.ts +6 -0
  89. package/dist/builtins/lists.d.ts.map +1 -1
  90. package/dist/builtins/lists.js +19 -6
  91. package/dist/builtins/lists.js.map +1 -1
  92. package/dist/builtins/math.d.ts +16 -0
  93. package/dist/builtins/math.d.ts.map +1 -1
  94. package/dist/builtins/math.js +74 -0
  95. package/dist/builtins/math.js.map +1 -1
  96. package/dist/builtins/media.d.ts +8 -0
  97. package/dist/builtins/media.d.ts.map +1 -0
  98. package/dist/builtins/media.js +167 -0
  99. package/dist/builtins/media.js.map +1 -0
  100. package/dist/builtins/motion.d.ts +79 -0
  101. package/dist/builtins/motion.d.ts.map +1 -0
  102. package/dist/builtins/motion.js +396 -0
  103. package/dist/builtins/motion.js.map +1 -0
  104. package/dist/builtins/notecard-search.d.ts +15 -0
  105. package/dist/builtins/notecard-search.d.ts.map +1 -0
  106. package/dist/builtins/notecard-search.js +374 -0
  107. package/dist/builtins/notecard-search.js.map +1 -0
  108. package/dist/builtins/object-animation.d.ts +21 -0
  109. package/dist/builtins/object-animation.d.ts.map +1 -0
  110. package/dist/builtins/object-animation.js +193 -0
  111. package/dist/builtins/object-animation.js.map +1 -0
  112. package/dist/builtins/object-reads.d.ts +39 -0
  113. package/dist/builtins/object-reads.d.ts.map +1 -0
  114. package/dist/builtins/object-reads.js +332 -0
  115. package/dist/builtins/object-reads.js.map +1 -0
  116. package/dist/builtins/object.d.ts +6 -0
  117. package/dist/builtins/object.d.ts.map +1 -1
  118. package/dist/builtins/object.js +19 -3
  119. package/dist/builtins/object.js.map +1 -1
  120. package/dist/builtins/particles.d.ts +4 -0
  121. package/dist/builtins/particles.d.ts.map +1 -0
  122. package/dist/builtins/particles.js +65 -0
  123. package/dist/builtins/particles.js.map +1 -0
  124. package/dist/builtins/pathfinding.d.ts +39 -0
  125. package/dist/builtins/pathfinding.d.ts.map +1 -0
  126. package/dist/builtins/pathfinding.js +83 -0
  127. package/dist/builtins/pathfinding.js.map +1 -0
  128. package/dist/builtins/permissions.d.ts.map +1 -1
  129. package/dist/builtins/permissions.js +6 -0
  130. package/dist/builtins/permissions.js.map +1 -1
  131. package/dist/builtins/physics.d.ts +49 -0
  132. package/dist/builtins/physics.d.ts.map +1 -0
  133. package/dist/builtins/physics.js +47 -0
  134. package/dist/builtins/physics.js.map +1 -0
  135. package/dist/builtins/prim-accessors.d.ts +3 -0
  136. package/dist/builtins/prim-accessors.d.ts.map +1 -1
  137. package/dist/builtins/prim-accessors.js +27 -7
  138. package/dist/builtins/prim-accessors.js.map +1 -1
  139. package/dist/builtins/raycast.d.ts +3 -0
  140. package/dist/builtins/raycast.d.ts.map +1 -0
  141. package/dist/builtins/raycast.js +65 -0
  142. package/dist/builtins/raycast.js.map +1 -0
  143. package/dist/builtins/region.d.ts +31 -0
  144. package/dist/builtins/region.d.ts.map +1 -0
  145. package/dist/builtins/region.js +125 -0
  146. package/dist/builtins/region.js.map +1 -0
  147. package/dist/builtins/remote-load.d.ts +3 -0
  148. package/dist/builtins/remote-load.d.ts.map +1 -0
  149. package/dist/builtins/remote-load.js +53 -0
  150. package/dist/builtins/remote-load.js.map +1 -0
  151. package/dist/builtins/rez.d.ts +10 -0
  152. package/dist/builtins/rez.d.ts.map +1 -0
  153. package/dist/builtins/rez.js +255 -0
  154. package/dist/builtins/rez.js.map +1 -0
  155. package/dist/builtins/rsa.d.ts +4 -0
  156. package/dist/builtins/rsa.d.ts.map +1 -0
  157. package/dist/builtins/rsa.js +44 -0
  158. package/dist/builtins/rsa.js.map +1 -0
  159. package/dist/builtins/script-control.d.ts +6 -2
  160. package/dist/builtins/script-control.d.ts.map +1 -1
  161. package/dist/builtins/script-control.js +9 -4
  162. package/dist/builtins/script-control.js.map +1 -1
  163. package/dist/builtins/sensor.d.ts +11 -0
  164. package/dist/builtins/sensor.d.ts.map +1 -0
  165. package/dist/builtins/sensor.js +145 -0
  166. package/dist/builtins/sensor.js.map +1 -0
  167. package/dist/builtins/sit.d.ts +23 -0
  168. package/dist/builtins/sit.d.ts.map +1 -0
  169. package/dist/builtins/sit.js +150 -0
  170. package/dist/builtins/sit.js.map +1 -0
  171. package/dist/builtins/sound.d.ts +19 -0
  172. package/dist/builtins/sound.d.ts.map +1 -0
  173. package/dist/builtins/sound.js +113 -0
  174. package/dist/builtins/sound.js.map +1 -0
  175. package/dist/builtins/targets.d.ts +12 -0
  176. package/dist/builtins/targets.d.ts.map +1 -0
  177. package/dist/builtins/targets.js +121 -0
  178. package/dist/builtins/targets.js.map +1 -0
  179. package/dist/builtins/time.d.ts +12 -0
  180. package/dist/builtins/time.d.ts.map +1 -1
  181. package/dist/builtins/time.js +32 -4
  182. package/dist/builtins/time.js.map +1 -1
  183. package/dist/builtins/vehicles.d.ts +22 -0
  184. package/dist/builtins/vehicles.d.ts.map +1 -0
  185. package/dist/builtins/vehicles.js +78 -0
  186. package/dist/builtins/vehicles.js.map +1 -0
  187. package/dist/builtins/viewer.d.ts +39 -0
  188. package/dist/builtins/viewer.d.ts.map +1 -0
  189. package/dist/builtins/viewer.js +74 -0
  190. package/dist/builtins/viewer.js.map +1 -0
  191. package/dist/clock.d.ts +29 -1
  192. package/dist/clock.d.ts.map +1 -1
  193. package/dist/clock.js +89 -5
  194. package/dist/clock.js.map +1 -1
  195. package/dist/experience.d.ts +39 -0
  196. package/dist/experience.d.ts.map +1 -0
  197. package/dist/experience.js +38 -0
  198. package/dist/experience.js.map +1 -0
  199. package/dist/index.d.ts +20 -3
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +1 -0
  202. package/dist/index.js.map +1 -1
  203. package/dist/interpreter.d.ts +0 -1
  204. package/dist/interpreter.d.ts.map +1 -1
  205. package/dist/interpreter.js.map +1 -1
  206. package/dist/inventory.d.ts +2 -0
  207. package/dist/inventory.d.ts.map +1 -1
  208. package/dist/inventory.js +2 -0
  209. package/dist/inventory.js.map +1 -1
  210. package/dist/linkset.d.ts +139 -11
  211. package/dist/linkset.d.ts.map +1 -1
  212. package/dist/linkset.js +376 -24
  213. package/dist/linkset.js.map +1 -1
  214. package/dist/prim-params.d.ts.map +1 -1
  215. package/dist/prim-params.js +11 -3
  216. package/dist/prim-params.js.map +1 -1
  217. package/dist/prim.d.ts +94 -4
  218. package/dist/prim.d.ts.map +1 -1
  219. package/dist/prim.js +94 -5
  220. package/dist/prim.js.map +1 -1
  221. package/dist/runtime.d.ts +41 -0
  222. package/dist/runtime.d.ts.map +1 -1
  223. package/dist/script.d.ts +147 -2
  224. package/dist/script.d.ts.map +1 -1
  225. package/dist/script.js +373 -19
  226. package/dist/script.js.map +1 -1
  227. package/dist/values/ops.d.ts +3 -0
  228. package/dist/values/ops.d.ts.map +1 -1
  229. package/dist/values/ops.js +2 -2
  230. package/dist/values/ops.js.map +1 -1
  231. package/dist/world.d.ts +247 -1
  232. package/dist/world.d.ts.map +1 -1
  233. package/dist/world.js +318 -6
  234. package/dist/world.js.map +1 -1
  235. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"script-control.js","sourceRoot":"","sources":["../../src/builtins/script-control.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IAC3D,MAAM,IAAI,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,EAAE,CAAA;IAClD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,GAAG,EAAE,0BAA0B,IAAI,GAAG,CAAC,CAAA;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IACrC,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM;QAAE,OAAO,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACxD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;IACxE,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,qHAAqH;AACrH,MAAM,CAAC,MAAM,gBAAgB,GAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACzD,MAAM,IAAI,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,EAAE,CAAA;IAClD,MAAM,OAAO,GAAG,CAAE,IAAI,CAAC,CAAC,CAAwB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,GAAG,EAAE,0BAA0B,IAAI,IAAI,CAAC,CAAA;QACjD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAA;IACjC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO;QAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACnD,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,6DAA6D;QAC7D,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAA;QAC1B,IAAI,CAAC,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC1B,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACxE,CAAC;QACD,MAAM,CAAC,YAAY,EAAE,CAAA;IACvB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,uGAAuG;AACvG,MAAM,CAAC,MAAM,gBAAgB,GAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACzD,MAAM,IAAI,GAAI,IAAI,CAAC,CAAC,CAAwB,IAAI,EAAE,CAAA;IAClD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM;QAAE,QAAQ,CAAC,GAAG,EAAE,0BAA0B,IAAI,IAAI,CAAC,CAAA;IAC9D,OAAO,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,CAAC,CAAA"}
1
+ {"version":3,"file":"script-control.js","sourceRoot":"","sources":["../../src/builtins/script-control.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { BuiltinImpl } from '../runtime.js';
2
+ import type { Script } from '../script.js';
3
+ /** Inventory stops simulator work without discarding the registered scan. */
4
+ export declare function pauseSensors(script: Script): void;
5
+ export declare function resumeSensors(script: Script): void;
6
+ /** Reset and state changes discard scans; completed events belong to the event queue. */
7
+ export declare function stopSensors(script: Script): void;
8
+ export declare const llSensor: BuiltinImpl;
9
+ export declare const llSensorRepeat: BuiltinImpl;
10
+ export declare const llSensorRemove: BuiltinImpl;
11
+ //# sourceMappingURL=sensor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensor.d.ts","sourceRoot":"","sources":["../../src/builtins/sensor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAoB1C,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGlD;AAYD,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGhD;AA0ED,eAAO,MAAM,QAAQ,EAAE,WAOtB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAU5B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAQ5B,CAAA"}
@@ -0,0 +1,145 @@
1
+ import { NULL_KEY, ZERO_VECTOR } from '../values/types.js';
2
+ import { rotateVector } from '../values/ops.js';
3
+ const sensors = new WeakMap();
4
+ /** Inventory stops simulator work without discarding the registered scan. */
5
+ export function pauseSensors(script) {
6
+ const task = sensors.get(script);
7
+ task?.cancel?.();
8
+ if (task)
9
+ task.cancel = undefined;
10
+ }
11
+ export function resumeSensors(script) {
12
+ const task = sensors.get(script);
13
+ if (task && !task.cancel)
14
+ task.resume();
15
+ }
16
+ function sensorTask(ctx, delay, run) {
17
+ const task = { cancel: undefined, resume: () => {
18
+ if (!ctx.script.linkset.peers.includes(ctx.script.linkset))
19
+ return;
20
+ task.cancel = ctx.script.linkset.clock.scheduleTask(ctx.script, ctx.state.clock.now + delay, run);
21
+ } };
22
+ sensors.set(ctx.script, task);
23
+ task.resume();
24
+ return task;
25
+ }
26
+ /** Reset and state changes discard scans; completed events belong to the event queue. */
27
+ export function stopSensors(script) {
28
+ pauseSensors(script);
29
+ sensors.delete(script);
30
+ }
31
+ function query(args) {
32
+ const key = String(args[1]);
33
+ return {
34
+ name: String(args[0]),
35
+ key: /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(key) ? key.toLowerCase() : NULL_KEY,
36
+ type: Number(args[2]), radius: Math.min(Number(args[3]), 96), arc: Number(args[4]),
37
+ };
38
+ }
39
+ function targets(ctx) {
40
+ const world = ctx.script.linkset.world;
41
+ const out = [...(world?.objects ?? []), ...(world?.avatars ?? [])];
42
+ for (const linkset of ctx.script.linkset.peers) {
43
+ if (linkset === ctx.script.linkset || linkset.dead || !linkset.prims.length)
44
+ continue;
45
+ const root = linkset.prims[0];
46
+ const scripts = linkset.allScripts().filter((s) => !s.dead);
47
+ const properties = world?.sensorProperties.get(linkset);
48
+ out.push({
49
+ key: root.key, name: root.name, region: linkset.region ?? '',
50
+ position: root.regionPosition(), rotation: root.regionRotation(),
51
+ velocity: properties?.velocity ?? ZERO_VECTOR, owner: linkset.owner,
52
+ group: properties?.group ?? NULL_KEY, physical: (root.statusFlags & 1) !== 0,
53
+ scripted: scripts.length > 0,
54
+ active: properties?.active ?? scripts.some((s) => s.running && (s.timerInterval > 0 || s.wakeAt !== undefined || s.listens.some((l) => l.active))),
55
+ });
56
+ }
57
+ return out;
58
+ }
59
+ function scan(ctx, q) {
60
+ if (!ctx.script.running || ctx.script.dead || q.radius <= 0 || q.type === 0)
61
+ return;
62
+ const origin = ctx.prim.regionPosition();
63
+ const forward = rotateVector({ x: 1, y: 0, z: 0 }, ctx.prim.regionRotation());
64
+ const group = ctx.script.linkset.world?.sensorProperties.get(ctx.script.linkset)?.group ?? NULL_KEY;
65
+ const found = [];
66
+ for (const target of targets(ctx)) {
67
+ // DAMAGEABLE matched nothing on the measured Aditi simulator, even with health and handlers.
68
+ if (q.type & 32)
69
+ continue;
70
+ if (target.region !== (ctx.script.linkset.region ?? ''))
71
+ continue;
72
+ if (q.key !== NULL_KEY && target.key.toLowerCase() !== q.key)
73
+ continue;
74
+ const avatar = target.username !== undefined;
75
+ if (q.name && q.name !== (avatar && (q.type & 16) !== 0 ? target.username : target.name))
76
+ continue;
77
+ if (avatar) {
78
+ if (!(q.type & 17) || (q.type & 8))
79
+ continue;
80
+ }
81
+ else {
82
+ const active = target.physical || target.active;
83
+ if (q.type & 8) {
84
+ if (!target.scripted || !(active || (q.type & 4)))
85
+ continue;
86
+ }
87
+ else if (!(q.type & (active ? 2 : 4)))
88
+ continue;
89
+ }
90
+ const delta = { x: target.position.x - origin.x, y: target.position.y - origin.y, z: target.position.z - origin.z };
91
+ const distance = Math.hypot(delta.x, delta.y, delta.z);
92
+ if (distance >= q.radius)
93
+ continue;
94
+ if (q.arc > 0 && q.arc < Math.PI && distance > 0) {
95
+ const dot = (delta.x * forward.x + delta.y * forward.y + delta.z * forward.z) / distance;
96
+ // Measured at 45 and 90 degrees on Aditi, 2026-10-31.
97
+ if (dot + 0.0001 < Math.cos(q.arc))
98
+ continue;
99
+ }
100
+ found.push({ distance, entry: {
101
+ key: target.key, name: target.name, owner: target.owner,
102
+ group: Number(target.group === group),
103
+ pos: { ...target.position }, rot: { ...target.rotation }, vel: { ...target.velocity },
104
+ type: avatar ? 3 : (target.physical ? 2 : 4) | (target.scripted ? 8 : 0),
105
+ linkNumber: 0,
106
+ } });
107
+ }
108
+ const detected = found.sort((a, b) => a.distance - b.distance).slice(0, 32).map((f) => f.entry);
109
+ // A busy handler holds the latest completed result, rather than a backlog of scans.
110
+ ctx.script.linkset.clock.purgeEvent(ctx.script, detected.length ? 'sensor' : 'no_sensor');
111
+ ctx.state.clock.schedule(ctx.state.clock.now, detected.length ? 'sensor' : 'no_sensor', { num_detected: detected.length, detected });
112
+ }
113
+ export const llSensor = (ctx, args) => {
114
+ stopSensors(ctx.script);
115
+ const q = query(args);
116
+ sensorTask(ctx, 0, () => {
117
+ sensors.delete(ctx.script);
118
+ scan(ctx, q);
119
+ });
120
+ };
121
+ export const llSensorRepeat = (ctx, args) => {
122
+ stopSensors(ctx.script);
123
+ const rate = Number(args[5]);
124
+ if (rate < 0)
125
+ return;
126
+ if (rate === 0)
127
+ return llSensor(ctx, args);
128
+ const q = query(args);
129
+ const task = sensorTask(ctx, rate * 1000, () => {
130
+ scan(ctx, q);
131
+ task.resume();
132
+ });
133
+ };
134
+ export const llSensorRemove = (ctx) => {
135
+ stopSensors(ctx.script);
136
+ for (const event of ctx.script.linkset.clock.pendingEvents()) {
137
+ if (event.target === ctx.script && event.event === 'sensor')
138
+ event.payload['detected'] = [];
139
+ }
140
+ const stack = ctx.state.detectedStack;
141
+ const current = stack.at(-1);
142
+ if (current?.event === 'sensor')
143
+ stack[stack.length - 1] = { ...current, entries: [] };
144
+ };
145
+ //# sourceMappingURL=sensor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensor.js","sourceRoot":"","sources":["../../src/builtins/sensor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { BuiltinImpl } from '../runtime.js';
2
+ import { type Vector } from '../values/types.js';
3
+ /** A teleport attempt. Accepted means the script's checks passed, not a network confirmation. */
4
+ export interface TeleportRequest {
5
+ readonly kind: 'local' | 'landmark' | 'global' | 'home';
6
+ readonly agent: string;
7
+ readonly time: number;
8
+ readonly accepted: boolean;
9
+ readonly region?: string;
10
+ readonly position?: Vector;
11
+ readonly lookAt?: Vector;
12
+ readonly landmark?: string;
13
+ readonly globalCoordinates?: Vector;
14
+ }
15
+ export declare const llAvatarOnSitTarget: BuiltinImpl;
16
+ export declare const llAvatarOnLinkSitTarget: BuiltinImpl;
17
+ export declare const llSitOnLink: BuiltinImpl;
18
+ export declare const llUnSit: BuiltinImpl;
19
+ export declare const llSetAgentRot: BuiltinImpl;
20
+ export declare const llTeleportAgent: BuiltinImpl;
21
+ export declare const llTeleportAgentGlobalCoords: BuiltinImpl;
22
+ export declare const llTeleportAgentHome: BuiltinImpl;
23
+ //# sourceMappingURL=sit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sit.d.ts","sourceRoot":"","sources":["../../src/builtins/sit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAA;AAG7D,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAMzE,iGAAiG;AACjG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAA;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CACpC;AAeD,eAAO,MAAM,mBAAmB,EAAE,WAA0C,CAAA;AAC5E,eAAO,MAAM,uBAAuB,EAAE,WAAsE,CAAA;AAE5G,eAAO,MAAM,WAAW,EAAE,WAgBzB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,WAOrB,CAAA;AAOD,eAAO,MAAM,aAAa,EAAE,WAS3B,CAAA;AA+BD,eAAO,MAAM,eAAe,EAAE,WAmB7B,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,WAYzC,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,WAajC,CAAA"}
@@ -0,0 +1,150 @@
1
+ import { NULL_KEY } from '../values/types.js';
2
+ import { rotateVector } from '../values/ops.js';
3
+ import { AGENT_SITTING, INVENTORY_LANDMARK, LINK_THIS, PERMISSION_TELEPORT, PERMISSION_TRIGGER_ANIMATION } from '../generated/constants.js';
4
+ import { sayError } from './debug.js';
5
+ import { isAgentInRegion } from './viewer.js';
6
+ const sameKey = (a, b) => a.toLowerCase() === b.toLowerCase();
7
+ const avatar = (ctx, key) => ctx.linkset.world?.avatars.find(a => sameKey(a.key, key) && a.region === ctx.linkset.region);
8
+ function prim(ctx, link) {
9
+ return link === LINK_THIS ? ctx.prim : link > 0 ? ctx.linkset.prims[link - 1] : undefined;
10
+ }
11
+ function sitter(ctx, target) {
12
+ if (!target?.params.sitTarget.enabled)
13
+ return NULL_KEY;
14
+ return ctx.linkset.world?.avatars.find(a => a.region === ctx.linkset.region && a.sittingOn === target)?.key ?? NULL_KEY;
15
+ }
16
+ export const llAvatarOnSitTarget = ctx => sitter(ctx, ctx.prim);
17
+ export const llAvatarOnLinkSitTarget = (ctx, args) => sitter(ctx, prim(ctx, args[0]));
18
+ export const llSitOnLink = (ctx, args) => {
19
+ const xp = ctx.state.experience;
20
+ if (!xp)
21
+ return -1;
22
+ const agent = avatar(ctx, args[0]);
23
+ if (!agent)
24
+ return -4;
25
+ if (!xp.allowedHere)
26
+ return -1;
27
+ if (![...xp.agents].some(key => sameKey(key, agent.key)))
28
+ return -2;
29
+ const requested = prim(ctx, args[1]);
30
+ if (!requested)
31
+ return -5;
32
+ if (ctx.linkset.attachment)
33
+ return -7;
34
+ const targets = [requested, ...ctx.linkset.prims.filter(p => p !== requested)];
35
+ const seat = targets.find(p => p.params.sitTarget.enabled &&
36
+ !ctx.linkset.world.avatars.some(a => a.sittingOn === p));
37
+ if (!seat)
38
+ return -3;
39
+ ctx.linkset.world.sitAvatar(agent, seat);
40
+ return 1;
41
+ };
42
+ export const llUnSit = (ctx, args) => {
43
+ const agent = avatar(ctx, args[0]);
44
+ if (!agent)
45
+ return undefined;
46
+ const world = ctx.linkset.world;
47
+ const land = world.parcelAt(agent.region, agent.position);
48
+ if (agent.sittingOn?.linkset === ctx.linkset || (land && land.owner !== NULL_KEY && sameKey(land.owner, ctx.linkset.owner)))
49
+ world.standAvatar(agent);
50
+ return undefined;
51
+ };
52
+ function yawRotation(x, y) {
53
+ const half = Math.atan2(y, x) / 2;
54
+ return { x: 0, y: 0, z: Math.sin(half), s: Math.cos(half) };
55
+ }
56
+ export const llSetAgentRot = (ctx, args) => {
57
+ if (!(ctx.state.permissions.granted & PERMISSION_TRIGGER_ANIMATION))
58
+ return undefined;
59
+ const agent = avatar(ctx, ctx.state.permissions.agent);
60
+ if (!agent)
61
+ return undefined;
62
+ const forward = rotateVector({ x: 1, y: 0, z: 0 }, args[0]);
63
+ const rotation = yawRotation(forward.x, forward.y);
64
+ if (agent.info & AGENT_SITTING)
65
+ agent.standingRotation = rotation;
66
+ else
67
+ agent.rotation = rotation;
68
+ return undefined;
69
+ };
70
+ function mayTeleport(ctx, key) {
71
+ if (ctx.linkset.attachment?.temporary) {
72
+ sayError(ctx, 'Temporary attachments cannot teleport agents');
73
+ return false;
74
+ }
75
+ const xp = ctx.state.experience;
76
+ const experience = xp?.allowedHere && [...xp.agents].some(agent => sameKey(agent, key));
77
+ const permission = (ctx.state.permissions.granted & PERMISSION_TELEPORT) &&
78
+ sameKey(ctx.state.permissions.agent, key) && sameKey(ctx.linkset.owner, key);
79
+ if (!experience && !permission) {
80
+ sayError(ctx, 'Script trying to teleport agent without current permission!');
81
+ return false;
82
+ }
83
+ return isAgentInRegion(ctx, key);
84
+ }
85
+ function move(ctx, key, destination, lookAt) {
86
+ const agent = avatar(ctx, key);
87
+ if (!agent)
88
+ return;
89
+ const world = ctx.linkset.world;
90
+ world.standAvatar(agent);
91
+ if (lookAt) {
92
+ const local = destination.region === ctx.linkset.region;
93
+ agent.rotation = yawRotation(lookAt.x - (local ? destination.position.x : 0), lookAt.y - (local ? destination.position.y : 0));
94
+ }
95
+ agent.region = destination.region;
96
+ agent.position = { ...destination.position };
97
+ }
98
+ export const llTeleportAgent = (ctx, args) => {
99
+ const key = args[0].toLowerCase();
100
+ const landmark = args[1];
101
+ const position = { ...args[2] };
102
+ const lookAt = { ...args[3] };
103
+ let accepted = mayTeleport(ctx, key);
104
+ let destination;
105
+ if (accepted && landmark) {
106
+ const item = ctx.prim.inventory.find(i => i.name === landmark && i.type === INVENTORY_LANDMARK);
107
+ destination = item ? ctx.linkset.world?.landmarks.get(item.key.toLowerCase()) : undefined;
108
+ if (!destination) {
109
+ sayError(ctx, 'Teleport failed: landmark name provided but assets is missing or invalid.');
110
+ accepted = false;
111
+ }
112
+ }
113
+ else if (ctx.linkset.region !== undefined)
114
+ destination = { region: ctx.linkset.region, position };
115
+ ctx.state.teleportRequests.push({ kind: landmark ? 'landmark' : 'local', agent: key, time: ctx.state.clock.now,
116
+ accepted, landmark, position: { ...(destination?.position ?? position) }, lookAt, ...(destination ? { region: destination.region } : {}) });
117
+ if (accepted && destination)
118
+ move(ctx, key, destination, lookAt);
119
+ return undefined;
120
+ };
121
+ export const llTeleportAgentGlobalCoords = (ctx, args) => {
122
+ const key = args[0].toLowerCase();
123
+ const globalCoordinates = { ...args[1] };
124
+ const position = { ...args[2] };
125
+ const lookAt = { ...args[3] };
126
+ const permitted = mayTeleport(ctx, key);
127
+ const region = ctx.linkset.world?.regionAt(globalCoordinates.x, globalCoordinates.y);
128
+ const accepted = permitted && (ctx.linkset.world === undefined || region !== undefined);
129
+ ctx.state.teleportRequests.push({ kind: 'global', agent: key, time: ctx.state.clock.now,
130
+ accepted, globalCoordinates, position, lookAt, ...(region ? { region: region.name } : {}) });
131
+ if (accepted && region)
132
+ move(ctx, key, { region: region.name, position }, lookAt);
133
+ return undefined;
134
+ };
135
+ export const llTeleportAgentHome = (ctx, args) => {
136
+ const key = args[0].toLowerCase();
137
+ const agent = avatar(ctx, key);
138
+ const { world, region } = ctx.linkset;
139
+ const land = region === undefined ? undefined : world?.parcelAt(region, ctx.prim.regionPosition());
140
+ const targetLand = agent ? world?.parcelAt(agent.region, agent.position) : undefined;
141
+ const accepted = land !== undefined && targetLand !== undefined && land.owner !== NULL_KEY &&
142
+ sameKey(land.owner, ctx.linkset.owner) && sameKey(targetLand.owner, ctx.linkset.owner);
143
+ const destination = agent?.home;
144
+ ctx.state.teleportRequests.push({ kind: 'home', agent: key, time: ctx.state.clock.now, accepted,
145
+ ...(destination ? { region: destination.region, position: { ...destination.position } } : {}) });
146
+ if (accepted && destination)
147
+ move(ctx, key, destination);
148
+ return undefined;
149
+ };
150
+ //# sourceMappingURL=sit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sit.js","sourceRoot":"","sources":["../../src/builtins/sit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { BuiltinImpl } from '../runtime.js';
2
+ export declare const llPlaySound: BuiltinImpl;
3
+ export declare const llLoopSound: BuiltinImpl;
4
+ export declare const llLoopSoundMaster: BuiltinImpl;
5
+ export declare const llLoopSoundSlave: BuiltinImpl;
6
+ export declare const llPlaySoundSlave: BuiltinImpl;
7
+ export declare const llLinkPlaySound: BuiltinImpl;
8
+ export declare const llTriggerSound: BuiltinImpl;
9
+ export declare const llTriggerSoundLimited: BuiltinImpl;
10
+ export declare const llPreloadSound: BuiltinImpl;
11
+ export declare const llStopSound: BuiltinImpl;
12
+ export declare const llLinkStopSound: BuiltinImpl;
13
+ export declare const llAdjustSoundVolume: BuiltinImpl;
14
+ export declare const llLinkAdjustSoundVolume: BuiltinImpl;
15
+ export declare const llSetSoundQueueing: BuiltinImpl;
16
+ export declare const llLinkSetSoundQueueing: BuiltinImpl;
17
+ export declare const llSetSoundRadius: BuiltinImpl;
18
+ export declare const llLinkSetSoundRadius: BuiltinImpl;
19
+ //# sourceMappingURL=sound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../../src/builtins/sound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAA;AA0C7D,eAAO,MAAM,WAAW,aAA0B,CAAA;AAClD,eAAO,MAAM,WAAW,aAAyB,CAAA;AACjD,eAAO,MAAM,iBAAiB,aAA2B,CAAA;AACzD,eAAO,MAAM,gBAAgB,aAA0B,CAAA;AACvD,eAAO,MAAM,gBAAgB,aAA2B,CAAA;AAExD,eAAO,MAAM,eAAe,EAAE,WAS7B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAI5B,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,WAMnC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,WAI5B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,WAGzB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,WAG7B,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,WAGjC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,WAKrC,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,WAGhC,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,WAGpC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,WAG9B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,WAGlC,CAAA"}
@@ -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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"}
@@ -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"}