This commit is contained in:
2026-02-27 11:22:22 -03:00
parent 28f0422771
commit b52b7f4c44
7 changed files with 208 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
import { Component, Entity } from "$/common/ecs/mod.ts";
import { Position } from "$/common/components/position.ts";
import { AssetManager } from "../assets.ts";
import { Sprite } from "./sprite.ts";
import { ClickableSprite } from "./clickable.ts";
export class Crop extends Component {
current_stage = 0;
growth_time = 0;
total_stages: number;
time_to_grow: number[];
item_drop: string;
// you know ["bworld:carrot_seeds", "bworld:carrot_stage_1", "bworld:carrot_stage_2" ...]
sprite_ids: string[];
constructor(total_stages: number, time_to_grow: number[], sprite_ids: string[], item_drop: string) {
super();
this.total_stages = total_stages;
this.time_to_grow = time_to_grow;
this.sprite_ids = sprite_ids;
this.item_drop = item_drop;
}
}
export function create_crop_entity(x: number, y: number, crop: Crop) {
const crop_entity = new Entity("crop");
crop_entity.add(new Position(x, y));
crop_entity.add(new Sprite(AssetManager.instance.get("bworld:textures"), 32, 32, 0, 0, 16, 16));
crop_entity.add(crop);
crop_entity.add(
new ClickableSprite(2),
);
return crop_entity;
}