@typeonce/ritmo-math 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/Aabb.d.ts +2 -1
- package/dist/Aabb.d.ts.map +1 -1
- package/dist/Aabb.js.map +1 -1
- package/dist/InputAxis.d.ts +5 -2
- package/dist/InputAxis.d.ts.map +1 -1
- package/dist/InputAxis.js +8 -2
- package/dist/InputAxis.js.map +1 -1
- package/dist/Scalar.d.ts +10 -6
- package/dist/Scalar.d.ts.map +1 -1
- package/dist/Scalar.js +6 -3
- package/dist/Scalar.js.map +1 -1
- package/dist/Vector2.d.ts +2 -1
- package/dist/Vector2.d.ts.map +1 -1
- package/dist/Vector2.js.map +1 -1
- package/package.json +2 -2
- package/src/Aabb.ts +2 -1
- package/src/InputAxis.ts +8 -2
- package/src/Scalar.ts +10 -6
- package/src/Vector2.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @typeonce/ritmo-math
|
|
2
2
|
|
|
3
|
+
## 0.12.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [04a2ac7]
|
|
8
|
+
- @typeonce/ritmo@0.12.0
|
|
9
|
+
|
|
10
|
+
## 0.11.0
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- e46f284: **Documentation pass over every public module.** Every export has JSDoc saying what it is for and which neighbouring API to use instead; examples that no longer compiled (`Session.make` without `hostClock`, `Replay.session`, the `Pointer` rebind) are fixed; `Debug.Lint` lists every lint code the runtime emits. The `stale-target` lint's fix now names `queries.x.getHandle(handle)`.
|
|
15
|
+
- Updated dependencies [778301a]
|
|
16
|
+
- Updated dependencies [866bcff]
|
|
17
|
+
- Updated dependencies [e46f284]
|
|
18
|
+
- @typeonce/ritmo@0.11.0
|
|
19
|
+
|
|
3
20
|
## 0.10.0
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
package/dist/Aabb.d.ts
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* In game code this is the natural helper for collision volumes, trigger
|
|
9
9
|
* regions, camera bounds, and spatial authored data that should stay validated
|
|
10
|
-
* and immutable after construction.
|
|
10
|
+
* and immutable after construction. For the per-frame collision tests of
|
|
11
|
+
* `Collide2` and `FlowField`, build a plain `Box2` (edge form) from it once.
|
|
11
12
|
*
|
|
12
13
|
* @example
|
|
13
14
|
* ```ts
|
package/dist/Aabb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Aabb.d.ts","sourceRoot":"","sources":["../src/Aabb.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Aabb.d.ts","sourceRoot":"","sources":["../src/Aabb.ts"],"names":[],"mappings":"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"}
|
package/dist/Aabb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Aabb.js","sourceRoot":"","sources":["../src/Aabb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Aabb.js","sourceRoot":"","sources":["../src/Aabb.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AA6C9C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,MAAM,GAA6C,QAAQ,CAAC,MAAM,CAAA;AAC/E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAA+D,QAAQ,CAAC,MAAM,CAAA;AACjG;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAA8B,QAAQ,CAAC,MAAM,CAAA;AAChE;;;;GAIG;AACH,MAAM,CAAC,MAAM,EAAE,GAAoC,QAAQ,CAAC,EAAE,CAAA;AAC9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAoC,QAAQ,CAAC,QAAQ,CAAA;AAC1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAgC,QAAQ,CAAC,IAAI,CAAA;AAC9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAkC,QAAQ,CAAC,IAAI,CAAA;AAChE;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAkC,QAAQ,CAAC,KAAK,CAAA;AAClE;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAAkC,QAAQ,CAAC,GAAG,CAAA;AAC9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkC,QAAQ,CAAC,MAAM,CAAA;AACpE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAA2C,QAAQ,CAAC,UAAU,CAAA;AACrF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA2C,QAAQ,CAAC,oBAAoB,CAAA;AACzG;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2C,QAAQ,CAAC,kBAAkB,CAAA;AACrG;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAiD,QAAQ,CAAC,SAAS,CAAA"}
|
package/dist/InputAxis.d.ts
CHANGED
|
@@ -12,7 +12,9 @@ export type Axis = -1 | 0 | 1;
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const axis: (negativePressed: boolean, positivePressed: boolean) => Axis;
|
|
14
14
|
/**
|
|
15
|
-
* Builds a normalized movement vector from four directional booleans
|
|
15
|
+
* Builds a normalized movement vector from four directional booleans, in
|
|
16
|
+
* screen coordinates: `up` is negative `y`, `right` positive `x`. Opposite
|
|
17
|
+
* presses cancel, and diagonals have length 1.
|
|
16
18
|
*
|
|
17
19
|
* @example
|
|
18
20
|
* ```ts
|
|
@@ -33,7 +35,8 @@ export declare const vectorFromAxes: (input: {
|
|
|
33
35
|
readonly down: boolean;
|
|
34
36
|
}) => Vector2.Vector2;
|
|
35
37
|
/**
|
|
36
|
-
* Builds a normalized movement vector from two explicit axis values
|
|
38
|
+
* Builds a normalized movement vector from two explicit axis values
|
|
39
|
+
* (diagonals have length 1).
|
|
37
40
|
*
|
|
38
41
|
* @category Vector Helpers
|
|
39
42
|
*/
|
package/dist/InputAxis.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputAxis.d.ts","sourceRoot":"","sources":["../src/InputAxis.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InputAxis.d.ts","sourceRoot":"","sources":["../src/InputAxis.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAA;AAE5C;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE7B;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,KAAK,IAAoB,CAAA;AAC/F;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,EAAE,CAC3B,KAAK,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KACrG,OAAO,CAAC,OAAiC,CAAA;AAC9C;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC,OAAuC,CAAA"}
|
package/dist/InputAxis.js
CHANGED
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
* Reach for it in the gap between host input sampling and ECS simulation:
|
|
10
10
|
* capture raw button state in the host, normalize it here, then write the
|
|
11
11
|
* resulting axes or vectors into resources/components for systems to consume.
|
|
12
|
+
* With `@typeonce/ritmo-browser`, bind movement as a vector action instead
|
|
13
|
+
* (`Keyboard.vector`, `Gamepad.vector`), which already reports the merged
|
|
14
|
+
* vector; use this module for booleans from another source.
|
|
12
15
|
*
|
|
13
16
|
* @example
|
|
14
17
|
* ```ts
|
|
@@ -41,7 +44,9 @@ import * as internal from "./internal/inputAxis.js";
|
|
|
41
44
|
*/
|
|
42
45
|
export const axis = internal.axis;
|
|
43
46
|
/**
|
|
44
|
-
* Builds a normalized movement vector from four directional booleans
|
|
47
|
+
* Builds a normalized movement vector from four directional booleans, in
|
|
48
|
+
* screen coordinates: `up` is negative `y`, `right` positive `x`. Opposite
|
|
49
|
+
* presses cancel, and diagonals have length 1.
|
|
45
50
|
*
|
|
46
51
|
* @example
|
|
47
52
|
* ```ts
|
|
@@ -57,7 +62,8 @@ export const axis = internal.axis;
|
|
|
57
62
|
*/
|
|
58
63
|
export const vectorFromAxes = internal.vectorFromAxes;
|
|
59
64
|
/**
|
|
60
|
-
* Builds a normalized movement vector from two explicit axis values
|
|
65
|
+
* Builds a normalized movement vector from two explicit axis values
|
|
66
|
+
* (diagonals have length 1).
|
|
61
67
|
*
|
|
62
68
|
* @category Vector Helpers
|
|
63
69
|
*/
|
package/dist/InputAxis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputAxis.js","sourceRoot":"","sources":["../src/InputAxis.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"InputAxis.js","sourceRoot":"","sources":["../src/InputAxis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AAUnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAiE,QAAQ,CAAC,IAAI,CAAA;AAC/F;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,cAAc,GAEJ,QAAQ,CAAC,cAAc,CAAA;AAC9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA0D,QAAQ,CAAC,oBAAoB,CAAA"}
|
package/dist/Scalar.d.ts
CHANGED
|
@@ -14,11 +14,12 @@
|
|
|
14
14
|
* ```ts
|
|
15
15
|
* // Validate raw numbers before geometry or gameplay code relies on them.
|
|
16
16
|
* const speed = Scalar.Finite.result(12)
|
|
17
|
-
* const
|
|
18
|
-
*
|
|
17
|
+
* const min = Scalar.Finite.result(0)
|
|
18
|
+
* const max = Scalar.Finite.result(8)
|
|
19
|
+
* if (!speed.ok || !min.ok || !max.ok) return
|
|
19
20
|
*
|
|
20
21
|
* // Operate on the branded values after the boundary has been crossed.
|
|
21
|
-
* const clamped = Scalar.clamp(speed.value,
|
|
22
|
+
* const clamped = Scalar.clamp(speed.value, min.value, max.value)
|
|
22
23
|
* ```
|
|
23
24
|
*
|
|
24
25
|
* @module Scalar
|
|
@@ -86,19 +87,22 @@ export type InterpolationError = {
|
|
|
86
87
|
readonly end: number;
|
|
87
88
|
};
|
|
88
89
|
/**
|
|
89
|
-
* Constructor for {@link Finite}
|
|
90
|
+
* Constructor for {@link Finite}: `result` (explicit failure), `option`
|
|
91
|
+
* (`null` on failure), and `is` (a type guard).
|
|
90
92
|
*
|
|
91
93
|
* @category Constructors
|
|
92
94
|
*/
|
|
93
95
|
export declare const Finite: Brand.Constructor<Finite, number, Error>;
|
|
94
96
|
/**
|
|
95
|
-
* Constructor for {@link NonNegative}
|
|
97
|
+
* Constructor for {@link NonNegative}: `result` (explicit failure), `option`
|
|
98
|
+
* (`null` on failure), and `is` (a type guard).
|
|
96
99
|
*
|
|
97
100
|
* @category Constructors
|
|
98
101
|
*/
|
|
99
102
|
export declare const NonNegative: Brand.Constructor<NonNegative, number, Error>;
|
|
100
103
|
/**
|
|
101
|
-
* Constructor for {@link Positive}
|
|
104
|
+
* Constructor for {@link Positive}: `result` (explicit failure), `option`
|
|
105
|
+
* (`null` on failure), and `is` (a type guard).
|
|
102
106
|
*
|
|
103
107
|
* @category Constructors
|
|
104
108
|
*/
|
package/dist/Scalar.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scalar.d.ts","sourceRoot":"","sources":["../src/Scalar.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Scalar.d.ts","sourceRoot":"","sources":["../src/Scalar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAEnD,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAC3D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AACrE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAE/D;;;;GAIG;AACH,MAAM,MAAM,KAAK,GACb;IAAE,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAElE;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,0CAAkB,CAAA;AACrC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,+CAAuB,CAAA;AAC/C;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,4CAAoB,CAAA;AAEzC;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAuB,CAAA;AACxF;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAsB,CAAA;AACzF;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,KAAK,MAA0B,CAAA;AAC7G;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,CACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAwB,CAAA;AACrE;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAkB,CAAA;AAE/D;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA"}
|
package/dist/Scalar.js
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import * as internal from "./internal/scalar.js";
|
|
2
2
|
/**
|
|
3
|
-
* Constructor for {@link Finite}
|
|
3
|
+
* Constructor for {@link Finite}: `result` (explicit failure), `option`
|
|
4
|
+
* (`null` on failure), and `is` (a type guard).
|
|
4
5
|
*
|
|
5
6
|
* @category Constructors
|
|
6
7
|
*/
|
|
7
8
|
export const Finite = internal.Finite;
|
|
8
9
|
/**
|
|
9
|
-
* Constructor for {@link NonNegative}
|
|
10
|
+
* Constructor for {@link NonNegative}: `result` (explicit failure), `option`
|
|
11
|
+
* (`null` on failure), and `is` (a type guard).
|
|
10
12
|
*
|
|
11
13
|
* @category Constructors
|
|
12
14
|
*/
|
|
13
15
|
export const NonNegative = internal.NonNegative;
|
|
14
16
|
/**
|
|
15
|
-
* Constructor for {@link Positive}
|
|
17
|
+
* Constructor for {@link Positive}: `result` (explicit failure), `option`
|
|
18
|
+
* (`null` on failure), and `is` (a type guard).
|
|
16
19
|
*
|
|
17
20
|
* @category Constructors
|
|
18
21
|
*/
|
package/dist/Scalar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scalar.js","sourceRoot":"","sources":["../src/Scalar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Scalar.js","sourceRoot":"","sources":["../src/Scalar.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAkDhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;AACrC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;AAC/C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;AAEzC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAwD,QAAQ,CAAC,KAAK,CAAA;AACxF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,IAAI,GAA2D,QAAQ,CAAC,IAAI,CAAA;AACzF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAuE,QAAQ,CAAC,QAAQ,CAAA;AAC7G;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAIyB,QAAQ,CAAC,WAAW,CAAA;AACrE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAM+B,QAAQ,CAAC,KAAK,CAAA"}
|
package/dist/Vector2.d.ts
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* This is the common math value that game code threads through position,
|
|
8
8
|
* velocity, input direction, camera motion, and collision helpers. Use it when
|
|
9
9
|
* vectors should stay explicitly validated and reusable across ECS and helper
|
|
10
|
-
* modules.
|
|
10
|
+
* modules. For per-frame arithmetic on numbers already known to be sane, use
|
|
11
|
+
* `Vec2` (a `Vector2` is a `Vec2`, so it passes without conversion).
|
|
11
12
|
*
|
|
12
13
|
* @example
|
|
13
14
|
* ```ts
|
package/dist/Vector2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../src/Vector2.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../src/Vector2.ts"],"names":[],"mappings":"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"}
|
package/dist/Vector2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vector2.js","sourceRoot":"","sources":["../src/Vector2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Vector2.js","sourceRoot":"","sources":["../src/Vector2.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AAuDjD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,MAAM,GAAgD,QAAQ,CAAC,MAAM,CAAA;AAClF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkE,QAAQ,CAAC,MAAM,CAAA;AACpG;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAiC,QAAQ,CAAC,MAAM,CAAA;AACnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,EAAE,GAAuC,QAAQ,CAAC,EAAE,CAAA;AACjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAA6B,QAAQ,CAAC,KAAK,CAAA;AAC7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkF,QAAQ,CAAC,UAAU,CAAA;AAC5H;;;;GAIG;AACH,MAAM,CAAC,MAAM,CAAC,GAAuC,QAAQ,CAAC,CAAC,CAAA;AAC/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,CAAC,GAAuC,QAAQ,CAAC,CAAC,CAAA;AAC/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAkB,QAAQ,CAAC,IAAI,CAAA;AAChD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,GAAG,GAA+C,QAAQ,CAAC,GAAG,CAAA;AAC3E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAA+C,QAAQ,CAAC,QAAQ,CAAA;AACrF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAwD,QAAQ,CAAC,KAAK,CAAA;AACxF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAA4C,QAAQ,CAAC,aAAa,CAAA;AAC5F;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAA4C,QAAQ,CAAC,MAAM,CAAA;AAC9E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,SAAS,GAAgE,QAAQ,CAAC,SAAS,CAAA;AACxG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiC,QAAQ,CAAC,eAAe,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typeonce/ritmo-math",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Validated math values and hot-path game helpers (collision, spatial grid, flow field, random) for Ritmo games",
|
|
5
5
|
"author": "Sandro Maglione",
|
|
6
6
|
"license": "MIT",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"provenance": true
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@typeonce/ritmo": "^0.
|
|
50
|
+
"@typeonce/ritmo": "^0.12.0"
|
|
51
51
|
},
|
|
52
52
|
"engines": {
|
|
53
53
|
"node": ">=20"
|
package/src/Aabb.ts
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* In game code this is the natural helper for collision volumes, trigger
|
|
9
9
|
* regions, camera bounds, and spatial authored data that should stay validated
|
|
10
|
-
* and immutable after construction.
|
|
10
|
+
* and immutable after construction. For the per-frame collision tests of
|
|
11
|
+
* `Collide2` and `FlowField`, build a plain `Box2` (edge form) from it once.
|
|
11
12
|
*
|
|
12
13
|
* @example
|
|
13
14
|
* ```ts
|
package/src/InputAxis.ts
CHANGED
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
* Reach for it in the gap between host input sampling and ECS simulation:
|
|
10
10
|
* capture raw button state in the host, normalize it here, then write the
|
|
11
11
|
* resulting axes or vectors into resources/components for systems to consume.
|
|
12
|
+
* With `@typeonce/ritmo-browser`, bind movement as a vector action instead
|
|
13
|
+
* (`Keyboard.vector`, `Gamepad.vector`), which already reports the merged
|
|
14
|
+
* vector; use this module for booleans from another source.
|
|
12
15
|
*
|
|
13
16
|
* @example
|
|
14
17
|
* ```ts
|
|
@@ -50,7 +53,9 @@ export type Axis = -1 | 0 | 1
|
|
|
50
53
|
*/
|
|
51
54
|
export const axis: (negativePressed: boolean, positivePressed: boolean) => Axis = internal.axis
|
|
52
55
|
/**
|
|
53
|
-
* Builds a normalized movement vector from four directional booleans
|
|
56
|
+
* Builds a normalized movement vector from four directional booleans, in
|
|
57
|
+
* screen coordinates: `up` is negative `y`, `right` positive `x`. Opposite
|
|
58
|
+
* presses cancel, and diagonals have length 1.
|
|
54
59
|
*
|
|
55
60
|
* @example
|
|
56
61
|
* ```ts
|
|
@@ -68,7 +73,8 @@ export const vectorFromAxes: (
|
|
|
68
73
|
input: { readonly left: boolean; readonly right: boolean; readonly up: boolean; readonly down: boolean }
|
|
69
74
|
) => Vector2.Vector2 = internal.vectorFromAxes
|
|
70
75
|
/**
|
|
71
|
-
* Builds a normalized movement vector from two explicit axis values
|
|
76
|
+
* Builds a normalized movement vector from two explicit axis values
|
|
77
|
+
* (diagonals have length 1).
|
|
72
78
|
*
|
|
73
79
|
* @category Vector Helpers
|
|
74
80
|
*/
|
package/src/Scalar.ts
CHANGED
|
@@ -14,11 +14,12 @@
|
|
|
14
14
|
* ```ts
|
|
15
15
|
* // Validate raw numbers before geometry or gameplay code relies on them.
|
|
16
16
|
* const speed = Scalar.Finite.result(12)
|
|
17
|
-
* const
|
|
18
|
-
*
|
|
17
|
+
* const min = Scalar.Finite.result(0)
|
|
18
|
+
* const max = Scalar.Finite.result(8)
|
|
19
|
+
* if (!speed.ok || !min.ok || !max.ok) return
|
|
19
20
|
*
|
|
20
21
|
* // Operate on the branded values after the boundary has been crossed.
|
|
21
|
-
* const clamped = Scalar.clamp(speed.value,
|
|
22
|
+
* const clamped = Scalar.clamp(speed.value, min.value, max.value)
|
|
22
23
|
* ```
|
|
23
24
|
*
|
|
24
25
|
* @module Scalar
|
|
@@ -85,19 +86,22 @@ export type InterpolationError = {
|
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
/**
|
|
88
|
-
* Constructor for {@link Finite}
|
|
89
|
+
* Constructor for {@link Finite}: `result` (explicit failure), `option`
|
|
90
|
+
* (`null` on failure), and `is` (a type guard).
|
|
89
91
|
*
|
|
90
92
|
* @category Constructors
|
|
91
93
|
*/
|
|
92
94
|
export const Finite = internal.Finite
|
|
93
95
|
/**
|
|
94
|
-
* Constructor for {@link NonNegative}
|
|
96
|
+
* Constructor for {@link NonNegative}: `result` (explicit failure), `option`
|
|
97
|
+
* (`null` on failure), and `is` (a type guard).
|
|
95
98
|
*
|
|
96
99
|
* @category Constructors
|
|
97
100
|
*/
|
|
98
101
|
export const NonNegative = internal.NonNegative
|
|
99
102
|
/**
|
|
100
|
-
* Constructor for {@link Positive}
|
|
103
|
+
* Constructor for {@link Positive}: `result` (explicit failure), `option`
|
|
104
|
+
* (`null` on failure), and `is` (a type guard).
|
|
101
105
|
*
|
|
102
106
|
* @category Constructors
|
|
103
107
|
*/
|
package/src/Vector2.ts
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* This is the common math value that game code threads through position,
|
|
8
8
|
* velocity, input direction, camera motion, and collision helpers. Use it when
|
|
9
9
|
* vectors should stay explicitly validated and reusable across ECS and helper
|
|
10
|
-
* modules.
|
|
10
|
+
* modules. For per-frame arithmetic on numbers already known to be sane, use
|
|
11
|
+
* `Vec2` (a `Vector2` is a `Vec2`, so it passes without conversion).
|
|
11
12
|
*
|
|
12
13
|
* @example
|
|
13
14
|
* ```ts
|