@operato/scene-storage 10.0.0-beta.46 → 10.0.0-beta.48
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/CHANGELOG.md +23 -0
- package/dist/crane.js +11 -2
- package/dist/crane.js.map +1 -1
- package/dist/rack-grid.d.ts +9 -0
- package/dist/rack-grid.js +16 -0
- package/dist/rack-grid.js.map +1 -1
- package/dist/storage-rack.d.ts +9 -0
- package/dist/storage-rack.js +15 -0
- package/dist/storage-rack.js.map +1 -1
- package/package.json +4 -4
- package/src/crane.ts +10 -2
- package/src/rack-grid.ts +16 -0
- package/src/storage-rack.ts +15 -0
- package/test/test-crane-rotation-reach.ts +2 -2
- package/test/things-scene-loader-impl.mjs +37 -0
- package/test/things-scene-loader.mjs +24 -0
- package/translations/en.json +2 -0
- package/translations/ja.json +2 -0
- package/translations/ko.json +2 -0
- package/translations/ms.json +2 -0
- package/translations/zh.json +2 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,29 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [10.0.0-beta.48](https://github.com/things-scene/operato-scene/compare/v10.0.0-beta.47...v10.0.0-beta.48) (2026-05-26)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @operato/scene-storage
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [10.0.0-beta.47](https://github.com/things-scene/operato-scene/compare/v10.0.0-beta.46...v10.0.0-beta.47) (2026-05-26)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### :rocket: New Features
|
|
18
|
+
|
|
19
|
+
* **scene-base:** AN-PR-2 — Obstacle interface + 기존 컴포넌트 자격 부여 ([3e45e19](https://github.com/things-scene/operato-scene/commit/3e45e19f53c04d7f01bbbe9ea079f5f7f7a7d8f5))
|
|
20
|
+
* **transport/storage:** Phase Z PR-4 — multi-carrier mover (forkSlots state) ([5e398d1](https://github.com/things-scene/operato-scene/commit/5e398d12075c7732d42a27a439d2246acb735289))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### :bug: Bug Fix
|
|
24
|
+
|
|
25
|
+
* **storage:** test runner ESM 해결 — Node loader (Component 가 transfer bundle 미포함) ([984ca9c](https://github.com/things-scene/operato-scene/commit/984ca9c09cedd90cb60fb000a014914ab01bd69d))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
6
29
|
## [10.0.0-beta.46](https://github.com/things-scene/operato-scene/compare/v10.0.0-beta.45...v10.0.0-beta.46) (2026-05-24)
|
|
7
30
|
|
|
8
31
|
|
package/dist/crane.js
CHANGED
|
@@ -168,6 +168,12 @@ let Crane = class Crane extends Mover(CarrierHolder(ContainerCapacity(Legendable
|
|
|
168
168
|
* 미설정 = state-driven) 에 carrier 가 *지하* 로 가는 결함.
|
|
169
169
|
*/
|
|
170
170
|
get slots() {
|
|
171
|
+
// Phase Z PR-4: 사용자가 state.forkSlots 명시 시 그대로 활용. 미명시 시 단일
|
|
172
|
+
// 'forks' default (backward compat). multi-fork crane (twin / quad) 모델링
|
|
173
|
+
// 가능 — [{ id: 'fork-L', ... }, { id: 'fork-R', ... }] 형태로.
|
|
174
|
+
const custom = this.state?.forkSlots;
|
|
175
|
+
if (Array.isArray(custom) && custom.length > 0)
|
|
176
|
+
return custom;
|
|
171
177
|
return [{ id: 'forks', maxCount: 1, localPosition: { x: 0, y: 0, z: 0 } }];
|
|
172
178
|
}
|
|
173
179
|
/**
|
|
@@ -327,7 +333,9 @@ let Crane = class Crane extends Mover(CarrierHolder(ContainerCapacity(Legendable
|
|
|
327
333
|
const tween = { carriagePosition: newCarriagePos };
|
|
328
334
|
const targetBottomWorldY = resolveCarrierBottomY(target);
|
|
329
335
|
if (targetBottomWorldY !== null) {
|
|
330
|
-
|
|
336
|
+
// Phase Z PR-4: 임의 slot 의 carrier 검사 (multi-fork 대비). 단일 'forks'
|
|
337
|
+
// 가정 제거 — c._transferSlotId 가 set 됐으면 어떤 slot 이든 holding.
|
|
338
|
+
const isHoldingCarrier = this.components?.some?.((c) => c?._transferSlotId != null) ?? false;
|
|
331
339
|
const liftH = numOr(this.state.forkLift, 30);
|
|
332
340
|
const approachWorldY = targetBottomWorldY + (isHoldingCarrier ? liftH : 0);
|
|
333
341
|
const ro = this._realObject;
|
|
@@ -450,8 +458,9 @@ let Crane = class Crane extends Mover(CarrierHolder(ContainerCapacity(Legendable
|
|
|
450
458
|
// 2. carrier lower — forkLiftRT liftH → 0. carrier 가 cell 바닥 안착.
|
|
451
459
|
await this._tween({ forkLiftRT: 0 }, D_LIFT);
|
|
452
460
|
// 3. dispatch — carrier world 위치 = cell 내 attach 위치, jump 없음. Transfer 추적.
|
|
461
|
+
// Phase Z PR-4: 임의 slot 의 carrier 검사 (multi-fork 대비).
|
|
453
462
|
const comps = this.components;
|
|
454
|
-
const carrier = comps?.find?.((c) => c?._transferSlotId
|
|
463
|
+
const carrier = comps?.find?.((c) => c?._transferSlotId != null)
|
|
455
464
|
?? comps?.[0];
|
|
456
465
|
if (carrier) {
|
|
457
466
|
try {
|