@starktma/minecraft-utils 1.3.111 → 1.4.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 (56) hide show
  1. package/README.md +56 -0
  2. package/dist/constants.d.ts +26 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +34 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/database/database.d.ts +8 -5
  7. package/dist/database/database.d.ts.map +1 -1
  8. package/dist/database/database.js +40 -38
  9. package/dist/database/database.js.map +1 -1
  10. package/dist/database/index.d.ts +1 -3
  11. package/dist/database/index.d.ts.map +1 -1
  12. package/dist/database/index.js +1 -2
  13. package/dist/database/index.js.map +1 -1
  14. package/dist/game-state-machine/branch.js +2 -2
  15. package/dist/game-state-machine/branch.js.map +1 -1
  16. package/dist/game-state-machine/index.d.ts +1 -2
  17. package/dist/game-state-machine/index.d.ts.map +1 -1
  18. package/dist/game-state-machine/index.js +1 -2
  19. package/dist/game-state-machine/index.js.map +1 -1
  20. package/dist/game-state-machine/stateMachine.d.ts +6 -9
  21. package/dist/game-state-machine/stateMachine.d.ts.map +1 -1
  22. package/dist/game-state-machine/stateMachine.js +72 -86
  23. package/dist/game-state-machine/stateMachine.js.map +1 -1
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/math/index.d.ts +63 -59
  29. package/dist/math/index.d.ts.map +1 -1
  30. package/dist/math/index.js +150 -76
  31. package/dist/math/index.js.map +1 -1
  32. package/dist/minecraft/effectsAPI.d.ts +69 -0
  33. package/dist/minecraft/effectsAPI.d.ts.map +1 -0
  34. package/dist/minecraft/effectsAPI.js +441 -0
  35. package/dist/minecraft/effectsAPI.js.map +1 -0
  36. package/dist/minecraft/index.d.ts +7 -3
  37. package/dist/minecraft/index.d.ts.map +1 -1
  38. package/dist/minecraft/index.js +45 -27
  39. package/dist/minecraft/index.js.map +1 -1
  40. package/dist/minecraft/projectileAPI.d.ts +23 -0
  41. package/dist/minecraft/projectileAPI.d.ts.map +1 -0
  42. package/dist/minecraft/projectileAPI.js +148 -0
  43. package/dist/minecraft/projectileAPI.js.map +1 -0
  44. package/dist/minecraft/structuresAPI.d.ts +10 -0
  45. package/dist/minecraft/structuresAPI.d.ts.map +1 -0
  46. package/dist/minecraft/structuresAPI.js +61 -0
  47. package/dist/minecraft/structuresAPI.js.map +1 -0
  48. package/package.json +7 -3
  49. package/dist/database/constants.d.ts +0 -2
  50. package/dist/database/constants.d.ts.map +0 -1
  51. package/dist/database/constants.js +0 -2
  52. package/dist/database/constants.js.map +0 -1
  53. package/dist/game-state-machine/constants.d.ts +0 -2
  54. package/dist/game-state-machine/constants.d.ts.map +0 -1
  55. package/dist/game-state-machine/constants.js +0 -2
  56. package/dist/game-state-machine/constants.js.map +0 -1
@@ -1,30 +1,3 @@
1
- /**
2
- * Converts an angle in degrees to radians.
3
- *
4
- * @param degrees - The angle in degrees to be converted.
5
- * @returns The angle in radians.
6
- */
7
- export function toRadians(degrees) {
8
- return degrees * (Math.PI / 180);
9
- }
10
- /**
11
- * Converts an angle in radians to degrees.
12
- *
13
- * @param radians - The angle in radians to be converted.
14
- * @returns The angle in degrees.
15
- */
16
- export function calculateDistance(position1, position2) {
17
- return Math.sqrt(Math.pow(position1.x - position2.x, 2) + Math.pow(position1.y - position2.y, 2) + Math.pow(position1.z - position2.z, 2));
18
- }
19
- /**
20
- * Converts an angle in radians to degrees.
21
- *
22
- * @param radians - The angle in radians to be converted.
23
- * @returns The angle in degrees.
24
- */
25
- export function toDegrees(radians) {
26
- return radians * (180 / Math.PI);
27
- }
28
1
  /**
29
2
  * Converts a hex color string to an RGBA object.
30
3
  *
@@ -63,46 +36,6 @@ export function hexToRgba(hex, stripAlpha = false) {
63
36
  export function clamp(value, min, max) {
64
37
  return Math.max(min, Math.min(max, value));
65
38
  }
66
- /**
67
- * Converts an angle in degrees to its signed equivalent in the range [-180, 180].
68
- *
69
- * @param angle - The angle in degrees to be converted.
70
- * @returns The signed angle in degrees, normalized to the range [-180, 180].
71
- */
72
- export function toSigned(angle) {
73
- const wrapped = ((angle % 360) + 360) % 360;
74
- return wrapped > 180 ? wrapped - 360 : wrapped;
75
- }
76
- /**
77
- * Converts an angle in degrees to its unsigned equivalent in the range [0, 360].
78
- *
79
- * @param angle - The angle in degrees to be converted.
80
- * @returns The unsigned angle in degrees, normalized to the range [0, 360].
81
- */
82
- export function toUnsigned(angle) {
83
- return ((angle % 360) + 360) % 360;
84
- }
85
- /**
86
- * Calculates the shortest signed arc between two angles in degrees.
87
- *
88
- * @param from - The starting angle in degrees.
89
- * @param to - The target angle in degrees.
90
- * @returns The shortest arc in degrees from `from` to `to`.
91
- */
92
- export function shortestArc(from, to) {
93
- return -toSigned((to - from + 360) % 360);
94
- }
95
- /**
96
- * Checks if two positions are equal within a specified tolerance.
97
- *
98
- * @param a - The first position.
99
- * @param b - The second position.
100
- * @param tolerance - The tolerance for comparison (default is 0.5).
101
- * @returns `true` if the positions are equal within the tolerance, otherwise `false`.
102
- */
103
- export function positionsEqual(a, b, tolerance = 0.5) {
104
- return Math.abs(a.x - b.x) < tolerance && Math.abs(a.y - b.y) < tolerance && Math.abs(a.z - b.z) < tolerance;
105
- }
106
39
  /**
107
40
  * Checks if a value is within a specified range.
108
41
  *
@@ -117,21 +50,162 @@ export function inRange(value, min, max) {
117
50
  /**
118
51
  * A utility class for performing operations on 3D vectors.
119
52
  */
120
- export class VectorOperations {
53
+ export class Vector {
121
54
  static apply(v, fn) {
122
- return { x: fn(v.x), y: fn(v.y), z: fn(v.z) };
55
+ const result = { x: fn(v.x) };
56
+ if ("y" in v)
57
+ result.y = fn(v.y);
58
+ if ("z" in v)
59
+ result.z = fn(v.z);
60
+ return result;
61
+ }
62
+ static add(v1, ...vectors) {
63
+ const result = Vector.copy(v1);
64
+ for (const v of vectors) {
65
+ result.x += v.x;
66
+ if ("y" in result && "y" in v) {
67
+ result.y += v.y;
68
+ }
69
+ if ("z" in result && "z" in v) {
70
+ result.z += v.z;
71
+ }
72
+ }
73
+ return result;
74
+ }
75
+ static subtract(v1, ...vectors) {
76
+ const result = Vector.copy(v1);
77
+ for (const v of vectors) {
78
+ result.x -= v.x;
79
+ if ("y" in result && "y" in v) {
80
+ result.y -= v.y;
81
+ }
82
+ if ("z" in result && "z" in v) {
83
+ result.z -= v.z;
84
+ }
85
+ }
86
+ return result;
87
+ }
88
+ static scalarDivide(v, scalar) {
89
+ return Vector.apply(v, (component) => component / scalar);
90
+ }
91
+ static scalarMultiply(v, scalar) {
92
+ return Vector.apply(v, (component) => component * scalar);
93
+ }
94
+ static dot(v1, v2) {
95
+ let result = v1.x * v2.x;
96
+ if ("y" in v1 && "y" in v2)
97
+ result += v1.y * v2.y;
98
+ if ("z" in v1 && "z" in v2)
99
+ result += v1.z * v2.z;
100
+ return result;
123
101
  }
124
- static add(v1, v2) {
125
- return { x: v1.x + v2.x, y: v1.y + v2.y, z: v1.z + v2.z };
102
+ static magnitude(v) {
103
+ let sumOfSquares = v.x * v.x;
104
+ if ("y" in v)
105
+ sumOfSquares += v.y * v.y;
106
+ if ("z" in v)
107
+ sumOfSquares += v.z * v.z;
108
+ return Math.sqrt(sumOfSquares);
126
109
  }
127
- static subtract(v1, v2) {
128
- return { x: v1.x - v2.x, y: v1.y - v2.y, z: v1.z - v2.z };
110
+ static normalize(v) {
111
+ const mag = Vector.magnitude(v);
112
+ if (mag === 0)
113
+ return v;
114
+ return Vector.scalarDivide(v, mag);
129
115
  }
130
- static multiply(v, scalar) {
131
- return VectorOperations.apply(v, (component) => component * scalar);
116
+ static distance(v1, v2) {
117
+ const diff = Vector.subtract(v1, v2);
118
+ return Vector.magnitude(diff);
132
119
  }
133
120
  static stringify(v) {
134
- return `${v.x} ${v.y} ${v.z}`;
121
+ let result = `${v.x}`;
122
+ if ("y" in v)
123
+ result += ` ${v.y}`;
124
+ if ("z" in v)
125
+ result += ` ${v.z}`;
126
+ return result;
127
+ }
128
+ static rotateVector(vector, rotationDegrees) {
129
+ const rad = Trigonometry.radians(rotationDegrees);
130
+ const sin = Math.sin(rad);
131
+ const cos = Math.cos(rad);
132
+ return {
133
+ x: vector.x * cos + vector.z * sin,
134
+ y: vector.y,
135
+ z: vector.x * sin + vector.z * cos,
136
+ };
137
+ }
138
+ static new(x, y, z) {
139
+ if (z === undefined) {
140
+ return { x, y };
141
+ }
142
+ else {
143
+ return { x, y, z };
144
+ }
145
+ }
146
+ static copy(vector) {
147
+ return { ...vector };
148
+ }
149
+ }
150
+ export class Trigonometry {
151
+ static fromAngle(rotation) {
152
+ if (typeof rotation === "number") {
153
+ const rad = Trigonometry.radians(rotation);
154
+ return { x: -Math.sin(rad), y: Math.cos(rad) };
155
+ }
156
+ else {
157
+ const rad = Trigonometry.radians(rotation.y);
158
+ const pitchRad = Trigonometry.radians(rotation.x);
159
+ return {
160
+ x: -Math.sin(rad) * Math.cos(pitchRad),
161
+ y: Math.sin(pitchRad),
162
+ z: Math.cos(rad) * Math.cos(pitchRad),
163
+ };
164
+ }
165
+ }
166
+ /** Converts an angle in degrees to radians.
167
+ *
168
+ * @param degrees - The angle in degrees to be converted.
169
+ * @returns The angle in radians.
170
+ */
171
+ static radians(degrees) {
172
+ return degrees * (Math.PI / 180);
173
+ }
174
+ /**
175
+ * Converts an angle in radians to degrees.
176
+ *
177
+ * @param radians - The angle in radians to be converted.
178
+ * @returns The angle in degrees.
179
+ */
180
+ static degrees(radians) {
181
+ return radians * (180 / Math.PI);
182
+ }
183
+ /**
184
+ * Converts an angle in degrees to its signed equivalent in the range [-180, 180].
185
+ * @param angle - The angle in degrees to be converted.
186
+ * @returns The signed angle in degrees, normalized to the range [-180, 180].
187
+ */
188
+ static signedAngle(degrees) {
189
+ const wrapped = ((degrees % 360) + 360) % 360;
190
+ return wrapped > 180 ? wrapped - 360 : wrapped;
191
+ }
192
+ /**
193
+ * Converts an angle in degrees to its unsigned equivalent in the range [0, 360].
194
+ *
195
+ * @param angle - The angle in degrees to be converted.
196
+ * @returns The unsigned angle in degrees, normalized to the range [0, 360].
197
+ */
198
+ static unsignedAngle(degrees) {
199
+ return ((degrees % 360) + 360) % 360;
200
+ }
201
+ /** Calculates the shortest arc between two angles in degrees.
202
+ *
203
+ * @param from - The starting angle in degrees.
204
+ * @param to - The target angle in degrees.
205
+ * @returns The shortest arc from the starting angle to the target angle in degrees.
206
+ */
207
+ static shortestArc(from, to) {
208
+ return -this.signedAngle((to - from + 360) % 360);
135
209
  }
136
210
  }
137
211
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/math/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/math/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { Entity, RGBA, StartupEvent } from "@minecraft/server";
2
+ import { SimpleObject } from "../database";
3
+ interface EffectObject extends SimpleObject {
4
+ id: string;
5
+ namespace: string;
6
+ effectType: string;
7
+ amplifier: number;
8
+ duration: number;
9
+ color: RGBA;
10
+ }
11
+ interface EffectConfig {
12
+ effectType: string;
13
+ color: RGBA;
14
+ sounds?: {
15
+ ambient?: string;
16
+ start?: string;
17
+ end?: string;
18
+ };
19
+ particleType?: string;
20
+ handler: (entity: Entity, effect: EffectObject) => void;
21
+ }
22
+ interface PotionConfig {
23
+ effectKey: string;
24
+ namespace: string;
25
+ effectId: number;
26
+ handler: (entity: Entity, amplifier: number, duration: number, color: RGBA) => void;
27
+ splashRange?: number;
28
+ lingeringMaxRadius?: number;
29
+ lingeringLifetime?: number;
30
+ lingeringDurationMultiplier?: number;
31
+ }
32
+ declare class EffectManager {
33
+ private static instance;
34
+ private effectConfigs;
35
+ private potionConfigs;
36
+ private areaEffectClouds;
37
+ private cloudIdCounter;
38
+ private trackedEntities;
39
+ private entityDatabases;
40
+ static getInstance(): EffectManager;
41
+ private constructor();
42
+ private getEntityDatabase;
43
+ private getEffect;
44
+ private getAllEffects;
45
+ private hasActiveEffects;
46
+ private debug;
47
+ registerEffect(config: EffectConfig): {
48
+ addEffect: (entity: Entity, amplifier: number, durationTicks: number) => void;
49
+ removeEffect: (entity: Entity) => void;
50
+ applyEffect: (entity: Entity, effect: EffectObject) => void;
51
+ };
52
+ addEffect(entity: Entity, effectType: string, amplifier: number, duration: number): void;
53
+ removeEffect(entity: Entity, effectType: string): void;
54
+ removeAllEffects(entity: Entity): void;
55
+ hasEffect(entity: Entity, effectType: string): boolean;
56
+ getEffects(entity: Entity): EffectObject[];
57
+ registerPotion(config: PotionConfig): {
58
+ handler: (entity: Entity, amplifier: number, duration: number, color: RGBA) => void;
59
+ };
60
+ start(startup?: StartupEvent, debug?: boolean): void;
61
+ private handleProjectileHit;
62
+ private handleSplash;
63
+ private handleLingering;
64
+ private updateCloud;
65
+ private getColorFromEntity;
66
+ }
67
+ declare const effectManager: EffectManager;
68
+ export { EffectManager, effectManager, EffectObject, EffectConfig, PotionConfig };
69
+ //# sourceMappingURL=effectsAPI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effectsAPI.d.ts","sourceRoot":"","sources":["../../src/minecraft/effectsAPI.ts"],"names":[],"mappings":"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"}