M crates/unified/assets/config/parts/hearty.part.toml => crates/unified/assets/config/parts/hearty.part.toml +2 -1
@@ 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
M crates/unified/assets/config/parts/housing.part.toml => crates/unified/assets/config/parts/housing.part.toml +3 -2
@@ 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
M crates/unified/src/config/part.rs => crates/unified/src/config/part.rs +1 -0
@@ 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 {
M crates/unified/src/server/heat/radiation.rs => crates/unified/src/server/heat/radiation.rs +0 -1
@@ 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();
M crates/unified/src/server/part.rs => crates/unified/src/server/part.rs +1 -1
@@ 130,7 130,7 @@ fn calculate_bundle(config: &PartConfig, handle: &Handle<PartConfig>) -> 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,
};
(