From 093eadbefd862757444b156ab3ef73250cd3556a Mon Sep 17 00:00:00 2001 From: hypercross Date: Tue, 21 Apr 2026 09:51:10 +0800 Subject: [PATCH] refactor: encapsulate InventoryItemContainer internals Make `updateHitArea` and `renderGraphics` private to prevent external access to internal rendering logic. Move the preview rotation reset to ensure it always executes after a drag operation. --- .../src/gameobjects/InventoryItemContainer.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/sts-like-viewer/src/gameobjects/InventoryItemContainer.ts b/packages/sts-like-viewer/src/gameobjects/InventoryItemContainer.ts index 13affe8..22fb4f5 100644 --- a/packages/sts-like-viewer/src/gameobjects/InventoryItemContainer.ts +++ b/packages/sts-like-viewer/src/gameobjects/InventoryItemContainer.ts @@ -85,7 +85,11 @@ export class InventoryItemContainer extends Phaser.GameObjects.Container { }); } - updateHitArea(value: number): Point2D[] { + setItem(item: GameItem): void { + this.itemState.setItem(item); + } + + private updateHitArea(value: number): Point2D[] { const shape = this.itemState.shape.value; if (!shape) return []; @@ -104,11 +108,7 @@ export class InventoryItemContainer extends Phaser.GameObjects.Container { })); } - setItem(item: GameItem): void { - this.itemState.setItem(item); - } - - renderGraphics( + private renderGraphics( graphics: Phaser.GameObjects.Graphics, shape: ParsedShape, itemColor: number, @@ -167,12 +167,10 @@ export class InventoryItemContainer extends Phaser.GameObjects.Container { this.setAlpha(1); const finalRotation = this.itemState.previewRotation.peek(); if (!this.handleDragEnd(finalRotation)) { - this.itemState.setPreviewRotation(0); const t = this.itemState.transform.peek(); t && this.snapBack(t); - } else { - this.itemState.setPreviewRotation(0); } + this.itemState.setPreviewRotation(0); startX = startY = 0; } });