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.
This commit is contained in:
hypercross 2026-04-21 09:51:10 +08:00
parent eff62bc0ed
commit 093eadbefd
1 changed files with 7 additions and 9 deletions

View File

@ -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; const shape = this.itemState.shape.value;
if (!shape) return []; if (!shape) return [];
@ -104,11 +108,7 @@ export class InventoryItemContainer extends Phaser.GameObjects.Container {
})); }));
} }
setItem(item: GameItem): void { private renderGraphics(
this.itemState.setItem(item);
}
renderGraphics(
graphics: Phaser.GameObjects.Graphics, graphics: Phaser.GameObjects.Graphics,
shape: ParsedShape, shape: ParsedShape,
itemColor: number, itemColor: number,
@ -167,12 +167,10 @@ export class InventoryItemContainer extends Phaser.GameObjects.Container {
this.setAlpha(1); this.setAlpha(1);
const finalRotation = this.itemState.previewRotation.peek(); const finalRotation = this.itemState.previewRotation.peek();
if (!this.handleDragEnd(finalRotation)) { if (!this.handleDragEnd(finalRotation)) {
this.itemState.setPreviewRotation(0);
const t = this.itemState.transform.peek(); const t = this.itemState.transform.peek();
t && this.snapBack(t); t && this.snapBack(t);
} else {
this.itemState.setPreviewRotation(0);
} }
this.itemState.setPreviewRotation(0);
startX = startY = 0; startX = startY = 0;
} }
}); });