Gui handler and basic inventory screen

This commit is contained in:
2026-03-10 17:43:58 -03:00
parent 608ae55db4
commit ada5d80023
17 changed files with 435 additions and 349 deletions
+4 -3
View File
@@ -1,5 +1,6 @@
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
import { ItemStack, PlayerInventory } from "../components/inventory.ts";
import { ItemStack } from "../inventory.ts";
import { PlayerComponent } from "../player.ts";
interface CropsRegistry {
total_stages: number;
@@ -84,7 +85,7 @@ function create_crop_tile(crop_id: string) {
},
on_click(world, tile) {
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
const player_inventory = player.get(PlayerComponent)!.player_inventory;
const item = player_inventory.container.get_item(player_inventory.hotbar_selected);
if (!item) {
return;
@@ -99,7 +100,7 @@ function create_crop_tile(crop_id: string) {
return;
}
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
const player_inventory = player.get(PlayerComponent)!.player_inventory;
player_inventory.container.add_item(new ItemStack(crop_info.item_drop));
if (crop_info.regrowable) {
tile.data!.current_stage -= 1;
+6 -6
View File
@@ -1,6 +1,6 @@
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
import { PlayerInventory } from "../components/inventory.ts";
import { WateringCanData } from "../items/watering_can.ts";
import { PlayerComponent } from "../player.ts";
EverythingRegistry.register<TileRegistry>("tiles", "bworld:dirt", {
texture_id: "bworld:dirt",
@@ -8,7 +8,7 @@ EverythingRegistry.register<TileRegistry>("tiles", "bworld:dirt", {
on_interact(world, tile) {
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
const player_inventory = player.get(PlayerComponent)!.player_inventory;
const maybe_item = player_inventory.container.get_item(player_inventory.hotbar_selected);
if (maybe_item && maybe_item.type_id === "bworld:hoe") {
tile.id = "bworld:hoed_dirt";
@@ -22,7 +22,7 @@ EverythingRegistry.register<TileRegistry>("tiles", "bworld:hoed_dirt", {
on_click(world, tile) {
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
const player_inventory = player.get(PlayerComponent)!.player_inventory;
const item = player_inventory.container.get_item(player_inventory.hotbar_selected);
if (!item) {
return;
@@ -34,7 +34,7 @@ EverythingRegistry.register<TileRegistry>("tiles", "bworld:hoed_dirt", {
},
on_interact(world, tile) {
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
const player_inventory = player.get(PlayerComponent)!.player_inventory;
const item = player_inventory.container.get_item(player_inventory.hotbar_selected);
if (!item) {
return;
@@ -56,7 +56,7 @@ EverythingRegistry.register<TileRegistry>("tiles", "bworld:hoed_watered_dirt", {
on_click(world, tile) {
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
const player_inventory = player.get(PlayerComponent)!.player_inventory;
const item = player_inventory.container.get_item(player_inventory.hotbar_selected);
if (!item) {
return;
@@ -68,7 +68,7 @@ EverythingRegistry.register<TileRegistry>("tiles", "bworld:hoed_watered_dirt", {
},
on_interact(world, tile) {
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
const player_inventory = player.get(PlayerComponent)!.player_inventory;
const item = player_inventory.container.get_item(player_inventory.hotbar_selected);
if (!item) {
return;
+2 -2
View File
@@ -1,5 +1,5 @@
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
import { PlayerInventory } from "../components/inventory.ts";
import { PlayerComponent } from "../player.ts";
EverythingRegistry.register<TileRegistry>("tiles", "bworld:grass", {
texture_id: "bworld:grass",
@@ -7,7 +7,7 @@ EverythingRegistry.register<TileRegistry>("tiles", "bworld:grass", {
on_interact(world, tile) {
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
const player_inventory = player.get(PlayerComponent)!.player_inventory;
const maybe_item = player_inventory.container.get_item(player_inventory.hotbar_selected);
if (maybe_item && maybe_item.type_id === "bworld:hoe") {
tile.id = "bworld:hoed_dirt";
+3 -2
View File
@@ -1,5 +1,6 @@
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
import { ItemStack, PlayerInventory } from "../components/inventory.ts";
import { ItemStack } from "../inventory.ts";
import { PlayerComponent } from "../player.ts";
EverythingRegistry.register<TileRegistry>("tiles", "bworld:tree", {
texture_id: "bworld:tree",
@@ -7,7 +8,7 @@ EverythingRegistry.register<TileRegistry>("tiles", "bworld:tree", {
on_click(world, tile) {
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
const player_inventory = player.get(PlayerComponent)!.player_inventory;
const maybe_item = player_inventory.container.get_item(player_inventory.hotbar_selected);
if (maybe_item && maybe_item.type_id === "bworld:axe") {
tile.id = "bworld:grass";
+2 -2
View File
@@ -1,6 +1,6 @@
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
import { PlayerInventory } from "../components/inventory.ts";
import { WateringCanData } from "../items/watering_can.ts";
import { PlayerComponent } from "../player.ts";
EverythingRegistry.register<TileRegistry>("tiles", "bworld:water", {
texture_id: "bworld:water",
@@ -8,7 +8,7 @@ EverythingRegistry.register<TileRegistry>("tiles", "bworld:water", {
on_interact(world, _tile) {
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
const player_inventory = player.get(PlayerComponent)!.player_inventory;
const maybe_item = player_inventory.container.get_item(player_inventory.hotbar_selected);
if (maybe_item && maybe_item.type_id === "bworld:watering_can") {
const data = maybe_item.data as WateringCanData;