Make hand item follow the player more closely

This commit is contained in:
2026-03-07 19:43:35 -03:00
parent 1a83c4f5cc
commit 5f9bce06fd
2 changed files with 6 additions and 4 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 269 B

+6 -4
View File
@@ -5,7 +5,7 @@ import { Container, PlayerInventory } from "$/client/components/inventory.ts";
import { InputManager } from "$/client/input_manager.ts"; import { InputManager } from "$/client/input_manager.ts";
import { ClientWorld } from "$/client/client_world.ts"; import { ClientWorld } from "$/client/client_world.ts";
import { Position } from "../../common/components/position.ts"; import { Position } from "../../common/components/position.ts";
import { Sprite } from "../components/sprite.ts"; import { AnimatedSprite, Sprite } from "../components/sprite.ts";
export class InventorySystem extends System { export class InventorySystem extends System {
update(world: ClientWorld, _delta: number): void { update(world: ClientWorld, _delta: number): void {
@@ -150,16 +150,18 @@ export class InventorySystem extends System {
const [player, player_hand] = world.get_tag("player")!; const [player, player_hand] = world.get_tag("player")!;
const player_position = player.get(Position); const player_position = player.get(Position);
const player_sprite = player.get(AnimatedSprite);
const hand_position = player_hand.get(Position); const hand_position = player_hand.get(Position);
const hand_sprite = player_hand.get(Sprite); const hand_sprite = player_hand.get(Sprite);
if (!player_position || !hand_position || !hand_sprite) { if (!player_position || !hand_position || !hand_sprite || !player_sprite) {
return; return;
} }
// sync position // sync position
hand_position.x = player_position.x; hand_position.x = player_position.x + (player_sprite.flip_x ? 34 : 4);
hand_position.y = player_position.y; hand_position.y = player_position.y + 34;
hand_sprite.flip_x = player_sprite.flip_x;
const maybe_item = player_inventory.container.get_item(player_inventory.hotbar_selected); const maybe_item = player_inventory.container.get_item(player_inventory.hotbar_selected);
if (maybe_item) { if (maybe_item) {