diff --git a/client/Cargo.toml b/client/Cargo.toml index cece379..ed77906 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -18,4 +18,5 @@ bevy_window = "0.15.0" egui_dock = "0.14.0" spacetimedb-sdk = "1.0" hex = "0.4" -random_word = { version = "0.5.0", features = ["en"] } \ No newline at end of file +random_word = { version = "0.5.0", features = ["en"] } +rand = "0.8.5" \ No newline at end of file diff --git a/client/src/app.rs b/client/src/app.rs index 149e815..5542051 100644 --- a/client/src/app.rs +++ b/client/src/app.rs @@ -28,7 +28,7 @@ impl Plugin for AppPlugin { app.add_plugins(crate::plugins::camera::camera_plugin::CameraPlugin); app.add_plugins(crate::plugins::ui::ui_plugin::UiPlugin); app.add_plugins(crate::plugins::environment::environment_plugin::EnvironmentPlugin); - app.add_systems(Startup, setup_database); + app.add_plugins(crate::plugins::network::network_plugin::NetworkPlugin); app.add_systems(Update, (debug_gizmos, toggle_ui_system)); diff --git a/client/src/plugins/camera/systems/camera_system.rs b/client/src/plugins/camera/systems/camera_system.rs index 04ac0f5..24aa07f 100644 --- a/client/src/plugins/camera/systems/camera_system.rs +++ b/client/src/plugins/camera/systems/camera_system.rs @@ -4,8 +4,9 @@ use bevy::math::Vec3; use bevy::prelude::*; use bevy_render::camera::{Exposure, PhysicalCameraParameters, Projection}; use bevy_window::CursorGrabMode; +use rand::Rng; use random_word::Lang; -use crate::module_bindings::set_name; +use crate::module_bindings::{set_name, spawn_entity, DbVector3}; use crate::plugins::network::systems::database::DbConnectionResource; #[derive(Component)] @@ -47,6 +48,15 @@ pub fn setup(mut commands: Commands) { )); } +fn random_vec3(min: f32, max: f32) -> Vec3 { + let mut rng = rand::thread_rng(); + Vec3::new( + rng.gen_range(min..max), + rng.gen_range(min..max), + rng.gen_range(min..max), + ) +} + /// Example system to control a camera using double-precision for position. pub fn camera_controller_system( time: Res