From 24342be89058dd90c9b9d12eedc7481a3ea56e70 Mon Sep 17 00:00:00 2001 From: stonesmileGit Date: Sun, 24 Apr 2022 19:29:24 +0200 Subject: [PATCH 1/6] Initial config tool skeleton --- GameData/KerbalismConfig/ConfigTool.cfg | 148 ++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 GameData/KerbalismConfig/ConfigTool.cfg diff --git a/GameData/KerbalismConfig/ConfigTool.cfg b/GameData/KerbalismConfig/ConfigTool.cfg new file mode 100644 index 00000000..f8f7c470 --- /dev/null +++ b/GameData/KerbalismConfig/ConfigTool.cfg @@ -0,0 +1,148 @@ +@PART:HAS[@ROKConfigTool]:LAST +{ + // ############################## + // Values that can be set: + // ############################## + // Scrubber = LiOH, KO2, Vacuum + // LOXGOX = True - Oxygen provided by LOX to GOX converter + // FUELCELL = True - Water provided by Fuel cells + // AppendDescription = True - Adds "Supports X crew for Y days." to description + + // Default consumption rates and values + // Rates per kerbal-day + @ROKConfigTool + { + &Crew = #$/CrewCapacity$ + &Days = 0 + Volume = 0 + Food = 5.84928 + Oxygen = 591.84 + Water = 3.87072 + Waste = 0 + } + + @ROKConfigTool:HAS[#Scrubber[LiOH]] + { + LiOH = + LiOH *= #$Crew$ + LiOH *= #$Days$ + Volume += #$LiOH$ + + LiOHWaste = + LiOHWaste *= #$Crew$ + LiOHWaste *= #$Days$ + Waste += #$LiOHWaste$ + } + + @ROKConfigTool:HAS[#Scrubber[KO2]] + { + KO2 = + KO2 *= #$Crew$ + KO2 *= #$Days$ + Volume += #$KO2$ + + KO2Waste = + KO2Waste = #$Crew$ + KO2Waste = #$Days$ + Waste += #$KO2Waste$ + // Some oxygen returned, reduce effective oxygen consumption + Oxygen *= + } + + @ROKConfigTool:HAS[#Scrubber[Vacuum]] + { + CO2 = + CO2 *= #$Crew$ + Volume += #$CO2$ + } + + @ROKConfigTool:HAS[#LOXGOX[?rue]] + { + Oxygen *= + Oxygen *= #$Crew$ + } + + @ROKConfigTool:HAS[~LOXGOX[?rue]] + { + Oxygen *= #$Crew$ + Oxygen *= #$Days$ + } + + @ROKConfigTool:HAS[#FUELCELL[?rue]] + { + Water *= + Water *= #$Crew$ + } + + @ROKConfigTool:HAS[~FUELCELL[?rue]] + { + Water *= #$Crew$ + Water *= #$Days$ + } + + @ROKConfigTool + { + Food *= #$Crew$ + Food *= #$Days$ + WasteWater = + Volume += #$Food$ + Volume += #$Oxygen$ + Volume += #$Water$ + Volume += #$Waste$ + } +} + +@PART:HAS[@ROKConfigTool:HAS[~Food[0]]]:LAST +{ + %MODULE[ModuleFuelTanks] + { + &volume = 0 + volume += #$/ROKConfigTool/Volume$ + + TANK + { + name = Food + amount = #$/ROKConfigTool/Food$ + maxAmount = #$/ROKConfigTool/Food$ + } + + TANK + { + name = Oxygen + amount = #$/ROKConfigTool/Oxygen$ + maxAmount = #$/ROKConfigTool/Oxygen$ + } + + TANK + { + name = Water + amount = #$/ROKConfigTool/Water$ + maxAmount = #$/ROKConfigTool/Water$ + } + + TANK + { + name = Waste + amount = 0 + maxAmount = #$/ROKConfigTool/Waste$ + } + + TANK + { + name = WasteWater + amount = 0 + maxAmount = #$/ROKConfigTool/WasteWater$ + } + } +} + +@PART:HAS[@ROKConfigTool:HAS[#AppendDescription[?rue]]]:LAST +{ + @description = #$description$ Supports a crew of $/ROKConfigTool/Crew$ for $/ROKConfigTool/Days$ days. +} + +// Cleanup +@PART:HAS[@ROKConfigTool]:LAST +{ + !ROKConfigTool {} +} \ No newline at end of file From 7a5a4288e763ef8c3992afb7307780dc061053b0 Mon Sep 17 00:00:00 2001 From: stonesmileGit Date: Sun, 24 Apr 2022 19:32:51 +0200 Subject: [PATCH 2/6] Forgot MM @ --- GameData/KerbalismConfig/ConfigTool.cfg | 62 ++++++++++++------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/GameData/KerbalismConfig/ConfigTool.cfg b/GameData/KerbalismConfig/ConfigTool.cfg index f8f7c470..6fdb7e2f 100644 --- a/GameData/KerbalismConfig/ConfigTool.cfg +++ b/GameData/KerbalismConfig/ConfigTool.cfg @@ -24,71 +24,71 @@ @ROKConfigTool:HAS[#Scrubber[LiOH]] { LiOH = - LiOH *= #$Crew$ - LiOH *= #$Days$ - Volume += #$LiOH$ + @LiOH *= #$Crew$ + @LiOH *= #$Days$ + @Volume += #$LiOH$ LiOHWaste = - LiOHWaste *= #$Crew$ - LiOHWaste *= #$Days$ - Waste += #$LiOHWaste$ + @LiOHWaste *= #$Crew$ + @LiOHWaste *= #$Days$ + @Waste += #$LiOHWaste$ } @ROKConfigTool:HAS[#Scrubber[KO2]] { KO2 = - KO2 *= #$Crew$ - KO2 *= #$Days$ - Volume += #$KO2$ + @KO2 *= #$Crew$ + @KO2 *= #$Days$ + @Volume += #$KO2$ KO2Waste = - KO2Waste = #$Crew$ - KO2Waste = #$Days$ - Waste += #$KO2Waste$ + @KO2Waste *= #$Crew$ + @KO2Waste *= #$Days$ + @Waste += #$KO2Waste$ // Some oxygen returned, reduce effective oxygen consumption - Oxygen *= + @Oxygen *= } @ROKConfigTool:HAS[#Scrubber[Vacuum]] { CO2 = - CO2 *= #$Crew$ - Volume += #$CO2$ + @CO2 *= #$Crew$ + @Volume += #$CO2$ } @ROKConfigTool:HAS[#LOXGOX[?rue]] { - Oxygen *= - Oxygen *= #$Crew$ + @Oxygen *= + @Oxygen *= #$Crew$ } @ROKConfigTool:HAS[~LOXGOX[?rue]] { - Oxygen *= #$Crew$ - Oxygen *= #$Days$ + @Oxygen *= #$Crew$ + @Oxygen *= #$Days$ } @ROKConfigTool:HAS[#FUELCELL[?rue]] { - Water *= - Water *= #$Crew$ + @Water *= + @Water *= #$Crew$ } @ROKConfigTool:HAS[~FUELCELL[?rue]] { - Water *= #$Crew$ - Water *= #$Days$ + @Water *= #$Crew$ + @Water *= #$Days$ } @ROKConfigTool { - Food *= #$Crew$ - Food *= #$Days$ - WasteWater = - Volume += #$Food$ - Volume += #$Oxygen$ - Volume += #$Water$ - Volume += #$Waste$ + @Food *= #$Crew$ + @Food *= #$Days$ + @WasteWater = + @Volume += #$Food$ + @Volume += #$Oxygen$ + @Volume += #$Water$ + @Volume += #$Waste$ } } @@ -97,7 +97,7 @@ %MODULE[ModuleFuelTanks] { &volume = 0 - volume += #$/ROKConfigTool/Volume$ + @volume += #$/ROKConfigTool/Volume$ TANK { From a23f8c10864d01fc05cd9797fc91d1b1d1cc5a85 Mon Sep 17 00:00:00 2001 From: stonesmileGit Date: Sun, 24 Apr 2022 19:54:45 +0200 Subject: [PATCH 3/6] Add config tool scrubber tanks --- GameData/KerbalismConfig/ConfigTool.cfg | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/GameData/KerbalismConfig/ConfigTool.cfg b/GameData/KerbalismConfig/ConfigTool.cfg index 6fdb7e2f..a1fc080e 100644 --- a/GameData/KerbalismConfig/ConfigTool.cfg +++ b/GameData/KerbalismConfig/ConfigTool.cfg @@ -136,6 +136,45 @@ } } +@PART:HAS[@ROKConfigTool:HAS[#LiOH]]:LAST +{ + @MODULE[ModuleFuelTanks] + { + TANK + { + name = LithiumHydroxide + amount = #$/ROKConfigTool/LiOH$ + maxAmount = #$/ROKConfigTool/LiOH$ + } + } +} + +@PART:HAS[@ROKConfigTool:HAS[#KO2]]:LAST +{ + @MODULE[ModuleFuelTanks] + { + TANK + { + name = PotassiumSuperoxide + amount = #$/ROKConfigTool/KO2$ + maxAmount = #$/ROKConfigTool/KO2$ + } + } +} + +@PART:HAS[@ROKConfigTool:HAS[#CO2]]:LAST +{ + @MODULE[ModuleFuelTanks] + { + TANK + { + name = CarbonDioxide + amount = 0 + maxAmount = #$/ROKConfigTool/CO2$ + } + } +} + @PART:HAS[@ROKConfigTool:HAS[#AppendDescription[?rue]]]:LAST { @description = #$description$ Supports a crew of $/ROKConfigTool/Crew$ for $/ROKConfigTool/Days$ days. From d2f9f325374151cf885ab3dca46dcd73ef7ef7eb Mon Sep 17 00:00:00 2001 From: stonesmileGit Date: Mon, 25 Apr 2022 15:42:17 +0200 Subject: [PATCH 4/6] Handle gasses and rename a bunch of stuff --- GameData/KerbalismConfig/ConfigTool.cfg | 71 +++++++++++++++++++------ 1 file changed, 55 insertions(+), 16 deletions(-) diff --git a/GameData/KerbalismConfig/ConfigTool.cfg b/GameData/KerbalismConfig/ConfigTool.cfg index a1fc080e..c221afeb 100644 --- a/GameData/KerbalismConfig/ConfigTool.cfg +++ b/GameData/KerbalismConfig/ConfigTool.cfg @@ -1,24 +1,42 @@ @PART:HAS[@ROKConfigTool]:LAST { + // ############################## + // Resources that are handled + // ############################## + // Food + // Water + // Oxygen + // Waste + // Waste Water + // + // LiOH if wanted + // KO2 if wanted + // CO2 tanks for Vacuum scrubber if wanted + // ############################## // Values that can be set: // ############################## + // Crew = int - Defaults to CrewCapacity, number fo crewmembers + // Days = int - Number of days of supplies // Scrubber = LiOH, KO2, Vacuum - // LOXGOX = True - Oxygen provided by LOX to GOX converter - // FUELCELL = True - Water provided by Fuel cells + // OxygenProduction = True - Oxygen provided by LOX to GOX converter or Electrolyzer + // WaterProduction = True - Water provided by Fuel cells or other process // AppendDescription = True - Adds "Supports X crew for Y days." to description + // ReuseVolume = True - Do not add volume to the MFT // Default consumption rates and values // Rates per kerbal-day @ROKConfigTool { + // Default values / Set up variables &Crew = #$/CrewCapacity$ &Days = 0 Volume = 0 + Waste = 0 + // Rates Food = 5.84928 Oxygen = 591.84 Water = 3.87072 - Waste = 0 } @ROKConfigTool:HAS[#Scrubber[LiOH]] @@ -45,36 +63,42 @@ @KO2Waste *= #$Crew$ @KO2Waste *= #$Days$ @Waste += #$KO2Waste$ - // Some oxygen returned, reduce effective oxygen consumption - @Oxygen *= + // More oxygen than consumed is returned, set flag to true + %OxygenProduction = True } @ROKConfigTool:HAS[#Scrubber[Vacuum]] { - CO2 = + CO2 = 591.84 + @CO2 *= 1 // Store 1 days worth of CO2 @CO2 *= #$Crew$ - @Volume += #$CO2$ + // CO2 is a gas, divide tank volume by 1000 + CO2Volume = #$CO2$ + @CO2Volume /= 1000 + @Volume += #$CO2Volume$ } - @ROKConfigTool:HAS[#LOXGOX[?rue]] + @ROKConfigTool:HAS[#OxygenProduction[?rue]] { - @Oxygen *= + // Oxygen production exists, limit storage to 1 day + @Oxygen *= 1 @Oxygen *= #$Crew$ } - @ROKConfigTool:HAS[~LOXGOX[?rue]] + @ROKConfigTool:HAS[~OxygenProduction[?rue]] { @Oxygen *= #$Crew$ @Oxygen *= #$Days$ } - @ROKConfigTool:HAS[#FUELCELL[?rue]] + @ROKConfigTool:HAS[#WaterProduction[?rue]] { - @Water *= + // Water production exists, limit storage to 1 day + @Water *= 1 @Water *= #$Crew$ } - @ROKConfigTool:HAS[~FUELCELL[?rue]] + @ROKConfigTool:HAS[~WaterProduction[?rue]] { @Water *= #$Crew$ @Water *= #$Days$ @@ -84,21 +108,36 @@ { @Food *= #$Crew$ @Food *= #$Days$ - @WasteWater = @Volume += #$Food$ - @Volume += #$Oxygen$ + + WasteWater = 3.87072 + @WasteWater *= 1 //Store 1 days worth of waste water + @WasteWater *= #$Crew$ + @Volume += #$WasteWater$ + + // Oxygen is a gas, divide needed tank volume by 1000 + OxygenVolume = #$Oxygen$ + @OxygenVolume /= 1000 + @Volume += #$OxygenVolume$ + @Volume += #$Water$ @Volume += #$Waste$ } } -@PART:HAS[@ROKConfigTool:HAS[~Food[0]]]:LAST +@PART:HAS[@ROKConfigTool:HAS[~Food[0],~ReuseVolume[?rue]]]:LAST { %MODULE[ModuleFuelTanks] { &volume = 0 @volume += #$/ROKConfigTool/Volume$ + } +} +@PART:HAS[@ROKConfigTool:HAS[~Food[0]]]:LAST +{ + @MODULE[ModuleFuelTanks] + { TANK { name = Food From 634fb4586eac349006ae4e900052229b2bf38a9e Mon Sep 17 00:00:00 2001 From: stonesmileGit Date: Mon, 25 Apr 2022 16:18:56 +0200 Subject: [PATCH 5/6] Approximate LiOH and KO2 rates --- GameData/KerbalismConfig/ConfigTool.cfg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/GameData/KerbalismConfig/ConfigTool.cfg b/GameData/KerbalismConfig/ConfigTool.cfg index c221afeb..0d8bdd37 100644 --- a/GameData/KerbalismConfig/ConfigTool.cfg +++ b/GameData/KerbalismConfig/ConfigTool.cfg @@ -41,12 +41,12 @@ @ROKConfigTool:HAS[#Scrubber[LiOH]] { - LiOH = + LiOH = 1.027296 @LiOH *= #$Crew$ @LiOH *= #$Days$ @Volume += #$LiOH$ - LiOHWaste = + LiOHWaste = 1.397088 @LiOHWaste *= #$Crew$ @LiOHWaste *= #$Days$ @Waste += #$LiOHWaste$ @@ -54,12 +54,12 @@ @ROKConfigTool:HAS[#Scrubber[KO2]] { - KO2 = + KO2 = 1.155168 @KO2 *= #$Crew$ @KO2 *= #$Days$ @Volume += #$KO2$ - KO2Waste = + KO2Waste = 1.80225 @KO2Waste *= #$Crew$ @KO2Waste *= #$Days$ @Waste += #$KO2Waste$ From 98410c6ea1f5c08c7ec1399ff8ec038550319778 Mon Sep 17 00:00:00 2001 From: stonesmileGit Date: Sat, 11 Jun 2022 18:54:11 +0200 Subject: [PATCH 6/6] Use final --- GameData/KerbalismConfig/ConfigTool.cfg | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/GameData/KerbalismConfig/ConfigTool.cfg b/GameData/KerbalismConfig/ConfigTool.cfg index 0d8bdd37..a1733034 100644 --- a/GameData/KerbalismConfig/ConfigTool.cfg +++ b/GameData/KerbalismConfig/ConfigTool.cfg @@ -1,4 +1,4 @@ -@PART:HAS[@ROKConfigTool]:LAST +@PART:HAS[@ROKConfigTool]:FINAL { // ############################## // Resources that are handled @@ -125,7 +125,7 @@ } } -@PART:HAS[@ROKConfigTool:HAS[~Food[0],~ReuseVolume[?rue]]]:LAST +@PART:HAS[@ROKConfigTool:HAS[~Food[0],~ReuseVolume[?rue]]]:FINAL { %MODULE[ModuleFuelTanks] { @@ -134,7 +134,7 @@ } } -@PART:HAS[@ROKConfigTool:HAS[~Food[0]]]:LAST +@PART:HAS[@ROKConfigTool:HAS[~Food[0]]]:FINAL { @MODULE[ModuleFuelTanks] { @@ -175,7 +175,7 @@ } } -@PART:HAS[@ROKConfigTool:HAS[#LiOH]]:LAST +@PART:HAS[@ROKConfigTool:HAS[#LiOH]]:FINAL { @MODULE[ModuleFuelTanks] { @@ -188,7 +188,7 @@ } } -@PART:HAS[@ROKConfigTool:HAS[#KO2]]:LAST +@PART:HAS[@ROKConfigTool:HAS[#KO2]]:FINAL { @MODULE[ModuleFuelTanks] { @@ -201,7 +201,7 @@ } } -@PART:HAS[@ROKConfigTool:HAS[#CO2]]:LAST +@PART:HAS[@ROKConfigTool:HAS[#CO2]]:FINAL { @MODULE[ModuleFuelTanks] { @@ -214,13 +214,13 @@ } } -@PART:HAS[@ROKConfigTool:HAS[#AppendDescription[?rue]]]:LAST +@PART:HAS[@ROKConfigTool:HAS[#AppendDescription[?rue]]]:FINAL { @description = #$description$ Supports a crew of $/ROKConfigTool/Crew$ for $/ROKConfigTool/Days$ days. } // Cleanup -@PART:HAS[@ROKConfigTool]:LAST +@PART:HAS[@ROKConfigTool]:FINAL { !ROKConfigTool {} } \ No newline at end of file