@block_factory/lib 0.0.4 → 0.0.6

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 (35) hide show
  1. package/_module/BlockFactory.ts +4 -1
  2. package/_module/DataTypes.ts +10 -0
  3. package/_module/Framework/EntityTasks.ts +164 -0
  4. package/_module/Framework/ItemTasks.ts +157 -0
  5. package/_module/Framework/PlayerTasks.ts +125 -0
  6. package/_module/Framework/Threads.ts +72 -0
  7. package/_module/util/Signal.ts +73 -7
  8. package/_module/util/Wrapper/IEntity.ts +6 -5
  9. package/_module/util/Wrapper/IPlayer.ts +10 -4
  10. package/_types/_module/BlockFactory.d.ts +4 -1
  11. package/_types/_module/BlockFactory.d.ts.map +1 -1
  12. package/_types/_module/DataTypes.d.ts +10 -0
  13. package/_types/_module/DataTypes.d.ts.map +1 -0
  14. package/_types/_module/Framework/EntityTasks.d.ts +37 -0
  15. package/_types/_module/Framework/EntityTasks.d.ts.map +1 -0
  16. package/_types/_module/Framework/ItemTasks.d.ts +59 -0
  17. package/_types/_module/Framework/ItemTasks.d.ts.map +1 -0
  18. package/_types/_module/Framework/PlayerTasks.d.ts +28 -0
  19. package/_types/_module/Framework/PlayerTasks.d.ts.map +1 -0
  20. package/_types/_module/Framework/Threads.d.ts +22 -0
  21. package/_types/_module/Framework/Threads.d.ts.map +1 -0
  22. package/_types/_module/Types.d.ts +10 -0
  23. package/_types/_module/Types.d.ts.map +1 -0
  24. package/_types/_module/util/Signal.d.ts +63 -4
  25. package/_types/_module/util/Signal.d.ts.map +1 -1
  26. package/_types/_module/util/Wrapper/IEntity.d.ts +4 -4
  27. package/_types/_module/util/Wrapper/IEntity.d.ts.map +1 -1
  28. package/_types/_module/util/Wrapper/IPlayer.d.ts +4 -3
  29. package/_types/_module/util/Wrapper/IPlayer.d.ts.map +1 -1
  30. package/index.js +506 -60
  31. package/package.json +36 -34
  32. package/typedoc.json +6 -0
  33. package/_module/sys/Threads.ts +0 -43
  34. package/_types/_module/sys/Threads.d.ts +0 -16
  35. package/_types/_module/sys/Threads.d.ts.map +0 -1
@@ -1,6 +1,7 @@
1
- import { EntityInventoryComponent, Player } from "@minecraft/server";
1
+ import { EntityInventoryComponent, PlayAnimationOptions, Player, PlayerSoundOptions, system, TicksPerSecond } from "@minecraft/server";
2
2
  import { ContainerWrapper, Inventory } from "./Container";
3
3
  import { System } from "../System";
4
+ import { Animation, Sound } from "../../DataTypes";
4
5
 
5
6
  export type IPlayer = IPlayerWrapper & Player;
6
7
 
@@ -17,7 +18,6 @@ export class IPlayerWrapper {
17
18
  }
18
19
 
19
20
  //======================== Interal ========================
20
- public isAlive: boolean = false;
21
21
 
22
22
  public get inventory(): Inventory {
23
23
  const i = this.source.getComponent(
@@ -27,8 +27,14 @@ export class IPlayerWrapper {
27
27
  return ContainerWrapper.wrap(i.container);
28
28
  }
29
29
 
30
- public test(): void {
31
- this.source.sendMessage(`${this.source.name} was tested`);
30
+ public async playSoundAsync(sound:Sound, options: PlayerSoundOptions): Promise<void>{
31
+ this.source.playSound(sound.id, options);
32
+ await system.waitTicks(sound.length * TicksPerSecond);
33
+ }
34
+
35
+ public async playAnimationAsync(animation: Animation, options: PlayAnimationOptions): Promise<void> {
36
+ this.source.playAnimation(animation.id, options);
37
+ await system.waitTicks(animation.length * TicksPerSecond);
32
38
  }
33
39
 
34
40
  }
@@ -12,5 +12,8 @@ export { type IFormRegistration, RegisterForm } from "./util/Forms/FormRegistry"
12
12
  export { Inventory, ContainerWrapper } from "./util/Wrapper/Container";
13
13
  export { type IEntity, IEntityWrapper } from "./util/Wrapper/IEntity";
14
14
  export { type IPlayer, IPlayerWrapper } from "./util/Wrapper/IPlayer";
15
- export { _THREAD_ } from "./sys/Threads";
15
+ export { Thread } from "./Framework/Threads";
16
+ export { PlayerHandler } from "./Framework/PlayerTasks";
17
+ export { EntityHandler, type EntityEmissionEvent } from "./Framework/EntityTasks";
18
+ export { ItemHandler, type ItemRegistration, type OnItemHeldEvent, type OnItemUnheldEvent, type WhileHoldingItemEvent } from "./Framework/ItemTasks";
16
19
  //# sourceMappingURL=BlockFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockFactory.d.ts","sourceRoot":"","sources":["../../_module/BlockFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9H,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC/K,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,KAAK,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEjF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,KAAK,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,KAAK,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"BlockFactory.d.ts","sourceRoot":"","sources":["../../_module/BlockFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9H,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC/K,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,KAAK,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEjF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,KAAK,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,KAAK,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAG,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export type Sound = {
2
+ id: string;
3
+ length: number;
4
+ };
5
+ export type Animation = {
6
+ id: string;
7
+ length: number;
8
+ loop?: boolean;
9
+ };
10
+ //# sourceMappingURL=DataTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTypes.d.ts","sourceRoot":"","sources":["../../_module/DataTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAA"}
@@ -0,0 +1,37 @@
1
+ import { Entity } from "@minecraft/server";
2
+ import { Signal } from "../util/Signal";
3
+ import { IEntity } from "../util/Wrapper/IEntity";
4
+ export type EntityEmissionEvent = {
5
+ iEntity: IEntity;
6
+ parms: any;
7
+ };
8
+ declare class SingletonEntityHandler {
9
+ onEntityEmission: Signal<EntityEmissionEvent>;
10
+ private PACK_ID;
11
+ private GLOBAL_MEMORY_ID;
12
+ private readonly scriptEventSignal;
13
+ private readonly loadEventSignal;
14
+ private readonly spawnEventSignal;
15
+ private readonly removeBeforeEventSignal;
16
+ private readonly EM_INDEX;
17
+ private readonly EM_KEYS;
18
+ private readonly SEARCH_TYPES;
19
+ private _started;
20
+ private _wired;
21
+ registerEntity(typeId: string | string[]): void;
22
+ start(packId: string): void;
23
+ stop(): void;
24
+ private onWorldLoad;
25
+ private processScriptEvents;
26
+ private isValidType;
27
+ private onEntitySpawned;
28
+ private onEntityRemovedBefore;
29
+ private reloadEntityMemory;
30
+ private persistKeys;
31
+ saveEntityInMemory(entity: Entity): boolean;
32
+ deleteEntityInMemory(entity: Entity): boolean;
33
+ getEntitiesInMemory(): Entity[];
34
+ }
35
+ export declare const EntityHandler: SingletonEntityHandler;
36
+ export {};
37
+ //# sourceMappingURL=EntityTasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityTasks.d.ts","sourceRoot":"","sources":["../../../_module/Framework/EntityTasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA6P,MAAM,mBAAmB,CAAC;AAEtS,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAkB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,MAAM,mBAAmB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,cAAM,sBAAsB;IACjB,gBAAgB,8BAAqC;IAC5D,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,gBAAgB,CAAoB;IAE5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoF;IACtH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0D;IAC1F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8D;IAC/F,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAkE;IAE1G,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAkB;IAEzB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAK/C,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO3B,IAAI,IAAI,IAAI;IAkBnB,OAAO,CAAC,WAAW,CAYjB;IAEF,OAAO,CAAC,mBAAmB,CAazB;IAMF,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe,CAIrB;IAEF,OAAO,CAAC,qBAAqB,CAI3B;IAMF,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,WAAW;IAIZ,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAS3C,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAY7C,mBAAmB,IAAI,MAAM,EAAE;CAGzC;AAED,eAAO,MAAM,aAAa,wBAA+B,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { Signal } from "../util/Signal.js";
2
+ import { ItemStack, Player } from "@minecraft/server";
3
+ export type ItemRegistration = {
4
+ typeId: string;
5
+ emitWhileHolding?: boolean;
6
+ };
7
+ export type WhileHoldingItemEvent = {
8
+ player: Player;
9
+ itemStack: ItemStack;
10
+ };
11
+ export type OnItemHeldEvent = {
12
+ player: Player;
13
+ itemStack: ItemStack;
14
+ };
15
+ export type OnItemUnheldEvent = {
16
+ player: Player;
17
+ itemStack: ItemStack | undefined;
18
+ };
19
+ declare class SingletonItemHandler {
20
+ whileHoldingItemEvent: Signal<WhileHoldingItemEvent>;
21
+ onItemHeldEvent: Signal<OnItemHeldEvent>;
22
+ onItemUnheldEvent: Signal<OnItemUnheldEvent>;
23
+ private PACK_ID;
24
+ private readonly IM_INDEX;
25
+ private readonly loadEventSignal;
26
+ private readonly useBeforeSignal;
27
+ private readonly useAfterSignal;
28
+ private readonly completeUseSignal;
29
+ private readonly releaseUseSignal;
30
+ private readonly startUseSignal;
31
+ private readonly startUseOnSignal;
32
+ private readonly stopUseSignal;
33
+ private readonly stopUseOnSignal;
34
+ private readonly inventoryItemChangeSignal;
35
+ private readonly hotbarChangeSignal;
36
+ private _started;
37
+ private _wired;
38
+ registerItem(itemRegistration: ItemRegistration | ItemRegistration[]): void;
39
+ start(packId: string): void;
40
+ stop(): void;
41
+ private onWorldLoad;
42
+ private onUseBefore;
43
+ private onUseAfter;
44
+ private onCompleteUse;
45
+ private onReleaseUse;
46
+ private onStartUse;
47
+ private onStartUseOn;
48
+ private onStopUse;
49
+ private onStopUseOn;
50
+ private onInventoryItemChange;
51
+ private holdIndex;
52
+ private onHotbarChange;
53
+ private setNewHold;
54
+ private releaseHold;
55
+ private isValidType;
56
+ }
57
+ export declare const ItemHandler: SingletonItemHandler;
58
+ export {};
59
+ //# sourceMappingURL=ItemTasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemTasks.d.ts","sourceRoot":"","sources":["../../../_module/Framework/ItemTasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAwH,SAAS,EAAwT,MAAM,EAA2O,MAAM,mBAAmB,CAAC;AAE3sB,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC;AAOrF,cAAM,oBAAoB;IACf,qBAAqB,gCAAuC;IAC5D,eAAe,0BAAiC;IAChD,iBAAiB,4BAAmC;IAE3D,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0D;IAC1F,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwD;IACxF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsD;IACrF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsE;IACxG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoE;IACrG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgE;IAC/F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoE;IACrG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8D;IAC5F,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkE;IAClG,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CACM;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CACkB;IAErD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IAEhB,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,IAAI;IAK3E,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO3B,IAAI,IAAI,IAAI;IAwBnB,OAAO,CAAC,WAAW,CAkBjB;IAGF,OAAO,CAAC,WAAW,CAGjB;IACF,OAAO,CAAC,UAAU,CAAqE;IACvF,OAAO,CAAC,aAAa,CAAgF;IACrG,OAAO,CAAC,YAAY,CAA8E;IAClG,OAAO,CAAC,UAAU,CAA0E;IAC5F,OAAO,CAAC,YAAY,CAA8E;IAClG,OAAO,CAAC,SAAS,CAAwE;IACzF,OAAO,CAAC,WAAW,CAA4E;IAC/F,OAAO,CAAC,qBAAqB,CAE3B;IAEF,OAAO,CAAC,SAAS,CAAsD;IAEvE,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,WAAW;CAItB;AAED,eAAO,MAAM,WAAW,sBAA6B,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { IPlayer } from "../util/Wrapper/IPlayer";
2
+ import { Player } from "@minecraft/server";
3
+ declare class SingletonPlayerHandler {
4
+ private GLOBAL_MEMORY_ID;
5
+ private readonly loadEventSignal;
6
+ private readonly playerSpawnSignal;
7
+ private readonly playerLeaveBeforeSignal;
8
+ private readonly PR_INDEX;
9
+ private readonly PR_KEYS;
10
+ private _started;
11
+ private _wired;
12
+ start(): void;
13
+ stop(): void;
14
+ private onWorldLoad;
15
+ private onSystemLoad;
16
+ private onPlayerSpawned;
17
+ private onPlayerLeaveBefore;
18
+ hasPlayer(playerId: string): boolean;
19
+ private reloadPlayerMemory;
20
+ private persistKeys;
21
+ savePlayerInMemory(player: Player): boolean;
22
+ deletePlayerInMemory(player: Player): boolean;
23
+ getPlayersInMemory(): Player[];
24
+ getIPlayersInMemory(): IPlayer[];
25
+ }
26
+ export declare const PlayerHandler: SingletonPlayerHandler;
27
+ export {};
28
+ //# sourceMappingURL=PlayerTasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerTasks.d.ts","sourceRoot":"","sources":["../../../_module/Framework/PlayerTasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAmK,MAAM,mBAAmB,CAAC;AAE5M,cAAM,sBAAsB;IACxB,OAAO,CAAC,gBAAgB,CAAoB;IAE5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0D;IAC1F,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8D;IAChG,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAgE;IAExG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAkB;IAEzB,KAAK,IAAI,IAAI;IAOb,IAAI,IAAI,IAAI;IAYnB,OAAO,CAAC,WAAW,CAGjB;IAEF,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,eAAe,CAIrB;IAEF,OAAO,CAAC,mBAAmB,CAGzB;IAEK,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQ3C,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,WAAW;IAIZ,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAS3C,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAY7C,kBAAkB,IAAI,MAAM,EAAE;IAI9B,mBAAmB,IAAI,OAAO,EAAE;CAM1C;AAED,eAAO,MAAM,aAAa,wBAA+B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Signal } from "../util/Signal";
2
+ export type ThreadConfig = {
3
+ mainRate?: number;
4
+ lateRate?: number;
5
+ };
6
+ declare class SingletonThreadManager {
7
+ readonly MAIN: Signal<number>;
8
+ readonly LATE: Signal<void>;
9
+ private _mainRate;
10
+ private _lateRate;
11
+ private _MAIN_ID;
12
+ private _LATE_ID;
13
+ private _delta;
14
+ private _started;
15
+ configure(cfg: ThreadConfig): void;
16
+ start(): void;
17
+ stop(): void;
18
+ private createDeltaTimer;
19
+ }
20
+ export declare const Thread: SingletonThreadManager;
21
+ export {};
22
+ //# sourceMappingURL=Threads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Threads.d.ts","sourceRoot":"","sources":["../../../_module/Framework/Threads.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,cAAM,sBAAsB;IACxB,SAAgB,IAAI,iBAAwB;IAC5C,SAAgB,IAAI,eAAsB;IAE1C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAqB;IAErC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAS;IAElB,SAAS,CAAC,GAAG,EAAE,YAAY;IAM3B,KAAK;IAwBL,IAAI;IASX,OAAO,CAAC,gBAAgB;CAS3B;AAED,eAAO,MAAM,MAAM,wBAA+B,CAAC"}
@@ -0,0 +1,10 @@
1
+ export type Sound = {
2
+ id: string;
3
+ length: number;
4
+ };
5
+ export type Animation = {
6
+ id: string;
7
+ length: number;
8
+ loop?: boolean;
9
+ };
10
+ //# sourceMappingURL=Types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../_module/Types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAA"}
@@ -1,11 +1,70 @@
1
- export type Callback<T> = (data: T) => void;
1
+ /**
2
+ * Function signature for signal subscription callbacks.
3
+ *
4
+ * @template T Payload type emitted by the signal
5
+ */
6
+ export type SubscriptionCallback<T> = (data: T) => void;
7
+ /**
8
+ * Lightweight signal / event dispatcher inspired by Godot's signal system.
9
+ *
10
+ * Signals allow decoupled communication by emitting typed payloads to
11
+ * subscribed listeners.
12
+ *
13
+ * @template T Payload type (use `void` for no data)
14
+ */
2
15
  export declare class Signal<T = void> {
16
+ /**
17
+ * Registered signal listeners.
18
+ */
3
19
  private readonly listeners;
20
+ /**
21
+ * Number of currently subscribed listeners.
22
+ */
4
23
  get count(): number;
5
- connect(callback: Callback<T>): void;
6
- disconnect(callback: Callback<T>): boolean;
24
+ /**
25
+ * Subscribes a callback to this signal.
26
+ *
27
+ * The callback will be invoked every time the signal is emitted
28
+ * until it is explicitly unsubscribed or the signal is cleared.
29
+ *
30
+ * @param callback Function invoked on signal emission
31
+ */
32
+ subscribe(callback: SubscriptionCallback<T>): void;
33
+ /**
34
+ * Unsubscribes a previously registered callback.
35
+ *
36
+ * @param callback Callback to remove
37
+ * @returns `true` if the callback was removed, `false` otherwise
38
+ */
39
+ unsubscribe(callback: SubscriptionCallback<T>): boolean;
40
+ /**
41
+ * Removes all subscribed listeners from this signal.
42
+ */
7
43
  clear(): void;
8
- isConnected(callback: Callback<T>): boolean;
44
+ /**
45
+ * Checks whether a callback is currently subscribed.
46
+ *
47
+ * @param callback Callback to test
48
+ * @returns `true` if the callback is subscribed
49
+ */
50
+ isSubscribed(callback: SubscriptionCallback<T>): boolean;
51
+ /**
52
+ * Emits the signal immediately, invoking all subscribed callbacks.
53
+ *
54
+ * Listener errors are caught and logged to prevent a single failure
55
+ * from interrupting signal propagation.
56
+ *
57
+ * @param data Payload to pass to listeners
58
+ */
9
59
  emit(data: T): void;
60
+ /**
61
+ * Emits the signal asynchronously on the microtask queue.
62
+ *
63
+ * Useful for deferring execution to avoid re-entrancy issues
64
+ * or emitting during unsafe execution phases.
65
+ *
66
+ * @param data Payload to pass to listeners
67
+ */
68
+ emitDeferred(data: T): void;
10
69
  }
11
70
  //# sourceMappingURL=Signal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Signal.d.ts","sourceRoot":"","sources":["../../../_module/util/Signal.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAE5C,qBAAa,MAAM,CAAC,CAAC,GAAG,IAAI;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAEM,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAIpC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;IAI1C,KAAK,IAAI,IAAI;IAIb,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO;IAI3C,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;CAK7B"}
1
+ {"version":3,"file":"Signal.d.ts","sourceRoot":"","sources":["../../../_module/util/Signal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAExD;;;;;;;GAOG;AACH,qBAAa,MAAM,CAAC,CAAC,GAAG,IAAI;IACxB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAEhE;;OAEG;IACH,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED;;;;;;;OAOG;IACI,SAAS,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIzD;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO;IAI9D;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO;IAI/D;;;;;;;OAOG;IACI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAU1B;;;;;;;OAOG;IACI,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;CAGrC"}
@@ -1,12 +1,12 @@
1
- import { Entity } from "@minecraft/server";
1
+ import { Entity, PlayAnimationOptions } from "@minecraft/server";
2
2
  import { Inventory } from "./Container";
3
+ import { Animation } from "../../DataTypes";
3
4
  export type IEntity = IEntityWrapper & Entity;
4
5
  export declare class IEntityWrapper {
5
6
  readonly source: Entity;
6
7
  private constructor();
7
8
  static wrap(source: Entity): IEntity;
8
- isAlive: boolean;
9
- get inventory(): Inventory;
10
- test(): void;
9
+ get inventory(): Inventory | undefined;
10
+ playAnimationAsync(animation: Animation, options: PlayAnimationOptions): Promise<void>;
11
11
  }
12
12
  //# sourceMappingURL=IEntity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IEntity.d.ts","sourceRoot":"","sources":["../../../../_module/util/Wrapper/IEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA4B,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAoB,SAAS,EAAE,MAAM,aAAa,CAAC;AAG1D,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,MAAM,CAAC;AAE9C,qBAAa,cAAc;IACvB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO;WAKO,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAKpC,OAAO,EAAE,OAAO,CAAS;IAEhC,IAAW,SAAS,IAAI,SAAS,CAMhC;IAEM,IAAI,IAAI,IAAI;CAItB"}
1
+ {"version":3,"file":"IEntity.d.ts","sourceRoot":"","sources":["../../../../_module/util/Wrapper/IEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA4B,oBAAoB,EAA0B,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAoB,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,MAAM,CAAC;AAE9C,qBAAa,cAAc;IACvB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO;WAKO,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAM3C,IAAW,SAAS,IAAI,SAAS,GAAG,SAAS,CAM5C;IAEY,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAKtG"}
@@ -1,12 +1,13 @@
1
- import { Player } from "@minecraft/server";
1
+ import { PlayAnimationOptions, Player, PlayerSoundOptions } from "@minecraft/server";
2
2
  import { Inventory } from "./Container";
3
+ import { Animation, Sound } from "../../DataTypes";
3
4
  export type IPlayer = IPlayerWrapper & Player;
4
5
  export declare class IPlayerWrapper {
5
6
  readonly source: Player;
6
7
  private constructor();
7
8
  static wrap(player: Player): IPlayer;
8
- isAlive: boolean;
9
9
  get inventory(): Inventory;
10
- test(): void;
10
+ playSoundAsync(sound: Sound, options: PlayerSoundOptions): Promise<void>;
11
+ playAnimationAsync(animation: Animation, options: PlayAnimationOptions): Promise<void>;
11
12
  }
12
13
  //# sourceMappingURL=IPlayer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IPlayer.d.ts","sourceRoot":"","sources":["../../../../_module/util/Wrapper/IPlayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAoB,SAAS,EAAE,MAAM,aAAa,CAAC;AAG1D,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,MAAM,CAAC;AAE9C,qBAAa,cAAc;IACvB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO;WAKO,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAKpC,OAAO,EAAE,OAAO,CAAS;IAEhC,IAAW,SAAS,IAAI,SAAS,CAMhC;IAEM,IAAI,IAAI,IAAI;CAItB"}
1
+ {"version":3,"file":"IPlayer.d.ts","sourceRoot":"","sources":["../../../../_module/util/Wrapper/IPlayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,oBAAoB,EAAE,MAAM,EAAE,kBAAkB,EAA0B,MAAM,mBAAmB,CAAC;AACvI,OAAO,EAAoB,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,MAAM,CAAC;AAE9C,qBAAa,cAAc;IACvB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO;WAKO,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAM3C,IAAW,SAAS,IAAI,SAAS,CAMhC;IAEY,cAAc,CAAC,KAAK,EAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvE,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAKtG"}