gaesup-world 0.7.94 → 0.8.1
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/gaesup/component/index.d.ts +1 -3
- package/dist/gaesup/component/index.js +2 -2
- package/dist/gaesup/component/inner/common/RigidbodyRef.d.ts +6 -1
- package/dist/gaesup/component/inner/common/RigidbodyRef.js +13 -2
- package/dist/gaesup/component/inner/common/type.d.ts +2 -3
- package/dist/gaesup/component/inner/vehicle/index.js +3 -4
- package/dist/gaesup/component/passive/type.d.ts +5 -0
- package/dist/gaesup/component/passive/vehicle/index.js +1 -1
- package/dist/gaesup/controller/context/index.d.ts +0 -6
- package/dist/gaesup/controller/context/index.js +0 -6
- package/dist/gaesup/controller/context/reducer.d.ts +0 -1
- package/dist/gaesup/controller/index.js +1 -2
- package/dist/gaesup/controller/type.d.ts +1 -2
- package/dist/gaesup/physics/airplane/innerCalc.js +1 -1
- package/dist/gaesup/physics/index.js +1 -1
- package/dist/gaesup/tools/rideable/index.js +6 -6
- package/dist/gaesup/tools/rideable/type.d.ts +4 -0
- package/dist/gaesup/world/initalize/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { controllerInnerType, refsType } from "../controller/type";
|
|
2
|
-
|
|
3
|
-
export declare function GaesupComponent({ props, refs, urls, }: {
|
|
2
|
+
export declare function GaesupComponent({ props, refs, }: {
|
|
4
3
|
props: controllerInnerType;
|
|
5
4
|
refs: refsType;
|
|
6
|
-
urls: urlsType;
|
|
7
5
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -17,8 +17,8 @@ import { AirplaneRef } from "./active/airplane";
|
|
|
17
17
|
import { CharacterRef } from "./active/character";
|
|
18
18
|
import { VehicleRef } from "./active/vehicle";
|
|
19
19
|
export function GaesupComponent(_a) {
|
|
20
|
-
var props = _a.props, refs = _a.refs
|
|
21
|
-
var _b = useContext(GaesupWorldContext), mode = _b.mode, states = _b.states, rideable = _b.rideable;
|
|
20
|
+
var props = _a.props, refs = _a.refs;
|
|
21
|
+
var _b = useContext(GaesupWorldContext), mode = _b.mode, states = _b.states, rideable = _b.rideable, urls = _b.urls;
|
|
22
22
|
var enableRiding = states.enableRiding, isRiderOn = states.isRiderOn, rideableId = states.rideableId;
|
|
23
23
|
return (_jsxs(_Fragment, { children: [mode.type === "character" && (_jsx(CharacterRef, { props: props, refs: refs, urls: urls, children: props.children })), mode.type === "vehicle" && (_jsx(VehicleRef, __assign({ controllerOptions: props.controllerOptions, url: urls.vehicleUrl, wheelUrl: urls.wheelUrl, ridingUrl: urls.ridingUrl, enableRiding: enableRiding, isRiderOn: isRiderOn, groundRay: props.groundRay, offset: rideableId && rideable[rideableId]
|
|
24
24
|
? rideable[rideableId].offset
|
|
@@ -6,10 +6,10 @@ export declare const RigidBodyRef: import("react").ForwardRefExoticComponent<{
|
|
|
6
6
|
userData?: {
|
|
7
7
|
intangible: boolean;
|
|
8
8
|
};
|
|
9
|
-
onCollisionEnter?: (e: import("@react-three/rapier").CollisionEnterPayload) => Promise<void>;
|
|
10
9
|
isActive?: boolean;
|
|
11
10
|
ridingUrl?: string;
|
|
12
11
|
groundRay?: import("../../../controller/type").groundRayType;
|
|
12
|
+
rigidBodyProps?: RapierRigidBody;
|
|
13
13
|
} & {
|
|
14
14
|
children?: import("react").ReactNode;
|
|
15
15
|
groundRay?: import("../../../controller/type").groundRayType;
|
|
@@ -22,9 +22,14 @@ export declare const RigidBodyRef: import("react").ForwardRefExoticComponent<{
|
|
|
22
22
|
controllerOptions?: import("../../../controller/type").controllerOptionsType;
|
|
23
23
|
currentAnimation?: string;
|
|
24
24
|
rigidbodyType?: import("@react-three/rapier").RigidBodyTypeString;
|
|
25
|
+
sensor?: boolean;
|
|
26
|
+
onIntersectionEnter?: (e: import("@react-three/rapier").CollisionEnterPayload) => Promise<void>;
|
|
25
27
|
onCollisionEnter?: (e: import("@react-three/rapier").CollisionEnterPayload) => Promise<void>;
|
|
26
28
|
componentType: import("../../passive/type").componentTypeString;
|
|
27
29
|
userData?: {
|
|
28
30
|
intangible: boolean;
|
|
29
31
|
};
|
|
32
|
+
rigidBodyProps?: RapierRigidBody;
|
|
33
|
+
outerGroupProps?: THREE.Group<THREE.Object3DEventMap>;
|
|
34
|
+
innerGroupProps?: THREE.Group<THREE.Object3DEventMap>;
|
|
30
35
|
} & import("./type").ridingType & import("../../passive/type").innerRefType & import("../../../controller/initialize/callback/type").callbackType & import("react").RefAttributes<RapierRigidBody>>;
|
|
@@ -1,3 +1,14 @@
|
|
|
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
|
+
};
|
|
1
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
13
|
import { useAnimations, useGLTF } from "@react-three/drei";
|
|
3
14
|
import { useFrame, useGraph } from "@react-three/fiber";
|
|
@@ -72,7 +83,7 @@ export var RigidBodyRef = forwardRef(function (props, ref) {
|
|
|
72
83
|
return;
|
|
73
84
|
ref.current.setTranslation(V3(THREE.MathUtils.lerp(ref.current.translation().x, props.position.x, props.controllerOptions.lerp.cameraPosition), THREE.MathUtils.lerp(ref.current.translation().y, props.position.y, props.controllerOptions.lerp.cameraPosition), THREE.MathUtils.lerp(ref.current.translation().z, props.position.z, props.controllerOptions.lerp.cameraPosition)), false);
|
|
74
85
|
});
|
|
75
|
-
return (_jsxs(RigidBody, { colliders: false, ref: ref, name: props.name, rotation: euler()
|
|
86
|
+
return (_jsxs(RigidBody, __assign({ colliders: false, ref: ref, name: props.name, rotation: euler()
|
|
76
87
|
.set(0, ((_a = props.rotation) === null || _a === void 0 ? void 0 : _a.clone().y) || 0, 0)
|
|
77
|
-
.clone(), userData: props.userData,
|
|
88
|
+
.clone(), userData: props.userData, type: props.rigidbodyType || (props.isActive ? "dynamic" : "fixed"), sensor: props.sensor, onIntersectionEnter: props.onIntersectionEnter, onCollisionEnter: props.onCollisionEnter }, props.rigidBodyProps, { children: [_jsx(CapsuleCollider, { ref: props.colliderRef, args: [(size.y / 2 - size.x) * 1.2, size.x * 1.2], position: [0, (size.y / 2 + size.x / 2) * 1.2, 0] }), props.children, _jsx(InnerGroupRef, { objectNode: objectNode, animationRef: animationRef, nodes: nodes, ref: props.innerGroupRef, isActive: props.isActive, isRiderOn: props.isRiderOn, enableRiding: props.enableRiding, ridingUrl: props.ridingUrl, offset: props.offset, children: props.children })] })));
|
|
78
89
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Collider } from "@dimforge/rapier3d-compat";
|
|
2
|
-
import {
|
|
2
|
+
import { RapierRigidBody, RigidBodyTypeString } from "@react-three/rapier";
|
|
3
3
|
import { MutableRefObject, RefObject } from "react";
|
|
4
4
|
import * as THREE from "three";
|
|
5
5
|
import { callbackType } from "../../../controller/initialize/callback/type";
|
|
@@ -40,7 +40,6 @@ export type refPropsType = {
|
|
|
40
40
|
intangible: boolean;
|
|
41
41
|
};
|
|
42
42
|
currentAnimation?: string;
|
|
43
|
-
onCollisionEnter?: (e: CollisionEnterPayload) => Promise<void>;
|
|
44
43
|
type?: RigidBodyTypeString;
|
|
45
44
|
};
|
|
46
45
|
export type setGroundRayType = {
|
|
@@ -53,8 +52,8 @@ export type rigidBodyRefType = {
|
|
|
53
52
|
userData?: {
|
|
54
53
|
intangible: boolean;
|
|
55
54
|
};
|
|
56
|
-
onCollisionEnter?: (e: CollisionEnterPayload) => Promise<void>;
|
|
57
55
|
isActive?: boolean;
|
|
58
56
|
ridingUrl?: string;
|
|
59
57
|
groundRay?: groundRayType;
|
|
58
|
+
rigidBodyProps?: RapierRigidBody;
|
|
60
59
|
} & passivePropsType & innerRefType & callbackType;
|
|
@@ -10,13 +10,12 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
-
import { useGltfAndSize } from "../../../hooks/useGaesupGltf";
|
|
14
13
|
import { OuterGroupRef } from "../common/OuterGroupRef";
|
|
15
14
|
import { RigidBodyRef } from "../common/RigidbodyRef";
|
|
16
15
|
export function VehicleInnerRef(props) {
|
|
17
16
|
var rigidBodyRef = props.rigidBodyRef, outerGroupRef = props.outerGroupRef;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
})
|
|
17
|
+
// const { size } = useGltfAndSize({
|
|
18
|
+
// url: props.url,
|
|
19
|
+
// });
|
|
21
20
|
return (_jsx(OuterGroupRef, { ref: outerGroupRef, children: _jsx(RigidBodyRef, __assign({ ref: rigidBodyRef, name: props.name, componentType: "vehicle", ridingUrl: props.ridingUrl }, props, { children: props.children })) }));
|
|
22
21
|
}
|
|
@@ -23,9 +23,14 @@ export type passivePropsType = {
|
|
|
23
23
|
controllerOptions?: controllerOptionsType;
|
|
24
24
|
currentAnimation?: string;
|
|
25
25
|
rigidbodyType?: RigidBodyTypeString;
|
|
26
|
+
sensor?: boolean;
|
|
27
|
+
onIntersectionEnter?: (e: CollisionEnterPayload) => Promise<void>;
|
|
26
28
|
onCollisionEnter?: (e: CollisionEnterPayload) => Promise<void>;
|
|
27
29
|
componentType: componentTypeString;
|
|
28
30
|
userData?: {
|
|
29
31
|
intangible: boolean;
|
|
30
32
|
};
|
|
33
|
+
rigidBodyProps?: RapierRigidBody;
|
|
34
|
+
outerGroupProps?: THREE.Group;
|
|
35
|
+
innerGroupProps?: THREE.Group;
|
|
31
36
|
} & ridingType;
|
|
@@ -28,5 +28,5 @@ export function PassiveVehicle(props) {
|
|
|
28
28
|
cameraTurn: 1,
|
|
29
29
|
cameraPosition: 1,
|
|
30
30
|
},
|
|
31
|
-
}, position: props.position, rotation: props.rotation, currentAnimation: props.currentAnimation, ridingUrl: props.ridingUrl }, props, refs, { children: props.children })));
|
|
31
|
+
}, position: props.position, rotation: props.rotation, currentAnimation: props.currentAnimation, url: props.url, ridingUrl: props.ridingUrl }, props, refs, { children: props.children })));
|
|
32
32
|
}
|
|
@@ -38,12 +38,6 @@ export declare const gaesupControllerDefault: {
|
|
|
38
38
|
innerGroupRef: any;
|
|
39
39
|
characterInnerRef: any;
|
|
40
40
|
};
|
|
41
|
-
urls: {
|
|
42
|
-
airplaneUrl: any;
|
|
43
|
-
vehicleUrl: any;
|
|
44
|
-
characterUrl: any;
|
|
45
|
-
wheelUrl: any;
|
|
46
|
-
};
|
|
47
41
|
};
|
|
48
42
|
export declare const GaesupControllerContext: import("react").Context<gaesupControllerType>;
|
|
49
43
|
export declare const GaesupControllerDispatchContext: import("react").Context<dispatchType<gaesupControllerType>>;
|
|
@@ -48,12 +48,6 @@ export var gaesupControllerDefault = {
|
|
|
48
48
|
innerGroupRef: null,
|
|
49
49
|
characterInnerRef: null,
|
|
50
50
|
},
|
|
51
|
-
urls: {
|
|
52
|
-
airplaneUrl: null,
|
|
53
|
-
vehicleUrl: null,
|
|
54
|
-
characterUrl: null,
|
|
55
|
-
wheelUrl: null,
|
|
56
|
-
},
|
|
57
51
|
};
|
|
58
52
|
export var GaesupControllerContext = createContext(__assign({}, gaesupControllerDefault));
|
|
59
53
|
export var GaesupControllerDispatchContext = createContext(null);
|
|
@@ -6,7 +6,6 @@ export declare function gaesupControllerReducer(props: gaesupControllerType, act
|
|
|
6
6
|
airplane: import("./type").airplaneType;
|
|
7
7
|
vehicle: import("./type").vehicleType;
|
|
8
8
|
character: import("./type").characterType;
|
|
9
|
-
urls: import("../../world/context/type").urlsType;
|
|
10
9
|
callbacks?: import("../initialize/callback/type").callbackType;
|
|
11
10
|
refs?: import("../type").refsType;
|
|
12
11
|
};
|
|
@@ -40,7 +40,6 @@ export function GaesupControllerInner(props) {
|
|
|
40
40
|
onDestory: props.onDestory,
|
|
41
41
|
onAnimate: props.onAnimate,
|
|
42
42
|
}),
|
|
43
|
-
urls: Object.assign(gaesupControllerDefault.urls, props.urls || {}),
|
|
44
43
|
refs: {
|
|
45
44
|
colliderRef: colliderRef,
|
|
46
45
|
rigidBodyRef: rigidBodyRef,
|
|
@@ -71,5 +70,5 @@ export function GaesupControllerInner(props) {
|
|
|
71
70
|
controllerDispatch: gaesupControl.dispatch,
|
|
72
71
|
});
|
|
73
72
|
var ContextBridge = useContextBridge(GaesupWorldContext, GaesupControllerContext);
|
|
74
|
-
return (_jsx(ContextBridge, { children: _jsx(GaesupControllerContext.Provider, { value: gaesupControl.value, children: _jsx(GaesupControllerDispatchContext.Provider, { value: gaesupControl.dispatch, children: _jsx(GaesupComponent, { props: prop, refs: refs
|
|
73
|
+
return (_jsx(ContextBridge, { children: _jsx(GaesupControllerContext.Provider, { value: gaesupControl.value, children: _jsx(GaesupControllerDispatchContext.Provider, { value: gaesupControl.dispatch, children: _jsx(GaesupComponent, { props: prop, refs: refs }) }) }) }));
|
|
75
74
|
}
|
|
@@ -81,7 +81,6 @@ export type gaesupControllerContextPropType = {
|
|
|
81
81
|
airplane: airplaneType;
|
|
82
82
|
vehicle: vehicleType;
|
|
83
83
|
character: characterType;
|
|
84
|
-
urls: urlsType;
|
|
85
84
|
};
|
|
86
85
|
export interface controllerOtherPropType extends RigidBodyProps {
|
|
87
86
|
children?: ReactNode;
|
|
@@ -89,4 +88,4 @@ export interface controllerOtherPropType extends RigidBodyProps {
|
|
|
89
88
|
rigidBodyProps?: RigidBodyProps;
|
|
90
89
|
debug?: boolean;
|
|
91
90
|
}
|
|
92
|
-
export type controllerType = controllerOtherPropType & Partial<gaesupControllerContextPropType> & callbackType;
|
|
91
|
+
export type controllerType = controllerOtherPropType & urlsType & Partial<gaesupControllerContextPropType> & callbackType;
|
|
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
};
|
|
12
12
|
import { quat, vec3 } from "@react-three/rapier";
|
|
13
13
|
export default function innerCalc(prop) {
|
|
14
|
-
var rigidBodyRef = prop.rigidBodyRef,
|
|
14
|
+
var rigidBodyRef = prop.rigidBodyRef, activeState = prop.worldContext.activeState, dispatch = prop.dispatch;
|
|
15
15
|
activeState.position = vec3(rigidBodyRef.current.translation());
|
|
16
16
|
activeState.velocity = vec3(rigidBodyRef.current.linvel());
|
|
17
17
|
var _euler = activeState.euler.clone();
|
|
@@ -54,7 +54,7 @@ export default function calculation(_a) {
|
|
|
54
54
|
worldContext: worldContext,
|
|
55
55
|
controllerContext: controllerContext,
|
|
56
56
|
dispatch: dispatch,
|
|
57
|
-
matchSizes: getSizesByUrls(
|
|
57
|
+
matchSizes: getSizesByUrls(worldContext === null || worldContext === void 0 ? void 0 : worldContext.urls),
|
|
58
58
|
};
|
|
59
59
|
if (mode.type === "vehicle")
|
|
60
60
|
vehicleCalculation(calcProp);
|
|
@@ -46,13 +46,13 @@ import "./style.css";
|
|
|
46
46
|
export function Rideable(props) {
|
|
47
47
|
var _this = this;
|
|
48
48
|
var _a;
|
|
49
|
-
var _b = useContext(GaesupWorldContext), states = _b.states, rideable = _b.rideable
|
|
50
|
-
var _c = useRideable(), initRideable = _c.initRideable,
|
|
49
|
+
var _b = useContext(GaesupWorldContext), states = _b.states, rideable = _b.rideable;
|
|
50
|
+
var _c = useRideable(), initRideable = _c.initRideable, ride = _c.ride, landing = _c.landing;
|
|
51
51
|
// const current = getRideable(props.objectkey);
|
|
52
|
-
var
|
|
52
|
+
var _rideable = useState({
|
|
53
53
|
position: props.position || V3(0, 0, 0),
|
|
54
54
|
rotation: props.rotation || euler(),
|
|
55
|
-
})
|
|
55
|
+
})[0];
|
|
56
56
|
useEffect(function () {
|
|
57
57
|
initRideable(props);
|
|
58
58
|
}, []);
|
|
@@ -63,7 +63,7 @@ export function Rideable(props) {
|
|
|
63
63
|
landing(props.objectkey);
|
|
64
64
|
}
|
|
65
65
|
}, [states === null || states === void 0 ? void 0 : states.isRiding]);
|
|
66
|
-
var
|
|
66
|
+
var onIntersectionEnter = function (e) { return __awaiter(_this, void 0, void 0, function () {
|
|
67
67
|
return __generator(this, function (_a) {
|
|
68
68
|
switch (_a.label) {
|
|
69
69
|
case 0: return [4 /*yield*/, ride(e, props)];
|
|
@@ -73,5 +73,5 @@ export function Rideable(props) {
|
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
}); };
|
|
76
|
-
return (_jsx(_Fragment, { children: ((_a = rideable === null || rideable === void 0 ? void 0 : rideable[props.objectkey]) === null || _a === void 0 ? void 0 : _a.visible) && (_jsxs("group", { userData: { intangible: true }, children: [props.objectType === "vehicle" && (_jsx(PassiveVehicle, { controllerOptions: props.controllerOptions, position:
|
|
76
|
+
return (_jsx(_Fragment, { children: ((_a = rideable === null || rideable === void 0 ? void 0 : rideable[props.objectkey]) === null || _a === void 0 ? void 0 : _a.visible) && (_jsxs("group", { userData: { intangible: true }, children: [props.objectType === "vehicle" && (_jsx(PassiveVehicle, { controllerOptions: props.controllerOptions, position: _rideable.position, rotation: _rideable.rotation, currentAnimation: "idle", url: props.url, wheelUrl: props.wheelUrl, ridingUrl: props.ridingUrl, offset: props.offset, enableRiding: props.enableRiding, rigidBodyProps: props.rigidBodyProps, sensor: true, onIntersectionEnter: onIntersectionEnter })), props.objectType === "airplane" && (_jsx(PassiveAirplane, { controllerOptions: props.controllerOptions, position: _rideable.position.clone(), rotation: _rideable.rotation.clone(), currentAnimation: "idle", url: props.url, ridingUrl: props.ridingUrl, offset: props.offset, enableRiding: props.enableRiding, rigidBodyProps: props.rigidBodyProps, sensor: true, onIntersectionEnter: onIntersectionEnter }))] })) }));
|
|
77
77
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RapierRigidBody } from "@react-three/rapier";
|
|
1
2
|
import * as THREE from "three";
|
|
2
3
|
import { controllerOptionsType } from "../../controller/type";
|
|
3
4
|
export type rideablePropType = {
|
|
@@ -18,4 +19,7 @@ export type rideablePropType = {
|
|
|
18
19
|
vehicleSize?: THREE.Vector3;
|
|
19
20
|
wheelSize?: THREE.Vector3;
|
|
20
21
|
airplaneSize?: THREE.Vector3;
|
|
22
|
+
rigidBodyProps?: RapierRigidBody;
|
|
23
|
+
outerGroupProps?: THREE.Group;
|
|
24
|
+
innerGroupProps?: THREE.Group;
|
|
21
25
|
};
|
|
@@ -55,7 +55,7 @@ export default function initGaesupWorld(props) {
|
|
|
55
55
|
},
|
|
56
56
|
});
|
|
57
57
|
}, []);
|
|
58
|
-
var gaesupProps = useMemo(function () { return ({ value: value, dispatch: dispatch }); }, [value, dispatch]);
|
|
58
|
+
var gaesupProps = useMemo(function () { return ({ value: value, dispatch: dispatch }); }, [value, value.block, dispatch]);
|
|
59
59
|
initDebug({ value: gaesupProps.value, dispatch: dispatch });
|
|
60
60
|
return {
|
|
61
61
|
gaesupProps: gaesupProps,
|