Skip to content

Commit

Permalink
Merge pull request #119 from post-kerbin-mining-corporation/dev
Browse files Browse the repository at this point in the history
Update 0.7.4
  • Loading branch information
ChrisAdderley authored Sep 2, 2024
2 parents d2ee287 + 21e0e64 commit 113081b
Show file tree
Hide file tree
Showing 16 changed files with 485 additions and 61 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,6 @@
{
@heatProduction = 0
}

MODULE
{
name = ModuleSystemHeat
volume = 6
moduleID = reactor
iconName = Icon_Nuclear
}
RESOURCE
{
name = EnrichedUranium
Expand Down
120 changes: 120 additions & 0 deletions Extras/SystemHeatHarvesters/Squad/SystemHeatDrill.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,66 @@
!ThermalEfficiency {}
!TemperatureModifier {}

@GeneratesHeat = false
}
@MODULE[ModuleAsteroidDrill]
{
@name = ModuleSystemHeatAsteroidHarvester
// must be unique
moduleID = harvesterAsteroids
// ModuleSystemHeat moduleID to link to
systemHeatModuleID = harvester

// The shutdown temperature of the part
shutdownTemperature = 750

// The temperature the system contributes to loops
systemOutletTemperature = 400

// Map loop temperature to system efficiency (0-1.0)
systemEfficiency
{
key = 0 1.0
key = 400 1.0
key = 650 0.0
}

// Heat generation (kW)
systemPower = 60

!ThermalEfficiency {}
!TemperatureModifier {}

@GeneratesHeat = false
}
@MODULE[ModuleCometDrill]
{
@name = ModuleSystemHeatCometHarvester
// must be unique
moduleID = harvesterComets
// ModuleSystemHeat moduleID to link to
systemHeatModuleID = harvester

// The shutdown temperature of the part
shutdownTemperature = 750

// The temperature the system contributes to loops
systemOutletTemperature = 400

// Map loop temperature to system efficiency (0-1.0)
systemEfficiency
{
key = 0 1.0
key = 400 1.0
key = 650 0.0
}

// Heat generation (kW)
systemPower = 60

!ThermalEfficiency {}
!TemperatureModifier {}

@GeneratesHeat = false
}
}
Expand Down Expand Up @@ -90,6 +150,66 @@
!ThermalEfficiency {}
!TemperatureModifier {}

@GeneratesHeat = false
}
@MODULE[ModuleAsteroidDrill]
{
@name = ModuleSystemHeatAsteroidHarvester
// must be unique
moduleID = harvesterAsteroids
// ModuleSystemHeat moduleID to link to
systemHeatModuleID = harvester

// The shutdown temperature of the part
shutdownTemperature = 750

// The temperature the system contributes to loops
systemOutletTemperature = 400

// Map loop temperature to system efficiency (0-1.0)
systemEfficiency
{
key = 0 1.0
key = 400 1.0
key = 650 0.0
}

// Heat generation (kW)
systemPower = 30

!ThermalEfficiency {}
!TemperatureModifier {}

@GeneratesHeat = false
}
@MODULE[ModuleCometDrill]
{
@name = ModuleSystemHeatCometHarvester
// must be unique
moduleID = harvesterComets
// ModuleSystemHeat moduleID to link to
systemHeatModuleID = harvester

// The shutdown temperature of the part
shutdownTemperature = 750

// The temperature the system contributes to loops
systemOutletTemperature = 400

// Map loop temperature to system efficiency (0-1.0)
systemEfficiency
{
key = 0 1.0
key = 400 1.0
key = 650 0.0
}

// Heat generation (kW)
systemPower = 30

!ThermalEfficiency {}
!TemperatureModifier {}

@GeneratesHeat = false
}
}
2 changes: 1 addition & 1 deletion GameData/SystemHeat/Parts/systemheat-exchanger-1.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ PART
temperatureDeltaCostCurve
{
key = -2000 200
key = 0 2
key = 0 0
key = 2000 200
}
// Maps desired heat flow to power scale
Expand Down
131 changes: 131 additions & 0 deletions GameData/SystemHeat/Patches/VABOrganizer/SystemHeatSortVariables.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@

// RADIATOR - heat removed
ORGANIZERSORTVARIABLE
{
name = radiator_heatRemoved
VariableName = ModuleVar_HeatRemoved
NodeType = MODULE
NodeName = ModuleSystemHeatRadiator
FieldName = temperatureCurve
FieldCurveParseMethod = MAX
}
// RADIATOR - power used
ORGANIZERSORTVARIABLE
{
name = radiator_powerUsed
VariableName = ModuleVar_PowerConsumed
NodeType = MODULE_DATA
NodeName = ModuleSystemHeatRadiator
DataNodeType = RESOURCE
DataNodeName = ElectricCharge
FieldName = rate
}
// CONVERTER - heat produced
ORGANIZERSORTVARIABLE
{
name = converter_heatProduced
VariableName = ModuleVar_HeatGenerated
NodeType = MODULE
NodeName = ModuleSystemHeatConverter
FieldName = systemPower
}
// CONVERTER - power produced
ORGANIZERSORTVARIABLE
{
name = converter_powerProduced
VariableName = ModuleVar_PowerGenerated
NodeType = MODULE_DATA
NodeName = ModuleSystemHeatConverter
DataNodeType = OUTPUT_RESOURCE
DataNodeName = ElectricCharge
FieldName = Ratio
}
// CONVERTER - power used
ORGANIZERSORTVARIABLE
{
name = converter_powerUsed
VariableName = ModuleVar_PowerConsumed
NodeType = MODULE_DATA
NodeName = ModuleSystemHeatConverter
DataNodeType = INPUT_RESOURCE
DataNodeName = ElectricCharge
FieldName = Ratio
}
// DRILL - heat produced
ORGANIZERSORTVARIABLE
{
name = drill_heatProduced
VariableName = ModuleVar_HeatGenerated
NodeType = MODULE
NodeName = ModuleSystemHeatHarvester
FieldName = systemPower
}
// DRILL - power used
ORGANIZERSORTVARIABLE
{
name = drill_powerUsed
VariableName = ModuleVar_PowerConsumed
NodeType = MODULE_DATA
NodeName = ModuleSystemHeatHarvester
DataNodeType = INPUT_RESOURCE
DataNodeName = ElectricCharge
FieldName = Ratio
}
// FISSION REACTOR - heat produced
ORGANIZERSORTVARIABLE
{
name = reactor_heatProduced
VariableName = ModuleVar_HeatGenerated
NodeType = MODULE
NodeName = ModuleSystemHeatFissionReactor
FieldName = HeatGeneration
FieldCurveParseMethod = MAX
}
// FISSION REACTOR - power produced
ORGANIZERSORTVARIABLE
{
name = reactor_powerProduced
VariableName = ModuleVar_PowerGenerated
NodeType = MODULE
NodeName = ModuleSystemHeatFissionReactor
FieldName = ElectricalGeneration
FieldCurveParseMethod = MAX
}
// FISSION ENGINE - heat produced
ORGANIZERSORTVARIABLE
{
name = reactor_heatProduced
VariableName = ModuleVar_HeatGenerated
NodeType = MODULE
NodeName = ModuleSystemHeatFissionEngine
FieldName = HeatGeneration
FieldCurveParseMethod = MAX
}
// FISSION ENGINE - power produced
ORGANIZERSORTVARIABLE
{
name = reactor_powerProduced
VariableName = ModuleVar_PowerGenerated
NodeType = MODULE
NodeName = ModuleSystemHeatFissionEngine
FieldName = ElectricalGeneration
FieldCurveParseMethod = MAX
}
// GENERIC ENGINE - heat produced
ORGANIZERSORTVARIABLE
{
name = engine_heatProduced
VariableName = ModuleVar_HeatGenerated
NodeType = MODULE
NodeName = ModuleSystemHeatEngine
FieldName = systemPower
}
// FUSION REACTOR - heat produced
ORGANIZERSORTVARIABLE
{
name = fusionReactor_heatProduced
VariableName = ModuleVar_HeatGenerated
NodeType = MODULE
NodeName = FusionReactor
FieldName = SystemPower
}
Binary file modified GameData/SystemHeat/Plugin/SystemHeat.dll
Binary file not shown.
2 changes: 2 additions & 0 deletions GameData/SystemHeat/Settings.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ SYSTEMHEAT
DebugUI = false
DebugOverlay = false
DebugSimulation = false
DebugModules = false
DebugPartUI = false

// General Settings
MaxLoopCount = 20
Expand Down
2 changes: 1 addition & 1 deletion GameData/SystemHeat/Versioning/SystemHeat.version
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
{
"MAJOR":0,
"MINOR":7,
"PATCH":3,
"PATCH":4,
"BUILD":0
},
"KSP_VERSION":
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Similarly, parts that consume heat have special properties. They specifically co

When parts are connected into a Heat Loop , the members of the loop contribute their Input/Output Flux and Output Temperature into it. If all the fluxes going into the loop are positive, it heats up and increases its Loop Temperature. If the flux is negative, it cools down. If the Loop Temperature gets too high, systems in the loop will be negatively affected, in proportion to how different the Loop Temperature is to their Output Temperature.

Your job, as the spacecraft engineer, is to construct Heat Loops such that they are well-balanced and basically don't heat up and . There can be several different Heat Loops on a vessel with different parts assigned to them (though a part can currently only belong to one loop at a time).
Your job, as the spacecraft engineer, is to construct Heat Loops such that they are well-balanced and basically don't heat up and melt things. There can be several different Heat Loops on a vessel with different parts assigned to them (though a part can currently only belong to one loop at a time).


## Dependencies
Expand Down
Loading

0 comments on commit 113081b

Please sign in to comment.