@vaitosoi/minejs 0.2.1 → 0.3.1

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 (118) hide show
  1. package/assets/minecraft/26.2/packets.json +4741 -0
  2. package/dist/base/bitset.d.ts +9 -0
  3. package/dist/base/bitset.d.ts.map +1 -0
  4. package/dist/base/bitset.js +46 -0
  5. package/dist/base/bitset.js.map +1 -0
  6. package/dist/base/error.d.ts +105 -0
  7. package/dist/base/error.d.ts.map +1 -0
  8. package/dist/base/error.js +194 -0
  9. package/dist/base/error.js.map +1 -0
  10. package/dist/base/event.d.ts +7 -0
  11. package/dist/base/event.d.ts.map +1 -0
  12. package/dist/base/event.js +3 -0
  13. package/dist/base/event.js.map +1 -0
  14. package/dist/base/math.d.ts +25 -0
  15. package/dist/base/math.d.ts.map +1 -0
  16. package/dist/base/math.js +69 -0
  17. package/dist/base/math.js.map +1 -0
  18. package/dist/base/typing.d.ts +9 -0
  19. package/dist/base/typing.d.ts.map +1 -0
  20. package/dist/base/typing.js +3 -0
  21. package/dist/base/typing.js.map +1 -0
  22. package/dist/client/auth.d.ts +39 -0
  23. package/dist/client/auth.d.ts.map +1 -0
  24. package/dist/client/auth.js +307 -0
  25. package/dist/client/auth.js.map +1 -0
  26. package/dist/client/client.d.ts +73 -0
  27. package/dist/client/client.d.ts.map +1 -0
  28. package/dist/client/client.js +136 -0
  29. package/dist/client/client.js.map +1 -0
  30. package/dist/client/static.d.ts +28 -0
  31. package/dist/client/static.d.ts.map +1 -0
  32. package/dist/client/static.js +43 -0
  33. package/dist/client/static.js.map +1 -0
  34. package/dist/client/tcp.d.ts +84 -0
  35. package/dist/client/tcp.d.ts.map +1 -0
  36. package/dist/client/tcp.js +173 -0
  37. package/dist/client/tcp.js.map +1 -0
  38. package/dist/index.d.ts +21 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +12 -12
  41. package/dist/index.js.map +1 -0
  42. package/dist/packet/decoder.d.ts +293 -0
  43. package/dist/packet/decoder.d.ts.map +1 -0
  44. package/dist/packet/decoder.js +668 -0
  45. package/dist/packet/decoder.js.map +1 -0
  46. package/dist/packet/dispatcher.d.ts +46 -0
  47. package/dist/packet/dispatcher.d.ts.map +1 -0
  48. package/dist/packet/dispatcher.js +626 -0
  49. package/dist/packet/dispatcher.js.map +1 -0
  50. package/dist/packet/encoder.d.ts +163 -0
  51. package/dist/packet/encoder.d.ts.map +1 -0
  52. package/dist/packet/encoder.js +441 -0
  53. package/dist/packet/encoder.js.map +1 -0
  54. package/dist/packet/static.d.ts +33 -0
  55. package/dist/packet/static.d.ts.map +1 -0
  56. package/dist/packet/static.js +42 -0
  57. package/dist/packet/static.js.map +1 -0
  58. package/dist/physics/aabb.d.ts +197 -0
  59. package/dist/physics/aabb.d.ts.map +1 -0
  60. package/dist/physics/aabb.js +576 -0
  61. package/dist/physics/aabb.js.map +1 -0
  62. package/dist/physics/direction.d.ts +153 -0
  63. package/dist/physics/direction.d.ts.map +1 -0
  64. package/dist/physics/direction.js +288 -0
  65. package/dist/physics/direction.js.map +1 -0
  66. package/dist/physics/player.d.ts +110 -0
  67. package/dist/physics/player.d.ts.map +1 -0
  68. package/dist/physics/player.js +558 -0
  69. package/dist/physics/player.js.map +1 -0
  70. package/dist/version/codec.d.ts +18 -0
  71. package/dist/version/codec.d.ts.map +1 -0
  72. package/dist/version/codec.js +214 -0
  73. package/dist/version/codec.js.map +1 -0
  74. package/dist/version/registry.d.ts +236 -0
  75. package/dist/version/registry.d.ts.map +1 -0
  76. package/dist/version/registry.js +289 -0
  77. package/dist/version/registry.js.map +1 -0
  78. package/dist/world/block.d.ts +86 -0
  79. package/dist/world/block.d.ts.map +1 -0
  80. package/dist/world/block.js +232 -0
  81. package/dist/world/block.js.map +1 -0
  82. package/dist/world/entity.d.ts +43 -0
  83. package/dist/world/entity.d.ts.map +1 -0
  84. package/dist/world/entity.js +97 -0
  85. package/dist/world/entity.js.map +1 -0
  86. package/dist/world/state.d.ts +151 -0
  87. package/dist/world/state.d.ts.map +1 -0
  88. package/dist/world/state.js +108 -0
  89. package/dist/world/state.js.map +1 -0
  90. package/dist/world/tick.d.ts +19 -0
  91. package/dist/world/tick.d.ts.map +1 -0
  92. package/dist/world/tick.js +49 -0
  93. package/dist/world/tick.js.map +1 -0
  94. package/package.json +7 -2
  95. package/src/base/error.ts +36 -0
  96. package/src/base/typing.ts +9 -1
  97. package/src/client/client.ts +99 -42
  98. package/src/client/tcp.ts +49 -954
  99. package/src/index.ts +12 -12
  100. package/src/{translator → packet}/decoder.ts +3 -3
  101. package/src/packet/dispatcher.ts +785 -0
  102. package/src/{translator → packet}/encoder.ts +20 -9
  103. package/src/{base → physics}/aabb.ts +5 -5
  104. package/src/{base → physics}/player.ts +41 -25
  105. package/src/version/codec.ts +227 -0
  106. package/src/version/registry.ts +333 -0
  107. package/src/{base → world}/block.ts +12 -11
  108. package/src/{base → world}/entity.ts +5 -5
  109. package/src/world/state.ts +232 -0
  110. package/test/adapter/index.ts +14 -0
  111. package/test/client/index.ts +1 -1
  112. package/test/json/index.ts +3 -0
  113. package/src/base/registry.ts +0 -87
  114. /package/assets/minecraft/{blocks.json → 26.2/blocks.json} +0 -0
  115. /package/assets/minecraft/{entities.json → 26.2/entities.json} +0 -0
  116. /package/src/{translator → packet}/static.ts +0 -0
  117. /package/src/{base → physics}/direction.ts +0 -0
  118. /package/src/{base → world}/tick.ts +0 -0
@@ -0,0 +1,153 @@
1
+ export interface BaseVec3 {
2
+ x: number;
3
+ y: number;
4
+ z: number;
5
+ }
6
+ export declare class Vec3 implements BaseVec3 {
7
+ static readonly Zero: Vec3;
8
+ static readonly XAxis: Vec3;
9
+ static readonly YAxis: Vec3;
10
+ static readonly ZAxis: Vec3;
11
+ /**
12
+ * Helper function for loading vec3 args
13
+ */
14
+ static loadArgs(a: BaseVec3 | number, b?: number, c?: number): BaseVec3;
15
+ x: number;
16
+ y: number;
17
+ z: number;
18
+ constructor(vec3: BaseVec3);
19
+ constructor(x: number, y: number, z: number);
20
+ /**
21
+ * Copy this object
22
+ */
23
+ copy(): Vec3;
24
+ /**
25
+ * Copy but just return the base value, not the whole instance
26
+ */
27
+ copyBase(): BaseVec3;
28
+ normalize(): Vec3;
29
+ dot(x: number, y: number, z: number): number;
30
+ dot(vec: BaseVec3): number;
31
+ cross(x: number, y: number, z: number): Vec3;
32
+ cross(vec: BaseVec3): Vec3;
33
+ add(x: number, y: number, z: number): Vec3;
34
+ add(vec: BaseVec3): Vec3;
35
+ subtract(x: number, y: number, z: number): Vec3;
36
+ subtract(vec: BaseVec3): Vec3;
37
+ multiply(a: number | BaseVec3): Vec3;
38
+ multiply(x: number, y: number, z: number): Vec3;
39
+ distanceTo(x: number, y: number, z: number): number;
40
+ distanceTo(vec: BaseVec3): number;
41
+ distanceToSqr(x: number, y: number, z: number): number;
42
+ distanceToSqr(vec: BaseVec3): number;
43
+ length(): number;
44
+ lengthSqr(): number;
45
+ equal(x: number, y: number, z: number): boolean;
46
+ equal(vec: BaseVec3): boolean;
47
+ /**
48
+ * Create new Vec3 with one updated value, keep the rest.
49
+ * @param axis
50
+ * @param value
51
+ */
52
+ with(axis: BaseAxis, value: number): Vec3;
53
+ /**
54
+ * Get value of an axis
55
+ * @param axis
56
+ * @returns
57
+ */
58
+ get(axis: BaseAxis): number;
59
+ horizontalDistance(): number;
60
+ horizontalDistanceSqr(): number;
61
+ scale(val: number): Vec3;
62
+ isFinite(): boolean;
63
+ }
64
+ export declare enum BaseAxis {
65
+ X = 0,
66
+ Y = 1,
67
+ Z = 2
68
+ }
69
+ /** @hidden */
70
+ export declare class Axis {
71
+ /**
72
+ * Helper function to return value corresponding to given axis
73
+ */
74
+ static choose<T>(axis: BaseAxis, x: T, y: T, z: T): T;
75
+ /**
76
+ * Collision math
77
+ */
78
+ static stepOrder(x: number, z: number): BaseAxis[];
79
+ }
80
+ /**
81
+ * For collision math.
82
+ *
83
+ * This is for "rotating" the Axis
84
+ *
85
+ * @hidden
86
+ */
87
+ export declare abstract class AxisCycle {
88
+ /**
89
+ * Don't rotate the Axis
90
+ */
91
+ static NONE: AxisCycle;
92
+ /**
93
+ * Move forward 1 unit
94
+ */
95
+ static FORWARD: AxisCycle;
96
+ /**
97
+ * Move forward 2 units, or backward 1 unit
98
+ *
99
+ * For the name explaination, in a cyclic three-value array, move forward 2 steps equals step backward 1 step.
100
+ *
101
+ * Example:
102
+ * ```
103
+ * You are here
104
+ * v
105
+ * [0, 1, 2]
106
+ * ```
107
+ * Now move two:
108
+ * ```
109
+ * Now you are here
110
+ * v
111
+ * [0, 1, 2]
112
+ * ```
113
+ * Thats equal to, step one backward:
114
+ * ```
115
+ * you still here
116
+ * v
117
+ * [0, 1, 2]
118
+ * ```
119
+ */
120
+ static BACKWARD: AxisCycle;
121
+ static Values: AxisCycle[];
122
+ static Axises: BaseAxis[];
123
+ abstract cycle(axis: BaseAxis): BaseAxis;
124
+ abstract cycleCoords<T>(x: T, y: T, z: T, axis: BaseAxis): T;
125
+ abstract inverse(): AxisCycle;
126
+ static between(from: BaseAxis, to: BaseAxis): AxisCycle;
127
+ static readonly isAxis = true;
128
+ }
129
+ /**
130
+ * For clipping math
131
+ *
132
+ * @hidden
133
+ */
134
+ export declare class Direction {
135
+ index3D: number;
136
+ axis: BaseAxis;
137
+ normal: Vec3;
138
+ static readonly DOWN: Direction;
139
+ static readonly UP: Direction;
140
+ static readonly NORTH: Direction;
141
+ static readonly SOUTH: Direction;
142
+ static readonly WEST: Direction;
143
+ static readonly EAST: Direction;
144
+ static readonly Values: Direction[];
145
+ constructor(index3D: number, axis: BaseAxis, normal: Vec3);
146
+ static getApproximateNearest(x: number, y: number, z: number): Direction;
147
+ static getApproximateNearest(vec: BaseVec3): Direction;
148
+ }
149
+ export interface Angle {
150
+ yaw: number;
151
+ pitch: number;
152
+ }
153
+ //# sourceMappingURL=direction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direction.d.ts","sourceRoot":"","sources":["../../src/physics/direction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Direction = exports.AxisCycle = exports.Axis = exports.BaseAxis = exports.Vec3 = void 0;
4
+ class Vec3 {
5
+ static Zero = new Vec3(0, 0, 0);
6
+ static XAxis = new Vec3(1, 0, 0);
7
+ static YAxis = new Vec3(0, 1, 0);
8
+ static ZAxis = new Vec3(0, 0, 1);
9
+ /**
10
+ * Helper function for loading vec3 args
11
+ */
12
+ static loadArgs(a, b, c) {
13
+ let x = 1, y = 1, z = 1;
14
+ if (typeof a === "object" && "x" in a) {
15
+ x = a.x;
16
+ y = a.y;
17
+ z = a.z;
18
+ }
19
+ else if (a !== undefined && b !== undefined && c !== undefined) {
20
+ x = a;
21
+ y = b;
22
+ z = c;
23
+ }
24
+ return { x, y, z };
25
+ }
26
+ x;
27
+ y;
28
+ z;
29
+ constructor(a, b, c) {
30
+ const { x, y, z } = Vec3.loadArgs(a, b, c);
31
+ this.x = x;
32
+ this.y = y;
33
+ this.z = z;
34
+ }
35
+ /**
36
+ * Copy this object
37
+ */
38
+ copy() {
39
+ return new Vec3(this.copyBase());
40
+ }
41
+ /**
42
+ * Copy but just return the base value, not the whole instance
43
+ */
44
+ copyBase() {
45
+ return {
46
+ x: this.x,
47
+ y: this.y,
48
+ z: this.z,
49
+ };
50
+ }
51
+ normalize() {
52
+ const d = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
53
+ return d < 1.0e-5 ? Vec3.Zero : new Vec3(this.x / d, this.y / d, this.z / d);
54
+ }
55
+ dot(a, b, c) {
56
+ const vec = Vec3.loadArgs(a, b, c);
57
+ return this.x * vec.x +
58
+ this.y * vec.y +
59
+ this.z * vec.z;
60
+ }
61
+ cross(a, b, c) {
62
+ const vec = Vec3.loadArgs(a, b, c);
63
+ return new Vec3(this.y * vec.z - this.z * vec.y, this.z * vec.x - this.x * vec.z, this.x * vec.y - this.y * vec.x);
64
+ }
65
+ add(a, b, c) {
66
+ const vec = Vec3.loadArgs(a, b, c);
67
+ const x = this.x + vec.x, y = this.y + vec.y, z = this.z + vec.z;
68
+ return new Vec3(x, y, z);
69
+ }
70
+ subtract(a, b, c) {
71
+ const vec = Vec3.loadArgs(a, b, c);
72
+ const x = this.x - vec.x, y = this.y - vec.y, z = this.z - vec.z;
73
+ return new Vec3(x, y, z);
74
+ }
75
+ multiply(a, b, c) {
76
+ let vec;
77
+ if ((a && b && c) || (typeof a === "object" && "x" in a))
78
+ vec = Vec3.loadArgs(a, b, c);
79
+ else
80
+ vec = { x: a, y: a, z: a };
81
+ const x = this.x * vec.x;
82
+ const y = this.y * vec.y;
83
+ const z = this.z * vec.z;
84
+ return new Vec3(x, y, z);
85
+ }
86
+ distanceTo(a, b, c) {
87
+ const vec = Vec3.loadArgs(a, b, c);
88
+ const d = vec.x - this.x;
89
+ const e = vec.y - this.y;
90
+ const f = vec.z - this.z;
91
+ return Math.sqrt(d * d + e * e + f * f);
92
+ }
93
+ distanceToSqr(a, b, c) {
94
+ const vec = Vec3.loadArgs(a, b, c);
95
+ const d = vec.x - this.x;
96
+ const e = vec.y - this.y;
97
+ const f = vec.z - this.z;
98
+ return d * d + e * e + f * f;
99
+ }
100
+ length() {
101
+ return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
102
+ }
103
+ lengthSqr() {
104
+ return this.x * this.x + this.y * this.y + this.z * this.z;
105
+ }
106
+ equal(a, b, c) {
107
+ const vec = Vec3.loadArgs(a, b, c);
108
+ return this.x === vec.x &&
109
+ this.y === vec.y &&
110
+ this.z === vec.z;
111
+ }
112
+ /**
113
+ * Create new Vec3 with one updated value, keep the rest.
114
+ * @param axis
115
+ * @param value
116
+ */
117
+ with(axis, value) {
118
+ const x = axis === BaseAxis.X ? value : this.x;
119
+ const y = axis === BaseAxis.Y ? value : this.y;
120
+ const z = axis === BaseAxis.Z ? value : this.z;
121
+ return new Vec3(x, y, z);
122
+ }
123
+ /**
124
+ * Get value of an axis
125
+ * @param axis
126
+ * @returns
127
+ */
128
+ get(axis) {
129
+ return Axis.choose(axis, this.x, this.y, this.z);
130
+ }
131
+ horizontalDistance() {
132
+ return Math.sqrt((this.x * this.x) + (this.z * this.z));
133
+ }
134
+ horizontalDistanceSqr() {
135
+ return (this.x * this.x) + (this.z * this.z);
136
+ }
137
+ scale(val) {
138
+ return this.multiply(val);
139
+ }
140
+ isFinite() {
141
+ return isFinite(this.x) && isFinite(this.y) && isFinite(this.z);
142
+ }
143
+ }
144
+ exports.Vec3 = Vec3;
145
+ var BaseAxis;
146
+ (function (BaseAxis) {
147
+ BaseAxis[BaseAxis["X"] = 0] = "X";
148
+ BaseAxis[BaseAxis["Y"] = 1] = "Y";
149
+ BaseAxis[BaseAxis["Z"] = 2] = "Z";
150
+ })(BaseAxis || (exports.BaseAxis = BaseAxis = {}));
151
+ /** @hidden */
152
+ class Axis {
153
+ /**
154
+ * Helper function to return value corresponding to given axis
155
+ */
156
+ static choose(axis, x, y, z) {
157
+ switch (axis) {
158
+ case BaseAxis.X: return x;
159
+ case BaseAxis.Y: return y;
160
+ case BaseAxis.Z: return z;
161
+ }
162
+ }
163
+ /**
164
+ * Collision math
165
+ */
166
+ static stepOrder(x, z) {
167
+ if (Math.abs(x) < Math.abs(z))
168
+ return [BaseAxis.Y, BaseAxis.Z, BaseAxis.X];
169
+ return [BaseAxis.Y, BaseAxis.X, BaseAxis.Z];
170
+ }
171
+ }
172
+ exports.Axis = Axis;
173
+ /**
174
+ * For collision math.
175
+ *
176
+ * This is for "rotating" the Axis
177
+ *
178
+ * @hidden
179
+ */
180
+ class AxisCycle {
181
+ /**
182
+ * Don't rotate the Axis
183
+ */
184
+ static NONE = new class extends AxisCycle {
185
+ cycle(axis) {
186
+ return axis;
187
+ }
188
+ cycleCoords(x, y, z, axis) {
189
+ return Axis.choose(axis, x, y, z);
190
+ }
191
+ inverse() {
192
+ return this;
193
+ }
194
+ };
195
+ /**
196
+ * Move forward 1 unit
197
+ */
198
+ static FORWARD = new class extends AxisCycle {
199
+ cycle(axis) {
200
+ return AxisCycle.Axises[(axis + 1) % 3];
201
+ }
202
+ cycleCoords(x, y, z, axis) {
203
+ return Axis.choose(axis, z, x, y);
204
+ }
205
+ inverse() {
206
+ return AxisCycle.BACKWARD;
207
+ }
208
+ };
209
+ /**
210
+ * Move forward 2 units, or backward 1 unit
211
+ *
212
+ * For the name explaination, in a cyclic three-value array, move forward 2 steps equals step backward 1 step.
213
+ *
214
+ * Example:
215
+ * ```
216
+ * You are here
217
+ * v
218
+ * [0, 1, 2]
219
+ * ```
220
+ * Now move two:
221
+ * ```
222
+ * Now you are here
223
+ * v
224
+ * [0, 1, 2]
225
+ * ```
226
+ * Thats equal to, step one backward:
227
+ * ```
228
+ * you still here
229
+ * v
230
+ * [0, 1, 2]
231
+ * ```
232
+ */
233
+ static BACKWARD = new class extends AxisCycle {
234
+ cycle(axis) {
235
+ return AxisCycle.Axises[(axis - 1 + 3) % 3];
236
+ }
237
+ cycleCoords(x, y, z, axis) {
238
+ return Axis.choose(axis, y, z, x);
239
+ }
240
+ inverse() {
241
+ return AxisCycle.FORWARD;
242
+ }
243
+ };
244
+ static Values = [this.NONE, this.FORWARD, this.BACKWARD];
245
+ static Axises = [BaseAxis.X, BaseAxis.Y, BaseAxis.Z];
246
+ static between(from, to) {
247
+ return this.Values[(to - from + 3) % 3];
248
+ }
249
+ static isAxis = true;
250
+ }
251
+ exports.AxisCycle = AxisCycle;
252
+ /**
253
+ * For clipping math
254
+ *
255
+ * @hidden
256
+ */
257
+ class Direction {
258
+ index3D;
259
+ axis;
260
+ normal;
261
+ static DOWN = new Direction(0, BaseAxis.Y, new Vec3(0, -1, 0));
262
+ static UP = new Direction(1, BaseAxis.Y, new Vec3(0, 1, 0));
263
+ static NORTH = new Direction(2, BaseAxis.Z, new Vec3(0, 0, -1));
264
+ static SOUTH = new Direction(3, BaseAxis.Z, new Vec3(0, 0, 1));
265
+ static WEST = new Direction(4, BaseAxis.X, new Vec3(-1, 0, 0));
266
+ static EAST = new Direction(5, BaseAxis.X, new Vec3(1, 0, 0));
267
+ static Values = [this.DOWN, this.UP, this.NORTH, this.SOUTH, this.WEST, this.EAST];
268
+ constructor(index3D, axis, normal) {
269
+ this.index3D = index3D;
270
+ this.axis = axis;
271
+ this.normal = normal;
272
+ }
273
+ static getApproximateNearest(a, b, c) {
274
+ const { x: dx, y: dy, z: dz } = Vec3.loadArgs(a, b, c);
275
+ let result = this.NORTH;
276
+ let highestDot = Number.MIN_VALUE;
277
+ for (const direction of this.Values) {
278
+ const dot = (dx * direction.normal.x) + (dy * direction.normal.y) + (dz * direction.normal.z);
279
+ if (dot > highestDot) {
280
+ highestDot = dot;
281
+ result = direction;
282
+ }
283
+ }
284
+ return result;
285
+ }
286
+ }
287
+ exports.Direction = Direction;
288
+ //# sourceMappingURL=direction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direction.js","sourceRoot":"","sources":["../../src/physics/direction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import { EntitiesManager } from "../world/entity";
2
+ import { Vec3 } from "./direction";
3
+ import { AABB, VoxelShape } from "./aabb";
4
+ import { BlockManager } from "../world/block";
5
+ import { SharedState } from "../world/state";
6
+ import { TypedEmmiter } from "../base/event";
7
+ import { ClientEvents } from "../client/client";
8
+ export declare enum MoveDirection {
9
+ Forward = "W",
10
+ Backward = "S",
11
+ Left = "A",
12
+ Right = "D"
13
+ }
14
+ /**
15
+ * Not used for now
16
+ */
17
+ export declare enum MoverType {
18
+ SELF = 0,
19
+ PLAYER = 1,
20
+ PISTON = 2,
21
+ SHULKER_BOX = 3,
22
+ SHULKER = 4
23
+ }
24
+ export declare class Player {
25
+ private state;
26
+ private on;
27
+ private entities;
28
+ private blocks;
29
+ private fallDistance;
30
+ private deltaMovement;
31
+ private supportBlockPos;
32
+ private heldInputs;
33
+ private isCrouncing;
34
+ private isJumping;
35
+ private lastPos;
36
+ private lastAngle;
37
+ private positionReminder;
38
+ private horizontalCollision;
39
+ private verticalCollision;
40
+ private onGround;
41
+ private lastHorizontalCollision;
42
+ private lastOnGround;
43
+ constructor(state: SharedState, on: TypedEmmiter<ClientEvents>["on"], entities: EntitiesManager, blocks: BlockManager);
44
+ /**
45
+ * Set initial value
46
+ */
47
+ setInitialVal(): void;
48
+ /**
49
+ * Prune all value
50
+ */
51
+ pruneInitialVal(): void;
52
+ /**
53
+ * Press and hold a key
54
+ */
55
+ input(input: MoveDirection): void;
56
+ /**
57
+ * Release a key
58
+ */
59
+ releaseInput(input: MoveDirection): void;
60
+ /**
61
+ * Release all key
62
+ */
63
+ releaseAllInputs(): void;
64
+ /**
65
+ * Press and hold shift. Do nothing for now
66
+ */
67
+ pressShift(): void;
68
+ /**
69
+ * Release shift
70
+ */
71
+ releaseShift(): void;
72
+ /**
73
+ * Press and hold space. Do nothing for now
74
+ */
75
+ pressSpace(): void;
76
+ /**
77
+ * Release shift
78
+ */
79
+ releaseSpace(): void;
80
+ private getInputVector;
81
+ private getPos;
82
+ private setPos;
83
+ private getAngle;
84
+ private getDimension;
85
+ private setDeltaMovement;
86
+ private getOnPos;
87
+ private getLevelMinY;
88
+ private getInBlockState;
89
+ private onClimbable;
90
+ /**
91
+ * Ticking
92
+ */
93
+ tick(): void;
94
+ private aiStep;
95
+ private getJumpFactor;
96
+ private travel;
97
+ private travelInAir;
98
+ private handleFrictionAndCalculateMovement;
99
+ private getFrictionInfluencedSpeed;
100
+ private handleOnClimbable;
101
+ private getSpeed;
102
+ private moveRelative;
103
+ private move;
104
+ private checkFallDamage;
105
+ private restituteMovementAfterCollisions;
106
+ private collide;
107
+ private collectColliders;
108
+ collideWithShapes(movement: Vec3, aabb: AABB, colliders: VoxelShape[]): Vec3;
109
+ }
110
+ //# sourceMappingURL=player.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../../src/physics/player.ts"],"names":[],"mappings":"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"}