fix(sts-like-viewer): fix item movement detection and removal

- Update `InventoryItemContainer` to correctly detect rotation changes
- Use `removeItemFromGrid` in `InventoryTestScene` for item removal
This commit is contained in:
hypercross 2026-04-21 00:16:50 +08:00
parent fe0621cedf
commit eff62bc0ed
2 changed files with 11 additions and 10 deletions

View File

@ -197,7 +197,7 @@ export class InventoryItemContainer extends Phaser.GameObjects.Container {
if (
clampedX !== item.transform.offset.x ||
clampedY !== item.transform.offset.y ||
finalRotation !== 0
finalRotation !== item.transform.rotation
) {
return this.callbacks.onMoveItem(
item.id,

View File

@ -2,7 +2,11 @@ import { ReactiveScene } from "boardgame-phaser";
import { createButton } from "@/utils/createButton";
import { GRID_CONFIG } from "@/config";
import { createInventorySignal, moveItem } from "@/state/inventory";
import { createItemIn, data } from "boardgame-core/samples/slay-the-spire-like";
import {
createItemIn,
data,
removeItemFromGrid,
} from "boardgame-core/samples/slay-the-spire-like";
import { createInventoryItemSpawner } from "@/gameobjects/InventoryItemSpawner";
import { SceneKey } from "./types";
@ -176,14 +180,11 @@ export class InventoryTestScene extends ReactiveScene {
private removeLastItem(): void {
this.inventorySignal.produce((inventory) => {
const items = Array.from(inventory.items.entries());
if (items.length === 0) {
return;
}
const [lastId] = items[items.length - 1];
inventory.items.delete(lastId);
const ids = [...inventory.items.keys()];
const last = ids.length > 0 ? ids[ids.length - 1] : null;
console.log({ last });
if (!last) return;
removeItemFromGrid(inventory, last);
});
}
}