@xrift/world-components 0.35.5 → 0.36.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/components/DevEnvironment/__tests__/utils.test.d.ts +2 -0
- package/dist/components/DevEnvironment/__tests__/utils.test.d.ts.map +1 -0
- package/dist/components/DevEnvironment/__tests__/utils.test.js +24 -0
- package/dist/components/DevEnvironment/__tests__/utils.test.js.map +1 -0
- package/dist/components/DevEnvironment/index.d.ts +1 -1
- package/dist/components/DevEnvironment/index.d.ts.map +1 -1
- package/dist/components/DevEnvironment/index.js +8 -3
- package/dist/components/DevEnvironment/index.js.map +1 -1
- package/dist/components/DevEnvironment/types.d.ts +2 -0
- package/dist/components/DevEnvironment/types.d.ts.map +1 -1
- package/dist/components/DevEnvironment/utils.d.ts +3 -0
- package/dist/components/DevEnvironment/utils.d.ts.map +1 -0
- package/dist/components/DevEnvironment/utils.js +12 -0
- package/dist/components/DevEnvironment/utils.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../../src/components/DevEnvironment/__tests__/utils.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { FloatType, HalfFloatType, UnsignedByteType } from 'three';
|
|
3
|
+
import { toThreeOutputBufferType } from '../utils';
|
|
4
|
+
describe('toThreeOutputBufferType', () => {
|
|
5
|
+
it('HalfFloatType 文字列を Three.js の HalfFloatType に変換する', () => {
|
|
6
|
+
expect(toThreeOutputBufferType('HalfFloatType')).toBe(HalfFloatType);
|
|
7
|
+
});
|
|
8
|
+
it('FloatType 文字列を Three.js の FloatType に変換する', () => {
|
|
9
|
+
expect(toThreeOutputBufferType('FloatType')).toBe(FloatType);
|
|
10
|
+
});
|
|
11
|
+
it('UnsignedByteType 文字列を Three.js の UnsignedByteType に変換する', () => {
|
|
12
|
+
expect(toThreeOutputBufferType('UnsignedByteType')).toBe(UnsignedByteType);
|
|
13
|
+
});
|
|
14
|
+
it('null の場合は undefined を返す', () => {
|
|
15
|
+
expect(toThreeOutputBufferType(null)).toBeUndefined();
|
|
16
|
+
});
|
|
17
|
+
it('undefined の場合は undefined を返す', () => {
|
|
18
|
+
expect(toThreeOutputBufferType(undefined)).toBeUndefined();
|
|
19
|
+
});
|
|
20
|
+
it('未知の文字列の場合は undefined を返す', () => {
|
|
21
|
+
expect(toThreeOutputBufferType('InvalidType')).toBeUndefined();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../../src/components/DevEnvironment/__tests__/utils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAElD,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAChE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Props } from './types';
|
|
2
2
|
export type DevEnvironmentProps = Props;
|
|
3
|
-
export declare function DevEnvironment({ children, camera, moveSpeed, shadows, spawnPosition, respawnThreshold, physicsConfig, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function DevEnvironment({ children, camera, moveSpeed, shadows, spawnPosition, respawnThreshold, physicsConfig, outputBufferType: outputBufferTypeStr, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DevEnvironment/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DevEnvironment/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAiBpC,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAA;AAmBvC,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,MAAM,EACN,SAAsB,EACtB,OAAc,EACd,aAAsC,EACtC,gBAAsC,EACtC,aAAa,EACb,gBAAgB,EAAE,mBAAmB,GACtC,EAAE,KAAK,2CA0DP"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useState, useSyncExternalStore } from 'react';
|
|
2
|
+
import { useCallback, useMemo, useState, useSyncExternalStore } from 'react';
|
|
3
3
|
import { Canvas } from '@react-three/fiber';
|
|
4
4
|
import { PointerLockControls } from '@react-three/drei';
|
|
5
5
|
import { Physics } from '@react-three/rapier';
|
|
6
6
|
import { SpawnPointProvider } from '../../contexts/SpawnPointContext';
|
|
7
7
|
import { PCFShadowMap } from 'three';
|
|
8
|
+
import { toThreeOutputBufferType } from './utils';
|
|
8
9
|
import { DEFAULT_SPAWN_POSITION, DEFAULT_GRAVITY, DEFAULT_ALLOW_INFINITE_JUMP, DEFAULT_CAMERA_NEAR, DEFAULT_CAMERA_FAR, MOVE_SPEED, RESPAWN_Y_THRESHOLD, } from './constants';
|
|
9
10
|
import { PhysicsPlayer } from './components/PhysicsPlayer';
|
|
10
11
|
import { CenterRaycaster } from './components/CenterRaycaster';
|
|
@@ -25,12 +26,16 @@ function subscribePointerLock(listener) {
|
|
|
25
26
|
function getPointerLockSnapshot() {
|
|
26
27
|
return document.pointerLockElement !== null;
|
|
27
28
|
}
|
|
28
|
-
export function DevEnvironment({ children, camera, moveSpeed = MOVE_SPEED, shadows = true, spawnPosition = DEFAULT_SPAWN_POSITION, respawnThreshold = RESPAWN_Y_THRESHOLD, physicsConfig, }) {
|
|
29
|
+
export function DevEnvironment({ children, camera, moveSpeed = MOVE_SPEED, shadows = true, spawnPosition = DEFAULT_SPAWN_POSITION, respawnThreshold = RESPAWN_Y_THRESHOLD, physicsConfig, outputBufferType: outputBufferTypeStr, }) {
|
|
29
30
|
const [isHit, setIsHit] = useState(false);
|
|
30
31
|
const isPointerLocked = useSyncExternalStore(subscribePointerLock, getPointerLockSnapshot, () => false);
|
|
31
32
|
const handleHitChange = useCallback((hit) => setIsHit(hit), []);
|
|
32
33
|
const gravity = physicsConfig?.gravity ?? DEFAULT_GRAVITY;
|
|
33
34
|
const allowInfiniteJump = physicsConfig?.allowInfiniteJump ?? DEFAULT_ALLOW_INFINITE_JUMP;
|
|
35
|
+
const outputBufferType = toThreeOutputBufferType(outputBufferTypeStr);
|
|
36
|
+
const glProps = useMemo(() => outputBufferType
|
|
37
|
+
? { preserveDrawingBuffer: true, stencil: true, outputBufferType }
|
|
38
|
+
: { preserveDrawingBuffer: true, stencil: true }, [outputBufferType]);
|
|
34
39
|
const cameraPosition = camera?.position ?? spawnPosition;
|
|
35
40
|
const cameraFov = camera?.fov ?? 50;
|
|
36
41
|
const cameraNear = camera?.near ?? DEFAULT_CAMERA_NEAR;
|
|
@@ -40,6 +45,6 @@ export function DevEnvironment({ children, camera, moveSpeed = MOVE_SPEED, shado
|
|
|
40
45
|
fov: cameraFov,
|
|
41
46
|
near: cameraNear,
|
|
42
47
|
far: cameraFar,
|
|
43
|
-
}, gl:
|
|
48
|
+
}, gl: glProps, children: [_jsx(PointerLockControls, {}), _jsx(CenterRaycaster, { onHitChange: handleHitChange }), _jsx(Physics, { gravity: [0, -gravity, 0], timeStep: "vary", children: _jsxs(SpawnPointProvider, { children: [_jsx(PhysicsPlayer, { moveSpeed: moveSpeed, spawnPosition: spawnPosition, respawnThreshold: respawnThreshold, allowInfiniteJump: allowInfiniteJump }), children] }) })] }), _jsx(Crosshair, { active: isHit }), _jsx(PointerLockStatus, { isLocked: isPointerLocked }), _jsx(ControlsHelp, {})] }));
|
|
44
49
|
}
|
|
45
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/DevEnvironment/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/DevEnvironment/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/DevEnvironment/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+BAA+B;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,SAAS,CAAA;IACnB,YAAY;IACZ,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3F,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW;IACX,aAAa,CAAC,EAAE,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/DevEnvironment/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+BAA+B;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,SAAS,CAAA;IACnB,YAAY;IACZ,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3F,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW;IACX,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/DevEnvironment/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,OAAO,CAAA;AAQd,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAGrG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FloatType, HalfFloatType, UnsignedByteType, } from 'three';
|
|
2
|
+
const OUTPUT_BUFFER_TYPE_MAP = {
|
|
3
|
+
UnsignedByteType,
|
|
4
|
+
HalfFloatType,
|
|
5
|
+
FloatType,
|
|
6
|
+
};
|
|
7
|
+
export function toThreeOutputBufferType(value) {
|
|
8
|
+
if (!value)
|
|
9
|
+
return undefined;
|
|
10
|
+
return OUTPUT_BUFFER_TYPE_MAP[value];
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/DevEnvironment/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EAEb,gBAAgB,GACjB,MAAM,OAAO,CAAA;AAEd,MAAM,sBAAsB,GAAoC;IAC9D,gBAAgB;IAChB,aAAa;IACb,SAAS;CACV,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAgC;IACtE,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAA;AACtC,CAAC"}
|