//! Arma la HISTORIA del nacimiento: la versión base + una alternativa con más //! bruma, en ramas distintas, y la guarda como `.voxdag`. Muestra el DAG en //! acción — el cimiento sobre el que se monta el trabajo creativo. //! //! ```sh //! cargo run -p llimphi-voxel --example emitir_historia_nacimiento -- ruta/nacimiento.voxdag //! ``` use llimphi_voxel::{hex_corto, Historia, Project}; fn main() { let path = std::env::args() .nth(1) .unwrap_or_else(|| "nacimiento.voxdag".to_string()); let mut h = Historia::nueva(); // v1: el nacimiento tal cual. let base = h.commit(&Project::nacimiento(), "el nacimiento").unwrap(); println!("principal v{} {} el nacimiento", 0, hex_corto(&base)); // Una alternativa: "mucha más bruma", en su propia rama desde la base. h.ramificar("mas-bruma").unwrap(); h.cambiar_rama("mas-bruma"); let mut p = h.proyecto_actual().unwrap(); if let Some(atm) = p.escenas[0].atmosfera.as_mut() { atm.bruma = 4.5; // se traga el mundo entero atm.desde_negro = 5.0; // y entra aún más lento } let alt = h.commit(&p, "el nacimiento — mucha más bruma").unwrap(); println!("mas-bruma v{} {} mucha más bruma", 1, hex_corto(&alt)); match h.guardar(&path) { Ok(()) => println!("\nhistoria escrita: {path} ({} versiones)", h.len()), Err(e) => { eprintln!("error: {e}"); std::process::exit(1); } } }