@xrift/world-components 0.49.0 → 0.50.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.
@@ -0,0 +1,8 @@
1
+ import type { SeatExitOffset } from './types';
2
+ /**
3
+ * 降車位置の既定値: 座面の高さから前へ 0.6m。
4
+ * 立ち上がると重力が復帰するので、床があれば自然に落ち着く
5
+ */
6
+ export declare const DEFAULT_EXIT_OFFSET: Required<SeatExitOffset>;
7
+ export declare const DEFAULT_INTERACTION_TEXT = "\u5EA7\u308B";
8
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/components/Seat/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,cAAc,CAAqC,CAAA;AAE9F,eAAO,MAAM,wBAAwB,iBAAO,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 降車位置の既定値: 座面の高さから前へ 0.6m。
3
+ * 立ち上がると重力が復帰するので、床があれば自然に落ち着く
4
+ */
5
+ export const DEFAULT_EXIT_OFFSET = { forward: 0.6, right: 0, up: 0 };
6
+ export const DEFAULT_INTERACTION_TEXT = '座る';
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/components/Seat/constants.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA6B,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;AAE9F,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { type FC } from 'react';
2
+ import type { Props } from './types';
3
+ export type { Props as SeatProps, SeatExitOffset } from './types';
4
+ /**
5
+ * 座席。子要素を狙ってインタラクトすると、ローカルプレイヤーがこの座席に座る。
6
+ *
7
+ * group として置く: 原点が座面(腰を置く点)、前方が -Z。
8
+ * 座面の姿勢は props ではなく**置かれた場所のワールド行列**から毎フレーム取るので、
9
+ * 親の group・乗り物・回転台の下に置いても、動いても傾いても、そのまま追従する。
10
+ *
11
+ * 座る・追従・降車・同期はプラットフォーム側(SeatContext の実装)が担う。
12
+ * 未注入(DevEnvironment 等)では登録だけ行い、クリックしても何も起きない
13
+ */
14
+ export declare const Seat: FC<Props>;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Seat/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAwD,MAAM,OAAO,CAAA;AAKrF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGpC,YAAY,EAAE,KAAK,IAAI,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEjE;;;;;;;;;GASG;AACH,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,KAAK,CAuD1B,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useSyncExternalStore } from 'react';
3
+ import { useSeatContext } from '../../contexts/SeatContext';
4
+ import { Interactable } from '../Interactable';
5
+ import { DEFAULT_INTERACTION_TEXT } from './constants';
6
+ import { computeExitPosition, decomposeSeatSurface } from './utils';
7
+ /**
8
+ * 座席。子要素を狙ってインタラクトすると、ローカルプレイヤーがこの座席に座る。
9
+ *
10
+ * group として置く: 原点が座面(腰を置く点)、前方が -Z。
11
+ * 座面の姿勢は props ではなく**置かれた場所のワールド行列**から毎フレーム取るので、
12
+ * 親の group・乗り物・回転台の下に置いても、動いても傾いても、そのまま追従する。
13
+ *
14
+ * 座る・追従・降車・同期はプラットフォーム側(SeatContext の実装)が担う。
15
+ * 未注入(DevEnvironment 等)では登録だけ行い、クリックしても何も起きない
16
+ */
17
+ export const Seat = ({ id, exitOffset, interactionText = DEFAULT_INTERACTION_TEXT, enabled = true, children, ...groupProps }) => {
18
+ const { registerSeat, unregisterSeat, sit, getOccupantId, subscribeOccupancy } = useSeatContext();
19
+ const groupRef = useRef(null);
20
+ // 登録エントリは props の最新値を ref 経由で読む。
21
+ // props が変わるたびに登録し直すと、着席中に登録が入れ替わって座席が消えたと誤認される
22
+ const exitOffsetRef = useRef(exitOffset);
23
+ exitOffsetRef.current = exitOffset;
24
+ useEffect(() => {
25
+ const group = groupRef.current;
26
+ if (!group)
27
+ return;
28
+ const getSeatSurface = () => {
29
+ group.updateWorldMatrix(true, false);
30
+ return decomposeSeatSurface(group.matrixWorld);
31
+ };
32
+ const entry = {
33
+ getSeatSurface,
34
+ getExitPosition: () => computeExitPosition(getSeatSurface(), exitOffsetRef.current),
35
+ };
36
+ registerSeat(id, entry);
37
+ return () => unregisterSeat(id, entry);
38
+ }, [id, registerSeat, unregisterSeat]);
39
+ // 他人(または自分)が座っている間はプロンプトを出さない
40
+ // 第3引数はSSR時のスナップショット。未着席(null)が安全側
41
+ const occupantId = useSyncExternalStore(subscribeOccupancy, () => getOccupantId(id), () => null);
42
+ const handleInteract = useCallback(() => sit(id), [sit, id]);
43
+ return (_jsx("group", { ref: groupRef, ...groupProps, children: _jsx(Interactable, { id: id, onInteract: handleInteract, interactionText: interactionText, enabled: enabled && occupantId === null, children: children }) }));
44
+ };
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Seat/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAErF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEtD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAInE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,IAAI,GAAc,CAAC,EAC9B,EAAE,EACF,UAAU,EACV,eAAe,GAAG,wBAAwB,EAC1C,OAAO,GAAG,IAAI,EACd,QAAQ,EACR,GAAG,UAAU,EACd,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAC5E,cAAc,EAAE,CAAA;IAClB,MAAM,QAAQ,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAA;IAEpC,iCAAiC;IACjC,gDAAgD;IAChD,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IACxC,aAAa,CAAC,OAAO,GAAG,UAAU,CAAA;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC9B,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACpC,OAAO,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAChD,CAAC,CAAA;QACD,MAAM,KAAK,GAAG;YACZ,cAAc;YACd,eAAe,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC;SACpF,CAAA;QACD,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACvB,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACxC,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAA;IAEtC,8BAA8B;IAC9B,mCAAmC;IACnC,MAAM,UAAU,GAAG,oBAAoB,CACrC,kBAAkB,EAClB,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,EACvB,GAAG,EAAE,CAAC,IAAI,CACX,CAAA;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IAE5D,OAAO,CACL,gBAAO,GAAG,EAAE,QAAQ,KAAM,UAAU,YAClC,KAAC,YAAY,IACX,EAAE,EAAE,EAAE,EACN,UAAU,EAAE,cAAc,EAC1B,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,IAAI,UAAU,KAAK,IAAI,YAEtC,QAAQ,GACI,GACT,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,39 @@
1
+ import type { ThreeElements } from '@react-three/fiber';
2
+ import type { ReactNode } from 'react';
3
+ /**
4
+ * 降車位置(座席ローカル・**ワールドのメートル**)。
5
+ * forward/right は座席の yaw だけで回す(傾きは無視)。up はワールド上方向
6
+ * (宙返り中の乗り物から降りるときに「座席の上」へ出すと地面に埋まるため)。
7
+ * 親を拡大していても距離は拡大されない
8
+ */
9
+ export interface SeatExitOffset {
10
+ /** 前方(-Z 側)へ */
11
+ forward?: number;
12
+ /** 右方向へ */
13
+ right?: number;
14
+ /** ワールド上方向へ */
15
+ up?: number;
16
+ }
17
+ /**
18
+ * <Seat> は group として置く。原点が座面(腰を置く点)、前方が -Z。
19
+ * position / rotation は group と同じように書ける。
20
+ *
21
+ * **scale は受け付けない**。座面は点と向きだけで決まり、着席時の腰・目線の高さは
22
+ * プレイヤーのアバターの実寸から決まるので、座席を拡大しても意味を持たない
23
+ * (拡大すると exitOffset のメートル指定と見た目の大きさが食い違うだけになる)。
24
+ * 見た目を大きくしたいときは children 側を拡大する。
25
+ * Object3D の数値 id と衝突するため id は座席 ID(文字列)に差し替える
26
+ */
27
+ export type Props = Omit<ThreeElements['group'], 'id' | 'children' | 'ref' | 'scale'> & {
28
+ /** 座席の一意な ID */
29
+ id: string;
30
+ /** 降車位置(省略時は座面の高さから前へ 0.6m) */
31
+ exitOffset?: SeatExitOffset;
32
+ /** 狙ったときに表示する文言(既定 '座る') */
33
+ interactionText?: string;
34
+ /** 座れるかどうか(false で一時的に座れなくする。他人が座っている間は自動で false) */
35
+ enabled?: boolean;
36
+ /** 子要素(見た目・クリック対象。座面原点からのローカル座標で書く) */
37
+ children: ReactNode;
38
+ };
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Seat/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC,GAAG;IACtF,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,+BAA+B;IAC/B,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uCAAuC;IACvC,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/Seat/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import { Matrix4 } from 'three';
2
+ import type { Position3D } from '../../types/movement';
3
+ import type { SeatSurface } from '../../contexts/SeatContext';
4
+ import type { SeatExitOffset } from './types';
5
+ /**
6
+ * <Seat> の group のワールド行列から座面の姿勢を取り出す。
7
+ * 親の group・乗り物・回転台の変換がそのまま伝わるので、作者は「置くだけ」でよい。
8
+ *
9
+ * **スケールは捨てる**(座面は点と向きだけで決まる)。親を拡大している場合も、
10
+ * 座面の位置と向きは正しく求まり、降車位置だけがワールドのメートルのまま残る
11
+ */
12
+ export declare function decomposeSeatSurface(matrixWorld: Matrix4): SeatSurface;
13
+ /**
14
+ * 座席の yaw(Y 軸まわりの向き)。yaw=0 で前方が -Z、正で左回り。
15
+ * 前方ベクトルを XZ 平面に落として求めるので、傾いた座席でも「だいたい向いている方向」が出る。
16
+ * 真上・真下を向いていて水平成分が無いときは 0 を返す(降車位置の向きにしか使わないので十分)
17
+ */
18
+ export declare function seatYaw(surface: SeatSurface): number;
19
+ /**
20
+ * 降車位置。forward/right は yaw だけで回し、up はワールド上方向に足す。
21
+ * yaw=0 のとき forward は -Z、right は +X
22
+ */
23
+ export declare function computeExitPosition(surface: SeatSurface, exitOffset?: SeatExitOffset): Position3D;
24
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/Seat/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAuB,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAQ7C;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,CAMtE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAKpD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,cAAc,GAAG,UAAU,CAYjG"}
@@ -0,0 +1,50 @@
1
+ import { Quaternion, Vector3 } from 'three';
2
+ import { DEFAULT_EXIT_OFFSET } from './constants';
3
+ const _position = new Vector3();
4
+ const _quaternion = new Quaternion();
5
+ const _scale = new Vector3();
6
+ const _forward = new Vector3();
7
+ /**
8
+ * <Seat> の group のワールド行列から座面の姿勢を取り出す。
9
+ * 親の group・乗り物・回転台の変換がそのまま伝わるので、作者は「置くだけ」でよい。
10
+ *
11
+ * **スケールは捨てる**(座面は点と向きだけで決まる)。親を拡大している場合も、
12
+ * 座面の位置と向きは正しく求まり、降車位置だけがワールドのメートルのまま残る
13
+ */
14
+ export function decomposeSeatSurface(matrixWorld) {
15
+ matrixWorld.decompose(_position, _quaternion, _scale);
16
+ return {
17
+ position: { x: _position.x, y: _position.y, z: _position.z },
18
+ quaternion: { x: _quaternion.x, y: _quaternion.y, z: _quaternion.z, w: _quaternion.w },
19
+ };
20
+ }
21
+ /**
22
+ * 座席の yaw(Y 軸まわりの向き)。yaw=0 で前方が -Z、正で左回り。
23
+ * 前方ベクトルを XZ 平面に落として求めるので、傾いた座席でも「だいたい向いている方向」が出る。
24
+ * 真上・真下を向いていて水平成分が無いときは 0 を返す(降車位置の向きにしか使わないので十分)
25
+ */
26
+ export function seatYaw(surface) {
27
+ const { x, y, z, w } = surface.quaternion;
28
+ _forward.set(0, 0, -1).applyQuaternion(_quaternion.set(x, y, z, w));
29
+ if (_forward.x * _forward.x + _forward.z * _forward.z < 1e-6)
30
+ return 0;
31
+ return Math.atan2(-_forward.x, -_forward.z);
32
+ }
33
+ /**
34
+ * 降車位置。forward/right は yaw だけで回し、up はワールド上方向に足す。
35
+ * yaw=0 のとき forward は -Z、right は +X
36
+ */
37
+ export function computeExitPosition(surface, exitOffset) {
38
+ const forward = exitOffset?.forward ?? DEFAULT_EXIT_OFFSET.forward;
39
+ const right = exitOffset?.right ?? DEFAULT_EXIT_OFFSET.right;
40
+ const up = exitOffset?.up ?? DEFAULT_EXIT_OFFSET.up;
41
+ const yaw = seatYaw(surface);
42
+ const sin = Math.sin(yaw);
43
+ const cos = Math.cos(yaw);
44
+ return {
45
+ x: surface.position.x - sin * forward + cos * right,
46
+ y: surface.position.y + up,
47
+ z: surface.position.z - cos * forward - sin * right,
48
+ };
49
+ }
50
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/Seat/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAIpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAA;AAC/B,MAAM,WAAW,GAAG,IAAI,UAAU,EAAE,CAAA;AACpC,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;AAC5B,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAA;AAE9B;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAoB;IACvD,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACrD,OAAO;QACL,QAAQ,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;QAC5D,UAAU,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE;KACvF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAoB;IAC1C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,UAAU,CAAA;IACzC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACnE,IAAI,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI;QAAE,OAAO,CAAC,CAAA;IACtE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAoB,EAAE,UAA2B;IACnF,MAAM,OAAO,GAAG,UAAU,EAAE,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAA;IAClE,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAA;IAC5D,MAAM,EAAE,GAAG,UAAU,EAAE,EAAE,IAAI,mBAAmB,CAAC,EAAE,CAAA;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACzB,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK;QACnD,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE;QAC1B,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK;KACpD,CAAA;AACH,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { Position3D } from '../types/movement';
3
+ /** クォータニオン(three と名前が衝突するので Position3D/Rotation3D に揃えた名前にする) */
4
+ export interface Quaternion3D {
5
+ x: number;
6
+ y: number;
7
+ z: number;
8
+ w: number;
9
+ }
10
+ /**
11
+ * 座面のワールド姿勢。position は腰を置く点(<Seat> の原点)
12
+ * 前方は -Z・上は +Y。傾く座席(乗り物・回転台)は任意の姿勢を返してよい
13
+ */
14
+ export interface SeatSurface {
15
+ position: Position3D;
16
+ quaternion: Quaternion3D;
17
+ }
18
+ /**
19
+ * <Seat> がプラットフォームに登録する情報
20
+ * 着席中はプラットフォーム側が毎フレーム getSeatSurface() を読んでプレイヤーを追従させる。
21
+ * 椅子(静止)でも乗り物(移動)でも同じインターフェースで扱う。
22
+ * 運転席用の入力委譲(controllable / onControlInput)は乗り物フェーズで optional に追加する
23
+ */
24
+ export interface SeatEntry {
25
+ /** 座面のワールド姿勢を返す(着席中は毎フレーム呼ばれる) */
26
+ getSeatSurface: () => SeatSurface;
27
+ /** 降車時にプレイヤーの足元を置くワールド位置を返す */
28
+ getExitPosition: () => Position3D;
29
+ }
30
+ /**
31
+ * 座席の登録・着席状態を管理するためのインターフェース
32
+ * プラットフォーム側(xrift-frontend)が実装を注入する
33
+ */
34
+ export interface SeatContextValue {
35
+ /** 座席を登録する */
36
+ registerSeat: (id: string, entry: SeatEntry) => void;
37
+ /**
38
+ * 座席の登録を解除する。entry が現在の登録と一致するときだけ削除すること
39
+ * (StrictMode や remount で新旧の <Seat> が入れ違うと、生きている登録を消してしまう)
40
+ */
41
+ unregisterSeat: (id: string, entry: SeatEntry) => void;
42
+ /** ローカルプレイヤーをその座席に座らせる(<Seat> のクリックから呼ばれる) */
43
+ sit: (seatId: string) => void;
44
+ /**
45
+ * その座席に座っているプレイヤーの ID(自分を含む。誰も座っていなければ null)
46
+ *
47
+ * ワールド内の <Seat> ごとに、占有の変化のたびに呼ばれる。
48
+ * 素直に全プレイヤーを走査する実装でよい(比較するだけなので実質の負荷はない)。
49
+ * 座席が極端に多いワールドが出てきたら、そのとき対応表を持たせればよい
50
+ */
51
+ getOccupantId: (seatId: string) => string | null;
52
+ /** 占有状態の変化を購読する(useSyncExternalStore 互換) */
53
+ subscribeOccupancy: (listener: () => void) => () => void;
54
+ }
55
+ /**
56
+ * デフォルト実装: 登録は受け付けるが座る機能は動作しない
57
+ * (着席にはアバター・カメラ・物理が必要なのでプラットフォーム側が提供する)
58
+ */
59
+ export declare const createDefaultSeatImplementation: () => SeatContextValue;
60
+ export declare const SeatContext: import("react").Context<SeatContextValue>;
61
+ interface Props {
62
+ /**
63
+ * プラットフォーム側が提供する実装
64
+ * 未指定の場合はデフォルト実装(登録のみ・座れない)が使用される
65
+ */
66
+ implementation?: SeatContextValue;
67
+ children: ReactNode;
68
+ }
69
+ /**
70
+ * 座席を提供する ContextProvider
71
+ * プラットフォーム側(xrift-frontend)が <Seat> の登録を受け取るために使用
72
+ */
73
+ export declare const SeatProvider: ({ implementation, children }: Props) => import("react").JSX.Element;
74
+ /** 座席の登録・着席状態を取得する hook。主に <Seat> 内部で使用する */
75
+ export declare const useSeatContext: () => SeatContextValue;
76
+ export {};
77
+ //# sourceMappingURL=SeatContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeatContext.d.ts","sourceRoot":"","sources":["../../src/contexts/SeatContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,UAAU,CAAA;IACpB,UAAU,EAAE,YAAY,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,kCAAkC;IAClC,cAAc,EAAE,MAAM,WAAW,CAAA;IACjC,+BAA+B;IAC/B,eAAe,EAAE,MAAM,UAAU,CAAA;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc;IACd,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACpD;;;OAGG;IACH,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACtD,8CAA8C;IAC9C,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAChD,4CAA4C;IAC5C,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;CACzD;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,QAAO,gBAalD,CAAA;AAED,eAAO,MAAM,WAAW,2CAAqE,CAAA;AAE7F,UAAU,KAAK;IACb;;;OAGG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAA;IACjC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,8BAA8B,KAAK,gCAG/D,CAAA;AAED,6CAA6C;AAC7C,eAAO,MAAM,cAAc,QAAO,gBAA2C,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, useMemo } from 'react';
3
+ /**
4
+ * デフォルト実装: 登録は受け付けるが座る機能は動作しない
5
+ * (着席にはアバター・カメラ・物理が必要なのでプラットフォーム側が提供する)
6
+ */
7
+ export const createDefaultSeatImplementation = () => {
8
+ const registry = new Map();
9
+ return {
10
+ registerSeat: (id, entry) => {
11
+ registry.set(id, entry);
12
+ },
13
+ unregisterSeat: (id, entry) => {
14
+ if (registry.get(id) === entry)
15
+ registry.delete(id);
16
+ },
17
+ sit: () => { },
18
+ getOccupantId: () => null,
19
+ subscribeOccupancy: () => () => { },
20
+ };
21
+ };
22
+ export const SeatContext = createContext(createDefaultSeatImplementation());
23
+ /**
24
+ * 座席を提供する ContextProvider
25
+ * プラットフォーム側(xrift-frontend)が <Seat> の登録を受け取るために使用
26
+ */
27
+ export const SeatProvider = ({ implementation, children }) => {
28
+ const value = useMemo(() => implementation ?? createDefaultSeatImplementation(), [implementation]);
29
+ return _jsx(SeatContext.Provider, { value: value, children: children });
30
+ };
31
+ /** 座席の登録・着席状態を取得する hook。主に <Seat> 内部で使用する */
32
+ export const useSeatContext = () => useContext(SeatContext);
33
+ //# sourceMappingURL=SeatContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeatContext.js","sourceRoot":"","sources":["../../src/contexts/SeatContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AA2D1E;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAqB,EAAE;IACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAA;IAC7C,OAAO;QACL,YAAY,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC;QACD,cAAc,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK;gBAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;QACb,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI;QACzB,kBAAkB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC;KACnC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAmB,+BAA+B,EAAE,CAAC,CAAA;AAW7F;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAS,EAAE,EAAE;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,IAAI,+BAA+B,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAClG,OAAO,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAwB,CAAA;AAC9E,CAAC,CAAA;AAED,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAqB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA"}
@@ -11,6 +11,7 @@ import { type TextInputContextValue } from './TextInputContext';
11
11
  import { type FileInputContextValue } from './FileInputContext';
12
12
  import { type UsersContextValue } from './UsersContext';
13
13
  import { type GrabbableContextValue } from './GrabbableContext';
14
+ import { type SeatContextValue } from './SeatContext';
14
15
  import { type InstanceEventContextValue } from './InstanceEventContext';
15
16
  import { type PlacementMode } from './PlacementStateContext';
16
17
  import { type AudioVolumeContextValue } from './AudioVolumeContext';
@@ -114,6 +115,11 @@ interface Props {
114
115
  * 指定しない場合はデフォルト実装(登録のみ・掴めない)が使用される
115
116
  */
116
117
  grabbableImplementation?: GrabbableContextValue;
118
+ /**
119
+ * 座席(<Seat>)の実装(オプション)
120
+ * 指定しない場合はデフォルト実装(登録のみ・座れない)が使用される
121
+ */
122
+ seatImplementation?: SeatContextValue;
117
123
  /**
118
124
  * World Storage(ワールド単位のKV永続化)の実装(オプション)
119
125
  * 指定しない場合はデフォルト実装(インメモリ・リロードで消える)が使用される
@@ -137,7 +143,7 @@ interface Props {
137
143
  * Module Federationで動的にロードされたワールドコンポーネントに
138
144
  * 必要な情報を注入するために使用
139
145
  */
140
- export declare const XRiftProvider: ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, fileInputImplementation, sharedFileImplementation, grabbableImplementation, worldStorageImplementation, serverClockImplementation, placementMode, children, }: Props) => React.JSX.Element;
146
+ export declare const XRiftProvider: ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, fileInputImplementation, sharedFileImplementation, grabbableImplementation, seatImplementation, worldStorageImplementation, serverClockImplementation, placementMode, children, }: Props) => React.JSX.Element;
141
147
  /**
142
148
  * XRift ワールドの情報を取得するhook
143
149
  * ワールドプロジェクト側でアセットの相対パスを絶対パスに変換する際に使用
@@ -1 +1 @@
1
- {"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { TextInputProvider, createDefaultTextInputImplementation, } from './Text
11
11
  import { FileInputProvider, createDefaultFileInputImplementation, } from './FileInputContext';
12
12
  import { UsersProvider } from './UsersContext';
13
13
  import { GrabbableProvider } from './GrabbableContext';
14
+ import { SeatProvider } from './SeatContext';
14
15
  import { InstanceEventProvider, createDefaultInstanceEventImplementation, } from './InstanceEventContext';
15
16
  import { PlacementStateProvider } from './PlacementStateContext';
16
17
  import { AudioVolumeProvider, createDefaultAudioVolumeImplementation, } from './AudioVolumeContext';
@@ -40,7 +41,7 @@ const composeProviders = (providers, children) => providers.reduceRight((acc, [P
40
41
  * Module Federationで動的にロードされたワールドコンポーネントに
41
42
  * 必要な情報を注入するために使用
42
43
  */
43
- export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, fileInputImplementation, sharedFileImplementation, grabbableImplementation, worldStorageImplementation, serverClockImplementation, placementMode, children, }) => {
44
+ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, fileInputImplementation, sharedFileImplementation, grabbableImplementation, seatImplementation, worldStorageImplementation, serverClockImplementation, placementMode, children, }) => {
44
45
  // インタラクト可能なオブジェクトの管理
45
46
  const [interactableObjects] = useState(() => new Set());
46
47
  // 画面共有の実装(指定がない場合はデフォルト実装を使用)
@@ -90,6 +91,7 @@ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImp
90
91
  [SpawnPointProvider, { implementation: spawnPointImplementation }],
91
92
  [UsersProvider, { implementation: usersImplementation }],
92
93
  [GrabbableProvider, { implementation: grabbableImplementation }],
94
+ [SeatProvider, { implementation: seatImplementation }],
93
95
  [InstanceEventProvider, { value: instanceEventImpl }],
94
96
  [TeleportProvider, { value: teleportImpl }],
95
97
  [ConfirmProvider, { value: confirmImpl }],
@@ -1 +1 @@
1
- {"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,10 +16,12 @@ export { SharedFileContext, SharedFileProvider, useSharedFileContext, createDefa
16
16
  export { WorldStorageContext, WorldStorageProvider, useWorldStorageContext, createDefaultWorldStorageImplementation, WorldStorageError, WORLD_STORAGE_KEY_PATTERN, WORLD_STORAGE_LIMITS, isValidWorldStorageKey, getWorldStorageEntrySize, incrementWorldStorageValue, type WorldStorageContextValue, type WorldStorageErrorCode, type WorldStorageEntry, type SharedWorldStorage, type PlayerWorldStorage, } from './contexts/WorldStorageContext';
17
17
  export { ServerClockContext, ServerClockProvider, useServerClockContext, createDefaultServerClockImplementation, isServerClockAccurateEnough, SERVER_CLOCK_ACCURACY_THRESHOLD, type ServerClockContextValue, type ServerClockAccuracy, } from './contexts/ServerClockContext';
18
18
  export { GrabbableContext, GrabbableProvider, useGrabbableContext, createDefaultGrabbableImplementation, type GrabbableContextValue, type GrabbableEntry, type GrabbableTransform, type GrabResultTransform, } from './contexts/GrabbableContext';
19
+ export { SeatContext, SeatProvider, useSeatContext, createDefaultSeatImplementation, type SeatContextValue, type SeatEntry, type SeatSurface, type Quaternion3D, } from './contexts/SeatContext';
19
20
  export { VoiceVolumeOverrideContext, VoiceVolumeOverrideProvider, useVoiceVolumeOverrideContext, createDefaultVoiceVolumeOverrideImplementation, type VoiceVolumeOverrideContextValue, AudioVolumeContext, AudioVolumeProvider, useAudioVolumeContext, createDefaultAudioVolumeImplementation, type AudioVolumeContextValue, } from './contexts/AudioVolumeContext';
20
21
  export { Interactable, type InteractableProps, } from './components/Interactable';
21
22
  export { Grabbable, type GrabbableProps, } from './components/Grabbable';
22
23
  export { GRABBABLE_USER_DATA_KEY } from './components/Grabbable/constants';
24
+ export { Seat, type SeatProps, type SeatExitOffset } from './components/Seat';
23
25
  export { Mirror, type MirrorProps } from './components/Mirror';
24
26
  export { Skybox, type SkyboxProps } from './components/Skybox';
25
27
  export { VideoScreen, type VideoScreenProps, type VideoState, } from './components/VideoScreen';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -17,6 +17,7 @@ export { SharedFileContext, SharedFileProvider, useSharedFileContext, createDefa
17
17
  export { WorldStorageContext, WorldStorageProvider, useWorldStorageContext, createDefaultWorldStorageImplementation, WorldStorageError, WORLD_STORAGE_KEY_PATTERN, WORLD_STORAGE_LIMITS, isValidWorldStorageKey, getWorldStorageEntrySize, incrementWorldStorageValue, } from './contexts/WorldStorageContext';
18
18
  export { ServerClockContext, ServerClockProvider, useServerClockContext, createDefaultServerClockImplementation, isServerClockAccurateEnough, SERVER_CLOCK_ACCURACY_THRESHOLD, } from './contexts/ServerClockContext';
19
19
  export { GrabbableContext, GrabbableProvider, useGrabbableContext, createDefaultGrabbableImplementation, } from './contexts/GrabbableContext';
20
+ export { SeatContext, SeatProvider, useSeatContext, createDefaultSeatImplementation, } from './contexts/SeatContext';
20
21
  export { VoiceVolumeOverrideContext, VoiceVolumeOverrideProvider, useVoiceVolumeOverrideContext, createDefaultVoiceVolumeOverrideImplementation,
21
22
  // Deprecated aliases
22
23
  AudioVolumeContext, AudioVolumeProvider, useAudioVolumeContext, createDefaultAudioVolumeImplementation, } from './contexts/AudioVolumeContext';
@@ -24,6 +25,7 @@ AudioVolumeContext, AudioVolumeProvider, useAudioVolumeContext, createDefaultAud
24
25
  export { Interactable, } from './components/Interactable';
25
26
  export { Grabbable, } from './components/Grabbable';
26
27
  export { GRABBABLE_USER_DATA_KEY } from './components/Grabbable/constants';
28
+ export { Seat } from './components/Seat';
27
29
  export { Mirror } from './components/Mirror';
28
30
  export { Skybox } from './components/Skybox';
29
31
  export { VideoScreen, } from './components/VideoScreen';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrift/world-components",
3
- "version": "0.49.0",
3
+ "version": "0.50.0",
4
4
  "description": "Shared components and utilities for Xrift worlds",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",