@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.
- package/assets/minecraft/26.2/packets.json +4741 -0
- package/dist/base/bitset.d.ts +9 -0
- package/dist/base/bitset.d.ts.map +1 -0
- package/dist/base/bitset.js +46 -0
- package/dist/base/bitset.js.map +1 -0
- package/dist/base/error.d.ts +105 -0
- package/dist/base/error.d.ts.map +1 -0
- package/dist/base/error.js +194 -0
- package/dist/base/error.js.map +1 -0
- package/dist/base/event.d.ts +7 -0
- package/dist/base/event.d.ts.map +1 -0
- package/dist/base/event.js +3 -0
- package/dist/base/event.js.map +1 -0
- package/dist/base/math.d.ts +25 -0
- package/dist/base/math.d.ts.map +1 -0
- package/dist/base/math.js +69 -0
- package/dist/base/math.js.map +1 -0
- package/dist/base/typing.d.ts +9 -0
- package/dist/base/typing.d.ts.map +1 -0
- package/dist/base/typing.js +3 -0
- package/dist/base/typing.js.map +1 -0
- package/dist/client/auth.d.ts +39 -0
- package/dist/client/auth.d.ts.map +1 -0
- package/dist/client/auth.js +307 -0
- package/dist/client/auth.js.map +1 -0
- package/dist/client/client.d.ts +73 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +136 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/static.d.ts +28 -0
- package/dist/client/static.d.ts.map +1 -0
- package/dist/client/static.js +43 -0
- package/dist/client/static.js.map +1 -0
- package/dist/client/tcp.d.ts +84 -0
- package/dist/client/tcp.d.ts.map +1 -0
- package/dist/client/tcp.js +173 -0
- package/dist/client/tcp.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -0
- package/dist/packet/decoder.d.ts +293 -0
- package/dist/packet/decoder.d.ts.map +1 -0
- package/dist/packet/decoder.js +668 -0
- package/dist/packet/decoder.js.map +1 -0
- package/dist/packet/dispatcher.d.ts +46 -0
- package/dist/packet/dispatcher.d.ts.map +1 -0
- package/dist/packet/dispatcher.js +626 -0
- package/dist/packet/dispatcher.js.map +1 -0
- package/dist/packet/encoder.d.ts +163 -0
- package/dist/packet/encoder.d.ts.map +1 -0
- package/dist/packet/encoder.js +441 -0
- package/dist/packet/encoder.js.map +1 -0
- package/dist/packet/static.d.ts +33 -0
- package/dist/packet/static.d.ts.map +1 -0
- package/dist/packet/static.js +42 -0
- package/dist/packet/static.js.map +1 -0
- package/dist/physics/aabb.d.ts +197 -0
- package/dist/physics/aabb.d.ts.map +1 -0
- package/dist/physics/aabb.js +576 -0
- package/dist/physics/aabb.js.map +1 -0
- package/dist/physics/direction.d.ts +153 -0
- package/dist/physics/direction.d.ts.map +1 -0
- package/dist/physics/direction.js +288 -0
- package/dist/physics/direction.js.map +1 -0
- package/dist/physics/player.d.ts +110 -0
- package/dist/physics/player.d.ts.map +1 -0
- package/dist/physics/player.js +558 -0
- package/dist/physics/player.js.map +1 -0
- package/dist/version/codec.d.ts +18 -0
- package/dist/version/codec.d.ts.map +1 -0
- package/dist/version/codec.js +214 -0
- package/dist/version/codec.js.map +1 -0
- package/dist/version/registry.d.ts +236 -0
- package/dist/version/registry.d.ts.map +1 -0
- package/dist/version/registry.js +289 -0
- package/dist/version/registry.js.map +1 -0
- package/dist/world/block.d.ts +86 -0
- package/dist/world/block.d.ts.map +1 -0
- package/dist/world/block.js +232 -0
- package/dist/world/block.js.map +1 -0
- package/dist/world/entity.d.ts +43 -0
- package/dist/world/entity.d.ts.map +1 -0
- package/dist/world/entity.js +97 -0
- package/dist/world/entity.js.map +1 -0
- package/dist/world/state.d.ts +151 -0
- package/dist/world/state.d.ts.map +1 -0
- package/dist/world/state.js +108 -0
- package/dist/world/state.js.map +1 -0
- package/dist/world/tick.d.ts +19 -0
- package/dist/world/tick.d.ts.map +1 -0
- package/dist/world/tick.js +49 -0
- package/dist/world/tick.js.map +1 -0
- package/package.json +7 -2
- package/src/base/error.ts +36 -0
- package/src/base/typing.ts +9 -1
- package/src/client/client.ts +99 -42
- package/src/client/tcp.ts +49 -954
- package/src/index.ts +12 -12
- package/src/{translator → packet}/decoder.ts +3 -3
- package/src/packet/dispatcher.ts +785 -0
- package/src/{translator → packet}/encoder.ts +20 -9
- package/src/{base → physics}/aabb.ts +5 -5
- package/src/{base → physics}/player.ts +41 -25
- package/src/version/codec.ts +227 -0
- package/src/version/registry.ts +333 -0
- package/src/{base → world}/block.ts +12 -11
- package/src/{base → world}/entity.ts +5 -5
- package/src/world/state.ts +232 -0
- package/test/adapter/index.ts +14 -0
- package/test/client/index.ts +1 -1
- package/test/json/index.ts +3 -0
- package/src/base/registry.ts +0 -87
- /package/assets/minecraft/{blocks.json → 26.2/blocks.json} +0 -0
- /package/assets/minecraft/{entities.json → 26.2/entities.json} +0 -0
- /package/src/{translator → packet}/static.ts +0 -0
- /package/src/{base → physics}/direction.ts +0 -0
- /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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"}
|