@anov/3d-ability 0.0.139 → 0.0.141
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/business/Animation/motion/index.js +35 -56
- package/dist/business/Animation/motion/index.js.map +1 -1
- package/dist/business/Animation/type.js +2 -2
- package/dist/business/Area/Fence/FenceBase.js +146 -187
- package/dist/business/Area/Fence/FenceBase.js.map +1 -1
- package/dist/business/Area/Fence/fence_base_01.js +120 -112
- package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js +218 -130
- package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js +140 -130
- package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.js +87 -126
- package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_face_01.js +72 -98
- package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_line_01.js +66 -94
- package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
- package/dist/business/Area/index.js +267 -483
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Area/tool.js +14 -26
- package/dist/business/Area/tool.js.map +1 -1
- package/dist/business/Base/ObjectLayer.js +21 -46
- package/dist/business/Base/ObjectLayer.js.map +1 -1
- package/dist/business/Batch/index.js +189 -234
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Box/index.js +52 -81
- package/dist/business/Box/index.js.map +1 -1
- package/dist/business/Cylinder/index.js +51 -79
- package/dist/business/Cylinder/index.js.map +1 -1
- package/dist/business/Flyline/bubble/CircleBubble.js +1 -9
- package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
- package/dist/business/Flyline/bubble/index.js +7 -21
- package/dist/business/Flyline/bubble/index.js.map +1 -1
- package/dist/business/Flyline/index.js +96 -162
- package/dist/business/Flyline/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.js +208 -291
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/Flyline/line/index.js +8 -22
- package/dist/business/Flyline/line/index.js.map +1 -1
- package/dist/business/HeatMap/HeatMap.js +380 -467
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/HeatMap/core.js +405 -525
- package/dist/business/HeatMap/core.js.map +1 -1
- package/dist/business/HeatMap/shader.js +69 -3
- package/dist/business/HeatMap/shader.js.map +1 -1
- package/dist/business/InfoPanel/index.js +201 -242
- package/dist/business/InfoPanel/index.js.map +1 -1
- package/dist/business/Line/index.js +55 -88
- package/dist/business/Line/index.js.map +1 -1
- package/dist/business/Mark/KeyframeAnimation.js +145 -176
- package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
- package/dist/business/Mark/index.js +196 -294
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/Mark/shader/tanhao.js +36 -3
- package/dist/business/Mark/shader/tanhao.js.map +1 -1
- package/dist/business/Mark/type.js +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +377 -551
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.js +92 -58
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/finalFade.js +74 -2
- package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/ground.js +95 -16
- package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/groundBase64.js +9 -3
- package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js +48 -9
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/business/Plane/index.js +51 -78
- package/dist/business/Plane/index.js.map +1 -1
- package/dist/business/Poi/index.d.ts +5 -0
- package/dist/business/Poi/index.js +256 -295
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Cylinder.js +56 -89
- package/dist/business/Poi/link/Cylinder.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.js +104 -165
- package/dist/business/Poi/link/Pyramid.js.map +1 -1
- package/dist/business/Poi/link/index.d.ts +1 -1
- package/dist/business/Poi/link/index.js +54 -114
- package/dist/business/Poi/link/index.js.map +1 -1
- package/dist/business/Poi/panel/index.d.ts +124 -0
- package/dist/business/Poi/panel/index.js +474 -0
- package/dist/business/Poi/panel/index.js.map +1 -0
- package/dist/business/Poi/panel/interfaces.d.ts +67 -0
- package/dist/business/Poi/panel/interfaces.js +2 -0
- package/dist/business/Poi/panel/interfaces.js.map +1 -0
- package/dist/business/Poi/panel/utils.d.ts +72 -0
- package/dist/business/Poi/panel/utils.js +126 -0
- package/dist/business/Poi/panel/utils.js.map +1 -0
- package/dist/business/Poi/particle/DoubleCircle.js +71 -107
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.js +75 -111
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.js +62 -98
- package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
- package/dist/business/Poi/particle/index.js +49 -117
- package/dist/business/Poi/particle/index.js.map +1 -1
- package/dist/business/Poi/shader/circle.js +31 -3
- package/dist/business/Poi/shader/circle.js.map +1 -1
- package/dist/business/Poi/shader/cylinder.js +37 -3
- package/dist/business/Poi/shader/cylinder.js.map +1 -1
- package/dist/business/Poi/shader/doubleCircle.js +55 -3
- package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
- package/dist/business/Poi/shader/dynamicCircle.js +67 -3
- package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
- package/dist/business/Poi/title/Border.js +7 -27
- package/dist/business/Poi/title/Border.js.map +1 -1
- package/dist/business/Poi/title/Ellipse.js +7 -27
- package/dist/business/Poi/title/Ellipse.js.map +1 -1
- package/dist/business/Poi/title/index.js +208 -292
- package/dist/business/Poi/title/index.js.map +1 -1
- package/dist/business/Poi/tools.js +22 -19
- package/dist/business/Poi/tools.js.map +1 -1
- package/dist/business/Poi/types.d.ts +3 -0
- package/dist/business/Poi/types.js.map +1 -1
- package/dist/business/Sphere/index.js +47 -72
- package/dist/business/Sphere/index.js.map +1 -1
- package/dist/business/Spline/index.js +190 -245
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/SplitBuilding/index.js +327 -536
- package/dist/business/SplitBuilding/index.js.map +1 -1
- package/dist/business/SplitBuilding/type.js +2 -2
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +218 -275
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +132 -177
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +51 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +6 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
- package/dist/business/TrafficComponents/base.js +32 -55
- package/dist/business/TrafficComponents/base.js.map +1 -1
- package/dist/business/TrafficComponents/utils.js +25 -24
- package/dist/business/TrafficComponents/utils.js.map +1 -1
- package/dist/business/Utils/Curve.js +40 -56
- package/dist/business/Utils/Curve.js.map +1 -1
- package/dist/business/Utils/constant.js +1 -1
- package/dist/business/Utils/constant.js.map +1 -1
- package/dist/business/Utils/defineProps.js +13 -14
- package/dist/business/Utils/defineProps.js.map +1 -1
- package/dist/business/Utils/round-curve.js +127 -153
- package/dist/business/Utils/round-curve.js.map +1 -1
- package/dist/business/VideoPanel/index.js +258 -319
- package/dist/business/VideoPanel/index.js.map +1 -1
- package/dist/business/Water/index.js +78 -108
- package/dist/business/Water/index.js.map +1 -1
- package/dist/business/Water/types.js +1 -1
- package/dist/business/Water/types.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +383 -449
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +107 -142
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
- package/dist/core/Controls/FirstViewControl/index.js +84 -96
- package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/action/input.js +77 -98
- package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/index.js +19 -28
- package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/animation.js +126 -155
- package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/camera.js +47 -63
- package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/control.js +39 -49
- package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player.js +66 -91
- package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
- package/dist/core/Controls/base.js +14 -30
- package/dist/core/Controls/base.js.map +1 -1
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +92 -131
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
- package/dist/core/Debug/PerformanceInfo/Performance.js +22 -47
- package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
- package/dist/core/Light/PointLight/PointLightExt.js +4 -21
- package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
- package/dist/core/Material/FinirMaterial/FinirMaterial.js +37 -57
- package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +116 -153
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js +95 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js +26 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.js +76 -172
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/Material/decorators.js +6 -11
- package/dist/core/Material/decorators.js.map +1 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +16 -12
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.js +17 -13
- package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
- package/dist/core/PostEffects/bloomPass.js +17 -10
- package/dist/core/PostEffects/bloomPass.js.map +1 -1
- package/dist/core/PostEffects/bloomSelect.js +60 -43
- package/dist/core/PostEffects/bloomSelect.js.map +1 -1
- package/dist/core/PostEffects/colorifyPass.js +17 -13
- package/dist/core/PostEffects/colorifyPass.js.map +1 -1
- package/dist/core/PostEffects/index.js +28 -22
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.js +37 -50
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/PostEffects/postprocessing.js +14 -12
- package/dist/core/PostEffects/postprocessing.js.map +1 -1
- package/dist/core/PostEffects/saoPass.js +15 -10
- package/dist/core/PostEffects/saoPass.js.map +1 -1
- package/dist/core/PostEffects/shader/colorify.js +22 -3
- package/dist/core/PostEffects/shader/colorify.js.map +1 -1
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js +27 -3
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
- package/dist/core/PostEffects/shader/mapping.js +66 -3
- package/dist/core/PostEffects/shader/mapping.js.map +1 -1
- package/dist/core/PostEffects/shader/thermalMaging.js +28 -3
- package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
- package/dist/core/SceneEffect/grow/grow.js +85 -101
- package/dist/core/SceneEffect/grow/grow.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_down.js +60 -77
- package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_up.js +64 -81
- package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
- package/dist/core/SceneEffect/grow/type.js +2 -2
- package/dist/core/SceneEffect/grow/type.js.map +1 -1
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js +51 -76
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/hdr/index.js +69 -105
- package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
- package/dist/core/WeatherSystem/index.js +77 -124
- package/dist/core/WeatherSystem/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/fog/index.js +52 -80
- package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.js +72 -84
- package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +88 -118
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.js +116 -146
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/point.js +100 -148
- package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/cloud.js +71 -104
- package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/index.js +66 -84
- package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/outline.js +25 -45
- package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/cloud.js +74 -3
- package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/fog.js +103 -3
- package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/rain.js +206 -7
- package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js +87 -3
- package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js +104 -135
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/utils/constant.js +44 -38
- package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
- package/dist/core/WeatherSystem/utils/math.js +18 -25
- package/dist/core/WeatherSystem/utils/math.js.map +1 -1
- package/dist/core/WeatherSystem/utils/type.js +1 -1
- package/dist/core/WeatherSystem/utils/type.js.map +1 -1
- package/dist/core/WeatherSystem/weather/index.js +96 -141
- package/dist/core/WeatherSystem/weather/index.js.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
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
1
|
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(t) { var i = _toPrimitive(t, "string"); return "symbol" ==
|
|
7
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
4
|
import StateMachine from 'javascript-state-machine';
|
|
9
5
|
|
|
10
6
|
// @ts-ignore
|
|
11
7
|
import StateMachineHistory from 'javascript-state-machine/lib/history';
|
|
12
8
|
import * as THREE from '@anov/3d-core';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
_classCallCheck(this, Character_animation);
|
|
9
|
+
const MAX_FSM_HISTORY = 2;
|
|
10
|
+
export default class Character_animation {
|
|
11
|
+
constructor({
|
|
12
|
+
animations,
|
|
13
|
+
input
|
|
14
|
+
}) {
|
|
20
15
|
_defineProperty(this, "animations", void 0);
|
|
21
16
|
_defineProperty(this, "input", void 0);
|
|
22
17
|
_defineProperty(this, "preventAction", false);
|
|
@@ -43,23 +38,13 @@ var Character_animation = /*#__PURE__*/function () {
|
|
|
43
38
|
}, {
|
|
44
39
|
name: 'trans',
|
|
45
40
|
from: '*',
|
|
46
|
-
to:
|
|
47
|
-
return s;
|
|
48
|
-
}
|
|
41
|
+
to: s => s
|
|
49
42
|
}],
|
|
50
43
|
methods: {
|
|
51
|
-
onPunch:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return _this.handlePunch('hitSecond');
|
|
56
|
-
},
|
|
57
|
-
onTrans: function onTrans() {
|
|
58
|
-
return _this.handleTrans();
|
|
59
|
-
},
|
|
60
|
-
onRoll: function onRoll() {
|
|
61
|
-
return _this.handleRoll();
|
|
62
|
-
}
|
|
44
|
+
onPunch: () => this.handlePunch('hit'),
|
|
45
|
+
onPunchSecond: () => this.handlePunch('hitSecond'),
|
|
46
|
+
onTrans: () => this.handleTrans(),
|
|
47
|
+
onRoll: () => this.handleRoll()
|
|
63
48
|
},
|
|
64
49
|
// @ts-ignore
|
|
65
50
|
plugins: [new StateMachineHistory({
|
|
@@ -68,140 +53,126 @@ var Character_animation = /*#__PURE__*/function () {
|
|
|
68
53
|
});
|
|
69
54
|
this.fsm.trans('idle');
|
|
70
55
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
56
|
+
handleAnimation() {
|
|
57
|
+
const {
|
|
58
|
+
keys
|
|
59
|
+
} = this.input;
|
|
75
60
|
|
|
76
|
-
|
|
61
|
+
// used to have run left right
|
|
77
62
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
63
|
+
if (this.preventAction) return;
|
|
64
|
+
if (keys.leftClick || this.attackStack > 0) {
|
|
65
|
+
this.handleLeftClick();
|
|
66
|
+
} else if (keys.space) {
|
|
67
|
+
this.fsm.trans('roll');
|
|
68
|
+
} else if (keys.left) {
|
|
69
|
+
// this.fsm.trans("leftRun");
|
|
70
|
+
this.fsm.trans('running');
|
|
71
|
+
} else if (keys.right) {
|
|
72
|
+
// this.fsm.trans("rightRun");
|
|
73
|
+
this.fsm.trans('running');
|
|
74
|
+
} else if (keys.forward) {
|
|
75
|
+
this.fsm.trans('running');
|
|
76
|
+
} else if (keys.backward) {
|
|
77
|
+
// this.fsm.trans("runningBack");
|
|
78
|
+
this.fsm.trans('running');
|
|
79
|
+
} else {
|
|
80
|
+
this.fsm.trans('idle');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
handleLeftClick() {
|
|
84
|
+
const {
|
|
85
|
+
stateKey
|
|
86
|
+
} = this.getAction();
|
|
87
|
+
this.attackStack += this.attackStack !== 3 ? 1 : 0;
|
|
88
|
+
if (stateKey === 'hit') this.fsm.punchSecond();else this.fsm.punch();
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
this.attackStack -= this.attackStack !== 0 ? 1 : 0;
|
|
91
|
+
}, 1000);
|
|
92
|
+
}
|
|
93
|
+
handleRoll() {
|
|
94
|
+
this.preventAction = true;
|
|
95
|
+
const {
|
|
96
|
+
stateAction,
|
|
97
|
+
prevStateAction
|
|
98
|
+
} = this.getAction();
|
|
99
|
+
if (stateAction) {
|
|
100
|
+
const mixer = stateAction.getMixer();
|
|
101
|
+
stateAction.reset();
|
|
102
|
+
stateAction.enabled = true;
|
|
103
|
+
stateAction.clampWhenFinished = true;
|
|
104
|
+
stateAction.loop = THREE.LoopOnce;
|
|
105
|
+
stateAction.crossFadeFrom(prevStateAction, 0.1, true);
|
|
106
|
+
const onComplete = () => {
|
|
107
|
+
this.preventAction = false;
|
|
108
|
+
|
|
109
|
+
// fix error when holding space
|
|
95
110
|
this.fsm.trans('idle');
|
|
96
|
-
|
|
111
|
+
mixer.removeEventListener('finished', onComplete);
|
|
112
|
+
};
|
|
113
|
+
mixer.addEventListener('finished', onComplete);
|
|
114
|
+
stateAction.play();
|
|
97
115
|
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
116
|
+
}
|
|
117
|
+
handlePunch(state) {
|
|
118
|
+
this.preventAction = true;
|
|
119
|
+
const {
|
|
120
|
+
stateAction,
|
|
121
|
+
prevStateAction,
|
|
122
|
+
prevStateKey,
|
|
123
|
+
stateKey
|
|
124
|
+
} = this.getAction(state);
|
|
125
|
+
if (stateAction && prevStateAction) {
|
|
126
|
+
const mixer = stateAction.getMixer();
|
|
127
|
+
stateAction.reset();
|
|
128
|
+
stateAction.clampWhenFinished = true;
|
|
129
|
+
stateAction.loop = THREE.LoopOnce;
|
|
130
|
+
stateAction.crossFadeFrom(prevStateAction, 0.1, true);
|
|
131
|
+
const onComplete = () => {
|
|
132
|
+
this.preventAction = false;
|
|
133
|
+
this.attackStack -= this.attackStack !== 0 ? 1 : 0;
|
|
134
|
+
mixer.removeEventListener('finished', onComplete);
|
|
135
|
+
};
|
|
136
|
+
mixer.addEventListener('finished', onComplete);
|
|
137
|
+
stateAction.play();
|
|
109
138
|
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
139
|
+
}
|
|
140
|
+
handleTrans() {
|
|
141
|
+
const {
|
|
142
|
+
stateKey,
|
|
143
|
+
stateAction,
|
|
144
|
+
prevStateKey,
|
|
145
|
+
prevStateAction
|
|
146
|
+
} = this.getAction();
|
|
147
|
+
let crossNumber = 0.3;
|
|
148
|
+
if (prevStateKey === 'running' && prevStateAction) crossNumber = 0.2;
|
|
149
|
+
if (prevStateAction && stateAction) {
|
|
150
|
+
if (prevStateKey !== stateKey && !stateAction.isRunning()) {
|
|
151
|
+
stateAction.time = 0.0;
|
|
121
152
|
stateAction.enabled = true;
|
|
122
|
-
stateAction.
|
|
123
|
-
stateAction.
|
|
124
|
-
stateAction.crossFadeFrom(prevStateAction,
|
|
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);
|
|
153
|
+
stateAction.setEffectiveTimeScale(1.0);
|
|
154
|
+
stateAction.setEffectiveWeight(1.0);
|
|
155
|
+
stateAction.crossFadeFrom(prevStateAction, crossNumber, true);
|
|
133
156
|
stateAction.play();
|
|
134
157
|
}
|
|
158
|
+
} else {
|
|
159
|
+
stateAction === null || stateAction === void 0 || stateAction.play();
|
|
135
160
|
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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 || 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 };
|
|
161
|
+
}
|
|
162
|
+
getAction(state) {
|
|
163
|
+
const stateKey = state || this.fsm.state;
|
|
164
|
+
const stateAction = this.animations[stateKey];
|
|
165
|
+
const prevStateKey = this.fsm.history[this.fsm.history.length - MAX_FSM_HISTORY];
|
|
166
|
+
const prevStateAction = this.animations[prevStateKey];
|
|
167
|
+
return {
|
|
168
|
+
stateKey,
|
|
169
|
+
stateAction,
|
|
170
|
+
prevStateKey,
|
|
171
|
+
prevStateAction
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
update(deltaT) {
|
|
175
|
+
this.handleAnimation();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
207
178
|
//# sourceMappingURL=animation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StateMachine","StateMachineHistory","THREE","MAX_FSM_HISTORY","Character_animation","_ref","_this","animations","input","_classCallCheck","_defineProperty","fsm","init","transitions","name","from","to","s","methods","onPunch","handlePunch","onPunchSecond","onTrans","handleTrans","onRoll","handleRoll","plugins","max","trans","_createClass","key","value","handleAnimation","keys","preventAction","leftClick","attackStack","handleLeftClick","space","left","right","forward","backward","_this2","_this$getAction","getAction","stateKey","punchSecond","punch","setTimeout","_this3","_this$getAction2","stateAction","prevStateAction","mixer","getMixer","reset","enabled","clampWhenFinished","loop","LoopOnce","crossFadeFrom","onComplete","removeEventListener","addEventListener","play","state","_this4","_this$getAction3","prevStateKey","_this$getAction4","crossNumber","isRunning","time","setEffectiveTimeScale","setEffectiveWeight","history","length","update","deltaT","default"],"sources":["../../../../../src/core/Controls/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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"}
|
|
1
|
+
{"version":3,"names":["StateMachine","StateMachineHistory","THREE","MAX_FSM_HISTORY","Character_animation","constructor","animations","input","_defineProperty","fsm","init","transitions","name","from","to","s","methods","onPunch","handlePunch","onPunchSecond","onTrans","handleTrans","onRoll","handleRoll","plugins","max","trans","handleAnimation","keys","preventAction","leftClick","attackStack","handleLeftClick","space","left","right","forward","backward","stateKey","getAction","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","update","deltaT"],"sources":["../../../../../src/core/Controls/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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"}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
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
1
|
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(t) { var i = _toPrimitive(t, "string"); return "symbol" ==
|
|
7
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
4
|
import { BoxGeometry, Mesh, Vector3, use } from '@anov/3d-core';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
5
|
+
export default class Camera_movement {
|
|
6
|
+
constructor({
|
|
7
|
+
character,
|
|
8
|
+
camera,
|
|
9
|
+
characterRotateBox,
|
|
10
|
+
player
|
|
11
|
+
}) {
|
|
16
12
|
_defineProperty(this, "camera", void 0);
|
|
17
13
|
_defineProperty(this, "character", void 0);
|
|
18
14
|
_defineProperty(this, "currentPosition", void 0);
|
|
@@ -28,59 +24,47 @@ var Camera_movement = /*#__PURE__*/function () {
|
|
|
28
24
|
this.currentPosition = new Vector3();
|
|
29
25
|
this.currentLookat = new Vector3();
|
|
30
26
|
this.control = use.useScene().orbitControls;
|
|
31
|
-
|
|
27
|
+
const view = new Mesh(new BoxGeometry(1, 1, 1));
|
|
32
28
|
this.character.add(view);
|
|
33
29
|
view.position.add(new Vector3(0, 5, -15));
|
|
34
30
|
this.view = view;
|
|
35
31
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
this.
|
|
67
|
-
this.
|
|
68
|
-
}
|
|
69
|
-
}, {
|
|
70
|
-
key: "updateNewPosition",
|
|
71
|
-
value: function updateNewPosition() {
|
|
72
|
-
if (this.view && this.view.position) {
|
|
73
|
-
this.updateCharacter();
|
|
74
|
-
this.updateCamera();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}, {
|
|
78
|
-
key: "update",
|
|
79
|
-
value: function update(deltaT) {
|
|
80
|
-
this.updateNewPosition();
|
|
32
|
+
calculateIdealLookat() {
|
|
33
|
+
const {
|
|
34
|
+
x,
|
|
35
|
+
y,
|
|
36
|
+
z
|
|
37
|
+
} = this.character.position;
|
|
38
|
+
const idealLookat = new Vector3(x, this.character.position.y + 3.4, z);
|
|
39
|
+
return idealLookat;
|
|
40
|
+
}
|
|
41
|
+
updateCharacter() {
|
|
42
|
+
const cameraPosition = new Vector3();
|
|
43
|
+
this.camera.getWorldPosition(cameraPosition);
|
|
44
|
+
const characterPosition = new Vector3();
|
|
45
|
+
this.character.getWorldPosition(characterPosition);
|
|
46
|
+
const direction = new Vector3();
|
|
47
|
+
direction.subVectors(cameraPosition, characterPosition);
|
|
48
|
+
direction.y = 0;
|
|
49
|
+
const angle = Math.atan2(direction.x, direction.z);
|
|
50
|
+
this.character.rotation.y = angle + Math.PI;
|
|
51
|
+
this.characterRotateBox.rotation.y = angle + Math.PI;
|
|
52
|
+
}
|
|
53
|
+
updateCamera() {
|
|
54
|
+
const position = new Vector3();
|
|
55
|
+
this.view.getWorldPosition(position);
|
|
56
|
+
const idealLookat = this.calculateIdealLookat();
|
|
57
|
+
this.control.target = idealLookat;
|
|
58
|
+
this.control.object.position.copy(position);
|
|
59
|
+
}
|
|
60
|
+
updateNewPosition() {
|
|
61
|
+
if (this.view && this.view.position) {
|
|
62
|
+
this.updateCharacter();
|
|
63
|
+
this.updateCamera();
|
|
81
64
|
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
65
|
+
}
|
|
66
|
+
update(deltaT) {
|
|
67
|
+
this.updateNewPosition();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
86
70
|
//# sourceMappingURL=camera.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BoxGeometry","Mesh","Vector3","use","Camera_movement","
|
|
1
|
+
{"version":3,"names":["BoxGeometry","Mesh","Vector3","use","Camera_movement","constructor","character","camera","characterRotateBox","player","_defineProperty","currentPosition","currentLookat","control","useScene","orbitControls","view","add","position","calculateIdealLookat","x","y","z","idealLookat","updateCharacter","cameraPosition","getWorldPosition","characterPosition","direction","subVectors","angle","Math","atan2","rotation","PI","updateCamera","target","object","copy","updateNewPosition","update","deltaT"],"sources":["../../../../../src/core/Controls/ThirdViewControl/player/camera.ts"],"sourcesContent":["import { BoxGeometry, Mesh, Vector3, use } from '@anov/3d-core'\nimport type { Object3D, Object3DEventMap, OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport type Player from '../player'\n\ninterface PropsType {\n character: Object3D\n characterRotateBox: Object3D\n camera: PerspectiveCamera\n player: Player\n}\n\nexport default class Camera_movement {\n camera: PerspectiveCamera\n character: Object3D\n currentPosition: Vector3\n currentLookat: Vector3\n characterRotateBox: Object3D\n control: any\n player: Player\n view: Mesh\n\n constructor({ character, camera, characterRotateBox, player }: PropsType) {\n this.character = character\n this.characterRotateBox = characterRotateBox\n this.camera = camera\n this.player = player\n\n this.currentPosition = new Vector3()\n this.currentLookat = new Vector3()\n this.control = use.useScene().orbitControls\n\n const view = new Mesh(new BoxGeometry(1, 1, 1))\n this.character.add(view)\n\n view.position.add(new Vector3(0, 5, -15))\n\n this.view = view\n }\n\n private calculateIdealLookat() {\n const { x, y, z } = this.character.position\n const idealLookat = new Vector3(x, this.character.position.y + 3.4, z)\n\n return idealLookat\n }\n\n private updateCharacter() {\n const cameraPosition = new Vector3()\n this.camera.getWorldPosition(cameraPosition)\n\n const characterPosition = new Vector3()\n this.character.getWorldPosition(characterPosition)\n\n const direction = new Vector3()\n direction.subVectors(cameraPosition, characterPosition)\n direction.y = 0\n\n const angle = Math.atan2(direction.x, direction.z)\n\n this.character.rotation.y = angle + Math.PI\n this.characterRotateBox.rotation.y = angle + Math.PI\n }\n\n private updateCamera() {\n const position = new Vector3()\n this.view.getWorldPosition(position)\n\n const idealLookat = this.calculateIdealLookat()\n this.control.target = idealLookat;\n (this.control as OrbitControls).object.position.copy(position)\n }\n\n private updateNewPosition() {\n if (this.view && this.view.position) {\n this.updateCharacter()\n this.updateCamera()\n }\n }\n\n update(deltaT: number) {\n this.updateNewPosition()\n }\n}\n"],"mappings":"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"}
|