@anov/3d-ability 0.0.142 → 0.0.143

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/dist/business/Animation/motion/index.js +56 -35
  2. package/dist/business/Animation/motion/index.js.map +1 -1
  3. package/dist/business/Animation/type.js +2 -2
  4. package/dist/business/Area/Fence/FenceBase.js +187 -146
  5. package/dist/business/Area/Fence/FenceBase.js.map +1 -1
  6. package/dist/business/Area/Fence/fence_base_01.js +112 -120
  7. package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
  8. package/dist/business/Area/Fence/fence_feeting_01.js +130 -218
  9. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
  10. package/dist/business/Area/Fence/fence_roll_01.js +130 -140
  11. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
  12. package/dist/business/Area/FillArea/FillAreaBase.js +126 -87
  13. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
  14. package/dist/business/Area/FillArea/fillArea_face_01.js +98 -72
  15. package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
  16. package/dist/business/Area/FillArea/fillArea_line_01.js +94 -66
  17. package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
  18. package/dist/business/Area/index.js +483 -267
  19. package/dist/business/Area/index.js.map +1 -1
  20. package/dist/business/Area/tool.js +26 -14
  21. package/dist/business/Area/tool.js.map +1 -1
  22. package/dist/business/Base/ObjectLayer.js +46 -21
  23. package/dist/business/Base/ObjectLayer.js.map +1 -1
  24. package/dist/business/Batch/index.js +234 -189
  25. package/dist/business/Batch/index.js.map +1 -1
  26. package/dist/business/Box/index.js +81 -52
  27. package/dist/business/Box/index.js.map +1 -1
  28. package/dist/business/Cylinder/index.js +79 -51
  29. package/dist/business/Cylinder/index.js.map +1 -1
  30. package/dist/business/Flyline/bubble/CircleBubble.js +9 -1
  31. package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
  32. package/dist/business/Flyline/bubble/index.js +21 -7
  33. package/dist/business/Flyline/bubble/index.js.map +1 -1
  34. package/dist/business/Flyline/index.js +162 -96
  35. package/dist/business/Flyline/index.js.map +1 -1
  36. package/dist/business/Flyline/line/ArcLine.js +291 -208
  37. package/dist/business/Flyline/line/ArcLine.js.map +1 -1
  38. package/dist/business/Flyline/line/index.js +22 -8
  39. package/dist/business/Flyline/line/index.js.map +1 -1
  40. package/dist/business/HeatMap/HeatMap.js +467 -380
  41. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  42. package/dist/business/HeatMap/core.js +525 -405
  43. package/dist/business/HeatMap/core.js.map +1 -1
  44. package/dist/business/HeatMap/shader.js +3 -69
  45. package/dist/business/HeatMap/shader.js.map +1 -1
  46. package/dist/business/InfoPanel/index.js +242 -201
  47. package/dist/business/InfoPanel/index.js.map +1 -1
  48. package/dist/business/Line/index.js +88 -55
  49. package/dist/business/Line/index.js.map +1 -1
  50. package/dist/business/Mark/KeyframeAnimation.js +176 -145
  51. package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
  52. package/dist/business/Mark/index.js +294 -196
  53. package/dist/business/Mark/index.js.map +1 -1
  54. package/dist/business/Mark/shader/tanhao.js +3 -36
  55. package/dist/business/Mark/shader/tanhao.js.map +1 -1
  56. package/dist/business/Mark/type.js +1 -1
  57. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +551 -377
  58. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  59. package/dist/business/MaterialSwitch/inject.js +58 -92
  60. package/dist/business/MaterialSwitch/inject.js.map +1 -1
  61. package/dist/business/MaterialSwitch/shader/finalFade.js +2 -74
  62. package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
  63. package/dist/business/MaterialSwitch/shader/ground.js +16 -95
  64. package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
  65. package/dist/business/MaterialSwitch/shader/groundBase64.js +3 -9
  66. package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
  67. package/dist/business/MaterialSwitch/shader/realFade.js +9 -48
  68. package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
  69. package/dist/business/Plane/index.js +78 -51
  70. package/dist/business/Plane/index.js.map +1 -1
  71. package/dist/business/Poi/index.js +336 -248
  72. package/dist/business/Poi/index.js.map +1 -1
  73. package/dist/business/Poi/link/Cylinder.js +89 -56
  74. package/dist/business/Poi/link/Cylinder.js.map +1 -1
  75. package/dist/business/Poi/link/Pyramid.js +165 -104
  76. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  77. package/dist/business/Poi/link/index.js +114 -54
  78. package/dist/business/Poi/link/index.js.map +1 -1
  79. package/dist/business/Poi/panel/index.js +373 -315
  80. package/dist/business/Poi/panel/index.js.map +1 -1
  81. package/dist/business/Poi/panel/utils.js +10 -5
  82. package/dist/business/Poi/panel/utils.js.map +1 -1
  83. package/dist/business/Poi/particle/DoubleCircle.js +107 -71
  84. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  85. package/dist/business/Poi/particle/DynamicCircle.js +111 -75
  86. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  87. package/dist/business/Poi/particle/SingleCircle.js +98 -62
  88. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  89. package/dist/business/Poi/particle/index.js +117 -49
  90. package/dist/business/Poi/particle/index.js.map +1 -1
  91. package/dist/business/Poi/shader/circle.js +3 -31
  92. package/dist/business/Poi/shader/circle.js.map +1 -1
  93. package/dist/business/Poi/shader/cylinder.js +3 -37
  94. package/dist/business/Poi/shader/cylinder.js.map +1 -1
  95. package/dist/business/Poi/shader/doubleCircle.js +3 -55
  96. package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
  97. package/dist/business/Poi/shader/dynamicCircle.js +3 -67
  98. package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
  99. package/dist/business/Poi/title/Border.js +27 -7
  100. package/dist/business/Poi/title/Border.js.map +1 -1
  101. package/dist/business/Poi/title/Ellipse.js +27 -7
  102. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  103. package/dist/business/Poi/title/index.js +292 -208
  104. package/dist/business/Poi/title/index.js.map +1 -1
  105. package/dist/business/Poi/tools.js +17 -18
  106. package/dist/business/Poi/tools.js.map +1 -1
  107. package/dist/business/Sphere/index.js +72 -47
  108. package/dist/business/Sphere/index.js.map +1 -1
  109. package/dist/business/Spline/index.js +245 -190
  110. package/dist/business/Spline/index.js.map +1 -1
  111. package/dist/business/SplitBuilding/index.js +536 -327
  112. package/dist/business/SplitBuilding/index.js.map +1 -1
  113. package/dist/business/SplitBuilding/type.js +2 -2
  114. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +275 -218
  115. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  116. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +177 -132
  117. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  118. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -51
  119. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
  120. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +1 -6
  121. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
  122. package/dist/business/TrafficComponents/base.js +55 -32
  123. package/dist/business/TrafficComponents/base.js.map +1 -1
  124. package/dist/business/TrafficComponents/utils.js +24 -25
  125. package/dist/business/TrafficComponents/utils.js.map +1 -1
  126. package/dist/business/Utils/Curve.js +56 -40
  127. package/dist/business/Utils/Curve.js.map +1 -1
  128. package/dist/business/Utils/constant.js +1 -1
  129. package/dist/business/Utils/constant.js.map +1 -1
  130. package/dist/business/Utils/defineProps.js +14 -13
  131. package/dist/business/Utils/defineProps.js.map +1 -1
  132. package/dist/business/Utils/round-curve.js +153 -127
  133. package/dist/business/Utils/round-curve.js.map +1 -1
  134. package/dist/business/VideoPanel/index.js +319 -258
  135. package/dist/business/VideoPanel/index.js.map +1 -1
  136. package/dist/business/Water/index.js +108 -78
  137. package/dist/business/Water/index.js.map +1 -1
  138. package/dist/business/Water/types.js +1 -1
  139. package/dist/business/Water/types.js.map +1 -1
  140. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +449 -383
  141. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  142. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +142 -107
  143. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
  144. package/dist/core/Controls/FirstViewControl/index.js +96 -84
  145. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  146. package/dist/core/Controls/ThirdViewControl/action/input.js +98 -77
  147. package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
  148. package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
  149. package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
  150. package/dist/core/Controls/ThirdViewControl/index.js +28 -19
  151. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  152. package/dist/core/Controls/ThirdViewControl/player/animation.js +155 -126
  153. package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
  154. package/dist/core/Controls/ThirdViewControl/player/camera.js +63 -47
  155. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  156. package/dist/core/Controls/ThirdViewControl/player/control.js +49 -39
  157. package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
  158. package/dist/core/Controls/ThirdViewControl/player.js +91 -66
  159. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  160. package/dist/core/Controls/base.js +30 -14
  161. package/dist/core/Controls/base.js.map +1 -1
  162. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +131 -92
  163. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
  164. package/dist/core/Debug/PerformanceInfo/Performance.js +47 -22
  165. package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
  166. package/dist/core/Light/PointLight/PointLightExt.js +21 -4
  167. package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
  168. package/dist/core/Material/FinirMaterial/FinirMaterial.js +57 -37
  169. package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
  170. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +153 -116
  171. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
  172. package/dist/core/Material/PristineGridMaterial/shader/fragment.js +1 -95
  173. package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
  174. package/dist/core/Material/PristineGridMaterial/shader/vertex.js +1 -26
  175. package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
  176. package/dist/core/Material/SurfaceMaterial/index.js +172 -76
  177. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  178. package/dist/core/Material/decorators.js +11 -6
  179. package/dist/core/Material/decorators.js.map +1 -1
  180. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +12 -16
  181. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  182. package/dist/core/PostEffects/addBrightnessContrastPass.js +13 -17
  183. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  184. package/dist/core/PostEffects/bloomPass.js +10 -17
  185. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  186. package/dist/core/PostEffects/bloomSelect.js +43 -60
  187. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  188. package/dist/core/PostEffects/colorifyPass.js +13 -17
  189. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  190. package/dist/core/PostEffects/index.js +22 -28
  191. package/dist/core/PostEffects/index.js.map +1 -1
  192. package/dist/core/PostEffects/outlinePass.js +50 -37
  193. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  194. package/dist/core/PostEffects/postprocessing.js +12 -14
  195. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  196. package/dist/core/PostEffects/saoPass.js +10 -15
  197. package/dist/core/PostEffects/saoPass.js.map +1 -1
  198. package/dist/core/PostEffects/shader/colorify.js +3 -22
  199. package/dist/core/PostEffects/shader/colorify.js.map +1 -1
  200. package/dist/core/PostEffects/shader/gammaCorrectionShader.js +3 -27
  201. package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
  202. package/dist/core/PostEffects/shader/mapping.js +3 -66
  203. package/dist/core/PostEffects/shader/mapping.js.map +1 -1
  204. package/dist/core/PostEffects/shader/thermalMaging.js +3 -28
  205. package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
  206. package/dist/core/SceneEffect/grow/grow.js +101 -85
  207. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  208. package/dist/core/SceneEffect/grow/style_down.js +77 -60
  209. package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
  210. package/dist/core/SceneEffect/grow/style_up.js +81 -64
  211. package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
  212. package/dist/core/SceneEffect/grow/type.js +2 -2
  213. package/dist/core/SceneEffect/grow/type.js.map +1 -1
  214. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +76 -51
  215. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  216. package/dist/core/WeatherSystem/hdr/index.js +105 -69
  217. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  218. package/dist/core/WeatherSystem/index.js +124 -77
  219. package/dist/core/WeatherSystem/index.js.map +1 -1
  220. package/dist/core/WeatherSystem/objects/fog/index.js +80 -52
  221. package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
  222. package/dist/core/WeatherSystem/objects/rain/index.js +84 -72
  223. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  224. package/dist/core/WeatherSystem/objects/rain/lineRain.js +118 -88
  225. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  226. package/dist/core/WeatherSystem/objects/rain/plane.js +146 -116
  227. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  228. package/dist/core/WeatherSystem/objects/rain/point.js +148 -100
  229. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  230. package/dist/core/WeatherSystem/objects/sky/cloud.js +104 -71
  231. package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
  232. package/dist/core/WeatherSystem/objects/sky/index.js +84 -66
  233. package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
  234. package/dist/core/WeatherSystem/objects/sky/outline.js +45 -25
  235. package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
  236. package/dist/core/WeatherSystem/shaders/cloud.js +3 -74
  237. package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
  238. package/dist/core/WeatherSystem/shaders/fog.js +3 -103
  239. package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
  240. package/dist/core/WeatherSystem/shaders/rain.js +7 -206
  241. package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
  242. package/dist/core/WeatherSystem/shaders/sky.js +3 -87
  243. package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
  244. package/dist/core/WeatherSystem/sky/index.js +135 -104
  245. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  246. package/dist/core/WeatherSystem/utils/constant.js +38 -44
  247. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  248. package/dist/core/WeatherSystem/utils/math.js +25 -18
  249. package/dist/core/WeatherSystem/utils/math.js.map +1 -1
  250. package/dist/core/WeatherSystem/utils/type.js +1 -1
  251. package/dist/core/WeatherSystem/utils/type.js.map +1 -1
  252. package/dist/core/WeatherSystem/weather/index.js +141 -96
  253. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  254. package/dist/utils/index.js +1 -1
  255. package/dist/utils/index.js.map +1 -1
  256. package/package.json +3 -3
@@ -1,17 +1,22 @@
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; }
1
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; }
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); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
4
8
  import StateMachine from 'javascript-state-machine';
5
9
 
6
10
  // @ts-ignore
7
11
  import StateMachineHistory from 'javascript-state-machine/lib/history';
8
12
  import * as THREE from '@anov/3d-core';
9
- const MAX_FSM_HISTORY = 2;
10
- export default class Character_animation {
11
- constructor({
12
- animations,
13
- input
14
- }) {
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);
15
20
  _defineProperty(this, "animations", void 0);
16
21
  _defineProperty(this, "input", void 0);
17
22
  _defineProperty(this, "preventAction", false);
@@ -38,13 +43,23 @@ export default class Character_animation {
38
43
  }, {
39
44
  name: 'trans',
40
45
  from: '*',
41
- to: s => s
46
+ to: function to(s) {
47
+ return s;
48
+ }
42
49
  }],
43
50
  methods: {
44
- onPunch: () => this.handlePunch('hit'),
45
- onPunchSecond: () => this.handlePunch('hitSecond'),
46
- onTrans: () => this.handleTrans(),
47
- onRoll: () => this.handleRoll()
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
+ }
48
63
  },
49
64
  // @ts-ignore
50
65
  plugins: [new StateMachineHistory({
@@ -53,126 +68,140 @@ export default class Character_animation {
53
68
  });
54
69
  this.fsm.trans('idle');
55
70
  }
56
- handleAnimation() {
57
- const {
58
- keys
59
- } = this.input;
71
+ _createClass(Character_animation, [{
72
+ key: "handleAnimation",
73
+ value: function handleAnimation() {
74
+ var keys = this.input.keys;
60
75
 
61
- // used to have run left right
76
+ // used to have run left right
62
77
 
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
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 {
110
95
  this.fsm.trans('idle');
111
- mixer.removeEventListener('finished', onComplete);
112
- };
113
- mixer.addEventListener('finished', onComplete);
114
- stateAction.play();
96
+ }
115
97
  }
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();
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);
138
109
  }
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;
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();
152
121
  stateAction.enabled = true;
153
- stateAction.setEffectiveTimeScale(1.0);
154
- stateAction.setEffectiveWeight(1.0);
155
- stateAction.crossFadeFrom(prevStateAction, crossNumber, 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);
156
133
  stateAction.play();
157
134
  }
158
- } else {
159
- stateAction === null || stateAction === void 0 || stateAction.play();
160
135
  }
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
- }
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 || 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 };
178
207
  //# sourceMappingURL=animation.js.map
@@ -1 +1 @@
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
+ {"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,14 +1,18 @@
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; }
1
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; }
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); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
4
8
  import { BoxGeometry, Mesh, Vector3, use } from '@anov/3d-core';
5
- export default class Camera_movement {
6
- constructor({
7
- character,
8
- camera,
9
- characterRotateBox,
10
- player
11
- }) {
9
+ var Camera_movement = /*#__PURE__*/function () {
10
+ function Camera_movement(_ref) {
11
+ var character = _ref.character,
12
+ camera = _ref.camera,
13
+ characterRotateBox = _ref.characterRotateBox,
14
+ player = _ref.player;
15
+ _classCallCheck(this, Camera_movement);
12
16
  _defineProperty(this, "camera", void 0);
13
17
  _defineProperty(this, "character", void 0);
14
18
  _defineProperty(this, "currentPosition", void 0);
@@ -24,47 +28,59 @@ export default class Camera_movement {
24
28
  this.currentPosition = new Vector3();
25
29
  this.currentLookat = new Vector3();
26
30
  this.control = use.useScene().orbitControls;
27
- const view = new Mesh(new BoxGeometry(1, 1, 1));
31
+ var view = new Mesh(new BoxGeometry(1, 1, 1));
28
32
  this.character.add(view);
29
33
  view.position.add(new Vector3(0, 5, -15));
30
34
  this.view = view;
31
35
  }
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();
36
+ _createClass(Camera_movement, [{
37
+ key: "calculateIdealLookat",
38
+ value: function calculateIdealLookat() {
39
+ var _this$character$posit = this.character.position,
40
+ x = _this$character$posit.x,
41
+ y = _this$character$posit.y,
42
+ z = _this$character$posit.z;
43
+ var idealLookat = new Vector3(x, this.character.position.y + 3.4, z);
44
+ return idealLookat;
64
45
  }
65
- }
66
- update(deltaT) {
67
- this.updateNewPosition();
68
- }
69
- }
46
+ }, {
47
+ key: "updateCharacter",
48
+ value: function updateCharacter() {
49
+ var cameraPosition = new Vector3();
50
+ this.camera.getWorldPosition(cameraPosition);
51
+ var characterPosition = new Vector3();
52
+ this.character.getWorldPosition(characterPosition);
53
+ var direction = new Vector3();
54
+ direction.subVectors(cameraPosition, characterPosition);
55
+ direction.y = 0;
56
+ var angle = Math.atan2(direction.x, direction.z);
57
+ this.character.rotation.y = angle + Math.PI;
58
+ this.characterRotateBox.rotation.y = angle + Math.PI;
59
+ }
60
+ }, {
61
+ key: "updateCamera",
62
+ value: function updateCamera() {
63
+ var position = new Vector3();
64
+ this.view.getWorldPosition(position);
65
+ var idealLookat = this.calculateIdealLookat();
66
+ this.control.target = idealLookat;
67
+ this.control.object.position.copy(position);
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();
81
+ }
82
+ }]);
83
+ return Camera_movement;
84
+ }();
85
+ export { Camera_movement as default };
70
86
  //# sourceMappingURL=camera.js.map
@@ -1 +1 @@
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":";;;AAAA,SAASA,WAAW,EAAEC,IAAI,EAAEC,OAAO,EAAEC,GAAG,QAAQ,eAAe;AAW/D,eAAe,MAAMC,eAAe,CAAC;EAUnCC,WAAWA,CAAC;IAAEC,SAAS;IAAEC,MAAM;IAAEC,kBAAkB;IAAEC;EAAkB,CAAC,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACxE,IAAI,CAACJ,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACE,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACD,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACE,MAAM,GAAGA,MAAM;IAEpB,IAAI,CAACE,eAAe,GAAG,IAAIT,OAAO,CAAC,CAAC;IACpC,IAAI,CAACU,aAAa,GAAG,IAAIV,OAAO,CAAC,CAAC;IAClC,IAAI,CAACW,OAAO,GAAGV,GAAG,CAACW,QAAQ,CAAC,CAAC,CAACC,aAAa;IAE3C,MAAMC,IAAI,GAAG,IAAIf,IAAI,CAAC,IAAID,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,IAAI,CAACM,SAAS,CAACW,GAAG,CAACD,IAAI,CAAC;IAExBA,IAAI,CAACE,QAAQ,CAACD,GAAG,CAAC,IAAIf,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEzC,IAAI,CAACc,IAAI,GAAGA,IAAI;EAClB;EAEQG,oBAAoBA,CAAA,EAAG;IAC7B,MAAM;MAAEC,CAAC;MAAEC,CAAC;MAAEC;IAAE,CAAC,GAAG,IAAI,CAAChB,SAAS,CAACY,QAAQ;IAC3C,MAAMK,WAAW,GAAG,IAAIrB,OAAO,CAACkB,CAAC,EAAE,IAAI,CAACd,SAAS,CAACY,QAAQ,CAACG,CAAC,GAAG,GAAG,EAAEC,CAAC,CAAC;IAEtE,OAAOC,WAAW;EACpB;EAEQC,eAAeA,CAAA,EAAG;IACxB,MAAMC,cAAc,GAAG,IAAIvB,OAAO,CAAC,CAAC;IACpC,IAAI,CAACK,MAAM,CAACmB,gBAAgB,CAACD,cAAc,CAAC;IAE5C,MAAME,iBAAiB,GAAG,IAAIzB,OAAO,CAAC,CAAC;IACvC,IAAI,CAACI,SAAS,CAACoB,gBAAgB,CAACC,iBAAiB,CAAC;IAElD,MAAMC,SAAS,GAAG,IAAI1B,OAAO,CAAC,CAAC;IAC/B0B,SAAS,CAACC,UAAU,CAACJ,cAAc,EAAEE,iBAAiB,CAAC;IACvDC,SAAS,CAACP,CAAC,GAAG,CAAC;IAEf,MAAMS,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACJ,SAAS,CAACR,CAAC,EAAEQ,SAAS,CAACN,CAAC,CAAC;IAElD,IAAI,CAAChB,SAAS,CAAC2B,QAAQ,CAACZ,CAAC,GAAGS,KAAK,GAAGC,IAAI,CAACG,EAAE;IAC3C,IAAI,CAAC1B,kBAAkB,CAACyB,QAAQ,CAACZ,CAAC,GAAGS,KAAK,GAAGC,IAAI,CAACG,EAAE;EACtD;EAEQC,YAAYA,CAAA,EAAG;IACrB,MAAMjB,QAAQ,GAAG,IAAIhB,OAAO,CAAC,CAAC;IAC9B,IAAI,CAACc,IAAI,CAACU,gBAAgB,CAACR,QAAQ,CAAC;IAEpC,MAAMK,WAAW,GAAG,IAAI,CAACJ,oBAAoB,CAAC,CAAC;IAC/C,IAAI,CAACN,OAAO,CAACuB,MAAM,GAAGb,WAAW;IAChC,IAAI,CAACV,OAAO,CAAmBwB,MAAM,CAACnB,QAAQ,CAACoB,IAAI,CAACpB,QAAQ,CAAC;EAChE;EAEQqB,iBAAiBA,CAAA,EAAG;IAC1B,IAAI,IAAI,CAACvB,IAAI,IAAI,IAAI,CAACA,IAAI,CAACE,QAAQ,EAAE;MACnC,IAAI,CAACM,eAAe,CAAC,CAAC;MACtB,IAAI,CAACW,YAAY,CAAC,CAAC;IACrB;EACF;EAEAK,MAAMA,CAACC,MAAc,EAAE;IACrB,IAAI,CAACF,iBAAiB,CAAC,CAAC;EAC1B;AACF"}
1
+ {"version":3,"names":["BoxGeometry","Mesh","Vector3","use","Camera_movement","_ref","character","camera","characterRotateBox","player","_classCallCheck","_defineProperty","currentPosition","currentLookat","control","useScene","orbitControls","view","add","position","_createClass","key","value","calculateIdealLookat","_this$character$posit","x","y","z","idealLookat","updateCharacter","cameraPosition","getWorldPosition","characterPosition","direction","subVectors","angle","Math","atan2","rotation","PI","updateCamera","target","object","copy","updateNewPosition","update","deltaT","default"],"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":";;;;;;;AAAA,SAASA,WAAW,EAAEC,IAAI,EAAEC,OAAO,EAAEC,GAAG,QAAQ,eAAe;AAAA,IAW1CC,eAAe;EAUlC,SAAAA,gBAAAC,IAAA,EAA0E;IAAA,IAA5DC,SAAS,GAAAD,IAAA,CAATC,SAAS;MAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;MAAEC,kBAAkB,GAAAH,IAAA,CAAlBG,kBAAkB;MAAEC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IAAAC,eAAA,OAAAN,eAAA;IAAAO,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACzD,IAAI,CAACL,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACE,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACD,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACE,MAAM,GAAGA,MAAM;IAEpB,IAAI,CAACG,eAAe,GAAG,IAAIV,OAAO,CAAC,CAAC;IACpC,IAAI,CAACW,aAAa,GAAG,IAAIX,OAAO,CAAC,CAAC;IAClC,IAAI,CAACY,OAAO,GAAGX,GAAG,CAACY,QAAQ,CAAC,CAAC,CAACC,aAAa;IAE3C,IAAMC,IAAI,GAAG,IAAIhB,IAAI,CAAC,IAAID,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,IAAI,CAACM,SAAS,CAACY,GAAG,CAACD,IAAI,CAAC;IAExBA,IAAI,CAACE,QAAQ,CAACD,GAAG,CAAC,IAAIhB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEzC,IAAI,CAACe,IAAI,GAAGA,IAAI;EAClB;EAACG,YAAA,CAAAhB,eAAA;IAAAiB,GAAA;IAAAC,KAAA,EAED,SAAAC,qBAAA,EAA+B;MAC7B,IAAAC,qBAAA,GAAoB,IAAI,CAAClB,SAAS,CAACa,QAAQ;QAAnCM,CAAC,GAAAD,qBAAA,CAADC,CAAC;QAAEC,CAAC,GAAAF,qBAAA,CAADE,CAAC;QAAEC,CAAC,GAAAH,qBAAA,CAADG,CAAC;MACf,IAAMC,WAAW,GAAG,IAAI1B,OAAO,CAACuB,CAAC,EAAE,IAAI,CAACnB,SAAS,CAACa,QAAQ,CAACO,CAAC,GAAG,GAAG,EAAEC,CAAC,CAAC;MAEtE,OAAOC,WAAW;IACpB;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAO,gBAAA,EAA0B;MACxB,IAAMC,cAAc,GAAG,IAAI5B,OAAO,CAAC,CAAC;MACpC,IAAI,CAACK,MAAM,CAACwB,gBAAgB,CAACD,cAAc,CAAC;MAE5C,IAAME,iBAAiB,GAAG,IAAI9B,OAAO,CAAC,CAAC;MACvC,IAAI,CAACI,SAAS,CAACyB,gBAAgB,CAACC,iBAAiB,CAAC;MAElD,IAAMC,SAAS,GAAG,IAAI/B,OAAO,CAAC,CAAC;MAC/B+B,SAAS,CAACC,UAAU,CAACJ,cAAc,EAAEE,iBAAiB,CAAC;MACvDC,SAAS,CAACP,CAAC,GAAG,CAAC;MAEf,IAAMS,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACJ,SAAS,CAACR,CAAC,EAAEQ,SAAS,CAACN,CAAC,CAAC;MAElD,IAAI,CAACrB,SAAS,CAACgC,QAAQ,CAACZ,CAAC,GAAGS,KAAK,GAAGC,IAAI,CAACG,EAAE;MAC3C,IAAI,CAAC/B,kBAAkB,CAAC8B,QAAQ,CAACZ,CAAC,GAAGS,KAAK,GAAGC,IAAI,CAACG,EAAE;IACtD;EAAC;IAAAlB,GAAA;IAAAC,KAAA,EAED,SAAAkB,aAAA,EAAuB;MACrB,IAAMrB,QAAQ,GAAG,IAAIjB,OAAO,CAAC,CAAC;MAC9B,IAAI,CAACe,IAAI,CAACc,gBAAgB,CAACZ,QAAQ,CAAC;MAEpC,IAAMS,WAAW,GAAG,IAAI,CAACL,oBAAoB,CAAC,CAAC;MAC/C,IAAI,CAACT,OAAO,CAAC2B,MAAM,GAAGb,WAAW;MAChC,IAAI,CAACd,OAAO,CAAmB4B,MAAM,CAACvB,QAAQ,CAACwB,IAAI,CAACxB,QAAQ,CAAC;IAChE;EAAC;IAAAE,GAAA;IAAAC,KAAA,EAED,SAAAsB,kBAAA,EAA4B;MAC1B,IAAI,IAAI,CAAC3B,IAAI,IAAI,IAAI,CAACA,IAAI,CAACE,QAAQ,EAAE;QACnC,IAAI,CAACU,eAAe,CAAC,CAAC;QACtB,IAAI,CAACW,YAAY,CAAC,CAAC;MACrB;IACF;EAAC;IAAAnB,GAAA;IAAAC,KAAA,EAED,SAAAuB,OAAOC,MAAc,EAAE;MACrB,IAAI,CAACF,iBAAiB,CAAC,CAAC;IAC1B;EAAC;EAAA,OAAAxC,eAAA;AAAA;AAAA,SAtEkBA,eAAe,IAAA2C,OAAA"}
@@ -1,18 +1,22 @@
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; }
1
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; }
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); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
4
8
  import { Mesh, Vector3, acceleratedRaycast } from '@anov/3d-core';
5
9
  import { SPEED } from "../config/constants";
6
10
  Mesh.prototype.raycast = acceleratedRaycast;
7
- export default class Character_control {
8
- constructor({
9
- scene,
10
- character,
11
- input,
12
- animation,
13
- characterRotateBox,
14
- camera
15
- }) {
11
+ var Character_control = /*#__PURE__*/function () {
12
+ function Character_control(_ref) {
13
+ var scene = _ref.scene,
14
+ character = _ref.character,
15
+ input = _ref.input,
16
+ animation = _ref.animation,
17
+ characterRotateBox = _ref.characterRotateBox,
18
+ camera = _ref.camera;
19
+ _classCallCheck(this, Character_control);
16
20
  _defineProperty(this, "input", void 0);
17
21
  _defineProperty(this, "character", void 0);
18
22
  _defineProperty(this, "control", void 0);
@@ -40,35 +44,41 @@ export default class Character_control {
40
44
  this.forwardVector.y = 0;
41
45
  this.forwardVector.normalize();
42
46
  }
43
- updateNewPosition(deltaT) {
44
- const {
45
- forward,
46
- backward,
47
- left,
48
- right
49
- } = this.input.keys;
47
+ _createClass(Character_control, [{
48
+ key: "updateNewPosition",
49
+ value: function updateNewPosition(deltaT) {
50
+ var _this$input$keys = this.input.keys,
51
+ forward = _this$input$keys.forward,
52
+ backward = _this$input$keys.backward,
53
+ left = _this$input$keys.left,
54
+ right = _this$input$keys.right;
50
55
 
51
- // 获取当前角色的前向向量
52
- const forwardVector = new Vector3();
53
- this.characterRotateBox.getWorldDirection(forwardVector);
54
- forwardVector.y = 0;
55
- forwardVector.normalize();
56
- const vectorUp = new Vector3(0, 1, 0);
57
- const vectorRight = new Vector3().crossVectors(vectorUp, forwardVector).normalize();
58
- const moveDirection = new Vector3();
59
- if (forward) moveDirection.add(forwardVector);
60
- if (backward) moveDirection.sub(forwardVector);
61
- if (left) moveDirection.add(vectorRight);
62
- if (right) moveDirection.sub(vectorRight);
56
+ // 获取当前角色的前向向量
57
+ var forwardVector = new Vector3();
58
+ this.characterRotateBox.getWorldDirection(forwardVector);
59
+ forwardVector.y = 0;
60
+ forwardVector.normalize();
61
+ var vectorUp = new Vector3(0, 1, 0);
62
+ var vectorRight = new Vector3().crossVectors(vectorUp, forwardVector).normalize();
63
+ var moveDirection = new Vector3();
64
+ if (forward) moveDirection.add(forwardVector);
65
+ if (backward) moveDirection.sub(forwardVector);
66
+ if (left) moveDirection.add(vectorRight);
67
+ if (right) moveDirection.sub(vectorRight);
63
68
 
64
- // 计算最终移动向量
65
- const moveVector = moveDirection.normalize().multiplyScalar(SPEED * deltaT);
69
+ // 计算最终移动向量
70
+ var moveVector = moveDirection.normalize().multiplyScalar(SPEED * deltaT);
66
71
 
67
- // 更新角色的位置
68
- if (!this.animation.preventAction) this.character.position.add(moveVector);
69
- }
70
- update(deltaT) {
71
- this.updateNewPosition(deltaT);
72
- }
73
- }
72
+ // 更新角色的位置
73
+ if (!this.animation.preventAction) this.character.position.add(moveVector);
74
+ }
75
+ }, {
76
+ key: "update",
77
+ value: function update(deltaT) {
78
+ this.updateNewPosition(deltaT);
79
+ }
80
+ }]);
81
+ return Character_control;
82
+ }();
83
+ export { Character_control as default };
74
84
  //# sourceMappingURL=control.js.map