@anov/3d-ability 0.0.27 → 0.0.28
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/dist/controls/base.d.ts +6 -3
- package/dist/controls/base.js +21 -3
- package/dist/controls/base.js.map +1 -1
- package/dist/controls/index.d.ts +2 -1
- package/dist/controls/index.js +2 -1
- package/dist/controls/index.js.map +1 -1
- package/dist/controls/src/ThirdViewControl/action/input.d.ts +9 -0
- package/dist/controls/src/ThirdViewControl/action/input.js +116 -0
- package/dist/controls/src/ThirdViewControl/action/input.js.map +1 -0
- package/dist/controls/src/ThirdViewControl/config/constants.d.ts +1 -0
- package/dist/controls/src/ThirdViewControl/config/constants.js +3 -0
- package/dist/controls/src/ThirdViewControl/config/constants.js.map +1 -0
- package/dist/controls/src/ThirdViewControl/index.d.ts +16 -0
- package/dist/controls/src/ThirdViewControl/index.js +48 -0
- package/dist/controls/src/ThirdViewControl/index.js.map +1 -0
- package/dist/controls/src/ThirdViewControl/player/animation.d.ts +28 -0
- package/dist/controls/src/ThirdViewControl/player/animation.js +207 -0
- package/dist/controls/src/ThirdViewControl/player/animation.js.map +1 -0
- package/dist/controls/src/ThirdViewControl/player/camera.d.ts +26 -0
- package/dist/controls/src/ThirdViewControl/player/camera.js +86 -0
- package/dist/controls/src/ThirdViewControl/player/camera.js.map +1 -0
- package/dist/controls/src/ThirdViewControl/player/control.d.ts +33 -0
- package/dist/controls/src/ThirdViewControl/player/control.js +85 -0
- package/dist/controls/src/ThirdViewControl/player/control.js.map +1 -0
- package/dist/controls/src/ThirdViewControl/player.d.ts +23 -0
- package/dist/controls/src/ThirdViewControl/player.js +115 -0
- package/dist/controls/src/ThirdViewControl/player.js.map +1 -0
- package/dist/controls/src/ThirdViewControl/type.d.ts +41 -0
- package/dist/controls/src/ThirdViewControl/type.js +2 -0
- package/dist/controls/src/ThirdViewControl/type.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/postEffects/bloomSelect.d.ts +9 -0
- package/dist/postEffects/bloomSelect.js +14 -6
- package/dist/postEffects/bloomSelect.js.map +1 -1
- package/dist/postEffects/colorifyPass.js +1 -1
- package/dist/postEffects/colorifyPass.js.map +1 -1
- package/dist/postEffects/index.js +3 -2
- package/dist/postEffects/index.js.map +1 -1
- package/dist/postEffects/postprocessing.d.ts +2 -0
- package/dist/postEffects/postprocessing.js +55 -0
- package/dist/postEffects/postprocessing.js.map +1 -0
- package/dist/postEffects/saoPass.d.ts +6 -0
- package/dist/postEffects/saoPass.js +26 -0
- package/dist/postEffects/saoPass.js.map +1 -0
- package/package.json +7 -4
package/dist/controls/base.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import type { Camera } from '@anov/3d-core';
|
|
1
|
+
import type { Camera, Scene } from '@anov/3d-core';
|
|
2
2
|
declare class ControlBaseModule {
|
|
3
3
|
camera: Camera;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
constructor(camera: Camera);
|
|
5
|
+
}
|
|
6
|
+
export declare class ControlThirdModule extends ControlBaseModule {
|
|
7
|
+
scene: Scene;
|
|
8
|
+
constructor(camera: Camera, scene: Scene);
|
|
6
9
|
}
|
|
7
10
|
export default ControlBaseModule;
|
package/dist/controls/base.js
CHANGED
|
@@ -1,16 +1,34 @@
|
|
|
1
1
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
3
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
4
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
5
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
6
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
7
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
8
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
2
9
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
3
10
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
4
11
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
5
12
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
13
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
14
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
8
|
-
var ControlBaseModule = /*#__PURE__*/_createClass(function ControlBaseModule(camera
|
|
15
|
+
var ControlBaseModule = /*#__PURE__*/_createClass(function ControlBaseModule(camera) {
|
|
9
16
|
_classCallCheck(this, ControlBaseModule);
|
|
10
17
|
_defineProperty(this, "camera", void 0);
|
|
11
|
-
_defineProperty(this, "dom", void 0);
|
|
12
18
|
this.camera = camera;
|
|
13
|
-
this.dom = dom;
|
|
14
19
|
});
|
|
20
|
+
export var ControlThirdModule = /*#__PURE__*/function (_ControlBaseModule) {
|
|
21
|
+
_inherits(ControlThirdModule, _ControlBaseModule);
|
|
22
|
+
var _super = _createSuper(ControlThirdModule);
|
|
23
|
+
function ControlThirdModule(camera, scene) {
|
|
24
|
+
var _this;
|
|
25
|
+
_classCallCheck(this, ControlThirdModule);
|
|
26
|
+
_this = _super.call(this, camera);
|
|
27
|
+
_defineProperty(_assertThisInitialized(_this), "scene", void 0);
|
|
28
|
+
_this.scene = scene;
|
|
29
|
+
return _this;
|
|
30
|
+
}
|
|
31
|
+
return _createClass(ControlThirdModule);
|
|
32
|
+
}(ControlBaseModule);
|
|
15
33
|
export default ControlBaseModule;
|
|
16
34
|
//# sourceMappingURL=base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ControlBaseModule","camera","
|
|
1
|
+
{"version":3,"names":["ControlBaseModule","camera","ControlThirdModule","scene"],"sources":["../../src/controls/base.ts"],"sourcesContent":["import type { Camera, Scene } from '@anov/3d-core'\n\nclass ControlBaseModule {\n camera: Camera\n\n constructor(camera: Camera) {\n this.camera = camera\n }\n}\n\nexport class ControlThirdModule extends ControlBaseModule {\n scene: Scene\n constructor(camera: Camera, scene: Scene) {\n super(camera)\n this.scene = scene\n }\n}\n\nexport default ControlBaseModule\n"],"mappings":";;;;;;;;;;;;;;IAEMA,iBAAiB,6BAGrB,2BAAYC,MAAc,EAAE;EAAA;EAAA;EAC1B,IAAI,CAACA,MAAM,GAAGA,MAAM;AACtB,CAAC;AAGH,WAAaC,kBAAkB;EAAA;EAAA;EAE7B,4BAAYD,MAAc,EAAEE,KAAY,EAAE;IAAA;IAAA;IACxC,0BAAMF,MAAM;IAAC;IACb,MAAKE,KAAK,GAAGA,KAAK;IAAA;EACpB;EAAC;AAAA,EALqCH,iBAAiB;AAQzD,eAAeA,iBAAiB"}
|
package/dist/controls/index.d.ts
CHANGED
package/dist/controls/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FirstViewControl"],"sources":["../../src/controls/index.ts"],"sourcesContent":["import FirstViewControl from './src/FirstViewControl'\n\nexport {\n FirstViewControl,\n}"],"mappings":"AAAA,OAAOA,gBAAgB;AAEvB,
|
|
1
|
+
{"version":3,"names":["FirstViewControl","ThirdViewControl"],"sources":["../../src/controls/index.ts"],"sourcesContent":["import FirstViewControl from './src/FirstViewControl'\nimport ThirdViewControl from './src/ThirdViewControl'\n\nexport {\n FirstViewControl,\n ThirdViewControl,\n}"],"mappings":"AAAA,OAAOA,gBAAgB;AACvB,OAAOC,gBAAgB;AAEvB,SACED,gBAAgB,EAChBC,gBAAgB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PlayerInput } from '../type';
|
|
2
|
+
export default class BasicCharacterControllerInput {
|
|
3
|
+
keys: PlayerInput | any;
|
|
4
|
+
constructor();
|
|
5
|
+
initialize(): void;
|
|
6
|
+
handleLockChange(): void;
|
|
7
|
+
onKeydown(e: KeyboardEvent): void;
|
|
8
|
+
onKeyup(e: KeyboardEvent): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
8
|
+
var BasicCharacterControllerInput = /*#__PURE__*/function () {
|
|
9
|
+
function BasicCharacterControllerInput() {
|
|
10
|
+
_classCallCheck(this, BasicCharacterControllerInput);
|
|
11
|
+
_defineProperty(this, "keys", void 0);
|
|
12
|
+
this.initialize();
|
|
13
|
+
}
|
|
14
|
+
_createClass(BasicCharacterControllerInput, [{
|
|
15
|
+
key: "initialize",
|
|
16
|
+
value: function initialize() {
|
|
17
|
+
var _this = this;
|
|
18
|
+
this.keys = {
|
|
19
|
+
forward: false,
|
|
20
|
+
backward: false,
|
|
21
|
+
left: false,
|
|
22
|
+
right: false,
|
|
23
|
+
space: false,
|
|
24
|
+
shift: false,
|
|
25
|
+
leftClick: false,
|
|
26
|
+
rightClick: false
|
|
27
|
+
};
|
|
28
|
+
document.addEventListener('keydown', function (e) {
|
|
29
|
+
return _this.onKeydown(e);
|
|
30
|
+
}, false);
|
|
31
|
+
document.addEventListener('keyup', function (e) {
|
|
32
|
+
return _this.onKeyup(e);
|
|
33
|
+
}, false);
|
|
34
|
+
}
|
|
35
|
+
}, {
|
|
36
|
+
key: "handleLockChange",
|
|
37
|
+
value: function handleLockChange() {
|
|
38
|
+
var canvas = document.querySelector('canvas');
|
|
39
|
+
if (document.pointerLockElement !== canvas) {
|
|
40
|
+
this.keys = {
|
|
41
|
+
forward: false,
|
|
42
|
+
backward: false,
|
|
43
|
+
left: false,
|
|
44
|
+
right: false,
|
|
45
|
+
space: false,
|
|
46
|
+
shift: false,
|
|
47
|
+
leftClick: false,
|
|
48
|
+
rightClick: false
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}, {
|
|
53
|
+
key: "onKeydown",
|
|
54
|
+
value: function onKeydown(e) {
|
|
55
|
+
switch (e.keyCode) {
|
|
56
|
+
case 87:
|
|
57
|
+
// w
|
|
58
|
+
this.keys.forward = true;
|
|
59
|
+
break;
|
|
60
|
+
case 65:
|
|
61
|
+
// a
|
|
62
|
+
this.keys.left = true;
|
|
63
|
+
break;
|
|
64
|
+
case 83:
|
|
65
|
+
// s
|
|
66
|
+
this.keys.backward = true;
|
|
67
|
+
break;
|
|
68
|
+
case 68:
|
|
69
|
+
// d
|
|
70
|
+
this.keys.right = true;
|
|
71
|
+
break;
|
|
72
|
+
case 32:
|
|
73
|
+
// space
|
|
74
|
+
this.keys.space = true;
|
|
75
|
+
break;
|
|
76
|
+
case 16:
|
|
77
|
+
// shift
|
|
78
|
+
this.keys.shift = true;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}, {
|
|
83
|
+
key: "onKeyup",
|
|
84
|
+
value: function onKeyup(e) {
|
|
85
|
+
switch (e.keyCode) {
|
|
86
|
+
case 87:
|
|
87
|
+
// w
|
|
88
|
+
this.keys.forward = false;
|
|
89
|
+
break;
|
|
90
|
+
case 65:
|
|
91
|
+
// a
|
|
92
|
+
this.keys.left = false;
|
|
93
|
+
break;
|
|
94
|
+
case 83:
|
|
95
|
+
// s
|
|
96
|
+
this.keys.backward = false;
|
|
97
|
+
break;
|
|
98
|
+
case 68:
|
|
99
|
+
// d
|
|
100
|
+
this.keys.right = false;
|
|
101
|
+
break;
|
|
102
|
+
case 32:
|
|
103
|
+
// space
|
|
104
|
+
this.keys.space = false;
|
|
105
|
+
break;
|
|
106
|
+
case 16:
|
|
107
|
+
// shift
|
|
108
|
+
this.keys.shift = false;
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}]);
|
|
113
|
+
return BasicCharacterControllerInput;
|
|
114
|
+
}();
|
|
115
|
+
export { BasicCharacterControllerInput as default };
|
|
116
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BasicCharacterControllerInput","initialize","keys","forward","backward","left","right","space","shift","leftClick","rightClick","document","addEventListener","e","onKeydown","onKeyup","canvas","querySelector","pointerLockElement","keyCode"],"sources":["../../../../../src/controls/src/ThirdViewControl/action/input.ts"],"sourcesContent":["import type { PlayerInput } from '../type'\n\nexport default class BasicCharacterControllerInput {\n keys: PlayerInput | any\n constructor() {\n this.initialize()\n }\n\n initialize() {\n this.keys = {\n forward: false,\n backward: false,\n left: false,\n right: false,\n space: false,\n shift: false,\n leftClick: false,\n rightClick: false,\n }\n\n document.addEventListener('keydown', e => this.onKeydown(e), false)\n document.addEventListener('keyup', e => this.onKeyup(e), false)\n }\n\n handleLockChange() {\n const canvas = document.querySelector('canvas')\n if (document.pointerLockElement !== canvas) {\n this.keys = {\n forward: false,\n backward: false,\n left: false,\n right: false,\n space: false,\n shift: false,\n leftClick: false,\n rightClick: false,\n }\n }\n }\n\n onKeydown(e: KeyboardEvent) {\n switch (e.keyCode) {\n case 87: // w\n this.keys.forward = true\n break\n case 65: // a\n this.keys.left = true\n break\n case 83: // s\n this.keys.backward = true\n break\n case 68: // d\n this.keys.right = true\n break\n case 32: // space\n this.keys.space = true\n break\n case 16: // shift\n this.keys.shift = true\n break\n }\n }\n\n onKeyup(e: KeyboardEvent) {\n switch (e.keyCode) {\n case 87: // w\n this.keys.forward = false\n break\n case 65: // a\n this.keys.left = false\n break\n case 83: // s\n this.keys.backward = false\n break\n case 68: // d\n this.keys.right = false\n break\n case 32: // space\n this.keys.space = false\n break\n case 16: // shift\n this.keys.shift = false\n break\n }\n }\n}\n"],"mappings":";;;;;;;IAEqBA,6BAA6B;EAEhD,yCAAc;IAAA;IAAA;IACZ,IAAI,CAACC,UAAU,EAAE;EACnB;EAAC;IAAA;IAAA,OAED,sBAAa;MAAA;MACX,IAAI,CAACC,IAAI,GAAG;QACVC,OAAO,EAAE,KAAK;QACdC,QAAQ,EAAE,KAAK;QACfC,IAAI,EAAE,KAAK;QACXC,KAAK,EAAE,KAAK;QACZC,KAAK,EAAE,KAAK;QACZC,KAAK,EAAE,KAAK;QACZC,SAAS,EAAE,KAAK;QAChBC,UAAU,EAAE;MACd,CAAC;MAEDC,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAE,UAAAC,CAAC;QAAA,OAAI,KAAI,CAACC,SAAS,CAACD,CAAC,CAAC;MAAA,GAAE,KAAK,CAAC;MACnEF,QAAQ,CAACC,gBAAgB,CAAC,OAAO,EAAE,UAAAC,CAAC;QAAA,OAAI,KAAI,CAACE,OAAO,CAACF,CAAC,CAAC;MAAA,GAAE,KAAK,CAAC;IACjE;EAAC;IAAA;IAAA,OAED,4BAAmB;MACjB,IAAMG,MAAM,GAAGL,QAAQ,CAACM,aAAa,CAAC,QAAQ,CAAC;MAC/C,IAAIN,QAAQ,CAACO,kBAAkB,KAAKF,MAAM,EAAE;QAC1C,IAAI,CAACd,IAAI,GAAG;UACVC,OAAO,EAAE,KAAK;UACdC,QAAQ,EAAE,KAAK;UACfC,IAAI,EAAE,KAAK;UACXC,KAAK,EAAE,KAAK;UACZC,KAAK,EAAE,KAAK;UACZC,KAAK,EAAE,KAAK;UACZC,SAAS,EAAE,KAAK;UAChBC,UAAU,EAAE;QACd,CAAC;MACH;IACF;EAAC;IAAA;IAAA,OAED,mBAAUG,CAAgB,EAAE;MAC1B,QAAQA,CAAC,CAACM,OAAO;QACf,KAAK,EAAE;UAAE;UACP,IAAI,CAACjB,IAAI,CAACC,OAAO,GAAG,IAAI;UACxB;QACF,KAAK,EAAE;UAAE;UACP,IAAI,CAACD,IAAI,CAACG,IAAI,GAAG,IAAI;UACrB;QACF,KAAK,EAAE;UAAE;UACP,IAAI,CAACH,IAAI,CAACE,QAAQ,GAAG,IAAI;UACzB;QACF,KAAK,EAAE;UAAE;UACP,IAAI,CAACF,IAAI,CAACI,KAAK,GAAG,IAAI;UACtB;QACF,KAAK,EAAE;UAAE;UACP,IAAI,CAACJ,IAAI,CAACK,KAAK,GAAG,IAAI;UACtB;QACF,KAAK,EAAE;UAAE;UACP,IAAI,CAACL,IAAI,CAACM,KAAK,GAAG,IAAI;UACtB;MAAK;IAEX;EAAC;IAAA;IAAA,OAED,iBAAQK,CAAgB,EAAE;MACxB,QAAQA,CAAC,CAACM,OAAO;QACf,KAAK,EAAE;UAAE;UACP,IAAI,CAACjB,IAAI,CAACC,OAAO,GAAG,KAAK;UACzB;QACF,KAAK,EAAE;UAAE;UACP,IAAI,CAACD,IAAI,CAACG,IAAI,GAAG,KAAK;UACtB;QACF,KAAK,EAAE;UAAE;UACP,IAAI,CAACH,IAAI,CAACE,QAAQ,GAAG,KAAK;UAC1B;QACF,KAAK,EAAE;UAAE;UACP,IAAI,CAACF,IAAI,CAACI,KAAK,GAAG,KAAK;UACvB;QACF,KAAK,EAAE;UAAE;UACP,IAAI,CAACJ,IAAI,CAACK,KAAK,GAAG,KAAK;UACvB;QACF,KAAK,EAAE;UAAE;UACP,IAAI,CAACL,IAAI,CAACM,KAAK,GAAG,KAAK;UACvB;MAAK;IAEX;EAAC;EAAA;AAAA;AAAA,SAlFkBR,6BAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SPEED = 16;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SPEED"],"sources":["../../../../../src/controls/src/ThirdViewControl/config/constants.ts"],"sourcesContent":["// character\nexport const SPEED = 16\n"],"mappings":"AAAA;AACA,OAAO,IAAMA,KAAK,GAAG,EAAE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PerspectiveCamera, Scene } from '@anov/3d-core';
|
|
2
|
+
import type { ControlThirdModule } from '../../base';
|
|
3
|
+
import Player from './player';
|
|
4
|
+
/**
|
|
5
|
+
* @class ThirdViewControl.ts - third view control module
|
|
6
|
+
*
|
|
7
|
+
* 贴地 (Third View) 控制模块
|
|
8
|
+
*/
|
|
9
|
+
declare class ThirdViewControl implements ControlThirdModule {
|
|
10
|
+
scene: Scene;
|
|
11
|
+
camera: PerspectiveCamera;
|
|
12
|
+
entitiesCharacter: Player[];
|
|
13
|
+
constructor(camera: PerspectiveCamera, scene: Scene);
|
|
14
|
+
initialize(): void;
|
|
15
|
+
}
|
|
16
|
+
export default ThirdViewControl;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
8
|
+
import { Clock, use } from '@anov/3d-core';
|
|
9
|
+
import Player from "./player";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @class ThirdViewControl.ts - third view control module
|
|
13
|
+
*
|
|
14
|
+
* 贴地 (Third View) 控制模块
|
|
15
|
+
*/
|
|
16
|
+
var ThirdViewControl = /*#__PURE__*/function () {
|
|
17
|
+
function ThirdViewControl(camera, scene) {
|
|
18
|
+
_classCallCheck(this, ThirdViewControl);
|
|
19
|
+
_defineProperty(this, "scene", void 0);
|
|
20
|
+
_defineProperty(this, "camera", void 0);
|
|
21
|
+
_defineProperty(this, "entitiesCharacter", []);
|
|
22
|
+
this.scene = scene;
|
|
23
|
+
this.camera = camera;
|
|
24
|
+
this.initialize();
|
|
25
|
+
}
|
|
26
|
+
_createClass(ThirdViewControl, [{
|
|
27
|
+
key: "initialize",
|
|
28
|
+
value: function initialize() {
|
|
29
|
+
var _this = this;
|
|
30
|
+
this.entitiesCharacter.push(new Player({
|
|
31
|
+
camera: this.camera,
|
|
32
|
+
scene: this.scene
|
|
33
|
+
}));
|
|
34
|
+
var clock = new Clock();
|
|
35
|
+
use.useframe(function () {
|
|
36
|
+
var deltaT = clock.getDelta();
|
|
37
|
+
_this.entitiesCharacter.forEach(function (item, _, array) {
|
|
38
|
+
item.update(deltaT, {
|
|
39
|
+
entities: array
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}]);
|
|
45
|
+
return ThirdViewControl;
|
|
46
|
+
}();
|
|
47
|
+
export default ThirdViewControl;
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Clock","use","Player","ThirdViewControl","camera","scene","initialize","entitiesCharacter","push","clock","useframe","deltaT","getDelta","forEach","item","_","array","update","entities"],"sources":["../../../../src/controls/src/ThirdViewControl/index.ts"],"sourcesContent":["import type { PerspectiveCamera, Scene } from '@anov/3d-core'\nimport { Clock, use } from '@anov/3d-core'\nimport type { ControlThirdModule } from '../../base'\nimport Player from './player'\n\n/**\n * @class ThirdViewControl.ts - third view control module\n *\n * 贴地 (Third View) 控制模块\n */\n\nclass ThirdViewControl implements ControlThirdModule {\n scene: Scene\n camera: PerspectiveCamera\n entitiesCharacter: Player[] = []\n\n constructor(camera: PerspectiveCamera, scene: Scene) {\n this.scene = scene\n this.camera = camera\n\n this.initialize()\n }\n\n initialize() {\n this.entitiesCharacter.push(\n new Player({\n camera: this.camera,\n scene: this.scene,\n }),\n )\n\n const clock = new Clock()\n\n use.useframe(() => {\n const deltaT = clock.getDelta()\n\n this.entitiesCharacter.forEach((item, _, array) => {\n item.update(deltaT, {\n entities: array,\n })\n })\n })\n }\n}\n\nexport default ThirdViewControl"],"mappings":";;;;;;;AACA,SAASA,KAAK,EAAEC,GAAG,QAAQ,eAAe;AAE1C,OAAOC,MAAM;;AAEb;AACA;AACA;AACA;AACA;AAJA,IAMMC,gBAAgB;EAKpB,0BAAYC,MAAyB,EAAEC,KAAY,EAAE;IAAA;IAAA;IAAA;IAAA,2CAFvB,EAAE;IAG9B,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACD,MAAM,GAAGA,MAAM;IAEpB,IAAI,CAACE,UAAU,EAAE;EACnB;EAAC;IAAA;IAAA,OAED,sBAAa;MAAA;MACX,IAAI,CAACC,iBAAiB,CAACC,IAAI,CACzB,IAAIN,MAAM,CAAC;QACTE,MAAM,EAAE,IAAI,CAACA,MAAM;QACnBC,KAAK,EAAE,IAAI,CAACA;MACd,CAAC,CAAC,CACH;MAED,IAAMI,KAAK,GAAG,IAAIT,KAAK,EAAE;MAEzBC,GAAG,CAACS,QAAQ,CAAC,YAAM;QACjB,IAAMC,MAAM,GAAGF,KAAK,CAACG,QAAQ,EAAE;QAE/B,KAAI,CAACL,iBAAiB,CAACM,OAAO,CAAC,UAACC,IAAI,EAAEC,CAAC,EAAEC,KAAK,EAAK;UACjDF,IAAI,CAACG,MAAM,CAACN,MAAM,EAAE;YAClBO,QAAQ,EAAEF;UACZ,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;EAAA;AAAA;AAGH,eAAeb,gBAAgB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as THREE from '@anov/3d-core';
|
|
2
|
+
import type BasicCharacterControllerInput from '../action/input';
|
|
3
|
+
import type { CharacterAnimationType } from '../type';
|
|
4
|
+
interface PropsType {
|
|
5
|
+
animations: CharacterAnimationType;
|
|
6
|
+
input: BasicCharacterControllerInput;
|
|
7
|
+
}
|
|
8
|
+
export default class Character_animation {
|
|
9
|
+
animations: CharacterAnimationType;
|
|
10
|
+
input: BasicCharacterControllerInput;
|
|
11
|
+
preventAction: boolean;
|
|
12
|
+
fsm: any;
|
|
13
|
+
attackStack: number;
|
|
14
|
+
constructor({ animations, input }: PropsType);
|
|
15
|
+
handleAnimation(): void;
|
|
16
|
+
handleLeftClick(): void;
|
|
17
|
+
handleRoll(): void;
|
|
18
|
+
handlePunch(state: 'hit' | 'hitSecond'): void;
|
|
19
|
+
handleTrans(): void;
|
|
20
|
+
getAction(state?: keyof typeof this.animations): {
|
|
21
|
+
stateKey: keyof CharacterAnimationType;
|
|
22
|
+
stateAction: THREE.AnimationAction | undefined;
|
|
23
|
+
prevStateKey: keyof CharacterAnimationType;
|
|
24
|
+
prevStateAction: THREE.AnimationAction | undefined;
|
|
25
|
+
};
|
|
26
|
+
update(deltaT: number): void;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
8
|
+
import StateMachine from 'javascript-state-machine';
|
|
9
|
+
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
import StateMachineHistory from 'javascript-state-machine/lib/history';
|
|
12
|
+
import * as THREE from '@anov/3d-core';
|
|
13
|
+
var MAX_FSM_HISTORY = 2;
|
|
14
|
+
var Character_animation = /*#__PURE__*/function () {
|
|
15
|
+
function Character_animation(_ref) {
|
|
16
|
+
var _this = this;
|
|
17
|
+
var animations = _ref.animations,
|
|
18
|
+
input = _ref.input;
|
|
19
|
+
_classCallCheck(this, Character_animation);
|
|
20
|
+
_defineProperty(this, "animations", void 0);
|
|
21
|
+
_defineProperty(this, "input", void 0);
|
|
22
|
+
_defineProperty(this, "preventAction", false);
|
|
23
|
+
_defineProperty(this, "fsm", void 0);
|
|
24
|
+
_defineProperty(this, "attackStack", 0);
|
|
25
|
+
this.input = input;
|
|
26
|
+
this.animations = animations;
|
|
27
|
+
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
this.fsm = new StateMachine({
|
|
30
|
+
init: 'idle',
|
|
31
|
+
transitions: [{
|
|
32
|
+
name: 'punch',
|
|
33
|
+
from: '*',
|
|
34
|
+
to: 'hit'
|
|
35
|
+
}, {
|
|
36
|
+
name: 'punchSecond',
|
|
37
|
+
from: '*',
|
|
38
|
+
to: 'hitSecond'
|
|
39
|
+
}, {
|
|
40
|
+
name: 'roll',
|
|
41
|
+
from: '*',
|
|
42
|
+
to: 'roll'
|
|
43
|
+
}, {
|
|
44
|
+
name: 'trans',
|
|
45
|
+
from: '*',
|
|
46
|
+
to: function to(s) {
|
|
47
|
+
return s;
|
|
48
|
+
}
|
|
49
|
+
}],
|
|
50
|
+
methods: {
|
|
51
|
+
onPunch: function onPunch() {
|
|
52
|
+
return _this.handlePunch('hit');
|
|
53
|
+
},
|
|
54
|
+
onPunchSecond: function onPunchSecond() {
|
|
55
|
+
return _this.handlePunch('hitSecond');
|
|
56
|
+
},
|
|
57
|
+
onTrans: function onTrans() {
|
|
58
|
+
return _this.handleTrans();
|
|
59
|
+
},
|
|
60
|
+
onRoll: function onRoll() {
|
|
61
|
+
return _this.handleRoll();
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
plugins: [new StateMachineHistory({
|
|
66
|
+
max: MAX_FSM_HISTORY
|
|
67
|
+
})]
|
|
68
|
+
});
|
|
69
|
+
this.fsm.trans('idle');
|
|
70
|
+
}
|
|
71
|
+
_createClass(Character_animation, [{
|
|
72
|
+
key: "handleAnimation",
|
|
73
|
+
value: function handleAnimation() {
|
|
74
|
+
var keys = this.input.keys;
|
|
75
|
+
|
|
76
|
+
// used to have run left right
|
|
77
|
+
|
|
78
|
+
if (this.preventAction) return;
|
|
79
|
+
if (keys.leftClick || this.attackStack > 0) {
|
|
80
|
+
this.handleLeftClick();
|
|
81
|
+
} else if (keys.space) {
|
|
82
|
+
this.fsm.trans('roll');
|
|
83
|
+
} else if (keys.left) {
|
|
84
|
+
// this.fsm.trans("leftRun");
|
|
85
|
+
this.fsm.trans('running');
|
|
86
|
+
} else if (keys.right) {
|
|
87
|
+
// this.fsm.trans("rightRun");
|
|
88
|
+
this.fsm.trans('running');
|
|
89
|
+
} else if (keys.forward) {
|
|
90
|
+
this.fsm.trans('running');
|
|
91
|
+
} else if (keys.backward) {
|
|
92
|
+
// this.fsm.trans("runningBack");
|
|
93
|
+
this.fsm.trans('running');
|
|
94
|
+
} else {
|
|
95
|
+
this.fsm.trans('idle');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}, {
|
|
99
|
+
key: "handleLeftClick",
|
|
100
|
+
value: function handleLeftClick() {
|
|
101
|
+
var _this2 = this;
|
|
102
|
+
var _this$getAction = this.getAction(),
|
|
103
|
+
stateKey = _this$getAction.stateKey;
|
|
104
|
+
this.attackStack += this.attackStack !== 3 ? 1 : 0;
|
|
105
|
+
if (stateKey === 'hit') this.fsm.punchSecond();else this.fsm.punch();
|
|
106
|
+
setTimeout(function () {
|
|
107
|
+
_this2.attackStack -= _this2.attackStack !== 0 ? 1 : 0;
|
|
108
|
+
}, 1000);
|
|
109
|
+
}
|
|
110
|
+
}, {
|
|
111
|
+
key: "handleRoll",
|
|
112
|
+
value: function handleRoll() {
|
|
113
|
+
var _this3 = this;
|
|
114
|
+
this.preventAction = true;
|
|
115
|
+
var _this$getAction2 = this.getAction(),
|
|
116
|
+
stateAction = _this$getAction2.stateAction,
|
|
117
|
+
prevStateAction = _this$getAction2.prevStateAction;
|
|
118
|
+
if (stateAction) {
|
|
119
|
+
var mixer = stateAction.getMixer();
|
|
120
|
+
stateAction.reset();
|
|
121
|
+
stateAction.enabled = true;
|
|
122
|
+
stateAction.clampWhenFinished = true;
|
|
123
|
+
stateAction.loop = THREE.LoopOnce;
|
|
124
|
+
stateAction.crossFadeFrom(prevStateAction, 0.1, true);
|
|
125
|
+
var onComplete = function onComplete() {
|
|
126
|
+
_this3.preventAction = false;
|
|
127
|
+
|
|
128
|
+
// fix error when holding space
|
|
129
|
+
_this3.fsm.trans('idle');
|
|
130
|
+
mixer.removeEventListener('finished', onComplete);
|
|
131
|
+
};
|
|
132
|
+
mixer.addEventListener('finished', onComplete);
|
|
133
|
+
stateAction.play();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}, {
|
|
137
|
+
key: "handlePunch",
|
|
138
|
+
value: function handlePunch(state) {
|
|
139
|
+
var _this4 = this;
|
|
140
|
+
this.preventAction = true;
|
|
141
|
+
var _this$getAction3 = this.getAction(state),
|
|
142
|
+
stateAction = _this$getAction3.stateAction,
|
|
143
|
+
prevStateAction = _this$getAction3.prevStateAction,
|
|
144
|
+
prevStateKey = _this$getAction3.prevStateKey,
|
|
145
|
+
stateKey = _this$getAction3.stateKey;
|
|
146
|
+
if (stateAction && prevStateAction) {
|
|
147
|
+
var mixer = stateAction.getMixer();
|
|
148
|
+
stateAction.reset();
|
|
149
|
+
stateAction.clampWhenFinished = true;
|
|
150
|
+
stateAction.loop = THREE.LoopOnce;
|
|
151
|
+
stateAction.crossFadeFrom(prevStateAction, 0.1, true);
|
|
152
|
+
var onComplete = function onComplete() {
|
|
153
|
+
_this4.preventAction = false;
|
|
154
|
+
_this4.attackStack -= _this4.attackStack !== 0 ? 1 : 0;
|
|
155
|
+
mixer.removeEventListener('finished', onComplete);
|
|
156
|
+
};
|
|
157
|
+
mixer.addEventListener('finished', onComplete);
|
|
158
|
+
stateAction.play();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}, {
|
|
162
|
+
key: "handleTrans",
|
|
163
|
+
value: function handleTrans() {
|
|
164
|
+
var _this$getAction4 = this.getAction(),
|
|
165
|
+
stateKey = _this$getAction4.stateKey,
|
|
166
|
+
stateAction = _this$getAction4.stateAction,
|
|
167
|
+
prevStateKey = _this$getAction4.prevStateKey,
|
|
168
|
+
prevStateAction = _this$getAction4.prevStateAction;
|
|
169
|
+
var crossNumber = 0.3;
|
|
170
|
+
if (prevStateKey === 'running' && prevStateAction) crossNumber = 0.2;
|
|
171
|
+
if (prevStateAction && stateAction) {
|
|
172
|
+
if (prevStateKey !== stateKey && !stateAction.isRunning()) {
|
|
173
|
+
stateAction.time = 0.0;
|
|
174
|
+
stateAction.enabled = true;
|
|
175
|
+
stateAction.setEffectiveTimeScale(1.0);
|
|
176
|
+
stateAction.setEffectiveWeight(1.0);
|
|
177
|
+
stateAction.crossFadeFrom(prevStateAction, crossNumber, true);
|
|
178
|
+
stateAction.play();
|
|
179
|
+
}
|
|
180
|
+
} else {
|
|
181
|
+
stateAction === null || stateAction === void 0 ? void 0 : stateAction.play();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}, {
|
|
185
|
+
key: "getAction",
|
|
186
|
+
value: function getAction(state) {
|
|
187
|
+
var stateKey = state || this.fsm.state;
|
|
188
|
+
var stateAction = this.animations[stateKey];
|
|
189
|
+
var prevStateKey = this.fsm.history[this.fsm.history.length - MAX_FSM_HISTORY];
|
|
190
|
+
var prevStateAction = this.animations[prevStateKey];
|
|
191
|
+
return {
|
|
192
|
+
stateKey: stateKey,
|
|
193
|
+
stateAction: stateAction,
|
|
194
|
+
prevStateKey: prevStateKey,
|
|
195
|
+
prevStateAction: prevStateAction
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}, {
|
|
199
|
+
key: "update",
|
|
200
|
+
value: function update(deltaT) {
|
|
201
|
+
this.handleAnimation();
|
|
202
|
+
}
|
|
203
|
+
}]);
|
|
204
|
+
return Character_animation;
|
|
205
|
+
}();
|
|
206
|
+
export { Character_animation as default };
|
|
207
|
+
//# sourceMappingURL=animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StateMachine","StateMachineHistory","THREE","MAX_FSM_HISTORY","Character_animation","animations","input","fsm","init","transitions","name","from","to","s","methods","onPunch","handlePunch","onPunchSecond","onTrans","handleTrans","onRoll","handleRoll","plugins","max","trans","keys","preventAction","leftClick","attackStack","handleLeftClick","space","left","right","forward","backward","getAction","stateKey","punchSecond","punch","setTimeout","stateAction","prevStateAction","mixer","getMixer","reset","enabled","clampWhenFinished","loop","LoopOnce","crossFadeFrom","onComplete","removeEventListener","addEventListener","play","state","prevStateKey","crossNumber","isRunning","time","setEffectiveTimeScale","setEffectiveWeight","history","length","deltaT","handleAnimation"],"sources":["../../../../../src/controls/src/ThirdViewControl/player/animation.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine'\n\n// @ts-ignore\nimport StateMachineHistory from 'javascript-state-machine/lib/history'\nimport * as THREE from '@anov/3d-core'\nimport type { AnimationAction } from '@anov/3d-core'\nimport type BasicCharacterControllerInput from '../action/input'\nimport type { CharacterAnimationType } from '../type'\n\ninterface PropsType {\n animations: CharacterAnimationType\n input: BasicCharacterControllerInput\n}\n\nconst MAX_FSM_HISTORY = 2\n\nexport default class Character_animation {\n animations: CharacterAnimationType\n input: BasicCharacterControllerInput\n preventAction = false\n fsm: any\n attackStack = 0\n\n constructor({ animations, input }: PropsType) {\n this.input = input\n this.animations = animations\n\n // @ts-ignore\n this.fsm = new StateMachine({\n init: 'idle',\n transitions: [\n { name: 'punch', from: '*', to: 'hit' },\n { name: 'punchSecond', from: '*', to: 'hitSecond' },\n { name: 'roll', from: '*', to: 'roll' },\n { name: 'trans', from: '*', to: (s: string) => s },\n ],\n methods: {\n onPunch: () => this.handlePunch('hit'),\n onPunchSecond: () => this.handlePunch('hitSecond'),\n onTrans: () => this.handleTrans(),\n onRoll: () => this.handleRoll(),\n },\n // @ts-ignore\n plugins: [new StateMachineHistory({ max: MAX_FSM_HISTORY })],\n })\n\n this.fsm.trans('idle')\n }\n\n handleAnimation() {\n const { keys } = this.input\n\n // used to have run left right\n\n if (this.preventAction)\n return\n if (keys.leftClick || this.attackStack > 0) {\n this.handleLeftClick()\n }\n else if (keys.space) {\n this.fsm.trans('roll')\n }\n else if (keys.left) {\n // this.fsm.trans(\"leftRun\");\n this.fsm.trans('running')\n }\n else if (keys.right) {\n // this.fsm.trans(\"rightRun\");\n this.fsm.trans('running')\n }\n else if (keys.forward) {\n this.fsm.trans('running')\n }\n else if (keys.backward) {\n // this.fsm.trans(\"runningBack\");\n this.fsm.trans('running')\n }\n else {\n this.fsm.trans('idle')\n }\n }\n\n handleLeftClick() {\n const { stateKey } = this.getAction()\n this.attackStack += this.attackStack !== 3 ? 1 : 0\n\n if (stateKey === 'hit')\n this.fsm.punchSecond()\n else this.fsm.punch()\n\n setTimeout(() => {\n this.attackStack -= this.attackStack !== 0 ? 1 : 0\n }, 1000)\n }\n\n handleRoll() {\n this.preventAction = true\n const { stateAction, prevStateAction } = this.getAction()\n\n if (stateAction) {\n const mixer = stateAction.getMixer()\n\n stateAction.reset()\n stateAction.enabled = true\n stateAction.clampWhenFinished = true\n stateAction.loop = THREE.LoopOnce\n\n stateAction.crossFadeFrom(prevStateAction as AnimationAction, 0.1, true)\n\n const onComplete = () => {\n this.preventAction = false\n\n // fix error when holding space\n this.fsm.trans('idle')\n\n mixer.removeEventListener('finished', onComplete)\n }\n\n mixer.addEventListener('finished', onComplete)\n\n stateAction.play()\n }\n }\n\n handlePunch(state: 'hit' | 'hitSecond') {\n this.preventAction = true\n const { stateAction, prevStateAction, prevStateKey, stateKey }\n = this.getAction(state)\n\n if (stateAction && prevStateAction) {\n const mixer = stateAction.getMixer()\n\n stateAction.reset()\n stateAction.clampWhenFinished = true\n stateAction.loop = THREE.LoopOnce\n\n stateAction.crossFadeFrom(prevStateAction as AnimationAction, 0.1, true)\n\n const onComplete = () => {\n this.preventAction = false\n\n this.attackStack -= this.attackStack !== 0 ? 1 : 0\n mixer.removeEventListener('finished', onComplete)\n }\n\n mixer.addEventListener('finished', onComplete)\n\n stateAction.play()\n }\n }\n\n handleTrans() {\n const { stateKey, stateAction, prevStateKey, prevStateAction }\n = this.getAction()\n\n let crossNumber = 0.3\n\n if (prevStateKey === 'running' && prevStateAction)\n crossNumber = 0.2\n\n if (prevStateAction && stateAction) {\n if (prevStateKey !== stateKey && !stateAction.isRunning()) {\n stateAction.time = 0.0\n stateAction.enabled = true\n stateAction.setEffectiveTimeScale(1.0)\n stateAction.setEffectiveWeight(1.0)\n\n stateAction.crossFadeFrom(\n prevStateAction as AnimationAction,\n crossNumber,\n true,\n )\n stateAction.play()\n }\n }\n else {\n stateAction?.play()\n }\n }\n\n getAction(state?: keyof typeof this.animations) {\n const stateKey: keyof typeof this.animations = state || this.fsm.state\n const stateAction = this.animations[stateKey]\n\n const prevStateKey: keyof typeof this.animations\n = this.fsm.history[this.fsm.history.length - MAX_FSM_HISTORY]\n const prevStateAction = this.animations[prevStateKey]\n\n return {\n stateKey,\n stateAction,\n prevStateKey,\n prevStateAction,\n }\n }\n\n update(deltaT: number) {\n this.handleAnimation()\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Mesh, Vector3 } from '@anov/3d-core';
|
|
2
|
+
import type { Object3D, PerspectiveCamera } from '@anov/3d-core';
|
|
3
|
+
import type Player from '../player';
|
|
4
|
+
interface PropsType {
|
|
5
|
+
character: Object3D;
|
|
6
|
+
characterRotateBox: Object3D;
|
|
7
|
+
camera: PerspectiveCamera;
|
|
8
|
+
player: Player;
|
|
9
|
+
}
|
|
10
|
+
export default class Camera_movement {
|
|
11
|
+
camera: PerspectiveCamera;
|
|
12
|
+
character: Object3D;
|
|
13
|
+
currentPosition: Vector3;
|
|
14
|
+
currentLookat: Vector3;
|
|
15
|
+
characterRotateBox: Object3D<THREE.Event>;
|
|
16
|
+
control: any;
|
|
17
|
+
player: Player;
|
|
18
|
+
view: Mesh;
|
|
19
|
+
constructor({ character, camera, characterRotateBox, player }: PropsType);
|
|
20
|
+
private calculateIdealLookat;
|
|
21
|
+
private updateCharacter;
|
|
22
|
+
private updateCamera;
|
|
23
|
+
private updateNewPosition;
|
|
24
|
+
update(deltaT: number): void;
|
|
25
|
+
}
|
|
26
|
+
export {};
|