pub struct CohesionManager {
pub glyphs: Vec<GlyphCohesion>,
pub cohesion: f32,
pub dissolution: Option<f32>,
pub burst_velocities: Vec<Vec3>,
}Expand description
Manages cohesion for all glyphs in an entity.
Fields§
§glyphs: Vec<GlyphCohesion>§cohesion: f32Entity-level cohesion [0, 1]. 0 = chaotic, 1 = perfectly bound.
dissolution: Option<f32>Dissolution state: None = intact, Some(t) = dissolving (t = time since start).
burst_velocities: Vec<Vec3>Velocity vectors set during dissolution burst.
Implementations§
Source§impl CohesionManager
impl CohesionManager
Sourcepub fn tick(&mut self, dt: f32) -> Vec<Vec3>
pub fn tick(&mut self, dt: f32) -> Vec<Vec3>
Tick all glyph springs by dt. Returns Vec of positions.
Sourcepub fn damage_cohesion(&mut self, amount: f32)
pub fn damage_cohesion(&mut self, amount: f32)
Apply damage to cohesion (reduce it by amount).
Sourcepub fn restore_cohesion(&mut self, amount: f32)
pub fn restore_cohesion(&mut self, amount: f32)
Restore cohesion (healing effect).
Sourcepub fn heat_all(&mut self, temperature: f32, time: f32)
pub fn heat_all(&mut self, temperature: f32, time: f32)
Apply thermal energy to all glyphs (makes them jitter).
Sourcepub fn apply_shockwave(&mut self, center: Vec3, strength: f32)
pub fn apply_shockwave(&mut self, center: Vec3, strength: f32)
Apply an outward impulse from center (e.g. shockwave impact).
Sourcepub fn apply_force(&mut self, force: Vec3)
pub fn apply_force(&mut self, force: Vec3)
Apply a directional force to all glyphs.
Sourcepub fn update_targets(&mut self, new_positions: &[Vec3])
pub fn update_targets(&mut self, new_positions: &[Vec3])
Update formation targets (e.g. entity moved, or formation changed).
Sourcepub fn teleport_all(&mut self, positions: &[Vec3])
pub fn teleport_all(&mut self, positions: &[Vec3])
Teleport all glyphs instantly to formation positions (no animation).
Sourcepub fn is_dissolving(&self) -> bool
pub fn is_dissolving(&self) -> bool
Whether the entity is currently dissolving.
Sourcepub fn is_dissolved(&self) -> bool
pub fn is_dissolved(&self) -> bool
Whether dissolution is complete (> 2 seconds have elapsed).
Sourcepub fn max_drift(&self) -> f32
pub fn max_drift(&self) -> f32
Max drift across all glyphs (measures how chaotic the formation is).
Sourcepub fn avg_temperature(&self) -> f32
pub fn avg_temperature(&self) -> f32
Average temperature.