@xrift/world-components 0.12.4 → 0.13.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.js +1 -1
- package/dist/components/SpawnPoint/index.js.map +1 -1
- package/dist/contexts/UsersContext.d.ts +61 -0
- package/dist/contexts/UsersContext.d.ts.map +1 -0
- package/dist/contexts/UsersContext.js +43 -0
- package/dist/contexts/UsersContext.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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -70,6 +70,6 @@ export const SpawnPoint = ({ position = [0, 0, 0], yaw = 0, }) => {
|
|
|
70
70
|
});
|
|
71
71
|
// Vite以外の環境では import.meta.env が存在しない可能性があるため安全にアクセス
|
|
72
72
|
const isDev = typeof import.meta !== 'undefined' && import.meta.env?.DEV;
|
|
73
|
-
return (_jsx("group", { ref: groupRef, position: position, rotation: [0, yawRad, 0], children: isDev && (_jsxs(_Fragment, { children: [_jsxs("mesh", { position: [0, 0.375, 0], children: [_jsx("cylinderGeometry", { args: [0.5, 0.5, 0.75, 32, 1, true] }), _jsx("gradientCylinderMaterial", { transparent: true, side: DoubleSide, depthWrite: false })] }), _jsxs("group", { children: [_jsxs("mesh", { position: [0, 0.3, -0.05], rotation: [Math.PI / 2, 0, 0], children: [_jsx("cylinderGeometry", { args: [0.03, 0.03, 0.4, 15] }), _jsx("meshBasicMaterial", { color: "#00ff88" })] }), _jsxs("mesh", { position: [0, 0.3, 0.22], rotation: [Math.PI / 2, 0, 0], children: [_jsx("coneGeometry", { args: [0.08, 0.15, 8] }), _jsx("meshBasicMaterial", { color: "#00ff88" })] })] })] })) }));
|
|
73
|
+
return (_jsx("group", { ref: groupRef, position: position, rotation: [0, yawRad, 0], children: isDev && (_jsxs(_Fragment, { children: [_jsxs("mesh", { position: [0, 0.375, 0], children: [_jsx("cylinderGeometry", { args: [0.5, 0.5, 0.75, 32, 1, true] }), _jsx("gradientCylinderMaterial", { transparent: true, side: DoubleSide, depthWrite: false })] }), _jsxs("group", { rotation: [0, Math.PI, 0], children: [_jsxs("mesh", { position: [0, 0.3, -0.05], rotation: [Math.PI / 2, 0, 0], children: [_jsx("cylinderGeometry", { args: [0.03, 0.03, 0.4, 15] }), _jsx("meshBasicMaterial", { color: "#00ff88" })] }), _jsxs("mesh", { position: [0, 0.3, 0.22], rotation: [Math.PI / 2, 0, 0], children: [_jsx("coneGeometry", { args: [0.08, 0.15, 8] }), _jsx("meshBasicMaterial", { color: "#00ff88" })] })] })] })) }));
|
|
74
74
|
};
|
|
75
75
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/SpawnPoint/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/SpawnPoint/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* ユーザー情報の型定義
|
|
4
|
+
*/
|
|
5
|
+
export interface User {
|
|
6
|
+
/** ユーザーID */
|
|
7
|
+
id: string;
|
|
8
|
+
/** 表示名 */
|
|
9
|
+
displayName: string;
|
|
10
|
+
/** アバターアイコンURL */
|
|
11
|
+
avatarUrl: string | null;
|
|
12
|
+
/** ゲストかどうか */
|
|
13
|
+
isGuest: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* ユーザー情報を管理するためのインターフェース
|
|
17
|
+
* プラットフォーム側(xrift-frontend)が実装を注入する
|
|
18
|
+
*/
|
|
19
|
+
export interface UsersContextValue {
|
|
20
|
+
/** ローカルユーザー(自分) */
|
|
21
|
+
localUser: User | null;
|
|
22
|
+
/** リモートユーザー(他の参加者) */
|
|
23
|
+
remoteUsers: User[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* ユーザー情報を管理するContext
|
|
27
|
+
* ワールド作成者はこのContextを通じてユーザー情報にアクセスする
|
|
28
|
+
*/
|
|
29
|
+
export declare const UsersContext: import("react").Context<UsersContextValue>;
|
|
30
|
+
interface Props {
|
|
31
|
+
/**
|
|
32
|
+
* プラットフォーム側が提供する実装
|
|
33
|
+
* 未指定の場合はデフォルト実装(空の状態)が使用される
|
|
34
|
+
*/
|
|
35
|
+
implementation?: UsersContextValue;
|
|
36
|
+
children: ReactNode;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* ユーザー情報を提供するContextProvider
|
|
40
|
+
* プラットフォーム側(xrift-frontend)が実装を注入するために使用
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* // プラットフォーム側での使用例
|
|
44
|
+
* <UsersProvider implementation={usersImplementation}>
|
|
45
|
+
* <WorldComponent />
|
|
46
|
+
* </UsersProvider>
|
|
47
|
+
*/
|
|
48
|
+
export declare const UsersProvider: ({ implementation, children }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
/**
|
|
50
|
+
* ユーザー情報を取得するhook
|
|
51
|
+
* ワールド作成者が現在のユーザー情報(自分+他の参加者)を取得するために使用
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* const { localUser, remoteUsers } = useUsers()
|
|
55
|
+
*
|
|
56
|
+
* // localUser: { id, displayName, avatarUrl, isGuest }
|
|
57
|
+
* // remoteUsers: [{ id, displayName, avatarUrl, isGuest }, ...]
|
|
58
|
+
*/
|
|
59
|
+
export declare const useUsers: () => UsersContextValue;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=UsersContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UsersContext.d.ts","sourceRoot":"","sources":["../../src/contexts/UsersContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,aAAa;IACb,EAAE,EAAE,MAAM,CAAA;IACV,UAAU;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,cAAc;IACd,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,sBAAsB;IACtB,WAAW,EAAE,IAAI,EAAE,CAAA;CACpB;AAWD;;;GAGG;AACH,eAAO,MAAM,YAAY,4CAExB,CAAA;AAED,UAAU,KAAK;IACb;;;OAGG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,8BAA8B,KAAK,4CAQhE,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,QAAO,iBAE3B,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* デフォルト実装: Context未設定時は空の状態として動作
|
|
5
|
+
* 開発時やテスト時に使用される
|
|
6
|
+
*/
|
|
7
|
+
const createDefaultImplementation = () => ({
|
|
8
|
+
localUser: null,
|
|
9
|
+
remoteUsers: [],
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* ユーザー情報を管理するContext
|
|
13
|
+
* ワールド作成者はこのContextを通じてユーザー情報にアクセスする
|
|
14
|
+
*/
|
|
15
|
+
export const UsersContext = createContext(createDefaultImplementation());
|
|
16
|
+
/**
|
|
17
|
+
* ユーザー情報を提供するContextProvider
|
|
18
|
+
* プラットフォーム側(xrift-frontend)が実装を注入するために使用
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // プラットフォーム側での使用例
|
|
22
|
+
* <UsersProvider implementation={usersImplementation}>
|
|
23
|
+
* <WorldComponent />
|
|
24
|
+
* </UsersProvider>
|
|
25
|
+
*/
|
|
26
|
+
export const UsersProvider = ({ implementation, children }) => {
|
|
27
|
+
const value = implementation ?? createDefaultImplementation();
|
|
28
|
+
return (_jsx(UsersContext.Provider, { value: value, children: children }));
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* ユーザー情報を取得するhook
|
|
32
|
+
* ワールド作成者が現在のユーザー情報(自分+他の参加者)を取得するために使用
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* const { localUser, remoteUsers } = useUsers()
|
|
36
|
+
*
|
|
37
|
+
* // localUser: { id, displayName, avatarUrl, isGuest }
|
|
38
|
+
* // remoteUsers: [{ id, displayName, avatarUrl, isGuest }, ...]
|
|
39
|
+
*/
|
|
40
|
+
export const useUsers = () => {
|
|
41
|
+
return useContext(UsersContext);
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=UsersContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UsersContext.js","sourceRoot":"","sources":["../../src/contexts/UsersContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAA;AA2BjE;;;GAGG;AACH,MAAM,2BAA2B,GAAG,GAAsB,EAAE,CAAC,CAAC;IAC5D,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,EAAE;CAChB,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CACvC,2BAA2B,EAAE,CAC9B,CAAA;AAWD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAS,EAAE,EAAE;IACnE,MAAM,KAAK,GAAG,cAAc,IAAI,2BAA2B,EAAE,CAAA;IAE7D,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAChC,QAAQ,GACa,CACzB,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAsB,EAAE;IAC9C,OAAO,UAAU,CAAC,YAAY,CAAC,CAAA;AACjC,CAAC,CAAA"}
|
|
@@ -3,6 +3,7 @@ import type { Object3D } from 'three';
|
|
|
3
3
|
import { type InstanceStateContextValue } from './InstanceStateContext';
|
|
4
4
|
import { type ScreenShareContextValue } from './ScreenShareContext';
|
|
5
5
|
import { type SpawnPointContextValue } from './SpawnPointContext';
|
|
6
|
+
import { type UsersContextValue } from './UsersContext';
|
|
6
7
|
export interface XRiftContextValue {
|
|
7
8
|
/**
|
|
8
9
|
* ワールドのベースURL(CDNのディレクトリパス)
|
|
@@ -45,6 +46,11 @@ interface Props {
|
|
|
45
46
|
* 指定しない場合はデフォルト実装(ローカルstate)が使用される
|
|
46
47
|
*/
|
|
47
48
|
spawnPointImplementation?: SpawnPointContextValue;
|
|
49
|
+
/**
|
|
50
|
+
* ユーザー情報の実装(オプション)
|
|
51
|
+
* 指定しない場合はデフォルト実装(空の状態)が使用される
|
|
52
|
+
*/
|
|
53
|
+
usersImplementation?: UsersContextValue;
|
|
48
54
|
children: ReactNode;
|
|
49
55
|
}
|
|
50
56
|
/**
|
|
@@ -52,7 +58,7 @@ interface Props {
|
|
|
52
58
|
* Module Federationで動的にロードされたワールドコンポーネントに
|
|
53
59
|
* 必要な情報を注入するために使用
|
|
54
60
|
*/
|
|
55
|
-
export declare const XRiftProvider: ({ baseUrl, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, children, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
export declare const XRiftProvider: ({ baseUrl, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, usersImplementation, children, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
56
62
|
/**
|
|
57
63
|
* XRift ワールドの情報を取得するhook
|
|
58
64
|
* ワールドプロジェクト側でアセットの相対パスを絶対パスに変換する際に使用
|
|
@@ -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;AACxF,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,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;AACrF,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAUtE,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;;;OAGG;IACH,mBAAmB,CAAC,EAAE,iBAAiB,CAAA;IACvC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,+HAO3B,KAAK,4CAwCP,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,QAAO,iBAQ3B,CAAA"}
|
|
@@ -3,6 +3,7 @@ import { createContext, useCallback, useContext, useMemo, useState } from 'react
|
|
|
3
3
|
import { InstanceStateProvider } from './InstanceStateContext';
|
|
4
4
|
import { ScreenShareProvider } from './ScreenShareContext';
|
|
5
5
|
import { SpawnPointProvider } from './SpawnPointContext';
|
|
6
|
+
import { UsersProvider } from './UsersContext';
|
|
6
7
|
// デフォルトの画面共有実装(開発環境用)
|
|
7
8
|
const createDefaultScreenShareImplementation = () => ({
|
|
8
9
|
videoElement: null,
|
|
@@ -20,7 +21,7 @@ export const XRiftContext = createContext(null);
|
|
|
20
21
|
* Module Federationで動的にロードされたワールドコンポーネントに
|
|
21
22
|
* 必要な情報を注入するために使用
|
|
22
23
|
*/
|
|
23
|
-
export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, children, }) => {
|
|
24
|
+
export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, usersImplementation, children, }) => {
|
|
24
25
|
// インタラクト可能なオブジェクトの管理
|
|
25
26
|
const [interactableObjects] = useState(() => new Set());
|
|
26
27
|
// 画面共有の実装(指定がない場合はデフォルト実装を使用)
|
|
@@ -38,7 +39,7 @@ export const XRiftProvider = ({ baseUrl, instanceStateImplementation, screenShar
|
|
|
38
39
|
interactableObjects,
|
|
39
40
|
registerInteractable,
|
|
40
41
|
unregisterInteractable,
|
|
41
|
-
}, children: _jsx(ScreenShareProvider, { value: screenShareImpl, children: _jsx(InstanceStateProvider, { implementation: instanceStateImplementation, children: _jsx(SpawnPointProvider, { implementation: spawnPointImplementation, children: children }) }) }) }));
|
|
42
|
+
}, children: _jsx(ScreenShareProvider, { value: screenShareImpl, children: _jsx(InstanceStateProvider, { implementation: instanceStateImplementation, children: _jsx(SpawnPointProvider, { implementation: spawnPointImplementation, children: _jsx(UsersProvider, { implementation: usersImplementation, children: children }) }) }) }) }));
|
|
42
43
|
};
|
|
43
44
|
/**
|
|
44
45
|
* 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;AACxF,OAAO,EAAE,kBAAkB,EAA+B,MAAM,qBAAqB,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;AACrF,OAAO,EAAE,aAAa,EAA0B,MAAM,gBAAgB,CAAA;AAEtE,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;AA2BzE;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,OAAO,EACP,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,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,YAC1D,KAAC,aAAa,IAAC,cAAc,EAAE,mBAAmB,YAC/C,QAAQ,GACK,GACG,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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { XRiftContext, XRiftProvider, useXRift, type XRiftContextValue, } from '
|
|
|
2
2
|
export { InstanceStateContext, useInstanceStateContext, type InstanceStateContextValue, } from './contexts/InstanceStateContext';
|
|
3
3
|
export { ScreenShareContext, ScreenShareProvider, useScreenShareContext, type ScreenShareContextValue, } from './contexts/ScreenShareContext';
|
|
4
4
|
export { SpawnPointContext, SpawnPointProvider, useSpawnPointContext, type SpawnPoint as SpawnPointData, type SpawnPointContextValue, } from './contexts/SpawnPointContext';
|
|
5
|
+
export { UsersContext, UsersProvider, useUsers, type User, type UsersContextValue, } from './contexts/UsersContext';
|
|
5
6
|
export { Interactable, type InteractableProps, } from './components/Interactable';
|
|
6
7
|
export { Mirror, type MirrorProps } from './components/Mirror';
|
|
7
8
|
export { Skybox, type SkyboxProps } from './components/Skybox';
|
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;AAEtC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,UAAU,IAAI,cAAc,EACjC,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,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;AAErC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,KAAK,IAAI,EACT,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAA;AAGhC,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
|
@@ -3,6 +3,7 @@ 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
5
|
export { SpawnPointContext, SpawnPointProvider, useSpawnPointContext, } from './contexts/SpawnPointContext';
|
|
6
|
+
export { UsersContext, UsersProvider, useUsers, } from './contexts/UsersContext';
|
|
6
7
|
// Components
|
|
7
8
|
export { Interactable, } from './components/Interactable';
|
|
8
9
|
export { Mirror } from './components/Mirror';
|
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,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"}
|
|
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,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAGT,MAAM,yBAAyB,CAAA;AAEhC,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"}
|