use anput::{scheduler::GraphSchedulerPlugin, universe::Universe};
use std::error::Error;
#[derive(Debug, Default, Clone, Copy)]
struct Gold(pub usize);
#[derive(Debug, Default, Clone, Copy)]
struct Food(pub usize);
fn main() -> Result<(), Box<dyn Error>> {
let universe = Universe::default().with_plugin(
GraphSchedulerPlugin::<true>::default()
.resource(Gold(1000))
.resource(Food(500)),
);
{
let mut food = universe.resources.get_mut::<true, Food>()?;
food.0 = food.0.saturating_sub(200);
}
{
let mut gold = universe.resources.get_mut::<true, Gold>()?;
let mut food = universe.resources.get_mut::<true, Food>()?;
gold.0 = gold.0.saturating_sub(500);
food.0 += 300;
}
Ok(())
}