@starktma/minecraft-utils 1.3.25 → 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 (33) hide show
  1. package/dist/database/database.d.ts +6 -4
  2. package/dist/database/database.d.ts.map +1 -1
  3. package/dist/database/database.js +24 -11
  4. package/dist/database/database.js.map +1 -1
  5. package/dist/game-state-machine/database.d.ts +1 -1
  6. package/dist/game-state-machine/database.d.ts.map +1 -1
  7. package/dist/game-state-machine/database.js +1 -1
  8. package/dist/game-state-machine/database.js.map +1 -1
  9. package/dist/math/index.d.ts +63 -59
  10. package/dist/math/index.d.ts.map +1 -1
  11. package/dist/math/index.js +150 -76
  12. package/dist/math/index.js.map +1 -1
  13. package/dist/minecraft/effectsAPI.d.ts +44 -57
  14. package/dist/minecraft/effectsAPI.d.ts.map +1 -1
  15. package/dist/minecraft/effectsAPI.js +354 -351
  16. package/dist/minecraft/effectsAPI.js.map +1 -1
  17. package/dist/minecraft/index.d.ts +7 -7
  18. package/dist/minecraft/index.d.ts.map +1 -1
  19. package/dist/minecraft/index.js +45 -31
  20. package/dist/minecraft/index.js.map +1 -1
  21. package/dist/minecraft/projectileAPI.d.ts +21 -59
  22. package/dist/minecraft/projectileAPI.d.ts.map +1 -1
  23. package/dist/minecraft/projectileAPI.js +139 -137
  24. package/dist/minecraft/projectileAPI.js.map +1 -1
  25. package/dist/minecraft/structuresAPI.d.ts +10 -0
  26. package/dist/minecraft/structuresAPI.d.ts.map +1 -0
  27. package/dist/minecraft/structuresAPI.js +61 -0
  28. package/dist/minecraft/structuresAPI.js.map +1 -0
  29. package/package.json +5 -1
  30. package/dist/minecraft/potionAPI.d.ts +0 -74
  31. package/dist/minecraft/potionAPI.d.ts.map +0 -1
  32. package/dist/minecraft/potionAPI.js +0 -228
  33. package/dist/minecraft/potionAPI.js.map +0 -1
@@ -1,82 +1,69 @@
1
- import { Entity, RGBA } from "@minecraft/server";
2
- interface EffectObject {
1
+ import { Entity, RGBA, StartupEvent } from "@minecraft/server";
2
+ import { SimpleObject } from "../database";
3
+ interface EffectObject extends SimpleObject {
3
4
  id: string;
4
- entityId: string;
5
+ namespace: string;
5
6
  effectType: string;
6
7
  amplifier: number;
7
8
  duration: number;
8
9
  color: RGBA;
9
10
  }
10
- interface EffectSounds {
11
- ambient?: string;
12
- start?: string;
13
- end?: string;
14
- }
15
11
  interface EffectConfig {
16
12
  effectType: string;
17
13
  color: RGBA;
18
- sounds?: EffectSounds;
14
+ sounds?: {
15
+ ambient?: string;
16
+ start?: string;
17
+ end?: string;
18
+ };
19
19
  particleType?: string;
20
- handler: EffectHandler;
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;
21
31
  }
22
- type EffectHandler = (entity: Entity, effect: EffectObject) => void;
23
32
  declare class EffectManager {
24
- private configs;
25
- private entityDB;
26
- static instance: EffectManager;
33
+ private static instance;
34
+ private effectConfigs;
35
+ private potionConfigs;
36
+ private areaEffectClouds;
37
+ private cloudIdCounter;
38
+ private trackedEntities;
39
+ private entityDatabases;
27
40
  static getInstance(): EffectManager;
28
41
  private constructor();
29
42
  private getEntityDatabase;
30
- /**
31
- * Track an entity as having effects
32
- * @param entity - The entity to track
33
- */
34
- private trackEntity;
35
- /**
36
- * Stop tracking an entity (when it has no more effects)
37
- * @param entity - The entity to stop tracking
38
- */
39
- private untrackEntity;
40
- /**
41
- * Check if an entity has any effect tags
42
- * @param entity - The entity to check
43
- * @returns True if entity has any effect tags
44
- */
45
- private entityHasEffectTags;
46
- /**
47
- * Parse effect data from entity tags regardless of namespace
48
- * @param entity - The entity to get effects from
49
- * @returns Array of effect objects parsed from all effect tags
50
- */
51
- private getEffectsFromTags;
52
- /**
53
- * Parse ALL effect data from entity tags regardless of namespace
54
- * @param entity - The entity to get effects from
55
- * @returns Array of effect objects parsed from all effect tags
56
- */
57
- private getAllEffectsFromTags;
58
- /**
59
- * Register a effect effect with full configuration
60
- * @param config - Complete effect configuration including effect type, color, sounds, particle type, and handler
61
- * @returns Helper functions for adding, removing, and applying the effect
62
- */
43
+ private getEffect;
44
+ private getAllEffects;
45
+ private hasActiveEffects;
46
+ private debug;
63
47
  registerEffect(config: EffectConfig): {
64
- addEffect: (entity: Entity, amplifier: number, duration: number) => void;
48
+ addEffect: (entity: Entity, amplifier: number, durationTicks: number) => void;
65
49
  removeEffect: (entity: Entity) => void;
66
- applyEffect: EffectHandler;
50
+ applyEffect: (entity: Entity, effect: EffectObject) => void;
67
51
  };
68
52
  addEffect(entity: Entity, effectType: string, amplifier: number, duration: number): void;
69
53
  removeEffect(entity: Entity, effectType: string): void;
70
54
  removeAllEffects(entity: Entity): void;
71
- extendEffect(entity: Entity, effectType: string, additionalDuration: number): boolean;
72
55
  hasEffect(entity: Entity, effectType: string): boolean;
73
56
  getEffects(entity: Entity): EffectObject[];
74
- /**
75
- * Debug function to display all active effects for an entity in the action bar
76
- * @param entity - The entity to display effects for (must be a Player)
77
- */
78
- debugShowEffects(entity: Entity): void;
79
- start(): void;
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;
80
66
  }
81
- export { EffectManager, EffectObject, EffectConfig, EffectSounds };
67
+ declare const effectManager: EffectManager;
68
+ export { EffectManager, effectManager, EffectObject, EffectConfig, PotionConfig };
82
69
  //# sourceMappingURL=effectsAPI.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"effectsAPI.d.ts","sourceRoot":"","sources":["../../src/minecraft/effectsAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA6B,IAAI,EAAiB,MAAM,mBAAmB,CAAC;AAK3F,UAAU,YAAY;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,CAAC;CACZ;AAqBD,UAAU,YAAY;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,UAAU,YAAY;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;CACvB;AAED,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;AAEpE,cAAM,aAAa;IAClB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAqC;IACrD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;IAE/B,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC,OAAO;IAEP,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAWnB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,YAAY;4BAIb,MAAM,aAAa,MAAM,YAAY,MAAM;+BAGxC,MAAM;;;IAO/B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAwCxF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IA6BtD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAkCtC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO;IAiDrF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAKtD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IAI1C;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA6EtC,KAAK,IAAI,IAAI;CAiGb;AAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"effectsAPI.d.ts","sourceRoot":"","sources":["../../src/minecraft/effectsAPI.ts"],"names":[],"mappings":"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"}