gaesup-world 0.2.36 → 0.2.37

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 (225) hide show
  1. package/dist/gaesup/animation/actions.d.ts +44 -0
  2. package/dist/gaesup/animation/actions.js +103 -0
  3. package/dist/gaesup/camera/control/normal.d.ts +4 -0
  4. package/dist/gaesup/camera/control/normal.js +18 -0
  5. package/dist/gaesup/camera/control/orbit.d.ts +4 -0
  6. package/dist/gaesup/camera/control/orbit.js +22 -0
  7. package/dist/gaesup/camera/detector/index.d.ts +2 -0
  8. package/dist/gaesup/camera/detector/index.js +25 -0
  9. package/dist/gaesup/camera/index.d.ts +8 -0
  10. package/dist/gaesup/camera/index.js +110 -0
  11. package/dist/gaesup/camera/type.d.ts +13 -0
  12. package/dist/gaesup/camera/type.js +1 -0
  13. package/dist/gaesup/component/active/airplane/index.d.ts +11 -0
  14. package/dist/gaesup/component/active/airplane/index.js +6 -0
  15. package/dist/gaesup/component/active/character/index.d.ts +7 -0
  16. package/dist/gaesup/component/active/character/index.js +34 -0
  17. package/dist/gaesup/component/active/vehicle/index.d.ts +12 -0
  18. package/dist/gaesup/component/active/vehicle/index.js +31 -0
  19. package/dist/gaesup/component/index.d.ts +7 -0
  20. package/dist/gaesup/component/index.js +19 -0
  21. package/dist/gaesup/component/inner/airplane/index.d.ts +2 -0
  22. package/dist/gaesup/component/inner/airplane/index.js +16 -0
  23. package/dist/gaesup/component/inner/character/index.d.ts +25 -0
  24. package/dist/gaesup/component/inner/character/index.js +28 -0
  25. package/dist/gaesup/component/inner/common/InnerGroupRef.d.ts +10 -0
  26. package/dist/gaesup/component/inner/common/InnerGroupRef.js +29 -0
  27. package/dist/gaesup/component/inner/common/OuterGroupRef.d.ts +4 -0
  28. package/dist/gaesup/component/inner/common/OuterGroupRef.js +6 -0
  29. package/dist/gaesup/component/inner/common/RigidbodyRef.d.ts +12 -0
  30. package/dist/gaesup/component/inner/common/RigidbodyRef.js +7 -0
  31. package/dist/gaesup/component/inner/common/setGroundRay.d.ts +9 -0
  32. package/dist/gaesup/component/inner/common/setGroundRay.js +14 -0
  33. package/dist/gaesup/component/inner/common/type.d.ts +20 -0
  34. package/dist/gaesup/component/inner/common/type.js +1 -0
  35. package/dist/gaesup/component/inner/rider/index.d.ts +11 -0
  36. package/dist/gaesup/component/inner/rider/index.js +31 -0
  37. package/dist/gaesup/component/inner/vehicle/collider.d.ts +10 -0
  38. package/dist/gaesup/component/inner/vehicle/collider.js +19 -0
  39. package/dist/gaesup/component/inner/vehicle/index.d.ts +2 -0
  40. package/dist/gaesup/component/inner/vehicle/index.js +17 -0
  41. package/dist/gaesup/component/inner/vehicle/wheels.d.ts +7 -0
  42. package/dist/gaesup/component/inner/vehicle/wheels.js +64 -0
  43. package/dist/gaesup/component/passive/airplane/index.d.ts +13 -0
  44. package/dist/gaesup/component/passive/airplane/index.js +40 -0
  45. package/dist/gaesup/component/passive/character/index.d.ts +10 -0
  46. package/dist/gaesup/component/passive/character/index.js +46 -0
  47. package/dist/gaesup/component/passive/type.d.ts +20 -0
  48. package/dist/gaesup/component/passive/type.js +1 -0
  49. package/dist/gaesup/component/passive/vehicle/index.d.ts +13 -0
  50. package/dist/gaesup/component/passive/vehicle/index.js +17 -0
  51. package/dist/gaesup/component/type.d.ts +17 -0
  52. package/dist/gaesup/component/type.js +1 -0
  53. package/dist/gaesup/controller/context/index.d.ts +49 -0
  54. package/dist/gaesup/controller/context/index.js +59 -0
  55. package/dist/gaesup/controller/context/reducer.d.ts +12 -0
  56. package/dist/gaesup/controller/context/reducer.js +21 -0
  57. package/dist/gaesup/controller/context/type.d.ts +38 -0
  58. package/dist/gaesup/controller/context/type.js +1 -0
  59. package/dist/gaesup/controller/debug/airplane.d.ts +71 -0
  60. package/dist/gaesup/controller/debug/airplane.js +71 -0
  61. package/dist/gaesup/controller/debug/character.d.ts +27 -0
  62. package/dist/gaesup/controller/debug/character.js +27 -0
  63. package/dist/gaesup/controller/debug/index.d.ts +6 -0
  64. package/dist/gaesup/controller/debug/index.js +49 -0
  65. package/dist/gaesup/controller/debug/vehicle.d.ts +27 -0
  66. package/dist/gaesup/controller/debug/vehicle.js +27 -0
  67. package/dist/gaesup/controller/index.d.ts +3 -0
  68. package/dist/gaesup/controller/index.js +75 -0
  69. package/dist/gaesup/controller/initialize/callback/index.d.ts +2 -0
  70. package/dist/gaesup/controller/initialize/callback/index.js +62 -0
  71. package/dist/gaesup/controller/initialize/callback/type.d.ts +27 -0
  72. package/dist/gaesup/controller/initialize/callback/type.js +1 -0
  73. package/dist/gaesup/controller/initialize/index.d.ts +10 -0
  74. package/dist/gaesup/controller/initialize/index.js +75 -0
  75. package/dist/gaesup/controller/style.css +48 -0
  76. package/dist/gaesup/controller/type.d.ts +85 -0
  77. package/dist/gaesup/controller/type.js +1 -0
  78. package/dist/gaesup/gaesupProps/index.d.ts +7 -0
  79. package/dist/gaesup/gaesupProps/index.js +46 -0
  80. package/dist/gaesup/hooks/useGaesupAnimation/index.d.ts +10 -0
  81. package/dist/gaesup/hooks/useGaesupAnimation/index.js +95 -0
  82. package/dist/gaesup/hooks/useGaesupController/index.d.ts +10 -0
  83. package/dist/gaesup/hooks/useGaesupController/index.js +14 -0
  84. package/dist/gaesup/hooks/useGaesupGltf/index.d.ts +25 -0
  85. package/dist/gaesup/hooks/useGaesupGltf/index.js +73 -0
  86. package/dist/gaesup/hooks/useJoyStick/index.d.ts +39 -0
  87. package/dist/gaesup/hooks/useJoyStick/index.js +61 -0
  88. package/dist/gaesup/hooks/usePushKey/index.d.ts +3 -0
  89. package/dist/gaesup/hooks/usePushKey/index.js +29 -0
  90. package/dist/gaesup/hooks/useRideable/index.d.ts +28 -0
  91. package/dist/gaesup/hooks/useRideable/index.js +199 -0
  92. package/dist/gaesup/hooks/useTeleport/index.d.ts +3 -0
  93. package/dist/gaesup/hooks/useTeleport/index.js +12 -0
  94. package/dist/gaesup/physics/airplane/damping.d.ts +2 -0
  95. package/dist/gaesup/physics/airplane/damping.js +5 -0
  96. package/dist/gaesup/physics/airplane/direction.d.ts +2 -0
  97. package/dist/gaesup/physics/airplane/direction.js +65 -0
  98. package/dist/gaesup/physics/airplane/gravity.d.ts +14 -0
  99. package/dist/gaesup/physics/airplane/gravity.js +18 -0
  100. package/dist/gaesup/physics/airplane/impulse.d.ts +16 -0
  101. package/dist/gaesup/physics/airplane/impulse.js +31 -0
  102. package/dist/gaesup/physics/airplane/index.d.ts +2 -0
  103. package/dist/gaesup/physics/airplane/index.js +14 -0
  104. package/dist/gaesup/physics/airplane/innerCalc.d.ts +2 -0
  105. package/dist/gaesup/physics/airplane/innerCalc.js +27 -0
  106. package/dist/gaesup/physics/airplane/landing.d.ts +2 -0
  107. package/dist/gaesup/physics/airplane/landing.js +29 -0
  108. package/dist/gaesup/physics/character/direction.d.ts +23 -0
  109. package/dist/gaesup/physics/character/direction.js +55 -0
  110. package/dist/gaesup/physics/character/impulse.d.ts +2 -0
  111. package/dist/gaesup/physics/character/impulse.js +43 -0
  112. package/dist/gaesup/physics/character/index.d.ts +2 -0
  113. package/dist/gaesup/physics/character/index.js +8 -0
  114. package/dist/gaesup/physics/character/innerCalc.d.ts +2 -0
  115. package/dist/gaesup/physics/character/innerCalc.js +31 -0
  116. package/dist/gaesup/physics/check/ground.d.ts +2 -0
  117. package/dist/gaesup/physics/check/ground.js +15 -0
  118. package/dist/gaesup/physics/check/index.d.ts +2 -0
  119. package/dist/gaesup/physics/check/index.js +12 -0
  120. package/dist/gaesup/physics/check/moving.d.ts +2 -0
  121. package/dist/gaesup/physics/check/moving.js +16 -0
  122. package/dist/gaesup/physics/check/push.d.ts +2 -0
  123. package/dist/gaesup/physics/check/push.js +6 -0
  124. package/dist/gaesup/physics/check/riding.d.ts +2 -0
  125. package/dist/gaesup/physics/check/riding.js +7 -0
  126. package/dist/gaesup/physics/check/rotate.d.ts +2 -0
  127. package/dist/gaesup/physics/check/rotate.js +8 -0
  128. package/dist/gaesup/physics/index.d.ts +2 -0
  129. package/dist/gaesup/physics/index.js +58 -0
  130. package/dist/gaesup/physics/type.d.ts +36 -0
  131. package/dist/gaesup/physics/type.js +1 -0
  132. package/dist/gaesup/physics/vehicle/damping.d.ts +2 -0
  133. package/dist/gaesup/physics/vehicle/damping.js +6 -0
  134. package/dist/gaesup/physics/vehicle/direction.d.ts +4 -0
  135. package/dist/gaesup/physics/vehicle/direction.js +30 -0
  136. package/dist/gaesup/physics/vehicle/impulse.d.ts +16 -0
  137. package/dist/gaesup/physics/vehicle/impulse.js +40 -0
  138. package/dist/gaesup/physics/vehicle/index.d.ts +2 -0
  139. package/dist/gaesup/physics/vehicle/index.js +12 -0
  140. package/dist/gaesup/physics/vehicle/innerCalc.d.ts +2 -0
  141. package/dist/gaesup/physics/vehicle/innerCalc.js +24 -0
  142. package/dist/gaesup/physics/vehicle/landing.d.ts +2 -0
  143. package/dist/gaesup/physics/vehicle/landing.js +29 -0
  144. package/dist/gaesup/tools/gameBoy/GameBoyButton.d.ts +9 -0
  145. package/dist/gaesup/tools/gameBoy/GameBoyButton.js +16 -0
  146. package/dist/gaesup/tools/gameBoy/index.d.ts +8 -0
  147. package/dist/gaesup/tools/gameBoy/index.js +22 -0
  148. package/dist/gaesup/tools/gameBoy/style.css +92 -0
  149. package/dist/gaesup/tools/gameBoy/type.d.ts +4 -0
  150. package/dist/gaesup/tools/gameBoy/type.js +1 -0
  151. package/dist/gaesup/tools/gamePad/GamePadButton.d.ts +8 -0
  152. package/dist/gaesup/tools/gamePad/GamePadButton.js +21 -0
  153. package/dist/gaesup/tools/gamePad/index.d.ts +6 -0
  154. package/dist/gaesup/tools/gamePad/index.js +32 -0
  155. package/dist/gaesup/tools/gamePad/style.css +62 -0
  156. package/dist/gaesup/tools/gamePad/type.d.ts +6 -0
  157. package/dist/gaesup/tools/gamePad/type.js +1 -0
  158. package/dist/gaesup/tools/joyStick/index.d.ts +6 -0
  159. package/dist/gaesup/tools/joyStick/index.js +169 -0
  160. package/dist/gaesup/tools/joyStick/style.css +38 -0
  161. package/dist/gaesup/tools/joyStick/type.d.ts +19 -0
  162. package/dist/gaesup/tools/joyStick/type.js +1 -0
  163. package/dist/gaesup/tools/jumpPortal/index.d.ts +16 -0
  164. package/dist/gaesup/tools/jumpPortal/index.js +18 -0
  165. package/dist/gaesup/tools/jumpPortal/style.css +16 -0
  166. package/dist/gaesup/tools/keyBoardToolTip/constant.d.ts +402 -0
  167. package/dist/gaesup/tools/keyBoardToolTip/constant.js +122 -0
  168. package/dist/gaesup/tools/keyBoardToolTip/default.d.ts +10 -0
  169. package/dist/gaesup/tools/keyBoardToolTip/default.js +12 -0
  170. package/dist/gaesup/tools/keyBoardToolTip/index.d.ts +3 -0
  171. package/dist/gaesup/tools/keyBoardToolTip/index.js +70 -0
  172. package/dist/gaesup/tools/keyBoardToolTip/style.css +24 -0
  173. package/dist/gaesup/tools/keyBoardToolTip/type.d.ts +37 -0
  174. package/dist/gaesup/tools/keyBoardToolTip/type.js +1 -0
  175. package/dist/gaesup/tools/miniMap/default.d.ts +9 -0
  176. package/dist/gaesup/tools/miniMap/default.js +9 -0
  177. package/dist/gaesup/tools/miniMap/index.d.ts +3 -0
  178. package/dist/gaesup/tools/miniMap/index.js +72 -0
  179. package/dist/gaesup/tools/miniMap/style.css +228 -0
  180. package/dist/gaesup/tools/miniMap/type.d.ts +25 -0
  181. package/dist/gaesup/tools/miniMap/type.js +1 -0
  182. package/dist/gaesup/tools/rideable/index.d.ts +3 -0
  183. package/dist/gaesup/tools/rideable/index.js +79 -0
  184. package/dist/gaesup/tools/rideable/style.css +16 -0
  185. package/dist/gaesup/tools/type.d.ts +2 -0
  186. package/dist/gaesup/tools/type.js +1 -0
  187. package/dist/gaesup/tools/zoomButton/index.d.ts +18 -0
  188. package/dist/gaesup/tools/zoomButton/index.js +146 -0
  189. package/dist/gaesup/tools/zoomButton/style.css +16 -0
  190. package/dist/gaesup/utils/context.d.ts +2 -0
  191. package/dist/gaesup/utils/context.js +3 -0
  192. package/dist/gaesup/utils/debug.d.ts +29 -0
  193. package/dist/gaesup/utils/debug.js +36 -0
  194. package/dist/gaesup/utils/index.d.ts +3 -0
  195. package/dist/gaesup/utils/index.js +3 -0
  196. package/dist/gaesup/utils/ray.d.ts +7 -0
  197. package/dist/gaesup/utils/ray.js +6 -0
  198. package/dist/gaesup/utils/ref.d.ts +2 -0
  199. package/dist/gaesup/utils/ref.js +16 -0
  200. package/dist/gaesup/utils/type.d.ts +5 -0
  201. package/dist/gaesup/utils/type.js +1 -0
  202. package/dist/gaesup/utils/vector.d.ts +10 -0
  203. package/dist/gaesup/utils/vector.js +33 -0
  204. package/dist/gaesup/world/context/index.d.ts +6 -0
  205. package/dist/gaesup/world/context/index.js +117 -0
  206. package/dist/gaesup/world/context/reducer.d.ts +29 -0
  207. package/dist/gaesup/world/context/reducer.js +21 -0
  208. package/dist/gaesup/world/context/type.d.ts +169 -0
  209. package/dist/gaesup/world/context/type.js +1 -0
  210. package/dist/gaesup/world/debug/cameraOption.d.ts +47 -0
  211. package/dist/gaesup/world/debug/cameraOption.js +47 -0
  212. package/dist/gaesup/world/debug/index.d.ts +6 -0
  213. package/dist/gaesup/world/debug/index.js +32 -0
  214. package/dist/gaesup/world/debug/mode.d.ts +10 -0
  215. package/dist/gaesup/world/debug/mode.js +10 -0
  216. package/dist/gaesup/world/index.d.ts +3 -0
  217. package/dist/gaesup/world/index.js +10 -0
  218. package/dist/gaesup/world/initalize/index.d.ts +35 -0
  219. package/dist/gaesup/world/initalize/index.js +62 -0
  220. package/dist/gaesup/world/style.css +13 -0
  221. package/dist/gaesup/world/type.d.ts +19 -0
  222. package/dist/gaesup/world/type.js +1 -0
  223. package/dist/index.d.ts +23 -0
  224. package/dist/index.js +23 -0
  225. package/package.json +2 -1
@@ -0,0 +1,62 @@
1
+ .gamePad {
2
+ display: grid;
3
+ align-items: center;
4
+ justify-content: center;
5
+ grid-template-columns: repeat(3, 1fr);
6
+ grid-template-rows: repeat(3, 1fr);
7
+ }
8
+
9
+ .padButton {
10
+ display: flex;
11
+ justify-content: center;
12
+ align-items: center;
13
+ position: relative;
14
+ width: 5rem;
15
+ height: 5rem;
16
+ border-radius: 50%;
17
+ font-size: 1rem;
18
+ background-color: rgba(0, 0, 0, 0.5);
19
+ color: white;
20
+ box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.5);
21
+ cursor: pointer;
22
+ transition: all 0.3s ease-in;
23
+ margin: 0.5rem;
24
+ }
25
+
26
+ .padButton:hover {
27
+ box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5);
28
+ }
29
+
30
+ .padButton::after {
31
+ content: "";
32
+ position: absolute;
33
+ width: 4rem;
34
+ height: 4rem;
35
+ border-radius: 50%;
36
+ background: rgba(0, 0, 0, 0.2);
37
+ z-index: 100000;
38
+ }
39
+
40
+ /* padButton isClicked variant */
41
+ .padButton.isClicked {
42
+ background: radial-gradient(
43
+ circle at center,
44
+ rgba(245, 177, 97, 1) 0.4%,
45
+ rgba(236, 54, 110, 1) 100.2%
46
+ );
47
+ box-shadow: 0 0 1rem rgba(245, 177, 97, 1);
48
+ color: black;
49
+ transition: all 0.3s ease-in;
50
+ }
51
+
52
+ .padButton.isClicked:hover {
53
+ box-shadow: 0 0 2rem rgba(245, 177, 97, 1);
54
+ }
55
+
56
+ .gamePad * {
57
+ -webkit-touch-callout: none;
58
+ -webkit-user-select: none;
59
+ -moz-user-select: none;
60
+ -ms-user-select: none;
61
+ user-select: none;
62
+ }
@@ -0,0 +1,6 @@
1
+ import { CSSProperties } from "react";
2
+ export type gamepadType = {
3
+ label?: Record<string, string>;
4
+ } & {
5
+ [key in "gamePadButtonStyle" | "gamePadStyle" | "gamePadInnerStyle"]?: CSSProperties;
6
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { CSSProperties } from "react";
2
+ import "./style.css";
3
+ export type joyStickType = {
4
+ [key in "joyStickBallStyle" | "joyStickStyle"]?: CSSProperties;
5
+ };
6
+ export declare function JoyStick(props: joyStickType): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,169 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
13
+ import { useCallback, useContext, useEffect, useRef, useState, } from "react";
14
+ import useJoyStick from "../../hooks/useJoyStick";
15
+ import { GaesupWorldContext } from "../../world/context";
16
+ import "./style.css";
17
+ export function JoyStick(props) {
18
+ var outerRef = useRef(null);
19
+ var childRef = useRef(null);
20
+ var joyStickBallStyle = props.joyStickBallStyle, joyStickStyle = props.joyStickStyle;
21
+ var mode = useContext(GaesupWorldContext).mode;
22
+ var _a = useJoyStick(), joyStickBall = _a.joyStickBall, joyStickOrigin = _a.joyStickOrigin, setBall = _a.setBall, setOrigin = _a.setOrigin;
23
+ var _b = useState({
24
+ mouseDown: false,
25
+ touchDown: false,
26
+ position: "absolute",
27
+ transform: "",
28
+ background: "rgba(0, 0, 0, 0.5)",
29
+ boxShadow: "0 0 10px rgba(0, 0, 0, 0.5)",
30
+ }), state = _b[0], setState = _b[1];
31
+ var _c = useState({
32
+ top: 0,
33
+ left: 0,
34
+ bottom: 0,
35
+ right: 0,
36
+ width: 0,
37
+ height: 0,
38
+ }), screenSize = _c[0], setScreenSize = _c[1];
39
+ var initBall = function () {
40
+ setState(function (state) { return (__assign(__assign({}, state), { position: "absolute", transform: "translate(-50%, -50%)", background: "rgba(0, 0, 0, 0.5)", boxShadow: "0 0 10px rgba(0, 0, 0, 0.5)" })); });
41
+ setBall({
42
+ top: "50%",
43
+ left: "50%",
44
+ });
45
+ };
46
+ var setMouseDown = function (value) {
47
+ setState(function (state) { return (__assign(__assign({}, state), { mouseDown: value })); });
48
+ };
49
+ var setTouchDown = function (value) {
50
+ setState(function (state) { return (__assign(__assign({}, state), { touchDown: value })); });
51
+ };
52
+ var initialize = function () {
53
+ var client = outerRef.current.getBoundingClientRect();
54
+ var x = client.left + client.width / 2;
55
+ var y = client.top + client.height / 2;
56
+ setScreenSize(function () { return ({
57
+ top: client.top,
58
+ left: client.left,
59
+ bottom: client.bottom,
60
+ right: client.right,
61
+ width: client.width,
62
+ height: client.height,
63
+ }); });
64
+ setOrigin({
65
+ x: x,
66
+ y: y,
67
+ angle: Math.PI / 2,
68
+ currentRadius: 0,
69
+ originRadius: 0,
70
+ isIn: true,
71
+ isOn: false,
72
+ isCenter: true,
73
+ isUp: true,
74
+ });
75
+ initBall();
76
+ };
77
+ var resize = function () {
78
+ if (!outerRef.current)
79
+ return;
80
+ var client = outerRef.current.getBoundingClientRect();
81
+ setScreenSize(function () { return ({
82
+ top: client.top,
83
+ left: client.left,
84
+ bottom: client.bottom,
85
+ right: client.right,
86
+ width: client.width,
87
+ height: client.height,
88
+ }); });
89
+ };
90
+ var calcOriginBall = function (X, Y) {
91
+ var top = screenSize.top, left = screenSize.left, bottom = screenSize.bottom, right = screenSize.right, width = screenSize.width, height = screenSize.height;
92
+ if (top > Y || bottom < Y || left > X || right < X) {
93
+ return;
94
+ }
95
+ var dx = joyStickOrigin.x - X;
96
+ var dy = joyStickOrigin.y - Y;
97
+ var normX = Math.pow(dx, 2);
98
+ var normY = Math.pow(dy, 2);
99
+ var currentRadius = Math.sqrt(normX + normY);
100
+ var originRadius = Math.sqrt(Math.pow((width / 2), 2) + Math.pow((height / 2), 2));
101
+ var newAngle = Math.atan2(Y - (bottom - height / 2), X - (left + width / 2));
102
+ if (currentRadius >= width / 2) {
103
+ return;
104
+ }
105
+ setOrigin({
106
+ x: left + width / 2,
107
+ y: bottom - height / 2,
108
+ angle: newAngle,
109
+ currentRadius: currentRadius,
110
+ originRadius: originRadius,
111
+ isIn: currentRadius > originRadius / 2,
112
+ isOn: true,
113
+ isCenter: currentRadius < originRadius / 8,
114
+ isUp: top > Y - height / 2,
115
+ });
116
+ setState(function (state) { return (__assign(__assign({}, state), { position: "fixed", background: currentRadius > originRadius / 2
117
+ ? "linear-gradient( 68.4deg, rgba(176,255,237,1) -0.4%, rgba(161,244,255,1) 100.2% )"
118
+ : "linear-gradient( 68.4deg, rgba(99,251,215,1) -0.4%, rgba(5,222,250,1) 100.2% )", boxShadow: "0 0 10px rgba(99,251,215,1)" })); });
119
+ setBall({
120
+ top: "".concat(Y, "px"),
121
+ left: "".concat(X, "px"),
122
+ });
123
+ };
124
+ var handleMouseOver = function (e) {
125
+ if (!state.mouseDown)
126
+ return;
127
+ e.preventDefault();
128
+ calcOriginBall(e.clientX, e.clientY);
129
+ };
130
+ var handleTouchMove = function (e) {
131
+ if (!state.touchDown)
132
+ return;
133
+ calcOriginBall(e.touches[0].pageX, e.touches[0].pageY);
134
+ };
135
+ var handleTouchEnd = useCallback(function (e) {
136
+ setState(function (state) { return (__assign(__assign({}, state), { touchDown: false })); });
137
+ return initialize();
138
+ }, [setBall, setState, setOrigin, state.touchDown]);
139
+ var handleMouseOut = useCallback(function (e) {
140
+ setState(function (state) { return (__assign(__assign({}, state), { mouseDown: false })); });
141
+ e.preventDefault();
142
+ return initialize();
143
+ }, [setBall, setState, setOrigin, state.mouseDown]);
144
+ useEffect(function () {
145
+ window.addEventListener("resize", resize);
146
+ }, []);
147
+ useEffect(function () {
148
+ if (outerRef.current) {
149
+ initialize();
150
+ }
151
+ }, [mode.controller]);
152
+ return (_jsx(_Fragment, { children: mode.controller === "joystick" && (_jsx("div", { className: "joyStick", style: __assign({ position: "fixed" }, joyStickStyle), ref: outerRef, onMouseDown: function (e) {
153
+ e.preventDefault();
154
+ setMouseDown(true);
155
+ }, onMouseUp: function (e) {
156
+ e.preventDefault();
157
+ setMouseDown(false);
158
+ }, onMouseMove: handleMouseOver, onMouseLeave: handleMouseOut, onTouchStart: function (e) {
159
+ setTouchDown(true);
160
+ }, onTouchEnd: handleTouchEnd, onTouchMove: handleTouchMove, onTouchCancel: handleTouchEnd, children: _jsx("div", { className: "joystickBall", ref: childRef, onMouseDown: function (e) {
161
+ e.preventDefault();
162
+ setMouseDown(true);
163
+ }, onMouseUp: function (e) {
164
+ e.preventDefault();
165
+ setMouseDown(false);
166
+ }, onMouseMove: handleMouseOver, onMouseLeave: handleMouseOut, onTouchStart: function (e) {
167
+ setTouchDown(true);
168
+ }, onTouchEnd: handleTouchEnd, onTouchMove: handleTouchMove, onTouchCancel: handleTouchEnd, style: __assign({ position: state.position, transform: state.transform, background: (joyStickBallStyle === null || joyStickBallStyle === void 0 ? void 0 : joyStickBallStyle.background) || state.background, boxShadow: (joyStickBallStyle === null || joyStickBallStyle === void 0 ? void 0 : joyStickBallStyle.boxShadow) || state.boxShadow, top: joyStickBall.top, left: joyStickBall.left }, joyStickBallStyle) }) })) }));
169
+ }
@@ -0,0 +1,38 @@
1
+ .joyStick {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ text-align: center;
6
+ width: 12rem;
7
+ height: 12rem;
8
+ overflow: auto;
9
+ border-radius: 50%;
10
+ background: rgba(0, 0, 0, 0.5);
11
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
12
+ }
13
+
14
+ /* .joyStick::after {
15
+ content: "";
16
+ width: 10rem;
17
+ height: 10rem;
18
+ border-radius: 50%;
19
+ background: rgba(0, 0, 0, 0.2);
20
+ } */
21
+
22
+ .joystickBall {
23
+ width: 5rem;
24
+ height: 5rem;
25
+ transform: translate(-50%, -50%);
26
+ border-radius: 50%;
27
+ background: rgba(0, 0, 0, 0.5);
28
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
29
+ cursor: pointer;
30
+ }
31
+
32
+ .joyStick * {
33
+ -webkit-touch-callout: none;
34
+ -webkit-user-select: none;
35
+ -moz-user-select: none;
36
+ -ms-user-select: none;
37
+ user-select: none;
38
+ }
@@ -0,0 +1,19 @@
1
+ export type joyStickBallType = {
2
+ left: string;
3
+ top: string;
4
+ };
5
+ export type joyStickOriginType = {
6
+ x: number;
7
+ y: number;
8
+ angle: number;
9
+ currentRadius: number;
10
+ originRadius: number;
11
+ isIn: boolean;
12
+ isOn: boolean;
13
+ isUp: boolean;
14
+ isCenter: boolean;
15
+ };
16
+ export type joyStickInnerType = {
17
+ joyStickBall?: joyStickBallType;
18
+ joyStickOrigin?: joyStickOriginType;
19
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ import { CSSProperties } from "react";
2
+ import "./style.css";
3
+ export type JumpPortalType = {
4
+ text?: string;
5
+ position: THREE.Vector3;
6
+ jumpPortalStyle?: CSSProperties;
7
+ };
8
+ /**
9
+ * JumpPortal component represents a clickable portal that teleports the user to a specified location.
10
+ *
11
+ * @param {JumpPortalType} props - The props for the JumpPortal component.
12
+ * @param {string} props.text - (Optional) The text to display on the portal.
13
+ * @param {THREE.Vector3} props.position - The target position to teleport to.
14
+ * @param {CSSProperties} props.jumpPortalStyle - (Optional) CSS styles for the JumpPortal component.
15
+ */
16
+ export declare function JumpPortal({ text, position, jumpPortalStyle, }: JumpPortalType): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useTeleport } from "../../hooks/useTeleport";
3
+ import "./style.css";
4
+ /**
5
+ * JumpPortal component represents a clickable portal that teleports the user to a specified location.
6
+ *
7
+ * @param {JumpPortalType} props - The props for the JumpPortal component.
8
+ * @param {string} props.text - (Optional) The text to display on the portal.
9
+ * @param {THREE.Vector3} props.position - The target position to teleport to.
10
+ * @param {CSSProperties} props.jumpPortalStyle - (Optional) CSS styles for the JumpPortal component.
11
+ */
12
+ export function JumpPortal(_a) {
13
+ var text = _a.text, position = _a.position, jumpPortalStyle = _a.jumpPortalStyle;
14
+ var Teleport = useTeleport().Teleport;
15
+ return (_jsx("div", { className: "jumpPortal", onClick: function () {
16
+ Teleport(position);
17
+ }, style: jumpPortalStyle, children: text }));
18
+ }
@@ -0,0 +1,16 @@
1
+ .jumpPortal {
2
+ display: flex;
3
+ justify-content: center;
4
+ align-items: center;
5
+ text-align: center;
6
+ margin: 1rem;
7
+ font-size: 0.8rem;
8
+ border-radius: 50%;
9
+ width: 5rem;
10
+ height: 5rem;
11
+ color: white;
12
+ background: rgba(0, 0, 0, 0.6);
13
+ box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.6);
14
+ transition: all 0.2s ease-in;
15
+ cursor: pointer;
16
+ }