use anput::prelude::*;
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>> {
struct MyPlugin;
let plugin = GraphSchedulerQuickPlugin::<true, MyPlugin>::default()
.resource(Gold(1000))
.resource(Food(500))
.commit();
let universe = Universe::default().with_plugin(plugin);
{
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(())
}