@needle-tools/engine 2.31.1-pre → 2.32.0-pre
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/CHANGELOG.md +9 -0
- package/dist/needle-engine.d.ts +111 -111
- package/dist/needle-engine.js +72 -72
- package/dist/needle-engine.js.map +3 -3
- package/dist/needle-engine.min.js +17 -17
- package/dist/needle-engine.min.js.map +3 -3
- package/lib/engine/debug/error_overlay.js +4 -4
- package/lib/engine/debug/error_overlay.js.map +1 -1
- package/lib/engine/engine_input.d.ts +87 -102
- package/lib/engine/engine_input.js +173 -99
- package/lib/engine/engine_input.js.map +1 -1
- package/lib/engine/engine_mainloop_utils.d.ts +2 -1
- package/lib/engine/engine_mainloop_utils.js +5 -2
- package/lib/engine/engine_mainloop_utils.js.map +1 -1
- package/lib/engine/engine_physics.d.ts +5 -1
- package/lib/engine/engine_physics.js +72 -22
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine/engine_setup.js +7 -3
- package/lib/engine/engine_setup.js.map +1 -1
- package/lib/engine-components/Component.d.ts +10 -3
- package/lib/engine-components/Component.js +98 -40
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/Rigidbody.d.ts +7 -4
- package/lib/engine-components/Rigidbody.js +43 -26
- package/lib/engine-components/Rigidbody.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/debug/error_overlay.ts +3 -3
- package/src/engine/engine_input.ts +179 -103
- package/src/engine/engine_mainloop_utils.ts +6 -2
- package/src/engine/engine_physics.ts +86 -24
- package/src/engine/engine_setup.ts +8 -3
- package/src/engine-components/Component.ts +109 -40
- package/src/engine-components/RigidBody.ts +51 -29
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,15 @@ All notable changes to this package will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [2.32.0-pre] - 2022-10-15
|
|
8
|
+
- Add: start implementing trigger callbacks for ``onTriggerEnter``, ``onTriggerExit`` and ``onTriggerStay``
|
|
9
|
+
- Change: ``GameObject.setActive`` now updates ``isActiveAndEnabled`` state and executes ``awake`` and ``onEnable`` calls when the object was activated for the first time (e.g. when instantiating from an previously inactive prefab)
|
|
10
|
+
- Change: improve collision callback events for components (``onCollisionEnter``, ``onCollisionExit`` and ``onCollisionStay``)
|
|
11
|
+
- Change: this.context.input keycode enums are now strings
|
|
12
|
+
- Fix: local dev error overlay now also displays errors that happen before web component is completely loaded (e.g. when script has import error)
|
|
13
|
+
- Fix: Rigidbody force is now correctly applied when the component was just instantiated (from inactive prefab) and added to the physics world for the first time
|
|
14
|
+
- Fix: DragControls component keyboard events ("space" and "d" for modifying height and rotation)
|
|
15
|
+
|
|
7
16
|
## [2.31.1-pre] - 2022-10-14
|
|
8
17
|
- Change: Rigidbody now tracks position changes to detect when to update/override simulated physics body
|
|
9
18
|
- Fix: loading relative font paths when exported via Asset context menu
|
package/dist/needle-engine.d.ts
CHANGED
|
@@ -81,9 +81,10 @@ declare module "engine/engine_constants" {
|
|
|
81
81
|
declare module "engine/engine_mainloop_utils" {
|
|
82
82
|
import { Context } from "engine/engine_setup";
|
|
83
83
|
import { Component } from "engine-components/Component";
|
|
84
|
+
import { Object3D } from 'three';
|
|
84
85
|
export function processNewScripts(context: Context): void;
|
|
85
86
|
export function processRemoveFromScene(script: Component): void;
|
|
86
|
-
export function processStart(context: Context): void;
|
|
87
|
+
export function processStart(context: Context, object?: Object3D): void;
|
|
87
88
|
export function addScriptToArrays(script: any, context: Context): void;
|
|
88
89
|
export function removeScriptFromContext(script: any, context: Context): void;
|
|
89
90
|
export function updateIsActive(): void;
|
|
@@ -367,6 +368,7 @@ declare module "engine-components/Rigidbody" {
|
|
|
367
368
|
import { Behaviour } from "engine-components/Component";
|
|
368
369
|
import * as CANNON from 'cannon-es';
|
|
369
370
|
import * as THREE from 'three';
|
|
371
|
+
import { Vector3 } from "three";
|
|
370
372
|
export class Rigidbody extends Behaviour {
|
|
371
373
|
mass: number;
|
|
372
374
|
set isKinematic(kinematic: boolean);
|
|
@@ -385,20 +387,22 @@ declare module "engine-components/Rigidbody" {
|
|
|
385
387
|
private _ignoreChange;
|
|
386
388
|
private _dirty;
|
|
387
389
|
private _positionWatch?;
|
|
390
|
+
private _matrixWatch?;
|
|
388
391
|
private _setMatrix;
|
|
389
392
|
constructor();
|
|
390
393
|
awake(): void;
|
|
391
|
-
start(): void;
|
|
392
394
|
onEnable(): void;
|
|
393
395
|
onDisable(): void;
|
|
394
396
|
onDestroy(): void;
|
|
395
|
-
earlyUpdate(): void;
|
|
396
397
|
onBeforeRender(): void;
|
|
397
398
|
initialize(): void;
|
|
398
399
|
wakeUp(): void;
|
|
399
|
-
applyForce(vec: THREE.Vector3, rel
|
|
400
|
+
applyForce(vec: THREE.Vector3, rel?: THREE.Vector3): void;
|
|
401
|
+
setForce(x: number, y: number, z: number): void;
|
|
400
402
|
getVelocity(): THREE.Vector3;
|
|
401
|
-
setVelocity(x: number, y: number, z: number): void;
|
|
403
|
+
setVelocity(x: number | Vector3, y: number, z: number): void;
|
|
404
|
+
getTorque(): THREE.Vector3;
|
|
405
|
+
setTorque(x: number | Vector3, y: number, z: number): void;
|
|
402
406
|
get smoothedVelocity(): THREE.Vector3;
|
|
403
407
|
setAngularVelocity(x: number, y: number, z: number): void;
|
|
404
408
|
private static copyVector3;
|
|
@@ -650,6 +654,8 @@ declare module "engine/engine_physics" {
|
|
|
650
654
|
addSphereCollider(obj: THREE.Object3D, center: THREE.Vector3, radius: number, rb: Rigidbody | null): CANNON.Shape;
|
|
651
655
|
addMeshCollider(_obj: THREE.Object3D): void;
|
|
652
656
|
private isAlreadyRegistered;
|
|
657
|
+
private readonly tempMat1;
|
|
658
|
+
private readonly tempMat2;
|
|
653
659
|
private addShape;
|
|
654
660
|
step(deltaTime: number): void;
|
|
655
661
|
private temp;
|
|
@@ -663,14 +669,16 @@ declare module "engine/engine_physics" {
|
|
|
663
669
|
private onEndContact;
|
|
664
670
|
}
|
|
665
671
|
export class Collision {
|
|
672
|
+
private readonly invert;
|
|
666
673
|
private readonly collision;
|
|
674
|
+
private readonly targetBody;
|
|
667
675
|
readonly me: Object3D;
|
|
668
676
|
private _normal?;
|
|
669
677
|
get normal(): Vector3;
|
|
670
678
|
private _collider?;
|
|
671
679
|
get collider(): Collider;
|
|
672
680
|
get gameObject(): Object3D;
|
|
673
|
-
constructor(obj: Object3D, collision: CannonCollision);
|
|
681
|
+
constructor(obj: Object3D, collision: CannonCollision, invert?: boolean);
|
|
674
682
|
}
|
|
675
683
|
}
|
|
676
684
|
declare module "engine-components/Component" {
|
|
@@ -713,7 +721,7 @@ declare module "engine-components/Component" {
|
|
|
713
721
|
}
|
|
714
722
|
abstract class GameObject extends THREE.Object3D implements THREE.Object3D {
|
|
715
723
|
guid: string | undefined;
|
|
716
|
-
static setActive(go: THREE.Object3D, active: boolean): void;
|
|
724
|
+
static setActive(go: THREE.Object3D, active: boolean, processStart?: boolean): void;
|
|
717
725
|
static isActiveSelf(go: THREE.Object3D): boolean;
|
|
718
726
|
static isActiveInHierarchy(go: THREE.Object3D): boolean;
|
|
719
727
|
static markAsInstancedRendered(go: THREE.Object3D, instanced: boolean): void;
|
|
@@ -796,7 +804,11 @@ declare module "engine-components/Component" {
|
|
|
796
804
|
onAfterRender?(): void;
|
|
797
805
|
onCollisionEnter?(col: Collision): any;
|
|
798
806
|
onCollisionExit?(col: Collision): any;
|
|
807
|
+
onCollisionExitRaw?(col: Collision): any;
|
|
799
808
|
onCollisionStay?(col: Collision): any;
|
|
809
|
+
onTriggerEnter?(col: Collision): any;
|
|
810
|
+
onTriggerStay?(col: Collision): any;
|
|
811
|
+
onTriggerExit?(col: Collision): any;
|
|
800
812
|
startCoroutine(routine: Generator, evt?: FrameEvent): Generator;
|
|
801
813
|
stopCoroutine(routine: Generator, evt?: FrameEvent): void;
|
|
802
814
|
get destroyed(): boolean;
|
|
@@ -814,9 +826,12 @@ declare module "engine-components/Component" {
|
|
|
814
826
|
constructor();
|
|
815
827
|
private _collisionExitRoutine;
|
|
816
828
|
private _collisions;
|
|
829
|
+
private _triggerExitRoutine;
|
|
830
|
+
private _triggerCollisions;
|
|
831
|
+
get collisionsCount(): number;
|
|
817
832
|
private __internalResetsCachedPhysicsData;
|
|
818
|
-
__internalHandleCollision(col: Collision): void;
|
|
819
|
-
|
|
833
|
+
__internalHandleCollision(col: Collision, isTriggerCollision: boolean): void;
|
|
834
|
+
__internalHandleExitCollisionEvent(obj: Object3D, isTriggerCollision: boolean): void;
|
|
820
835
|
private __waitForCollisionExit;
|
|
821
836
|
private static _worldPositionBuffer;
|
|
822
837
|
private static _worldQuaternionBuffer;
|
|
@@ -1032,9 +1047,9 @@ declare module "engine/engine_input" {
|
|
|
1032
1047
|
private _pointerEvent;
|
|
1033
1048
|
getKeyDown(): string | null;
|
|
1034
1049
|
getKeyPressed(): string | null;
|
|
1035
|
-
isKeyDown(keyCode: number):
|
|
1036
|
-
isKeyUp(keyCode: number): boolean;
|
|
1037
|
-
isKeyPressed(keyCode: number):
|
|
1050
|
+
isKeyDown(keyCode: KeyCode | string | number): any;
|
|
1051
|
+
isKeyUp(keyCode: KeyCode | string | number): boolean;
|
|
1052
|
+
isKeyPressed(keyCode: KeyCode | string | number): any;
|
|
1038
1053
|
createPointerDown(args: PointerEventArgs): void;
|
|
1039
1054
|
createPointerMove(args: PointerEventArgs): void;
|
|
1040
1055
|
createPointerUp(args: PointerEventArgs): void;
|
|
@@ -1062,105 +1077,90 @@ declare module "engine/engine_input" {
|
|
|
1062
1077
|
private onDispatchEvent;
|
|
1063
1078
|
}
|
|
1064
1079
|
export enum KeyCode {
|
|
1065
|
-
BACKSPACE =
|
|
1066
|
-
TAB =
|
|
1067
|
-
ENTER =
|
|
1068
|
-
SHIFT =
|
|
1069
|
-
CTRL =
|
|
1070
|
-
ALT =
|
|
1071
|
-
PAUSE =
|
|
1072
|
-
CAPS_LOCK =
|
|
1073
|
-
ESCAPE =
|
|
1074
|
-
SPACE =
|
|
1075
|
-
PAGE_UP =
|
|
1076
|
-
PAGE_DOWN =
|
|
1077
|
-
END =
|
|
1078
|
-
HOME =
|
|
1079
|
-
LEFT_ARROW =
|
|
1080
|
-
UP_ARROW =
|
|
1081
|
-
RIGHT_ARROW =
|
|
1082
|
-
DOWN_ARROW =
|
|
1083
|
-
INSERT =
|
|
1084
|
-
DELETE =
|
|
1085
|
-
KEY_0 =
|
|
1086
|
-
KEY_1 =
|
|
1087
|
-
KEY_2 =
|
|
1088
|
-
KEY_3 =
|
|
1089
|
-
KEY_4 =
|
|
1090
|
-
KEY_5 =
|
|
1091
|
-
KEY_6 =
|
|
1092
|
-
KEY_7 =
|
|
1093
|
-
KEY_8 =
|
|
1094
|
-
KEY_9 =
|
|
1095
|
-
KEY_A =
|
|
1096
|
-
KEY_B =
|
|
1097
|
-
KEY_C =
|
|
1098
|
-
KEY_D =
|
|
1099
|
-
KEY_E =
|
|
1100
|
-
KEY_F =
|
|
1101
|
-
KEY_G =
|
|
1102
|
-
KEY_H =
|
|
1103
|
-
KEY_I =
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
KEY_L =
|
|
1107
|
-
KEY_M =
|
|
1108
|
-
KEY_N =
|
|
1109
|
-
KEY_O =
|
|
1110
|
-
KEY_P =
|
|
1111
|
-
KEY_Q =
|
|
1112
|
-
KEY_R =
|
|
1113
|
-
KEY_S =
|
|
1114
|
-
KEY_T =
|
|
1115
|
-
KEY_U =
|
|
1116
|
-
KEY_V =
|
|
1117
|
-
KEY_W =
|
|
1118
|
-
KEY_X =
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
F11 = 122,
|
|
1150
|
-
F12 = 123,
|
|
1151
|
-
NUM_LOCK = 144,
|
|
1152
|
-
SCROLL_LOCK = 145,
|
|
1153
|
-
SEMICOLON = 186,
|
|
1154
|
-
EQUALS = 187,
|
|
1155
|
-
COMMA = 188,
|
|
1156
|
-
DASH = 189,
|
|
1157
|
-
PERIOD = 190,
|
|
1158
|
-
FORWARD_SLASH = 191,
|
|
1159
|
-
GRAVE_ACCENT = 192,
|
|
1160
|
-
OPEN_BRACKET = 219,
|
|
1161
|
-
BACK_SLASH = 220,
|
|
1162
|
-
CLOSE_BRACKET = 221,
|
|
1163
|
-
SINGLE_QUOTE = 222
|
|
1080
|
+
BACKSPACE = "Backspace",
|
|
1081
|
+
TAB = "Tab",
|
|
1082
|
+
ENTER = "Enter",
|
|
1083
|
+
SHIFT = "Shift",
|
|
1084
|
+
CTRL = "Control",
|
|
1085
|
+
ALT = "Alt",
|
|
1086
|
+
PAUSE = "Pause",
|
|
1087
|
+
CAPS_LOCK = "CapsLock",
|
|
1088
|
+
ESCAPE = "Escape",
|
|
1089
|
+
SPACE = " ",
|
|
1090
|
+
PAGE_UP = "PageUp",
|
|
1091
|
+
PAGE_DOWN = "PageDown",
|
|
1092
|
+
END = "End",
|
|
1093
|
+
HOME = "Home",
|
|
1094
|
+
LEFT_ARROW = "ArrowLeft",
|
|
1095
|
+
UP_ARROW = "ArrowUp",
|
|
1096
|
+
RIGHT_ARROW = "ArrowRight",
|
|
1097
|
+
DOWN_ARROW = "ArrowDown",
|
|
1098
|
+
INSERT = "Insert",
|
|
1099
|
+
DELETE = "Delete",
|
|
1100
|
+
KEY_0 = "0",
|
|
1101
|
+
KEY_1 = "1",
|
|
1102
|
+
KEY_2 = "2",
|
|
1103
|
+
KEY_3 = "3",
|
|
1104
|
+
KEY_4 = "4",
|
|
1105
|
+
KEY_5 = "5",
|
|
1106
|
+
KEY_6 = "6",
|
|
1107
|
+
KEY_7 = "7",
|
|
1108
|
+
KEY_8 = "8",
|
|
1109
|
+
KEY_9 = "9",
|
|
1110
|
+
KEY_A = "a",
|
|
1111
|
+
KEY_B = "b",
|
|
1112
|
+
KEY_C = "c",
|
|
1113
|
+
KEY_D = "d",
|
|
1114
|
+
KEY_E = "e",
|
|
1115
|
+
KEY_F = "f",
|
|
1116
|
+
KEY_G = "g",
|
|
1117
|
+
KEY_H = "h",
|
|
1118
|
+
KEY_I = "i",
|
|
1119
|
+
KEY_K = "k",
|
|
1120
|
+
KEY_J = "j",
|
|
1121
|
+
KEY_L = "l",
|
|
1122
|
+
KEY_M = "m",
|
|
1123
|
+
KEY_N = "n",
|
|
1124
|
+
KEY_O = "o",
|
|
1125
|
+
KEY_P = "p",
|
|
1126
|
+
KEY_Q = "q",
|
|
1127
|
+
KEY_R = "r",
|
|
1128
|
+
KEY_S = "s",
|
|
1129
|
+
KEY_T = "t",
|
|
1130
|
+
KEY_U = "u",
|
|
1131
|
+
KEY_V = "v",
|
|
1132
|
+
KEY_W = "w",
|
|
1133
|
+
KEY_X = "x",
|
|
1134
|
+
KEY_Z = "z",
|
|
1135
|
+
KEY_Y = "y",
|
|
1136
|
+
SELECT = "Select",
|
|
1137
|
+
NUMPAD_0 = "Numpad0",
|
|
1138
|
+
NUMPAD_1 = "Numpad1",
|
|
1139
|
+
NUMPAD_2 = "Numpad2",
|
|
1140
|
+
NUMPAD_3 = "Numpad3",
|
|
1141
|
+
NUMPAD_4 = "Numpad4",
|
|
1142
|
+
NUMPAD_5 = "Numpad5",
|
|
1143
|
+
NUMPAD_6 = "Numpad6",
|
|
1144
|
+
NUMPAD_7 = "Numpad7",
|
|
1145
|
+
NUMPAD_8 = "Numpad8",
|
|
1146
|
+
NUMPAD_9 = "Numpad9",
|
|
1147
|
+
MULTIPLY = "Multiply",
|
|
1148
|
+
ADD = "Add",
|
|
1149
|
+
SUBTRACT = "Subtract",
|
|
1150
|
+
DECIMAL = "Decimal",
|
|
1151
|
+
DIVIDE = "Divide",
|
|
1152
|
+
F1 = "F1",
|
|
1153
|
+
F2 = "F2",
|
|
1154
|
+
F3 = "F3",
|
|
1155
|
+
F4 = "F4",
|
|
1156
|
+
F5 = "F5",
|
|
1157
|
+
F6 = "F6",
|
|
1158
|
+
F7 = "F7",
|
|
1159
|
+
F8 = "F8",
|
|
1160
|
+
F9 = "F9",
|
|
1161
|
+
F10 = "F10",
|
|
1162
|
+
F11 = "F11",
|
|
1163
|
+
F12 = "F12"
|
|
1164
1164
|
}
|
|
1165
1165
|
}
|
|
1166
1166
|
declare module "engine/engine_time" {
|