From 06f4e4a24e833f920faa0dfaaefea8f09e706eba Mon Sep 17 00:00:00 2001 From: ghostly_zsh Date: Thu, 26 Mar 2026 15:57:46 -0500 Subject: [PATCH] feat: radiation area --- crates/unified/assets/config/parts/hearty.part.toml | 3 ++- crates/unified/assets/config/parts/housing.part.toml | 5 +++-- crates/unified/src/config/part.rs | 1 + crates/unified/src/server/heat/radiation.rs | 1 - crates/unified/src/server/part.rs | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/crates/unified/assets/config/parts/hearty.part.toml b/crates/unified/assets/config/parts/hearty.part.toml index 8b99f5a49452d5975d5d1dbec8601a8f5b9eb83b..7947d453dcac6848eaaee112f3091b9f6cb6b606 100644 --- a/crates/unified/assets/config/parts/hearty.part.toml +++ b/crates/unified/assets/config/parts/hearty.part.toml @@ -3,7 +3,8 @@ name = "Hearty" sprite_connected = "textures/hearty.png" sprite_disconnected = "textures/hearty.png" emissivity = 0.1 -specific_heat = 100.0 +specific_heat = 800.0 +radiation_area = 200.0 [physics] width = 50 diff --git a/crates/unified/assets/config/parts/housing.part.toml b/crates/unified/assets/config/parts/housing.part.toml index 5ea25e5aad3dd808223bab504e3d69a3067176c9..e2876954e32adb1d7dcade505ef8d9255e2f3ee2 100644 --- a/crates/unified/assets/config/parts/housing.part.toml +++ b/crates/unified/assets/config/parts/housing.part.toml @@ -2,8 +2,9 @@ name = "Housing" sprite_connected = "textures/thruster_on.png" sprite_disconnected = "textures/thruster_off.png" -emissivity = 0.2 -specific_heat = 100.0 +emissivity = 0.1 +specific_heat = 500.0 +radiation_area = 20.0 [physics] width = 50 diff --git a/crates/unified/src/config/part.rs b/crates/unified/src/config/part.rs index c7344cb7d61ac404f72a31001b8121eda21fb142..d9e7f4e3698d474b30a34968f1d47bf1deba1207 100644 --- a/crates/unified/src/config/part.rs +++ b/crates/unified/src/config/part.rs @@ -23,6 +23,7 @@ pub struct PartPartConfig { pub sprite_disconnected: String, pub emissivity: f32, pub specific_heat: f32, + pub radiation_area: f32, } #[derive(Deserialize, TypePath, Serialize, Clone, Debug, PartialEq)] pub struct PartPhysicsConfig { diff --git a/crates/unified/src/server/heat/radiation.rs b/crates/unified/src/server/heat/radiation.rs index 0fa30700def1877adcaa7d46cfbaeb236f20729d..0ff516cf61b6fa1d5a892960b6c5d463db6fe511 100644 --- a/crates/unified/src/server/heat/radiation.rs +++ b/crates/unified/src/server/heat/radiation.rs @@ -26,7 +26,6 @@ fn part_radiation( // x_n+1 = x_n - g(x_n)/g'(x_n) // where x_n is the previous guess for T_n+1 let initial_temp = temperature.0; - // temporary specific heat (c) of 1000.0 let k = (radiator.emissivity * STEFAN_BOLTZMANN * radiator.surface_area) / (part.strong_config.physics.mass * part.strong_config.part.specific_heat); let dt = time.delta_secs(); diff --git a/crates/unified/src/server/part.rs b/crates/unified/src/server/part.rs index 7ccf9752b87514ce64269ea948391e14cce2cbb4..89f216e08940d771a8c7fed072476b2bc27caac2 100644 --- a/crates/unified/src/server/part.rs +++ b/crates/unified/src/server/part.rs @@ -130,7 +130,7 @@ fn calculate_bundle(config: &PartConfig, handle: &Handle) -> impl Bu let temperature = Temperature(298.0); // note that this is 25 degrees C let radiator = Radiator { emissivity: config.part.emissivity, - surface_area: config.physics.width * config.physics.height, + surface_area: config.part.radiation_area, }; (