beet_net 0.0.3

A very flexible AI behavior library for games and robotics.
use beet_net::prelude::*;
use bevy::log::LogPlugin;
use bevy::prelude::*;
use serde::Deserialize;
use serde::Serialize;


#[derive(Debug, Default, Component, Serialize, Deserialize)]
struct MyComponent(pub i32);

#[tokio::main]
async fn main() {
	// pretty_env_logger::init();

	tokio::spawn(spawn_sender());
	App::new()
		.add_plugins((
			LogPlugin::default(),
			MinimalPlugins,
			ReplicatePlugin,
			ReplicateTypePlugin::<MyComponent>::default(),
			NativeClientPlugin::default(),
		))
		.add_systems(Update, update)
		.run();
}


async fn spawn_sender() {
	std::thread::sleep(std::time::Duration::from_secs(1));
	App::new()
		.add_plugins((
			// LogPlugin::default(),
			MinimalPlugins,
			ReplicatePlugin,
			ReplicateTypePlugin::<MyComponent>::default(),
			NativeClientPlugin::default(),
		))
		.add_systems(Startup, start)
		.run();
}


fn start(mut commands: Commands) {
	commands.spawn((Replicate::default(), MyComponent(7)));
}

fn update(query: Query<(Entity, &MyComponent), Added<MyComponent>>) {
	// log::info!("update");
	for (_entity, comp) in query.iter() {
		log::info!("SUCCESS - {:?}", comp);
	}
}