Skip to content

Commit

Permalink
Merge pull request #112 from post-kerbin-mining-corporation/dev
Browse files Browse the repository at this point in the history
Release 0.7.0
  • Loading branch information
ChrisAdderley authored Aug 14, 2024
2 parents d799ba1 + 9ab5573 commit 0e13bc2
Show file tree
Hide file tree
Showing 65 changed files with 2,489 additions and 2,055 deletions.
2 changes: 1 addition & 1 deletion .mod_data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ package:
- changelog.txt
dependencies: # Configure dependencies
ModuleManager:
version: 4.2.1
version: 4.2.3
location: s3
CommunityResourcePack:
version: 1.4.2
Expand Down
39 changes: 37 additions & 2 deletions Extras/SystemHeatBoiloff/CryoTanks/CryoTanksSystemHeat.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,57 @@
iconName = Icon_Snow
}

// FFT fusion-fuel tanks have CoolingCost specified at the module level, but
// CoolingHeatCost will be specified at the BOILOFFCONFIG level since it
// differs between the two resources. Delete the module-level CoolingCost
// so it doesn't produce a module-level CoolingHeatCost.
@MODULE[ModuleCryoTank]:HAS[@BOILOFFCONFIG:HAS[#FuelName[LqdHe3]|#FuelName[LqdDeuterium]]]
{
!CoolingCost = deleted
}
// For the other resources, the cost can vary from part to part since there
// are both ZBO and non-ZBO tanks, so the CoolingHeatCost can't be a
// constant; it's derived from the CoolingCost. It can be specified either
// at the module level or within a BOILOFFCONFIG; this handles the former.
@MODULE[ModuleCryoTank]:HAS[#CoolingCost]
{
CoolingHeatCost = #$CoolingCost$
@CoolingHeatCost *= 10
@CoolingHeatCost /= 3
}

@MODULE[ModuleCryoTank]
{

// Replace the basic CryoTanks cooling (consumes EC according to
// CoolingCost) with SystemHeat cooling (participates in a cooling loop
// according to CoolingHeatCost).
@name = ModuleSystemHeatCryoTank
systemHeatModuleID = tank

// Derive CoolingHeatCost from CoolingCost at the individual resource
// level, where applicable. (Costs specified at the module level were
// handled earlier.)
@BOILOFFCONFIG:HAS[#CoolingCost]
{
CoolingHeatCost = #$CoolingCost$
@CoolingHeatCost *= 10
@CoolingHeatCost /= 3
}

@BOILOFFCONFIG:HAS[#FuelName[LqdHydrogen]]
{
CoolingHeatCost = 0.3
CryocoolerTemperature = 300
}
@BOILOFFCONFIG:HAS[#FuelName[LqdMethane]]
{
CoolingHeatCost = 0.15
CryocoolerTemperature = 400
}

// FFT fusion fuels are stored in special tanks, with a different ratio
// from CoolingCost to CoolingHeatCost. These tanks don't have separate
// ZBO and non-ZBO versions, so the the cooling cost is always the same.
@BOILOFFCONFIG:HAS[#FuelName[LqdHe3]]
{
CoolingHeatCost = 0.22
Expand Down
84 changes: 72 additions & 12 deletions GameData/SystemHeat/Localization/en-us.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ Localization
{
en-us
{
#LOC_SystemHeat_Coolant_Default_title = Default Coolant Type
#LOC_SystemHeat_Coolant_Default_title = Default Coolant Type
// TOOLBAR
// ------------
#LOC_SystemHeat_ToolbarPanel_Title = System Heat
#LOC_SystemHeat_ToolbarPanel_CraftStatsTitle = Craft Summary
#LOC_SystemHeat_ToolbarPanel_Title = Heat Management
#LOC_SystemHeat_ToolbarPanel_CraftStatsTitle = Overview

#LOC_SystemHeat_ToolbarPanel_OutgoingFluxTitle = Total Generation
#LOC_SystemHeat_ToolbarPanel_IncomingFluxTile = Total Rejection
#LOC_SystemHeat_ToolbarPanel_OutgoingFluxTitle = Generated
#LOC_SystemHeat_ToolbarPanel_IncomingFluxTile = Removed
#LOC_SystemHeat_ToolbarPanel_OutgoingFluxValue = <<1>>W
#LOC_SystemHeat_ToolbarPanel_IncomingFluxValue = <<1>>W

Expand All @@ -29,15 +29,15 @@ Localization
#LOC_SystemHeat_ToolbarPanel_SettingsTitle = Settings

#LOC_SystemHeat_ToolbarPanel_SimulationRateTitle = Editor Simulation Rate
#LOC_SystemHeat_ToolbarPanel_OverlayToggle = Overlay
#LOC_SystemHeat_ToolbarPanel_OverlayToggle = Show Overlay
#LOC_SystemHeat_ToolbarPanel_LoopsToggle = Loops
#LOC_SystemHeat_ToolbarPanel_SimulationRateValue = <<1>>x

#LOC_SystemHeat_ToolbarPanel_LoopsTitle = Loops
#LOC_SystemHeat_ToolbarPanel_LoopTitle = Loop <<1>>
#LOC_SystemHeat_ToolbarPanel_LoopTemperatureTitle = • Temperature
#LOC_SystemHeat_ToolbarPanel_LoopTemperatureValue = <<1>>/<<2>> K
#LOC_SystemHeat_ToolbarPanel_LoopFluxTitle = • Net Flux
#LOC_SystemHeat_ToolbarPanel_LoopFluxTitle = • Flux
#LOC_SystemHeat_ToolbarPanel_LoopFluxValue = <<1>><<2>>W

// OVERLAY PANEL
Expand All @@ -48,7 +48,7 @@ Localization

// REACTOR TOOLBAR
// ------------
#LOC_SystemHeat_ReactorPanel_Title = Installed Reactors
#LOC_SystemHeat_ReactorPanel_Title = Reactors
#LOC_SystemHeat_ReactorPanel_NoReactors = No reactors detected on vessel
#LOC_SystemHeat_ReactorPanel_ReactorOnToggleLabel = ON
#LOC_SystemHeat_ReactorPanel_Field_HeatGeneratedTitle = Heat Generated
Expand All @@ -58,8 +58,32 @@ Localization
#LOC_SystemHeat_ReactorPanel_Field_CoreLifeTitle = Core Life
#LOC_SystemHeat_ReactorPanel_Field_CoreLife = <<1>>
#LOC_SystemHeat_ReactorPanel_Field_CoreTemperatureTitle = Core Temperature
#LOC_SystemHeat_ReactorPanel_Field_CoreTemperature = <<1>> K
#LOC_SystemHeat_ReactorPanel_Field_CoreTemperature = <<1>>/<<2>> K
#LOC_SystemHeat_ReactorPanel_Field_CoreTemperatureAlert = <<1>> K!
// TOOLTIPS
// ----------
#LOC_SystemHeat_Tooltip_ReactorPanel_Toggle = Enable or disable reactor
#LOC_SystemHeat_Tooltip_ReactorPanel_CapacitorCharge = Startup capacitor charge level
#LOC_SystemHeat_Tooltip_ReactorPanel_CapacitorToggle = Enable or disable startup capacitors
#LOC_SystemHeat_Tooltip_ReactorPanel_Temperature = Current and nominal reactor temperature
#LOC_SystemHeat_Tooltip_ReactorPanel_Power = Current electrical generation
#LOC_SystemHeat_Tooltip_ReactorPanel_Heat = Current heat generation
#LOC_SystemHeat_Tooltip_ReactorPanel_Lifetime = Est. lifetime at current power

#LOC_SystemHeat_Tooltip_SystemHeatPanel_StatsGeneration = Total heat generated by the vessel's parts
#LOC_SystemHeat_Tooltip_SystemHeatPanel_StatsRejection = Total heat removed by the vessel's parts
#LOC_SystemHeat_Tooltip_SystemHeatPanel_StatsLoopCount = Number of heat loops on the vessel
#LOC_SystemHeat_Tooltip_SystemHeatPanel_SituationVelocity= Simulated vessel velocity in atmosphere
#LOC_SystemHeat_Tooltip_SystemHeatPanel_SituationAltitude = Simulated altitude sea level
#LOC_SystemHeat_Tooltip_SystemHeatPanel_SituationSetSealevel = Set simulated altitude to Sea Level
#LOC_SystemHeat_Tooltip_SystemHeatPanel_SituationSetVacuum = Set simulated state to Vacuum/Orbit
#LOC_SystemHeat_Tooltip_SystemHeatPanel_SituationBody = Choose body for simulation
#LOC_SystemHeat_Tooltip_SystemHeatPanel_SettingsSimRate = Change the rate of the editor's simulation
#LOC_SystemHeat_Tooltip_SystemHeatPanel_LoopToggle = Show this loop in the overlay
#LOC_SystemHeat_Tooltip_SystemHeatPanel_LoopTemperature = Current and nominal temperature in this loop
#LOC_SystemHeat_Tooltip_SystemHeatPanel_LoopFlux = Net heating of this loop
#LOC_SystemHeat_Tooltip_SystemHeatPanel_OverlayToggle = Toggle heat loop visualization


// ENGINEER'S REPORT
// ------------
Expand All @@ -73,6 +97,36 @@ Localization
#LOC_SystemHeat_Units_W = W
#LOC_SystemHeat_Units_kW = kW
// INGAME SETTINGS UI
// ------------
#LOC_SystemHeat_Settings_MainSection_Title = System Heat
#LOC_SystemHeat_Settings_ReactorDamage_Section_Title = Fission Reactor Damage
#LOC_SystemHeat_Settings_AllowReactorDamage_Title = Allow Reactor Damage
#LOC_SystemHeat_Settings_AllowReactorDamage_Tooltip = If enabled, overheated reactors will take damage
#LOC_SystemHeat_Settings_AllowReactorRepair_Title = Allow Reactor Repairs
#LOC_SystemHeat_Settings_AllowReactorRepair_Tooltip = If enabled, damaged fission reactors can be repaired
#LOC_SystemHeat_Settings_EngineerLevelNeeded_Title = Engineer Level Required
#LOC_SystemHeat_Settings_EngineerLevelNeeded_Tooltip = Engineer level needed to repair a reactor
#LOC_SystemHeat_Settings_RepairAmoutPerKit_Title = Amount Repaired per Repair Kit
#LOC_SystemHeat_Settings_RepairAmoutPerKit_Tooltip = The percentage of repairs done by using a single kit
#LOC_SystemHeat_Settings_MaximumRepair_Title = Maximum Repairable Integrity
#LOC_SystemHeat_Settings_MaximumRepair_Tooltip = The maximum integrity level to repair a reactor to
#LOC_SystemHeat_Settings_MinimumRepair_Title = Minimum Repairable Integrity
#LOC_SystemHeat_Settings_MinimumRepair_Tooltip = If a reactor is below this integrity level it can't be repaired

#LOC_SystemHeat_Settings_FissionFuel_Section_Title = Fission Fuel Transfer
#LOC_SystemHeat_Settings_FissionFuelNeedsEngineers_Title = Nuclear Fuel Transfer Needs Engineers
#LOC_SystemHeat_Settings_FissionFuelNeedsEngineers_Tooltip = If enabled, nuclear fuel transfer needs experienced engineers onboard
#LOC_SystemHeat_Settings_FissionFuelEngineerLevelNeeded_Title = Engineer Level Required
#LOC_SystemHeat_Settings_FissionFuelEngineerLevelNeeded_Tooltip = If enabled, overheated reactors will take damage

#LOC_SystemHeat_Settings_Cryogenics_Section_Title = Cryogenic Boiloff
#LOC_SystemHeat_Settings_AllowCryogenicBoiloff_Title = Allow Cryogenic Fuel Boiloff
#LOC_SystemHeat_Settings_AllowCryogenicBoiloff_Tooltip = If enabled, cryogenic fuels like Liquid Hydrogen, Helium, Methane, etc will need to be cooled using radiators
#LOC_SystemHeat_Settings_ScaledCryogenicBoiloff_Title = Boiloff Rate
#LOC_SystemHeat_Settings_ScaledCryogenicBoiloff_Tooltip = Modifies base boiloff rate

// PART MODULES
// ------------

Expand Down Expand Up @@ -101,6 +155,9 @@ Localization
#LOC_SystemHeat_ModuleSystemHeatRadiator_ConvectionStatus_Title = Convective Flux
#LOC_SystemHeat_ModuleSystemHeatRadiator_ConvectionStatus_Running = <<1>>W

#LOC_SystemHeat_ModuleSystemHeatRadiator_SunTracking_Disable = Disable Sun Tracking
#LOC_SystemHeat_ModuleSystemHeatRadiator_SunTracking_Enable = Enable Sun Tracking

// ModuleSystemHeatEngine
/// =================================
#LOC_SystemHeat_ModuleSystemHeatEngine_DisplayName = Engine Heat
Expand Down Expand Up @@ -372,8 +429,11 @@ Localization
#LOC_SystemHeat_switcher_size_square_detail = <color=#ff730d><b>Heat Radiated</b></color>: 2150 kW
#LOC_SystemHeat_switcher_size_double_detail = <color=#ff730d><b>Heat Radiated</b></color>: 4300 kW
#LOC_SystemHeat_switcher_size_half_detail = <color=#ff730d><b>Heat Radiated</b></color>: 1075 kW
#LOC_SystemHeat_switcher_size_third_detail = <color=#ff730d><b>Heat Radiated</b></color>: 350 kW
#LOC_SystemHeat_switcher_size_twothirds_detail = <color=#ff730d><b>Heat Radiated</b></color>: 710 kW
#LOC_SystemHeat_switcher_size_third_detail = <color=#ff730d><b>Heat Radiated</b></color>: 710 kW
#LOC_SystemHeat_switcher_size_twothirds_detail = <color=#ff730d><b>Heat Radiated</b></color>: 1420 kW

/// OTHER
/// ========
#LOC_SystemHeat_Subcategory_heatLoops = Cooling Loops
}
}
}
2 changes: 1 addition & 1 deletion GameData/SystemHeat/Localization/zh-cn.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ Localization
/// ModuleSystemHeatFissionFuelContainer
/// =================================
#LOC_SystemHeat_ModuleSystemHeatFissionFuelContainer_PartInfo = 转移核燃料需要高于 <color=#ff730d><<1>></color> 工程师 //Transfer nuclear fuel and waste when Engineers greater than <color=#ff730d>Level <<1>></color> are on board.
#LOC_SystemHeat_ModuleSystemHeatFissionFuelContainer_PartInfo = 转移核燃料需要高于 <color=#ff730d><<1>></color> 工程师 //Transfer nuclear fuel and waste when Engineers greater than <color=#ff730d>Level <<1>></color> are on board.
#LOC_SystemHeat_ModuleSystemHeatFissionFuelContainer_ModuleName = 核燃料容器 //Nuclear Fuel Container
#LOC_SystemHeat_ModuleSystemHeatFissionFuelContainer_Field_Collect_Name = 收集 <<1>> //Collect <<1>>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PART
{

name = systemheat-coolant-tank-radial-1
name = systemheat-exchanger-1
module = Part
author = Chris Adderley

Expand Down
7 changes: 7 additions & 0 deletions GameData/SystemHeat/Parts/systemheat-exchanger-1.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,13 @@ PART
key = 0 2
key = 2000 200
}
// Maps desired heat flow to power scale
heatFlowCostCurve
{
key = -1000 1000
key = 0 0
key = 1000 1000
}
OnLightTransformName = Light1
DirectionLightTransformName = Light2
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/// Adds a new VABOrganizer category
ORGANIZERSUBCATEGORY
{
name = heatLoops
Label = #LOC_SystemHeat_Subcategory_heatLoops
Priority = 40
CategoryPriority = 50
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/// Adds the parts added to a new VABOrganizer category
@PART[systemheat-sink-1,systemheat-exchanger-1,systemheat-exchanger-1]:FOR[SystemHeat]:NEEDS[VABOrganizer]
{
%VABORGANIZER
{
%organizerSubcategory = heatManagement
}
}
Binary file modified GameData/SystemHeat/Plugin/SystemHeat.dll
Binary file not shown.
32 changes: 20 additions & 12 deletions GameData/SystemHeat/Settings.cfg
Original file line number Diff line number Diff line change
@@ -1,35 +1,43 @@
SYSTEMHEAT
{

// Overlay Settings
// UI scroll speed
UISrollSensitivity = 25

// Overlay Settings
OverlayBaseLineWidth = 4
OverlayBaseLineQueue = 3000

OverlayActiveLineWidth = 8
OverlayActiveLineTextureScaleFactor = 10
OverlayActiveLineTextureScrollRate = 2.5

OverlayLineBevel = 0.1
OverlayLineBevelScale = 0.3
OverlayLineShader = GUI/Text Shader

OverlayBoundsPadding = 1
OverlayPadding = 0.4
OverlayPadding = 0.2

// Debug Settings
DebugUI = false
DebugOverlay = false
DebugSimulation = false
DebugModules = false
DebugPartUI = false


// General Settings
MaxLoopCount = 20

// Simulator Settings
// The functional minimum temperature of a loop
// The functional minimum temperature of a loop (K)
SpaceTemperature = 2.7f
// Minimum loop integration step count
// Minimum loop integration step count per physics frame
MinSteps = 1
// Maximum loop integration step count
// Maximum loop integration step count per physics frame
MaxSteps = 25
// Modulates sharp heat spikes
// Modulates sharp heat spikes by clamping the change in temperature in a physics frame at 1x speed
MaxDeltaTPerStep = 25
// Bas
// Base simulation rate in the editor
SimulationRateEditor = 1
// Loop temperature is not adjusted when the net heat flux is below htis
// Loop temperature is not adjusted when the net heat flux is below this (kW)
AbsFluxThreshold = 0.5

}
Binary file added GameData/SystemHeat/UI/line_outline.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added GameData/SystemHeat/UI/line_wiggle.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified GameData/SystemHeat/UI/systemheatui.dat
Binary file not shown.
4 changes: 2 additions & 2 deletions GameData/SystemHeat/Versioning/SystemHeat.version
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@
"VERSION":
{
"MAJOR":0,
"MINOR":6,
"MINOR":7,
"PATCH":0,
"BUILD":0
},
"KSP_VERSION":
{
"MAJOR":1,
"MINOR":12,
"PATCH":3
"PATCH":5
},
"KSP_VERSION_MIN":{
"MAJOR":1,
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Your job, as the spacecraft engineer, is to construct Heat Loops such that they

### Required
These components are required for the mod to function and are bundled as part of any download:
* [ModuleManager (4.2.1)](https://github.com/sarbian/ModuleManager)
* [ModuleManager (4.2.3)](https://github.com/sarbian/ModuleManager)
* [Community Resource Pack (1.4.2)](https://github.com/BobPalmer/CommunityResourcePack)


Expand Down
Binary file not shown.
Loading

0 comments on commit 0e13bc2

Please sign in to comment.