@xrift/world-components 0.10.6 → 0.11.0
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/SpawnPoint/index.d.ts +22 -0
- package/dist/components/SpawnPoint/index.d.ts.map +1 -0
- package/dist/components/SpawnPoint/index.js +23 -0
- package/dist/components/SpawnPoint/index.js.map +1 -0
- package/dist/contexts/SpawnPointContext.d.ts +53 -0
- package/dist/contexts/SpawnPointContext.d.ts.map +1 -0
- package/dist/contexts/SpawnPointContext.js +53 -0
- package/dist/contexts/SpawnPointContext.js.map +1 -0
- package/dist/contexts/XRiftContext.d.ts +7 -1
- package/dist/contexts/XRiftContext.d.ts.map +1 -1
- package/dist/contexts/XRiftContext.js +3 -2
- package/dist/contexts/XRiftContext.js.map +1 -1
- package/dist/hooks/useSpawnPoint.d.ts +17 -0
- package/dist/hooks/useSpawnPoint.d.ts.map +1 -0
- package/dist/hooks/useSpawnPoint.js +20 -0
- package/dist/hooks/useSpawnPoint.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
export interface SpawnPointProps {
|
|
3
|
+
/** スポーン位置 [x, y, z] */
|
|
4
|
+
position?: [number, number, number];
|
|
5
|
+
/** スポーン時の向き(度数法 0-360) */
|
|
6
|
+
yaw?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* ワールド内のリスポーン地点を指定するコンポーネント
|
|
10
|
+
* ワールド作成者がこのコンポーネントを配置することで、
|
|
11
|
+
* プラットフォーム側がプレイヤーのスポーン位置を取得できる
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // ワールド側での使用例
|
|
15
|
+
* <SpawnPoint position={[0, 0, 5]} yaw={180} />
|
|
16
|
+
*
|
|
17
|
+
* @note
|
|
18
|
+
* - 視覚的な表示はありません
|
|
19
|
+
* - 1つのワールドに複数のSpawnPointがある場合、最後に設定されたものが有効になります
|
|
20
|
+
*/
|
|
21
|
+
export declare const SpawnPoint: FC<SpawnPointProps>;
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SpawnPoint/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAa,MAAM,OAAO,CAAA;AAG1C,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAW1C,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useSpawnPointContext } from '../../contexts/SpawnPointContext';
|
|
3
|
+
/**
|
|
4
|
+
* ワールド内のリスポーン地点を指定するコンポーネント
|
|
5
|
+
* ワールド作成者がこのコンポーネントを配置することで、
|
|
6
|
+
* プラットフォーム側がプレイヤーのスポーン位置を取得できる
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // ワールド側での使用例
|
|
10
|
+
* <SpawnPoint position={[0, 0, 5]} yaw={180} />
|
|
11
|
+
*
|
|
12
|
+
* @note
|
|
13
|
+
* - 視覚的な表示はありません
|
|
14
|
+
* - 1つのワールドに複数のSpawnPointがある場合、最後に設定されたものが有効になります
|
|
15
|
+
*/
|
|
16
|
+
export const SpawnPoint = ({ position = [0, 0, 0], yaw = 0, }) => {
|
|
17
|
+
const { setSpawnPoint } = useSpawnPointContext();
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
setSpawnPoint({ position, yaw });
|
|
20
|
+
}, [position, yaw, setSpawnPoint]);
|
|
21
|
+
return null;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/SpawnPoint/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AASvE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,EAC9C,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpB,GAAG,GAAG,CAAC,GACR,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,oBAAoB,EAAE,CAAA;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;IAClC,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;IAElC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* スポーン地点の情報
|
|
4
|
+
*/
|
|
5
|
+
export interface SpawnPoint {
|
|
6
|
+
/** スポーン位置 [x, y, z] */
|
|
7
|
+
position: [number, number, number];
|
|
8
|
+
/** スポーン時の向き(度数法 0-360) */
|
|
9
|
+
yaw: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* スポーン地点を管理するためのインターフェース
|
|
13
|
+
* プラットフォーム側(xrift-frontend)が実装を注入する
|
|
14
|
+
*/
|
|
15
|
+
export interface SpawnPointContextValue {
|
|
16
|
+
/** 現在のスポーン地点(未設定時はnull) */
|
|
17
|
+
spawnPoint: SpawnPoint | null;
|
|
18
|
+
/** スポーン地点を設定する */
|
|
19
|
+
setSpawnPoint: (point: SpawnPoint) => void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* スポーン地点を管理するContext
|
|
23
|
+
* ワールド作成者がSpawnPointコンポーネントで設定した値を
|
|
24
|
+
* プラットフォーム側が取得できる
|
|
25
|
+
*/
|
|
26
|
+
export declare const SpawnPointContext: import("react").Context<SpawnPointContextValue>;
|
|
27
|
+
interface Props {
|
|
28
|
+
/**
|
|
29
|
+
* プラットフォーム側が提供する実装
|
|
30
|
+
* 未指定の場合はデフォルト実装(ローカルstate)が使用される
|
|
31
|
+
*/
|
|
32
|
+
implementation?: SpawnPointContextValue;
|
|
33
|
+
children: ReactNode;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* スポーン地点を提供するContextProvider
|
|
37
|
+
* プラットフォーム側(xrift-frontend)がスポーン地点を取得するために使用
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* // プラットフォーム側での使用例
|
|
41
|
+
* const spawnPointImpl = useSpawnPointImplementation()
|
|
42
|
+
* <SpawnPointProvider implementation={spawnPointImpl}>
|
|
43
|
+
* <WorldComponent />
|
|
44
|
+
* </SpawnPointProvider>
|
|
45
|
+
*/
|
|
46
|
+
export declare const SpawnPointProvider: ({ implementation, children }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
/**
|
|
48
|
+
* スポーン地点のContextを取得するhook
|
|
49
|
+
* 通常、ワールド作成者は直接このhookを使用せず、useSpawnPointを使用する
|
|
50
|
+
*/
|
|
51
|
+
export declare const useSpawnPointContext: () => SpawnPointContextValue;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=SpawnPointContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpawnPointContext.d.ts","sourceRoot":"","sources":["../../src/contexts/SpawnPointContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAqC,MAAM,OAAO,CAAA;AAExF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAC7B,kBAAkB;IAClB,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CAC3C;AAkBD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,iDAE7B,CAAA;AAED,UAAU,KAAK;IACb;;;OAGG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAA;IACvC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,8BAA8B,KAAK,4CAkBrE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,sBAEvC,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useCallback, useContext, useState } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* デフォルト実装: Context未設定時はローカル状態として動作
|
|
5
|
+
*/
|
|
6
|
+
const createDefaultImplementation = () => {
|
|
7
|
+
let currentSpawnPoint = null;
|
|
8
|
+
return {
|
|
9
|
+
get spawnPoint() {
|
|
10
|
+
return currentSpawnPoint;
|
|
11
|
+
},
|
|
12
|
+
setSpawnPoint: (point) => {
|
|
13
|
+
currentSpawnPoint = point;
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* スポーン地点を管理するContext
|
|
19
|
+
* ワールド作成者がSpawnPointコンポーネントで設定した値を
|
|
20
|
+
* プラットフォーム側が取得できる
|
|
21
|
+
*/
|
|
22
|
+
export const SpawnPointContext = createContext(createDefaultImplementation());
|
|
23
|
+
/**
|
|
24
|
+
* スポーン地点を提供するContextProvider
|
|
25
|
+
* プラットフォーム側(xrift-frontend)がスポーン地点を取得するために使用
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* // プラットフォーム側での使用例
|
|
29
|
+
* const spawnPointImpl = useSpawnPointImplementation()
|
|
30
|
+
* <SpawnPointProvider implementation={spawnPointImpl}>
|
|
31
|
+
* <WorldComponent />
|
|
32
|
+
* </SpawnPointProvider>
|
|
33
|
+
*/
|
|
34
|
+
export const SpawnPointProvider = ({ implementation, children }) => {
|
|
35
|
+
const [spawnPoint, setSpawnPointState] = useState(null);
|
|
36
|
+
const setSpawnPoint = useCallback((point) => {
|
|
37
|
+
setSpawnPointState(point);
|
|
38
|
+
}, []);
|
|
39
|
+
// 外部実装が渡された場合はそれを使用、なければデフォルト実装
|
|
40
|
+
const value = implementation ?? {
|
|
41
|
+
spawnPoint,
|
|
42
|
+
setSpawnPoint,
|
|
43
|
+
};
|
|
44
|
+
return (_jsx(SpawnPointContext.Provider, { value: value, children: children }));
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* スポーン地点のContextを取得するhook
|
|
48
|
+
* 通常、ワールド作成者は直接このhookを使用せず、useSpawnPointを使用する
|
|
49
|
+
*/
|
|
50
|
+
export const useSpawnPointContext = () => {
|
|
51
|
+
return useContext(SpawnPointContext);
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=SpawnPointContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpawnPointContext.js","sourceRoot":"","sources":["../../src/contexts/SpawnPointContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAuBxF;;GAEG;AACH,MAAM,2BAA2B,GAAG,GAA2B,EAAE;IAC/D,IAAI,iBAAiB,GAAsB,IAAI,CAAA;IAE/C,OAAO;QACL,IAAI,UAAU;YACZ,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QACD,aAAa,EAAE,CAAC,KAAiB,EAAE,EAAE;YACnC,iBAAiB,GAAG,KAAK,CAAA;QAC3B,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAC5C,2BAA2B,EAAE,CAC9B,CAAA;AAWD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAS,EAAE,EAAE;IACxE,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAA;IAE1E,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,KAAiB,EAAE,EAAE;QACtD,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,gCAAgC;IAChC,MAAM,KAAK,GAA2B,cAAc,IAAI;QACtD,UAAU;QACV,aAAa;KACd,CAAA;IAED,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACrC,QAAQ,GACkB,CAC9B,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAA2B,EAAE;IAC/D,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAA;AACtC,CAAC,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { type ReactNode } from 'react';
|
|
|
2
2
|
import type { Object3D } from 'three';
|
|
3
3
|
import { type InstanceStateContextValue } from './InstanceStateContext';
|
|
4
4
|
import { type ScreenShareContextValue } from './ScreenShareContext';
|
|
5
|
+
import { type SpawnPointContextValue } from './SpawnPointContext';
|
|
5
6
|
export interface XRiftContextValue {
|
|
6
7
|
/**
|
|
7
8
|
* ワールドのベースURL(CDNのディレクトリパス)
|
|
@@ -39,6 +40,11 @@ interface Props {
|
|
|
39
40
|
* 指定しない場合はデフォルト実装(no-op)が使用される
|
|
40
41
|
*/
|
|
41
42
|
screenShareImplementation?: ScreenShareContextValue;
|
|
43
|
+
/**
|
|
44
|
+
* スポーン地点管理の実装(オプション)
|
|
45
|
+
* 指定しない場合はデフォルト実装(ローカルstate)が使用される
|
|
46
|
+
*/
|
|
47
|
+
spawnPointImplementation?: SpawnPointContextValue;
|
|
42
48
|
children: ReactNode;
|
|
43
49
|
}
|
|
44
50
|
/**
|
|
@@ -46,7 +52,7 @@ interface Props {
|
|
|
46
52
|
* Module Federationで動的にロードされたワールドコンポーネントに
|
|
47
53
|
* 必要な情報を注入するために使用
|
|
48
54
|
*/
|
|
49
|
-
export declare const XRiftProvider: ({ baseUrl, instanceStateImplementation, screenShareImplementation, children, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
export declare const XRiftProvider: ({ baseUrl, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, children, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
50
56
|
/**
|
|
51
57
|
* XRift ワールドの情報を取得するhook
|
|
52
58
|
* ワールドプロジェクト側でアセットの相対パスを絶対パスに変換する際に使用
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAA;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAyB,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAA;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAyB,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAUrF,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC;;OAEG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAA;IAChD;;OAEG;IACH,sBAAsB,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAA;CAKnD;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,mDAAgD,CAAA;AAEzE,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,2BAA2B,CAAC,EAAE,yBAAyB,CAAA;IACvD;;;OAGG;IACH,yBAAyB,CAAC,EAAE,uBAAuB,CAAA;IACnD;;;OAGG;IACH,wBAAwB,CAAC,EAAE,sBAAsB,CAAA;IACjD,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,0GAM3B,KAAK,4CAsCP,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,QAAO,iBAQ3B,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { createContext, useCallback, useContext, useMemo, useState } from 'react';
|
|
3
3
|
import { InstanceStateProvider } from './InstanceStateContext';
|
|
4
4
|
import { ScreenShareProvider } from './ScreenShareContext';
|
|
5
|
+
import { SpawnPointProvider } from './SpawnPointContext';
|
|
5
6
|
// デフォルトの画面共有実装(開発環境用)
|
|
6
7
|
const createDefaultScreenShareImplementation = () => ({
|
|
7
8
|
videoElement: null,
|
|
@@ -19,7 +20,7 @@ export const XRiftContext = createContext(null);
|
|
|
19
20
|
* Module Federationで動的にロードされたワールドコンポーネントに
|
|
20
21
|
* 必要な情報を注入するために使用
|
|
21
22
|
*/
|
|
22
|
-
export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShareImplementation, children, }) => {
|
|
23
|
+
export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, children, }) => {
|
|
23
24
|
// インタラクト可能なオブジェクトの管理
|
|
24
25
|
const [interactableObjects] = useState(() => new Set());
|
|
25
26
|
// 画面共有の実装(指定がない場合はデフォルト実装を使用)
|
|
@@ -37,7 +38,7 @@ export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShar
|
|
|
37
38
|
interactableObjects,
|
|
38
39
|
registerInteractable,
|
|
39
40
|
unregisterInteractable,
|
|
40
|
-
}, children: _jsx(ScreenShareProvider, { value: screenShareImpl, children: _jsx(InstanceStateProvider, { implementation: instanceStateImplementation, children: children }) }) }));
|
|
41
|
+
}, children: _jsx(ScreenShareProvider, { value: screenShareImpl, children: _jsx(InstanceStateProvider, { implementation: instanceStateImplementation, children: _jsx(SpawnPointProvider, { implementation: spawnPointImplementation, children: children }) }) }) }));
|
|
41
42
|
};
|
|
42
43
|
/**
|
|
43
44
|
* XRift ワールドの情報を取得するhook
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEjG,OAAO,EAAE,qBAAqB,EAAkC,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAgC,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEjG,OAAO,EAAE,qBAAqB,EAAkC,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAgC,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,kBAAkB,EAA+B,MAAM,qBAAqB,CAAA;AAErF,sBAAsB;AACtB,MAAM,sCAAsC,GAAG,GAA4B,EAAE,CAAC,CAAC;IAC7E,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC;IAC5E,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC;CAC3E,CAAC,CAAA;AA2BF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAA;AAsBzE;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,OAAO,EACP,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,QAAQ,GACF,EAAE,EAAE;IACV,qBAAqB;IACrB,MAAM,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAY,CAAC,CAAA;IAEjE,8BAA8B;IAC9B,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,yBAAyB,IAAI,sCAAsC,EAAE,EAC3E,CAAC,yBAAyB,CAAC,CAC5B,CAAA;IAED,YAAY;IACZ,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,MAAgB,EAAE,EAAE;QAC5D,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAEzB,cAAc;IACd,MAAM,sBAAsB,GAAG,WAAW,CAAC,CAAC,MAAgB,EAAE,EAAE;QAC9D,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAEzB,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IACpB,KAAK,EAAE;YACL,OAAO;YACP,mBAAmB;YACnB,oBAAoB;YACpB,sBAAsB;SACvB,YAED,KAAC,mBAAmB,IAAC,KAAK,EAAE,eAAe,YACzC,KAAC,qBAAqB,IAAC,cAAc,EAAE,2BAA2B,YAChE,KAAC,kBAAkB,IAAC,cAAc,EAAE,wBAAwB,YACzD,QAAQ,GACU,GACC,GACJ,GACA,CACzB,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAsB,EAAE;IAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type SpawnPoint } from '../contexts/SpawnPointContext';
|
|
2
|
+
/**
|
|
3
|
+
* 現在設定されているスポーン地点を取得するhook
|
|
4
|
+
* 主にプラットフォーム側(xrift-frontend)で使用される
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* // プラットフォーム側での使用例
|
|
8
|
+
* const spawnPoint = useSpawnPoint()
|
|
9
|
+
* if (spawnPoint) {
|
|
10
|
+
* player.position.set(...spawnPoint.position)
|
|
11
|
+
* player.rotation.y = THREE.MathUtils.degToRad(spawnPoint.yaw)
|
|
12
|
+
* }
|
|
13
|
+
*
|
|
14
|
+
* @returns スポーン地点情報(未設定時はnull)
|
|
15
|
+
*/
|
|
16
|
+
export declare const useSpawnPoint: () => SpawnPoint | null;
|
|
17
|
+
//# sourceMappingURL=useSpawnPoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSpawnPoint.d.ts","sourceRoot":"","sources":["../../src/hooks/useSpawnPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,+BAA+B,CAAA;AAErF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,QAAO,UAAU,GAAG,IAG7C,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useSpawnPointContext } from '../contexts/SpawnPointContext';
|
|
2
|
+
/**
|
|
3
|
+
* 現在設定されているスポーン地点を取得するhook
|
|
4
|
+
* 主にプラットフォーム側(xrift-frontend)で使用される
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* // プラットフォーム側での使用例
|
|
8
|
+
* const spawnPoint = useSpawnPoint()
|
|
9
|
+
* if (spawnPoint) {
|
|
10
|
+
* player.position.set(...spawnPoint.position)
|
|
11
|
+
* player.rotation.y = THREE.MathUtils.degToRad(spawnPoint.yaw)
|
|
12
|
+
* }
|
|
13
|
+
*
|
|
14
|
+
* @returns スポーン地点情報(未設定時はnull)
|
|
15
|
+
*/
|
|
16
|
+
export const useSpawnPoint = () => {
|
|
17
|
+
const { spawnPoint } = useSpawnPointContext();
|
|
18
|
+
return spawnPoint;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=useSpawnPoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSpawnPoint.js","sourceRoot":"","sources":["../../src/hooks/useSpawnPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAErF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAsB,EAAE;IACnD,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,EAAE,CAAA;IAC7C,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
export { XRiftContext, XRiftProvider, useXRift, type XRiftContextValue, } from './contexts/XRiftContext';
|
|
2
2
|
export { InstanceStateContext, useInstanceStateContext, type InstanceStateContextValue, } from './contexts/InstanceStateContext';
|
|
3
3
|
export { ScreenShareContext, ScreenShareProvider, useScreenShareContext, type ScreenShareContextValue, } from './contexts/ScreenShareContext';
|
|
4
|
+
export { SpawnPointContext, SpawnPointProvider, useSpawnPointContext, type SpawnPoint as SpawnPointData, type SpawnPointContextValue, } from './contexts/SpawnPointContext';
|
|
4
5
|
export { Interactable, type InteractableProps, } from './components/Interactable';
|
|
5
6
|
export { Mirror, type MirrorProps } from './components/Mirror';
|
|
6
7
|
export { Skybox, type SkyboxProps } from './components/Skybox';
|
|
7
8
|
export { VideoScreen, type VideoScreenProps, type VideoState, } from './components/VideoScreen';
|
|
8
9
|
export { ScreenShareDisplay, type ScreenShareDisplayProps, } from './components/ScreenShareDisplay';
|
|
10
|
+
export { SpawnPoint, type SpawnPointProps, } from './components/SpawnPoint';
|
|
9
11
|
export { useInstanceState } from './hooks/useInstanceState';
|
|
12
|
+
export { useSpawnPoint } from './hooks/useSpawnPoint';
|
|
10
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,UAAU,IAAI,cAAc,EACjC,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
export { XRiftContext, XRiftProvider, useXRift, } from './contexts/XRiftContext';
|
|
3
3
|
export { InstanceStateContext, useInstanceStateContext, } from './contexts/InstanceStateContext';
|
|
4
4
|
export { ScreenShareContext, ScreenShareProvider, useScreenShareContext, } from './contexts/ScreenShareContext';
|
|
5
|
+
export { SpawnPointContext, SpawnPointProvider, useSpawnPointContext, } from './contexts/SpawnPointContext';
|
|
5
6
|
// Components
|
|
6
7
|
export { Interactable, } from './components/Interactable';
|
|
7
8
|
export { Mirror } from './components/Mirror';
|
|
8
9
|
export { Skybox } from './components/Skybox';
|
|
9
10
|
export { VideoScreen, } from './components/VideoScreen';
|
|
10
11
|
export { ScreenShareDisplay, } from './components/ScreenShareDisplay';
|
|
12
|
+
export { SpawnPoint, } from './components/SpawnPoint';
|
|
11
13
|
// Hooks
|
|
12
14
|
export { useInstanceState } from './hooks/useInstanceState';
|
|
15
|
+
export { useSpawnPoint } from './hooks/useSpawnPoint';
|
|
13
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAET,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GAExB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,+BAA+B,CAAA;AAEtC,aAAa;AACb,OAAO,EACL,YAAY,GAEb,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EACL,WAAW,GAGZ,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,kBAAkB,GAEnB,MAAM,iCAAiC,CAAA;AAExC,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAET,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GAExB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GAGrB,MAAM,8BAA8B,CAAA;AAErC,aAAa;AACb,OAAO,EACL,YAAY,GAEb,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EACL,WAAW,GAGZ,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,kBAAkB,GAEnB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,UAAU,GAEX,MAAM,yBAAyB,CAAA;AAEhC,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA"}
|