@vaitosoi/minejs 0.2.1 → 0.2.2

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 (80) hide show
  1. package/dist/base/aabb.d.ts +197 -0
  2. package/dist/base/aabb.d.ts.map +1 -0
  3. package/dist/base/aabb.js +576 -0
  4. package/dist/base/aabb.js.map +1 -0
  5. package/dist/base/bitset.d.ts +9 -0
  6. package/dist/base/bitset.d.ts.map +1 -0
  7. package/dist/base/bitset.js +46 -0
  8. package/dist/base/bitset.js.map +1 -0
  9. package/dist/base/block.d.ts +86 -0
  10. package/dist/base/block.d.ts.map +1 -0
  11. package/dist/base/block.js +232 -0
  12. package/dist/base/block.js.map +1 -0
  13. package/dist/base/direction.d.ts +153 -0
  14. package/dist/base/direction.d.ts.map +1 -0
  15. package/dist/base/direction.js +288 -0
  16. package/dist/base/direction.js.map +1 -0
  17. package/dist/base/entity.d.ts +43 -0
  18. package/dist/base/entity.d.ts.map +1 -0
  19. package/dist/base/entity.js +97 -0
  20. package/dist/base/entity.js.map +1 -0
  21. package/dist/base/error.d.ts +76 -0
  22. package/dist/base/error.d.ts.map +1 -0
  23. package/dist/base/error.js +141 -0
  24. package/dist/base/error.js.map +1 -0
  25. package/dist/base/event.d.ts +7 -0
  26. package/dist/base/event.d.ts.map +1 -0
  27. package/dist/base/event.js +3 -0
  28. package/dist/base/event.js.map +1 -0
  29. package/dist/base/math.d.ts +25 -0
  30. package/dist/base/math.d.ts.map +1 -0
  31. package/dist/base/math.js +69 -0
  32. package/dist/base/math.js.map +1 -0
  33. package/dist/base/player.d.ts +107 -0
  34. package/dist/base/player.d.ts.map +1 -0
  35. package/dist/base/player.js +543 -0
  36. package/dist/base/player.js.map +1 -0
  37. package/dist/base/registry.d.ts +50 -0
  38. package/dist/base/registry.d.ts.map +1 -0
  39. package/dist/base/registry.js +89 -0
  40. package/dist/base/registry.js.map +1 -0
  41. package/dist/base/tick.d.ts +19 -0
  42. package/dist/base/tick.d.ts.map +1 -0
  43. package/dist/base/tick.js +49 -0
  44. package/dist/base/tick.js.map +1 -0
  45. package/dist/base/typing.d.ts +3 -0
  46. package/dist/base/typing.d.ts.map +1 -0
  47. package/dist/base/typing.js +3 -0
  48. package/dist/base/typing.js.map +1 -0
  49. package/dist/client/auth.d.ts +39 -0
  50. package/dist/client/auth.d.ts.map +1 -0
  51. package/dist/client/auth.js +307 -0
  52. package/dist/client/auth.js.map +1 -0
  53. package/dist/client/client.d.ts +62 -0
  54. package/dist/client/client.d.ts.map +1 -0
  55. package/dist/client/client.js +98 -0
  56. package/dist/client/client.js.map +1 -0
  57. package/dist/client/static.d.ts +28 -0
  58. package/dist/client/static.d.ts.map +1 -0
  59. package/dist/client/static.js +43 -0
  60. package/dist/client/static.js.map +1 -0
  61. package/dist/client/tcp.d.ts +269 -0
  62. package/dist/client/tcp.d.ts.map +1 -0
  63. package/dist/client/tcp.js +838 -0
  64. package/dist/client/tcp.js.map +1 -0
  65. package/dist/index.d.ts +21 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js.map +1 -0
  68. package/dist/translator/decoder.d.ts +293 -0
  69. package/dist/translator/decoder.d.ts.map +1 -0
  70. package/dist/translator/decoder.js +668 -0
  71. package/dist/translator/decoder.js.map +1 -0
  72. package/dist/translator/encoder.d.ts +162 -0
  73. package/dist/translator/encoder.d.ts.map +1 -0
  74. package/dist/translator/encoder.js +430 -0
  75. package/dist/translator/encoder.js.map +1 -0
  76. package/dist/translator/static.d.ts +33 -0
  77. package/dist/translator/static.d.ts.map +1 -0
  78. package/dist/translator/static.js +42 -0
  79. package/dist/translator/static.js.map +1 -0
  80. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ /** @see https://github.com/andywer/typed-emitter */
2
+ export interface TypedEmmiter<Events extends object> {
3
+ on: <K extends keyof Events>(event: K, func: Events[K] extends any[] ? (...args: Events[K]) => void : never) => void;
4
+ once: <K extends keyof Events>(event: K, func: Events[K] extends any[] ? (...args: Events[K]) => void : never) => void;
5
+ emit: <K extends keyof Events>(event: K, ...args: Events[K] extends any[] ? Events[K] : never) => void;
6
+ }
7
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/base/event.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS,MAAM;IAC/C,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC;IACrH,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC;IACvH,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC;CAC1G"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/base/event.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ /** @hidden */
2
+ export declare const Epsilon = 1e-7;
3
+ /**
4
+ * Convert player name into UUID
5
+ *
6
+ * Use for offline account
7
+ *
8
+ * @hidden
9
+ */
10
+ export declare function computeUUID(playerName: string): Buffer;
11
+ /** @hidden */
12
+ export declare const minBigInt: (...args: bigint[]) => bigint;
13
+ /** @hidden */
14
+ export declare function lowerBoundBinarySearch(from: number, to: number, condition: (index: number) => boolean): number;
15
+ /** @hidden */
16
+ export declare const equal: (a: number, b: number) => boolean;
17
+ /** @hidden */
18
+ export declare const lerp: (factor: number, min: number, max: number) => number;
19
+ /** @hidden */
20
+ export declare const getSign: (a: number) => -1 | 0 | 1;
21
+ /** @hidden */
22
+ export declare const getFrac: (a: number) => number;
23
+ /** @hidden */
24
+ export declare function clamp(a: number, min: number, max: number): number;
25
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/base/math.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,eAAO,MAAM,OAAO,OAAS,CAAC;AAE9B;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAQtD;AAED,cAAc;AACd,eAAO,MAAM,SAAS,YAAa,MAAM,EAAE,WAAqD,CAAC;AAEjG,cAAc;AACd,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,UAiBrG;AAED,cAAc;AACd,eAAO,MAAM,KAAK,MAAO,MAAM,KAAK,MAAM,YAA8B,CAAC;AAEzE,cAAc;AACd,eAAO,MAAM,IAAI,WAAY,MAAM,OAAO,MAAM,OAAO,MAAM,WAA+B,CAAC;AAE7F,cAAc;AACd,eAAO,MAAM,OAAO,MAAO,MAAM,eAAiC,CAAC;AAEnE,cAAc;AACd,eAAO,MAAM,OAAO,MAAO,MAAM,WAAsB,CAAC;AAExD,cAAc;AACd,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAIxD"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFrac = exports.getSign = exports.lerp = exports.equal = exports.minBigInt = exports.Epsilon = void 0;
4
+ exports.computeUUID = computeUUID;
5
+ exports.lowerBoundBinarySearch = lowerBoundBinarySearch;
6
+ exports.clamp = clamp;
7
+ const node_crypto_1 = require("node:crypto");
8
+ /** @hidden */
9
+ exports.Epsilon = 1.0e-7; // 1^-7
10
+ /**
11
+ * Convert player name into UUID
12
+ *
13
+ * Use for offline account
14
+ *
15
+ * @hidden
16
+ */
17
+ function computeUUID(playerName) {
18
+ const md5 = (0, node_crypto_1.createHash)("md5").update(playerName).digest();
19
+ md5[6] &= 0x0f; /* clear version */
20
+ md5[6] |= 0x30; /* set to version 3 */
21
+ md5[8] &= 0x3f; /* clear variant */
22
+ md5[8] |= 0x80; /* set to IETF variant */
23
+ return md5;
24
+ }
25
+ /** @hidden */
26
+ const minBigInt = (...args) => args.reduce((min, val) => val < min ? val : min);
27
+ exports.minBigInt = minBigInt;
28
+ /** @hidden */
29
+ function lowerBoundBinarySearch(from, to, condition) {
30
+ let i = to - from;
31
+ while (true) {
32
+ const len = i;
33
+ if (len > 0) {
34
+ const half = Math.floor(len / 2);
35
+ const middle = from + half;
36
+ if (condition(middle)) {
37
+ i = half;
38
+ }
39
+ else {
40
+ from = middle + 1;
41
+ i = len - (half + 1);
42
+ }
43
+ }
44
+ else {
45
+ return from;
46
+ }
47
+ }
48
+ }
49
+ /** @hidden */
50
+ const equal = (a, b) => Math.abs(a - b) < exports.Epsilon;
51
+ exports.equal = equal;
52
+ /** @hidden */
53
+ const lerp = (factor, min, max) => min + (max - min) * factor;
54
+ exports.lerp = lerp;
55
+ /** @hidden */
56
+ const getSign = (a) => a === 0 ? 0 : a > 0 ? 1 : -1;
57
+ exports.getSign = getSign;
58
+ /** @hidden */
59
+ const getFrac = (a) => a - Math.floor(a);
60
+ exports.getFrac = getFrac;
61
+ /** @hidden */
62
+ function clamp(a, min, max) {
63
+ if (a < min)
64
+ return min;
65
+ if (a > max)
66
+ return max;
67
+ return a;
68
+ }
69
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/base/math.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import { EntitiesManager } from "./entity";
2
+ import { Vec3 } from "./direction";
3
+ import { AABB, VoxelShape } from "./aabb";
4
+ import { BlockManager } from "./block";
5
+ import { TCPClient } from "../client/tcp";
6
+ export declare enum MoveDirection {
7
+ Forward = "W",
8
+ Backward = "S",
9
+ Left = "A",
10
+ Right = "D"
11
+ }
12
+ /**
13
+ * Not used for now
14
+ */
15
+ export declare enum MoverType {
16
+ SELF = 0,
17
+ PLAYER = 1,
18
+ PISTON = 2,
19
+ SHULKER_BOX = 3,
20
+ SHULKER = 4
21
+ }
22
+ export declare class Player {
23
+ private entities;
24
+ private blocks;
25
+ private tcp;
26
+ private fallDistance;
27
+ private deltaMovement;
28
+ private supportBlockPos;
29
+ private heldInputs;
30
+ private isCrouncing;
31
+ private isJumping;
32
+ private lastPos;
33
+ private lastAngle;
34
+ private positionReminder;
35
+ private horizontalCollision;
36
+ private verticalCollision;
37
+ private onGround;
38
+ private lastHorizontalCollision;
39
+ private lastOnGround;
40
+ constructor(entities: EntitiesManager, blocks: BlockManager, tcp: TCPClient);
41
+ /**
42
+ * Set initial value
43
+ */
44
+ setInitialVal(): void;
45
+ /**
46
+ * Prune all value
47
+ */
48
+ pruneInitialVal(): void;
49
+ /**
50
+ * Press and hold a key
51
+ */
52
+ input(input: MoveDirection): void;
53
+ /**
54
+ * Release a key
55
+ */
56
+ releaseInput(input: MoveDirection): void;
57
+ /**
58
+ * Release all key
59
+ */
60
+ releaseAllInputs(): void;
61
+ /**
62
+ * Press and hold shift. Do nothing for now
63
+ */
64
+ pressShift(): void;
65
+ /**
66
+ * Release shift
67
+ */
68
+ releaseShift(): void;
69
+ /**
70
+ * Press and hold space. Do nothing for now
71
+ */
72
+ pressSpace(): void;
73
+ /**
74
+ * Release shift
75
+ */
76
+ releaseSpace(): void;
77
+ private getInputVector;
78
+ private getPos;
79
+ private setPos;
80
+ private getAngle;
81
+ private getDimension;
82
+ private setDeltaMovement;
83
+ private getOnPos;
84
+ private getLevelMinY;
85
+ private getInBlockState;
86
+ private onClimbable;
87
+ /**
88
+ * Ticking
89
+ */
90
+ tick(): void;
91
+ private aiStep;
92
+ private getJumpFactor;
93
+ private travel;
94
+ private travelInAir;
95
+ private handleFrictionAndCalculateMovement;
96
+ private getFrictionInfluencedSpeed;
97
+ private handleOnClimbable;
98
+ private getSpeed;
99
+ private moveRelative;
100
+ private move;
101
+ private checkFallDamage;
102
+ private restituteMovementAfterCollisions;
103
+ private collide;
104
+ private collectColliders;
105
+ collideWithShapes(movement: Vec3, aabb: AABB, colliders: VoxelShape[]): Vec3;
106
+ }
107
+ //# sourceMappingURL=player.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../../src/base/player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAmC,IAAI,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,IAAI,EAAU,UAAU,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAe,YAAY,EAAc,MAAM,SAAS,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,oBAAY,aAAa;IACrB,OAAO,MAAM;IACb,QAAQ,MAAM;IACd,IAAI,MAAM;IACV,KAAK,MAAM;CACd;AASD;;GAEG;AACH,oBAAY,SAAS;IACjB,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,MAAM,IAAA;IACN,WAAW,IAAA;IACX,OAAO,IAAA;CACV;AAED,qBAAa,MAAM;IAsBX,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IAvBf,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,eAAe,CAAyB;IAIhD,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,gBAAgB,CAAa;IAGrC,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,uBAAuB,CAAkB;IACjD,OAAO,CAAC,YAAY,CAAiB;IAErC,YACY,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,SAAS,EAQzB;IAED;;OAEG;IACI,aAAa,SAGnB;IACD;;OAEG;IACI,eAAe,SAerB;IAGD;;OAEG;IACI,KAAK,CAAC,KAAK,EAAE,aAAa,QAAiC;IAClE;;OAEG;IACI,YAAY,CAAC,KAAK,EAAE,aAAa,QAAoC;IAC5E;;OAEG;IACI,gBAAgB,SAA+B;IACtD;;OAEG;IACI,UAAU,SAA+B;IAChD;;OAEG;IACI,YAAY,SAAgC;IACnD;;OAEG;IACI,UAAU,SAA6B;IAC9C;;OAEG;IACI,YAAY,SAA8B;IAEjD,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,WAAW;IAuBnB;;OAEG;IACI,IAAI,SAyCV;IAED,OAAO,CAAC,MAAM;IAiCd,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,kCAAkC;IAa1C,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,IAAI;IAkEZ,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,gCAAgC;IAiCxC,OAAO,CAAC,OAAO;IAyFf,OAAO,CAAC,gBAAgB;IAOjB,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAe3E;CACJ"}