initial arhitectural overhaul
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
This commit is contained in:
36
crates/app/src/session.rs
Normal file
36
crates/app/src/session.rs
Normal file
@@ -0,0 +1,36 @@
|
||||
//! App-level offline resource management
|
||||
//!
|
||||
//! Sets up vector clock and networking resources. Sessions are created later
|
||||
//! when the user starts networking.
|
||||
|
||||
use bevy::prelude::*;
|
||||
use libmarathon::{
|
||||
networking::{
|
||||
EntityLockRegistry, NetworkEntityMap, NodeVectorClock, VectorClock,
|
||||
},
|
||||
};
|
||||
use uuid::Uuid;
|
||||
|
||||
/// Initialize offline resources on app startup
|
||||
///
|
||||
/// This sets up the vector clock and networking-related resources, but does NOT
|
||||
/// create a session. Sessions only exist when networking is active.
|
||||
pub fn initialize_offline_resources(world: &mut World) {
|
||||
info!("Initializing offline resources (no session yet)...");
|
||||
|
||||
// Create node ID (persists for this app instance)
|
||||
let node_id = Uuid::new_v4();
|
||||
info!("Node ID: {}", node_id);
|
||||
|
||||
// Insert vector clock resource (always available, offline or online)
|
||||
world.insert_resource(NodeVectorClock {
|
||||
node_id,
|
||||
clock: VectorClock::new(),
|
||||
});
|
||||
|
||||
// Insert networking resources (available from startup, even before networking starts)
|
||||
world.insert_resource(NetworkEntityMap::default());
|
||||
world.insert_resource(EntityLockRegistry::default());
|
||||
|
||||
info!("Offline resources initialized (vector clock ready)");
|
||||
}
|
||||
Reference in New Issue
Block a user