Watering can lore

This commit is contained in:
2026-03-07 22:01:11 -03:00
parent 897a9e68c7
commit a0886f8f24
11 changed files with 197 additions and 10 deletions
+6 -1
View File
@@ -1,5 +1,6 @@
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
import { PlayerInventory } from "../components/inventory.ts";
import { WateringCanData } from "../items/watering_can.ts";
EverythingRegistry.register<TileRegistry>("tiles", "bworld:dirt", {
texture_id: "bworld:dirt",
@@ -40,7 +41,11 @@ EverythingRegistry.register<TileRegistry>("tiles", "bworld:hoed_dirt", {
}
if (item.type_id === "bworld:watering_can") {
tile.id = "bworld:hoed_watered_dirt";
const data = item.data as WateringCanData;
if (data.water > 0) {
tile.id = "bworld:hoed_watered_dirt";
data.water -= 1;
}
}
},
});
+1
View File
@@ -2,3 +2,4 @@ import "./grass.ts";
import "./dirt.ts";
import "./tree.ts";
import "./crops.ts";
import "./water.ts";
+18
View File
@@ -0,0 +1,18 @@
import { EverythingRegistry, TileRegistry } from "$/common/everything_registry.ts";
import { PlayerInventory } from "../components/inventory.ts";
import { WateringCanData } from "../items/watering_can.ts";
EverythingRegistry.register<TileRegistry>("tiles", "bworld:water", {
texture_id: "bworld:water",
has_collision: true,
on_interact(world, _tile) {
const [player] = world.get_tag("player")!;
const player_inventory = player.get(PlayerInventory)!;
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;
data.water = data.max_water;
}
},
});