generated from hheik/bevy-template
52 lines
1.4 KiB
Rust
52 lines
1.4 KiB
Rust
use bevy::{prelude::*, sprite::Anchor};
|
|
use bevy_rapier2d::prelude::*;
|
|
use item::{Inventory, Item, ItemSource, ItemStack, Stockpile};
|
|
use work::{WorkDuration, Worker};
|
|
|
|
use super::*;
|
|
use crate::util::SpriteLoader;
|
|
|
|
#[derive(Clone, Debug, Default, Component, Reflect)]
|
|
#[reflect(Component)]
|
|
#[require(
|
|
Name(|| Name::from("Glorb")),
|
|
Sprite(|| Sprite {
|
|
anchor: Anchor::BottomCenter,
|
|
..default()
|
|
}),
|
|
SpriteLoader(|| SpriteLoader::from("sprites/glorb.png")),
|
|
Worker,
|
|
Inventory(|| Inventory::with_capacity(1)),
|
|
Velocity,
|
|
RigidBody(|| RigidBody::KinematicVelocityBased),
|
|
)]
|
|
pub struct Glorb;
|
|
|
|
#[derive(Clone, Debug, Default, Component, Reflect)]
|
|
#[reflect(Component)]
|
|
#[require(
|
|
Name(|| Name::from("Tree")),
|
|
Sprite(|| Sprite {
|
|
anchor: Anchor::Custom(Vec2 { x: 0.0, y: -0.375 }),
|
|
..default()
|
|
}),
|
|
SpriteLoader(|| SpriteLoader::from("sprites/tree.png")),
|
|
ItemSource(|| ItemSource(ItemStack { item: Item::Wood, count: 1 })),
|
|
WorkDuration(|| WorkDuration(5.0))
|
|
)]
|
|
pub struct Tree;
|
|
|
|
#[derive(Clone, Debug, Default, Component, Reflect)]
|
|
#[reflect(Component)]
|
|
#[require(
|
|
Name(|| Name::from("Chest")),
|
|
Sprite(|| Sprite {
|
|
anchor: Anchor::Custom(Vec2 { x: 0.0, y: -0.375 }),
|
|
..default()
|
|
}),
|
|
SpriteLoader(|| SpriteLoader::from("sprites/box.png")),
|
|
Inventory(|| Inventory::with_capacity(25)),
|
|
Stockpile,
|
|
)]
|
|
pub struct Chest;
|