#[derive(Debug, Clone, Copy, PartialEq)]
pub struct SatelliteShaderEndpoint {
pub has_atmosphere: bool,
pub has_cryovolcanism: bool,
pub tidal_heating_intensity: f32,
pub dust_opacity: f32,
}
impl SatelliteShaderEndpoint {
pub fn inert_rocky() -> Self {
Self {
has_atmosphere: false,
has_cryovolcanism: false,
tidal_heating_intensity: 0.0,
dust_opacity: 0.0,
}
}
pub fn tidally_active() -> Self {
Self {
has_atmosphere: false,
has_cryovolcanism: false,
tidal_heating_intensity: 0.8,
dust_opacity: 0.1,
}
}
pub fn cryovolcanic() -> Self {
Self {
has_atmosphere: false,
has_cryovolcanism: true,
tidal_heating_intensity: 0.3,
dust_opacity: 0.0,
}
}
pub fn with_atmosphere() -> Self {
Self {
has_atmosphere: true,
has_cryovolcanism: false,
tidal_heating_intensity: 0.0,
dust_opacity: 0.2,
}
}
}