use anput::{
commands::{CommandBuffer, DespawnCommand, SpawnCommand},
entity::Entity,
query::Include,
scheduler::GraphSchedulerPlugin,
universe::Universe,
};
use std::error::Error;
#[derive(Debug, Default, Clone, Copy)]
struct Villager;
fn main() -> Result<(), Box<dyn Error>> {
let mut universe = Universe::default()
.with_plugin(GraphSchedulerPlugin::<true>::default().resource(CommandBuffer::default()));
{
let mut commands = universe.resources.get_mut::<true, CommandBuffer>()?;
commands.command(SpawnCommand::new((Villager,)));
commands.execute(&mut universe.simulation);
}
let villager = universe
.simulation
.query::<true, (Entity, Include<Villager>)>()
.next()
.unwrap()
.0;
{
let mut commands = universe.resources.get_mut::<true, CommandBuffer>()?;
commands.command(DespawnCommand::new(villager));
commands.execute(&mut universe.simulation);
}
println!(
"Is villager still alive: {}",
universe.simulation.has_entity(villager)
);
Ok(())
}