@zylem/behaviors 0.2.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 (175) hide show
  1. package/README.md +26 -0
  2. package/dist/behavior-system-DYbx-x_-.d.ts +307 -0
  3. package/dist/chunk-2C3Z5GE7.js +176 -0
  4. package/dist/chunk-2C3Z5GE7.js.map +1 -0
  5. package/dist/chunk-2CLT36VB.js +241 -0
  6. package/dist/chunk-2CLT36VB.js.map +1 -0
  7. package/dist/chunk-3PYGRHAL.js +35 -0
  8. package/dist/chunk-3PYGRHAL.js.map +1 -0
  9. package/dist/chunk-4I6E6DGV.js +212 -0
  10. package/dist/chunk-4I6E6DGV.js.map +1 -0
  11. package/dist/chunk-4URF65BR.js +44 -0
  12. package/dist/chunk-4URF65BR.js.map +1 -0
  13. package/dist/chunk-6C6NXNEW.js +38 -0
  14. package/dist/chunk-6C6NXNEW.js.map +1 -0
  15. package/dist/chunk-ARJWUNRE.js +431 -0
  16. package/dist/chunk-ARJWUNRE.js.map +1 -0
  17. package/dist/chunk-BXP4K7RF.js +1205 -0
  18. package/dist/chunk-BXP4K7RF.js.map +1 -0
  19. package/dist/chunk-DYLH6K7B.js +44 -0
  20. package/dist/chunk-DYLH6K7B.js.map +1 -0
  21. package/dist/chunk-EIWQM6U3.js +27 -0
  22. package/dist/chunk-EIWQM6U3.js.map +1 -0
  23. package/dist/chunk-EZNCCO4L.js +14 -0
  24. package/dist/chunk-EZNCCO4L.js.map +1 -0
  25. package/dist/chunk-F3KRX2V4.js +457 -0
  26. package/dist/chunk-F3KRX2V4.js.map +1 -0
  27. package/dist/chunk-FPTWVCPN.js +53 -0
  28. package/dist/chunk-FPTWVCPN.js.map +1 -0
  29. package/dist/chunk-GCNRXAKH.js +37 -0
  30. package/dist/chunk-GCNRXAKH.js.map +1 -0
  31. package/dist/chunk-GYURWCIQ.js +1985 -0
  32. package/dist/chunk-GYURWCIQ.js.map +1 -0
  33. package/dist/chunk-HZMY3TT4.js +244 -0
  34. package/dist/chunk-HZMY3TT4.js.map +1 -0
  35. package/dist/chunk-ID5QJYF5.js +50 -0
  36. package/dist/chunk-ID5QJYF5.js.map +1 -0
  37. package/dist/chunk-JAN34G6S.js +552 -0
  38. package/dist/chunk-JAN34G6S.js.map +1 -0
  39. package/dist/chunk-K3UNLQ7W.js +118 -0
  40. package/dist/chunk-K3UNLQ7W.js.map +1 -0
  41. package/dist/chunk-KDY5N6J4.js +82 -0
  42. package/dist/chunk-KDY5N6J4.js.map +1 -0
  43. package/dist/chunk-KOZUNIIE.js +413 -0
  44. package/dist/chunk-KOZUNIIE.js.map +1 -0
  45. package/dist/chunk-KS72RZHX.js +30 -0
  46. package/dist/chunk-KS72RZHX.js.map +1 -0
  47. package/dist/chunk-LD5SMIB3.js +32 -0
  48. package/dist/chunk-LD5SMIB3.js.map +1 -0
  49. package/dist/chunk-OHCPV2NT.js +86 -0
  50. package/dist/chunk-OHCPV2NT.js.map +1 -0
  51. package/dist/chunk-OYWFPIHF.js +115 -0
  52. package/dist/chunk-OYWFPIHF.js.map +1 -0
  53. package/dist/chunk-POZER3MQ.js +407 -0
  54. package/dist/chunk-POZER3MQ.js.map +1 -0
  55. package/dist/chunk-RTRVBEIB.js +56 -0
  56. package/dist/chunk-RTRVBEIB.js.map +1 -0
  57. package/dist/chunk-RTVRUNYR.js +29 -0
  58. package/dist/chunk-RTVRUNYR.js.map +1 -0
  59. package/dist/chunk-SS7ELMJ7.js +406 -0
  60. package/dist/chunk-SS7ELMJ7.js.map +1 -0
  61. package/dist/chunk-STCCNLPC.js +160 -0
  62. package/dist/chunk-STCCNLPC.js.map +1 -0
  63. package/dist/chunk-SVLNF434.js +261 -0
  64. package/dist/chunk-SVLNF434.js.map +1 -0
  65. package/dist/chunk-UYFOLI2X.js +24 -0
  66. package/dist/chunk-UYFOLI2X.js.map +1 -0
  67. package/dist/chunk-VAN4WW3F.js +67 -0
  68. package/dist/chunk-VAN4WW3F.js.map +1 -0
  69. package/dist/chunk-WOMHL23C.js +369 -0
  70. package/dist/chunk-WOMHL23C.js.map +1 -0
  71. package/dist/chunk-WWVD5DR5.js +120 -0
  72. package/dist/chunk-WWVD5DR5.js.map +1 -0
  73. package/dist/chunk-XG2YMCJW.js +201 -0
  74. package/dist/chunk-XG2YMCJW.js.map +1 -0
  75. package/dist/chunk-XIJNE67Y.js +210 -0
  76. package/dist/chunk-XIJNE67Y.js.map +1 -0
  77. package/dist/chunk-Y6UJOUE5.js +44 -0
  78. package/dist/chunk-Y6UJOUE5.js.map +1 -0
  79. package/dist/chunk-YUO6SKJD.js +348 -0
  80. package/dist/chunk-YUO6SKJD.js.map +1 -0
  81. package/dist/components--hjBMTnz.d.ts +120 -0
  82. package/dist/components-B29WHGQN.d.ts +39 -0
  83. package/dist/components-BWG1GkZA.d.ts +20 -0
  84. package/dist/components-XCpL6IYt.d.ts +18 -0
  85. package/dist/components-qWwOsvwh.d.ts +43 -0
  86. package/dist/cooldown.d.ts +116 -0
  87. package/dist/cooldown.js +20 -0
  88. package/dist/cooldown.js.map +1 -0
  89. package/dist/coordinators/boundary-ricochet-3d.d.ts +19 -0
  90. package/dist/coordinators/boundary-ricochet-3d.js +8 -0
  91. package/dist/coordinators/boundary-ricochet-3d.js.map +1 -0
  92. package/dist/coordinators/boundary-ricochet.d.ts +34 -0
  93. package/dist/coordinators/boundary-ricochet.js +8 -0
  94. package/dist/coordinators/boundary-ricochet.js.map +1 -0
  95. package/dist/coordinators/first-person-shooter.d.ts +35 -0
  96. package/dist/coordinators/first-person-shooter.js +9 -0
  97. package/dist/coordinators/first-person-shooter.js.map +1 -0
  98. package/dist/coordinators/multidirectional-space-shooter.d.ts +27 -0
  99. package/dist/coordinators/multidirectional-space-shooter.js +10 -0
  100. package/dist/coordinators/multidirectional-space-shooter.js.map +1 -0
  101. package/dist/coordinators/top-down-shooter.d.ts +27 -0
  102. package/dist/coordinators/top-down-shooter.js +10 -0
  103. package/dist/coordinators/top-down-shooter.js.map +1 -0
  104. package/dist/core.d.ts +25 -0
  105. package/dist/core.js +327 -0
  106. package/dist/core.js.map +1 -0
  107. package/dist/destructible-3d.d.ts +42 -0
  108. package/dist/destructible-3d.js +13 -0
  109. package/dist/destructible-3d.js.map +1 -0
  110. package/dist/destructible-prebake.d.ts +28 -0
  111. package/dist/destructible-prebake.js +23 -0
  112. package/dist/destructible-prebake.js.map +1 -0
  113. package/dist/entity-types-CmtQ-IBp.d.ts +15 -0
  114. package/dist/first-person-perspective-C9Mptl0-.d.ts +23 -0
  115. package/dist/first-person.d.ts +204 -0
  116. package/dist/first-person.js +27 -0
  117. package/dist/first-person.js.map +1 -0
  118. package/dist/index.d.ts +40 -0
  119. package/dist/index.js +263 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/jumper-2d.d.ts +113 -0
  122. package/dist/jumper-2d.js +27 -0
  123. package/dist/jumper-2d.js.map +1 -0
  124. package/dist/jumper-3d.d.ts +164 -0
  125. package/dist/jumper-3d.js +29 -0
  126. package/dist/jumper-3d.js.map +1 -0
  127. package/dist/moveable-BCRpjAQb.d.ts +176 -0
  128. package/dist/particle-emitter/presets.d.ts +46 -0
  129. package/dist/particle-emitter/presets.js +15 -0
  130. package/dist/particle-emitter/presets.js.map +1 -0
  131. package/dist/particle-emitter.d.ts +78 -0
  132. package/dist/particle-emitter.js +15 -0
  133. package/dist/particle-emitter.js.map +1 -0
  134. package/dist/payload-BQzu-oY_.d.ts +89 -0
  135. package/dist/platformer-3d.d.ts +347 -0
  136. package/dist/platformer-3d.js +23 -0
  137. package/dist/platformer-3d.js.map +1 -0
  138. package/dist/ricochet-2d.d.ts +274 -0
  139. package/dist/ricochet-2d.js +16 -0
  140. package/dist/ricochet-2d.js.map +1 -0
  141. package/dist/ricochet-3d.d.ts +116 -0
  142. package/dist/ricochet-3d.js +16 -0
  143. package/dist/ricochet-3d.js.map +1 -0
  144. package/dist/runtime-2d.d.ts +2 -0
  145. package/dist/runtime-2d.js +32 -0
  146. package/dist/runtime-2d.js.map +1 -0
  147. package/dist/runtime-pong.d.ts +92 -0
  148. package/dist/runtime-pong.js +38 -0
  149. package/dist/runtime-pong.js.map +1 -0
  150. package/dist/screen-visibility.d.ts +74 -0
  151. package/dist/screen-visibility.js +10 -0
  152. package/dist/screen-visibility.js.map +1 -0
  153. package/dist/screen-wrap.d.ts +86 -0
  154. package/dist/screen-wrap.js +16 -0
  155. package/dist/screen-wrap.js.map +1 -0
  156. package/dist/shooter-2d.d.ts +77 -0
  157. package/dist/shooter-2d.js +12 -0
  158. package/dist/shooter-2d.js.map +1 -0
  159. package/dist/spark-DDlIg1nM.d.ts +148 -0
  160. package/dist/sync-state-machine-CZyspBpj.d.ts +16 -0
  161. package/dist/thruster.d.ts +132 -0
  162. package/dist/thruster.js +26 -0
  163. package/dist/thruster.js.map +1 -0
  164. package/dist/top-down-movement.d.ts +40 -0
  165. package/dist/top-down-movement.js +20 -0
  166. package/dist/top-down-movement.js.map +1 -0
  167. package/dist/use-behavior-D_82jAL3.d.ts +13 -0
  168. package/dist/vector-Bm65-FOG.d.ts +45 -0
  169. package/dist/world-boundary-2d.d.ts +141 -0
  170. package/dist/world-boundary-2d.js +21 -0
  171. package/dist/world-boundary-2d.js.map +1 -0
  172. package/dist/world-boundary-3d.d.ts +75 -0
  173. package/dist/world-boundary-3d.js +21 -0
  174. package/dist/world-boundary-3d.js.map +1 -0
  175. package/package.json +161 -0
@@ -0,0 +1,75 @@
1
+ import { a as BehaviorDescriptor } from './behavior-system-DYbx-x_-.js';
2
+ import { S as SyncStateMachine } from './sync-state-machine-CZyspBpj.js';
3
+ import 'typescript-fsm';
4
+
5
+ interface Bounds3DPoint {
6
+ x: number;
7
+ y: number;
8
+ z: number;
9
+ }
10
+ interface Bounds3DPadding {
11
+ x: number;
12
+ y: number;
13
+ z: number;
14
+ }
15
+ type Bounds3DPaddingInput = number | Partial<Bounds3DPadding> | undefined;
16
+
17
+ type WorldBoundary3DHit = 'top' | 'bottom' | 'left' | 'right' | 'back' | 'front';
18
+ type WorldBoundary3DHits = Record<WorldBoundary3DHit, boolean>;
19
+ interface WorldBoundary3DPosition extends Bounds3DPoint {
20
+ }
21
+ interface WorldBoundary3DBounds {
22
+ top: number;
23
+ bottom: number;
24
+ left: number;
25
+ right: number;
26
+ back: number;
27
+ front: number;
28
+ }
29
+ declare enum WorldBoundary3DState {
30
+ Inside = "inside",
31
+ Touching = "touching"
32
+ }
33
+ declare enum WorldBoundary3DEvent {
34
+ EnterInside = "enter-inside",
35
+ TouchBoundary = "touch-boundary"
36
+ }
37
+ declare function computeWorldBoundary3DHits(position: WorldBoundary3DPosition, bounds: WorldBoundary3DBounds, padding?: Bounds3DPaddingInput): WorldBoundary3DHits;
38
+ declare function hasAnyWorldBoundary3DHit(hits: WorldBoundary3DHits): boolean;
39
+ declare class WorldBoundary3DFSM {
40
+ readonly machine: SyncStateMachine<WorldBoundary3DState, WorldBoundary3DEvent, never>;
41
+ private lastHits;
42
+ private lastPosition;
43
+ private lastClampedPosition;
44
+ private lastUpdatedAtMs;
45
+ constructor();
46
+ getState(): WorldBoundary3DState;
47
+ getLastHits(): WorldBoundary3DHits;
48
+ getMovement(moveX: number, moveY: number, moveZ: number): {
49
+ moveX: number;
50
+ moveY: number;
51
+ moveZ: number;
52
+ };
53
+ getLastPosition(): WorldBoundary3DPosition | null;
54
+ getLastClampedPosition(): WorldBoundary3DPosition | null;
55
+ getLastUpdatedAtMs(): number | null;
56
+ update(position: WorldBoundary3DPosition, bounds: WorldBoundary3DBounds, padding?: Bounds3DPaddingInput): WorldBoundary3DHits;
57
+ private dispatch;
58
+ }
59
+
60
+ interface WorldBoundary3DOptions {
61
+ boundaries: WorldBoundary3DBounds;
62
+ padding?: Bounds3DPaddingInput;
63
+ }
64
+ interface WorldBoundary3DHandle {
65
+ getLastHits(): WorldBoundary3DHits | null;
66
+ getMovement(moveX: number, moveY: number, moveZ: number): {
67
+ moveX: number;
68
+ moveY: number;
69
+ moveZ: number;
70
+ };
71
+ getLastClampedPosition(): WorldBoundary3DPosition | null;
72
+ }
73
+ declare const WorldBoundary3DBehavior: BehaviorDescriptor<WorldBoundary3DOptions, WorldBoundary3DHandle, unknown>;
74
+
75
+ export { WorldBoundary3DBehavior, type WorldBoundary3DBounds, WorldBoundary3DEvent, WorldBoundary3DFSM, type WorldBoundary3DHandle, type WorldBoundary3DHit, type WorldBoundary3DHits, type WorldBoundary3DOptions, type WorldBoundary3DPosition, WorldBoundary3DState, computeWorldBoundary3DHits, hasAnyWorldBoundary3DHit };
@@ -0,0 +1,21 @@
1
+ import {
2
+ WorldBoundary3DBehavior,
3
+ WorldBoundary3DEvent,
4
+ WorldBoundary3DFSM,
5
+ WorldBoundary3DState,
6
+ computeWorldBoundary3DHits,
7
+ hasAnyWorldBoundary3DHit
8
+ } from "./chunk-4I6E6DGV.js";
9
+ import "./chunk-OHCPV2NT.js";
10
+ import "./chunk-Y6UJOUE5.js";
11
+ import "./chunk-4URF65BR.js";
12
+ import "./chunk-EZNCCO4L.js";
13
+ export {
14
+ WorldBoundary3DBehavior,
15
+ WorldBoundary3DEvent,
16
+ WorldBoundary3DFSM,
17
+ WorldBoundary3DState,
18
+ computeWorldBoundary3DHits,
19
+ hasAnyWorldBoundary3DHit
20
+ };
21
+ //# sourceMappingURL=world-boundary-3d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json ADDED
@@ -0,0 +1,161 @@
1
+ {
2
+ "name": "@zylem/behaviors",
3
+ "version": "0.2.0",
4
+ "type": "module",
5
+ "description": "Tree-shakable Zylem behavior descriptors, systems, coordinators, and runtime-agnostic behavior helpers.",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+ssh://git@github.com/zylem-game-lib/behaviors.git"
10
+ },
11
+ "engines": {
12
+ "node": ">=22.12.0",
13
+ "pnpm": ">=10.32.1"
14
+ },
15
+ "sideEffects": false,
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.ts",
22
+ "import": "./dist/index.js"
23
+ },
24
+ "./core": {
25
+ "types": "./dist/core.d.ts",
26
+ "import": "./dist/core.js"
27
+ },
28
+ "./destructible-prebake": {
29
+ "types": "./dist/destructible-prebake.d.ts",
30
+ "import": "./dist/destructible-prebake.js"
31
+ },
32
+ "./cooldown": {
33
+ "types": "./dist/cooldown.d.ts",
34
+ "import": "./dist/cooldown.js"
35
+ },
36
+ "./destructible-3d": {
37
+ "types": "./dist/destructible-3d.d.ts",
38
+ "import": "./dist/destructible-3d.js"
39
+ },
40
+ "./first-person": {
41
+ "types": "./dist/first-person.d.ts",
42
+ "import": "./dist/first-person.js"
43
+ },
44
+ "./jumper-2d": {
45
+ "types": "./dist/jumper-2d.d.ts",
46
+ "import": "./dist/jumper-2d.js"
47
+ },
48
+ "./jumper-3d": {
49
+ "types": "./dist/jumper-3d.d.ts",
50
+ "import": "./dist/jumper-3d.js"
51
+ },
52
+ "./particle-emitter": {
53
+ "types": "./dist/particle-emitter.d.ts",
54
+ "import": "./dist/particle-emitter.js"
55
+ },
56
+ "./particle-emitter/presets": {
57
+ "types": "./dist/particle-emitter/presets.d.ts",
58
+ "import": "./dist/particle-emitter/presets.js"
59
+ },
60
+ "./platformer-3d": {
61
+ "types": "./dist/platformer-3d.d.ts",
62
+ "import": "./dist/platformer-3d.js"
63
+ },
64
+ "./ricochet-2d": {
65
+ "types": "./dist/ricochet-2d.d.ts",
66
+ "import": "./dist/ricochet-2d.js"
67
+ },
68
+ "./ricochet-3d": {
69
+ "types": "./dist/ricochet-3d.d.ts",
70
+ "import": "./dist/ricochet-3d.js"
71
+ },
72
+ "./runtime-2d": {
73
+ "types": "./dist/runtime-2d.d.ts",
74
+ "import": "./dist/runtime-2d.js"
75
+ },
76
+ "./runtime-pong": {
77
+ "types": "./dist/runtime-pong.d.ts",
78
+ "import": "./dist/runtime-pong.js"
79
+ },
80
+ "./screen-visibility": {
81
+ "types": "./dist/screen-visibility.d.ts",
82
+ "import": "./dist/screen-visibility.js"
83
+ },
84
+ "./screen-wrap": {
85
+ "types": "./dist/screen-wrap.d.ts",
86
+ "import": "./dist/screen-wrap.js"
87
+ },
88
+ "./shooter-2d": {
89
+ "types": "./dist/shooter-2d.d.ts",
90
+ "import": "./dist/shooter-2d.js"
91
+ },
92
+ "./thruster": {
93
+ "types": "./dist/thruster.d.ts",
94
+ "import": "./dist/thruster.js"
95
+ },
96
+ "./top-down-movement": {
97
+ "types": "./dist/top-down-movement.d.ts",
98
+ "import": "./dist/top-down-movement.js"
99
+ },
100
+ "./world-boundary-2d": {
101
+ "types": "./dist/world-boundary-2d.d.ts",
102
+ "import": "./dist/world-boundary-2d.js"
103
+ },
104
+ "./world-boundary-3d": {
105
+ "types": "./dist/world-boundary-3d.d.ts",
106
+ "import": "./dist/world-boundary-3d.js"
107
+ },
108
+ "./coordinators/boundary-ricochet": {
109
+ "types": "./dist/coordinators/boundary-ricochet.d.ts",
110
+ "import": "./dist/coordinators/boundary-ricochet.js"
111
+ },
112
+ "./coordinators/boundary-ricochet-3d": {
113
+ "types": "./dist/coordinators/boundary-ricochet-3d.d.ts",
114
+ "import": "./dist/coordinators/boundary-ricochet-3d.js"
115
+ },
116
+ "./coordinators/first-person-shooter": {
117
+ "types": "./dist/coordinators/first-person-shooter.d.ts",
118
+ "import": "./dist/coordinators/first-person-shooter.js"
119
+ },
120
+ "./coordinators/multidirectional-space-shooter": {
121
+ "types": "./dist/coordinators/multidirectional-space-shooter.d.ts",
122
+ "import": "./dist/coordinators/multidirectional-space-shooter.js"
123
+ },
124
+ "./coordinators/top-down-shooter": {
125
+ "types": "./dist/coordinators/top-down-shooter.d.ts",
126
+ "import": "./dist/coordinators/top-down-shooter.js"
127
+ },
128
+ "./package.json": "./package.json"
129
+ },
130
+ "scripts": {
131
+ "build": "tsup",
132
+ "dev": "tsup --watch",
133
+ "typecheck": "tsc --noEmit",
134
+ "test": "vitest --reporter=verbose"
135
+ },
136
+ "dependencies": {
137
+ "@dgreenheck/three-pinata": "^2.0.1",
138
+ "comlink": "^4.4.2",
139
+ "three.quarks": "^0.17.0",
140
+ "typescript-fsm": "^1.6.0",
141
+ "valtio": "^2.1.7"
142
+ },
143
+ "peerDependencies": {
144
+ "@dimforge/rapier3d-compat": "^0.11.2",
145
+ "three": "^0.180.0"
146
+ },
147
+ "devDependencies": {
148
+ "@dimforge/rapier3d-compat": "^0.11.2",
149
+ "@types/node": "^20.19.13",
150
+ "@types/three": "0.171.0",
151
+ "happy-dom": "^18.0.1",
152
+ "tsup": "^8.5.1",
153
+ "typescript": "5.8.2",
154
+ "vitest": "^4.0.9"
155
+ },
156
+ "packageManager": "pnpm@10.33.0",
157
+ "publishConfig": {
158
+ "access": "restricted",
159
+ "registry": "https://registry.npmjs.org/"
160
+ }
161
+ }