From e06d048b462c9af51b9cfb90dcd4df413bcf0703 Mon Sep 17 00:00:00 2001 From: RafaelDominiquini <61922887+RafaelDominiquini@users.noreply.github.com> Date: Wed, 16 Jun 2021 13:02:21 -0300 Subject: [PATCH 1/7] Prevents fuel change in tanks with built-in engines --- files/configs/Add_LF_to_LFO_tanks.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/files/configs/Add_LF_to_LFO_tanks.cfg b/files/configs/Add_LF_to_LFO_tanks.cfg index 27e4536..4e47ff7 100644 --- a/files/configs/Add_LF_to_LFO_tanks.cfg +++ b/files/configs/Add_LF_to_LFO_tanks.cfg @@ -1,5 +1,5 @@ // For all parts that have LFO on them, add the option to switch to LF-only. -@PART[*]:HAS[@RESOURCE[LiquidFuel],@RESOURCE[Oxidizer],!MODULE[ModuleSimpleFuelSwitch]]:FOR[SimpleFuelSwitch] +@PART[*]:HAS[@RESOURCE[LiquidFuel],@RESOURCE[Oxidizer],!MODULE[ModuleEngines],!MODULE[ModuleEnginesFX],!MODULE[ModuleSimpleFuelSwitch]]:FOR[SimpleFuelSwitch] { MODULE { @@ -45,4 +45,4 @@ -RESOURCE[LiquidFuel] {} -RESOURCE[Oxidizer] {} -} \ No newline at end of file +} From 8f3f0e4380b3749632c1e37a2044d508c4ac3c26 Mon Sep 17 00:00:00 2001 From: RafaelDominiquini <61922887+RafaelDominiquini@users.noreply.github.com> Date: Wed, 23 Jun 2021 18:56:05 -0300 Subject: [PATCH 2/7] Some updates --- files/configs/Add_LFO_to_LF_tanks.cfg | 98 +++--- files/configs/Add_LF_to_LFO_tanks.cfg | 96 +++--- files/configs/Hide_redundant_parts.cfg | 440 ++++++++++++------------- files/configs/README.md | 114 +++---- files/configs/SimpleFuelSwitch.cfg | 98 +++--- 5 files changed, 423 insertions(+), 423 deletions(-) diff --git a/files/configs/Add_LFO_to_LF_tanks.cfg b/files/configs/Add_LFO_to_LF_tanks.cfg index 291f153..2e7d790 100644 --- a/files/configs/Add_LFO_to_LF_tanks.cfg +++ b/files/configs/Add_LFO_to_LF_tanks.cfg @@ -1,50 +1,50 @@ -// For some parts that have LF on them, add the option to switch to LFO. -@PART[miniFuselage|noseConeAdapter|wingShuttleDelta|mk2FuselageShortLiquid|mk2Fuselage|mk3FuselageLF_25|mk3FuselageLF_50|mk3FuselageLF_100]:FOR[SimpleFuelSwitch] -{ - MODULE - { - name = ModuleSimpleFuelSwitch - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = liquid_fuel_only - displayName = #SimpleFuelSwitch_LiquidFuel - selectorFieldName = #SimpleFuelSwitch_fuelTypeLabel - isDefault = true - RESOURCE - { - name = LiquidFuel - amount = #$/RESOURCE[LiquidFuel]/amount$ - maxAmount = #$/RESOURCE[LiquidFuel]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = liquid_fuel_oxidizer - displayName = #SimpleFuelSwitch_LiquidFuelAndOxidizer - selectorFieldName = #SimpleFuelSwitch_fuelTypeLabel - RESOURCE - { - name = LiquidFuel - amount = #$/RESOURCE[LiquidFuel]/amount$ - @amount *= 0.45 - maxAmount = #$/RESOURCE[LiquidFuel]/maxAmount$ - @maxAmount *= 0.45 - } - RESOURCE - { - name = Oxidizer - amount = #$/RESOURCE[LiquidFuel]/amount$ - @amount *= 0.55 - maxAmount = #$/RESOURCE[LiquidFuel]/maxAmount$ - @maxAmount *= 0.55 - } - } - - -RESOURCE[LiquidFuel] {} - -RESOURCE[Oxidizer] {} +// For some parts that have LF on them, add the option to switch to LFO. +@PART[miniFuselage|noseConeAdapter|wingShuttleDelta|mk2FuselageShortLiquid|mk2Fuselage|mk3FuselageLF_25|mk3FuselageLF_50|mk3FuselageLF_100]:FOR[SimpleFuelSwitch] +{ + MODULE + { + name = ModuleSimpleFuelSwitch + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = liquid_fuel_only + displayName = #SimpleFuelSwitch_LiquidFuel + selectorFieldName = #SimpleFuelSwitch_fuelTypeLabel + isDefault = true + RESOURCE + { + name = LiquidFuel + amount = #$/RESOURCE[LiquidFuel]/amount$ + maxAmount = #$/RESOURCE[LiquidFuel]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = liquid_fuel_oxidizer + displayName = #SimpleFuelSwitch_LiquidFuelAndOxidizer + selectorFieldName = #SimpleFuelSwitch_fuelTypeLabel + RESOURCE + { + name = LiquidFuel + amount = #$/RESOURCE[LiquidFuel]/amount$ + @amount *= 0.45 + maxAmount = #$/RESOURCE[LiquidFuel]/maxAmount$ + @maxAmount *= 0.45 + } + RESOURCE + { + name = Oxidizer + amount = #$/RESOURCE[LiquidFuel]/amount$ + @amount *= 0.55 + maxAmount = #$/RESOURCE[LiquidFuel]/maxAmount$ + @maxAmount *= 0.55 + } + } + + -RESOURCE[LiquidFuel] {} + -RESOURCE[Oxidizer] {} } \ No newline at end of file diff --git a/files/configs/Add_LF_to_LFO_tanks.cfg b/files/configs/Add_LF_to_LFO_tanks.cfg index 4e47ff7..e311cdd 100644 --- a/files/configs/Add_LF_to_LFO_tanks.cfg +++ b/files/configs/Add_LF_to_LFO_tanks.cfg @@ -1,48 +1,48 @@ -// For all parts that have LFO on them, add the option to switch to LF-only. -@PART[*]:HAS[@RESOURCE[LiquidFuel],@RESOURCE[Oxidizer],!MODULE[ModuleEngines],!MODULE[ModuleEnginesFX],!MODULE[ModuleSimpleFuelSwitch]]:FOR[SimpleFuelSwitch] -{ - MODULE - { - name = ModuleSimpleFuelSwitch - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = liquid_fuel_oxidizer - displayName = #SimpleFuelSwitch_LiquidFuelAndOxidizer - selectorFieldName = #SimpleFuelSwitch_fuelTypeLabel - isDefault = true - RESOURCE - { - name = LiquidFuel - amount = #$/RESOURCE[LiquidFuel]/amount$ - maxAmount = #$/RESOURCE[LiquidFuel]/maxAmount$ - } - RESOURCE - { - name = Oxidizer - amount = #$/RESOURCE[Oxidizer]/amount$ - maxAmount = #$/RESOURCE[Oxidizer]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = liquid_fuel_only - displayName = #SimpleFuelSwitch_LiquidFuel - selectorFieldName = #SimpleFuelSwitch_fuelTypeLabel - RESOURCE - { - name = LiquidFuel - amount = #$/RESOURCE[LiquidFuel]/amount$ - @amount += #$/RESOURCE[Oxidizer]/amount$ - maxAmount = #$/RESOURCE[LiquidFuel]/maxAmount$ - @maxAmount += #$/RESOURCE[Oxidizer]/maxAmount$ - } - } - - -RESOURCE[LiquidFuel] {} - -RESOURCE[Oxidizer] {} -} +// For all parts that have LFO on them, add the option to switch to LF-only. +@PART[*]:HAS[@RESOURCE[LiquidFuel],@RESOURCE[Oxidizer],!MODULE[ModuleEngines],!MODULE[ModuleEnginesFX],!MODULE[ModuleSimpleFuelSwitch]]:FOR[SimpleFuelSwitch] +{ + MODULE + { + name = ModuleSimpleFuelSwitch + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = liquid_fuel_oxidizer + displayName = #SimpleFuelSwitch_LiquidFuelAndOxidizer + selectorFieldName = #SimpleFuelSwitch_fuelTypeLabel + isDefault = true + RESOURCE + { + name = LiquidFuel + amount = #$/RESOURCE[LiquidFuel]/amount$ + maxAmount = #$/RESOURCE[LiquidFuel]/maxAmount$ + } + RESOURCE + { + name = Oxidizer + amount = #$/RESOURCE[Oxidizer]/amount$ + maxAmount = #$/RESOURCE[Oxidizer]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = liquid_fuel_only + displayName = #SimpleFuelSwitch_LiquidFuel + selectorFieldName = #SimpleFuelSwitch_fuelTypeLabel + RESOURCE + { + name = LiquidFuel + amount = #$/RESOURCE[LiquidFuel]/amount$ + @amount += #$/RESOURCE[Oxidizer]/amount$ + maxAmount = #$/RESOURCE[LiquidFuel]/maxAmount$ + @maxAmount += #$/RESOURCE[Oxidizer]/maxAmount$ + } + } + + -RESOURCE[LiquidFuel] {} + -RESOURCE[Oxidizer] {} +} \ No newline at end of file diff --git a/files/configs/Hide_redundant_parts.cfg b/files/configs/Hide_redundant_parts.cfg index 241a8b7..ea91aa4 100644 --- a/files/configs/Hide_redundant_parts.cfg +++ b/files/configs/Hide_redundant_parts.cfg @@ -1,220 +1,220 @@ -// There are some LF-only parts that are now redundant, since they're -// exactly physically equivalent to LFO parts that now have the ability -// to switch between LFO and LF as desired. Therefore, hide parts to remove -// redundancy. - -@PART[MK1Fuselage|mk2FuselageShortLFO|mk2FuselageLongLFO|mk3FuselageLFO_25|mk3FuselageLFO_50|mk3FuselageLFO_100]:FOR[SimpleFuelSwitch] -{ - %TechHidden = True - @category = none - @TechRequired = none -} - -//--------------------------------------------------------------------------------- -// Make the "hidden" Mk2 and Mk3 part textures available as part variants. -// Thanks to theonegalen for suggesting! - -// mk2FuselageShortLFO -> mk2FuselageShortLiquid -@PART[mk2FuselageShortLiquid]:FOR[SimpleFuelSwitch] -{ - MODEL - { - model = Squad/Parts/FuelTank/mk2FuselageShort/FuselageShortLFO - } - MODULE - { - name = ModulePartVariants - baseVariant = White - baseThemeName = White - VARIANT - { - name = White - displayName = #autoLOC_8007119 - themeName = White - primaryColor = #ffffff - secondaryColor = #ffffff - GAMEOBJECTS - { - FuselageShortLiquid = true - FuselageShortLFO = false - } - } - VARIANT - { - name = BlackAndWhite - displayName = #autoLOC_8007122 - themeName = BlackAndWhite - primaryColor = #ffffff - secondaryColor = #000000 - GAMEOBJECTS - { - FuselageShortLiquid = false - FuselageShortLFO = true - } - } - } -} - -// mk2FuselageLongLFO -> mk2Fuselage -@PART[mk2Fuselage]:FOR[SimpleFuelSwitch] -{ - MODEL - { - model = Squad/Parts/FuelTank/mk2FuselageLong/FuselageLongLFO - } - MODULE - { - name = ModulePartVariants - baseVariant = White - baseThemeName = White - VARIANT - { - name = White - displayName = #autoLOC_8007119 - themeName = White - primaryColor = #ffffff - secondaryColor = #ffffff - GAMEOBJECTS - { - FuselageLongLiquid = true - FuselageLongLFO = false - } - } - VARIANT - { - name = BlackAndWhite - displayName = #autoLOC_8007122 - themeName = BlackAndWhite - primaryColor = #ffffff - secondaryColor = #000000 - GAMEOBJECTS - { - FuselageLongLiquid = false - FuselageLongLFO = true - } - } - } -} - -// mk3FuselageLFO_25 -> mk3FuselageLF_25 -@PART[mk3FuselageLF_25]:FOR[SimpleFuelSwitch] -{ - MODEL - { - model = Squad/Parts/FuelTank/mk3Fuselage/LFO_25 - } - MODULE - { - name = ModulePartVariants - baseVariant = White - baseThemeName = White - VARIANT - { - name = White - displayName = #autoLOC_8007119 - themeName = White - primaryColor = #ffffff - secondaryColor = #ffffff - GAMEOBJECTS - { - LF_2.5m = true - LFO_2.5m = false - } - } - VARIANT - { - name = BlackAndWhite - displayName = #autoLOC_8007122 - themeName = BlackAndWhite - primaryColor = #ffffff - secondaryColor = #000000 - GAMEOBJECTS - { - LF_2.5m = false - LFO_2.5m = true - } - } - } -} - -// mk3FuselageLFO_50 -> mk3FuselageLF_50 -@PART[mk3FuselageLF_50]:FOR[SimpleFuelSwitch] -{ - MODEL - { - model = Squad/Parts/FuelTank/mk3Fuselage/LFO_50 - } - MODULE - { - name = ModulePartVariants - baseVariant = White - baseThemeName = White - VARIANT - { - name = White - displayName = #autoLOC_8007119 - themeName = White - primaryColor = #ffffff - secondaryColor = #ffffff - GAMEOBJECTS - { - LF_5m = true - LFO_5m = false - } - } - VARIANT - { - name = BlackAndWhite - displayName = #autoLOC_8007122 - themeName = BlackAndWhite - primaryColor = #ffffff - secondaryColor = #000000 - GAMEOBJECTS - { - LF_5m = false - LFO_5m = true - } - } - } -} - -// mk3FuselageLFO_100 -> mk3FuselageLF_100 -@PART[mk3FuselageLF_100]:FOR[SimpleFuelSwitch] -{ - MODEL - { - model = Squad/Parts/FuelTank/mk3Fuselage/LFO_100 - } - MODULE - { - name = ModulePartVariants - baseVariant = White - baseThemeName = White - VARIANT - { - name = White - displayName = #autoLOC_8007119 - themeName = White - primaryColor = #ffffff - secondaryColor = #ffffff - GAMEOBJECTS - { - LF_10m = true - LFO_10m = false - } - } - VARIANT - { - name = BlackAndWhite - displayName = #autoLOC_8007122 - themeName = BlackAndWhite - primaryColor = #ffffff - secondaryColor = #000000 - GAMEOBJECTS - { - LF_10m = false - LFO_10m = true - } - } - } -} +// There are some LF-only parts that are now redundant, since they're +// exactly physically equivalent to LFO parts that now have the ability +// to switch between LFO and LF as desired. Therefore, hide parts to remove +// redundancy. + +@PART[MK1Fuselage|mk2FuselageShortLFO|mk2FuselageLongLFO|mk3FuselageLFO_25|mk3FuselageLFO_50|mk3FuselageLFO_100]:FOR[SimpleFuelSwitch] +{ + %TechHidden = True + @category = none + @TechRequired = none +} + +//--------------------------------------------------------------------------------- +// Make the "hidden" Mk2 and Mk3 part textures available as part variants. +// Thanks to theonegalen for suggesting! + +// mk2FuselageShortLFO -> mk2FuselageShortLiquid +@PART[mk2FuselageShortLiquid]:FOR[SimpleFuelSwitch] +{ + MODEL + { + model = Squad/Parts/FuelTank/mk2FuselageShort/FuselageShortLFO + } + MODULE + { + name = ModulePartVariants + baseVariant = White + baseThemeName = White + VARIANT + { + name = White + displayName = #autoLOC_8007119 + themeName = White + primaryColor = #ffffff + secondaryColor = #ffffff + GAMEOBJECTS + { + FuselageShortLiquid = true + FuselageShortLFO = false + } + } + VARIANT + { + name = BlackAndWhite + displayName = #autoLOC_8007122 + themeName = BlackAndWhite + primaryColor = #ffffff + secondaryColor = #000000 + GAMEOBJECTS + { + FuselageShortLiquid = false + FuselageShortLFO = true + } + } + } +} + +// mk2FuselageLongLFO -> mk2Fuselage +@PART[mk2Fuselage]:FOR[SimpleFuelSwitch] +{ + MODEL + { + model = Squad/Parts/FuelTank/mk2FuselageLong/FuselageLongLFO + } + MODULE + { + name = ModulePartVariants + baseVariant = White + baseThemeName = White + VARIANT + { + name = White + displayName = #autoLOC_8007119 + themeName = White + primaryColor = #ffffff + secondaryColor = #ffffff + GAMEOBJECTS + { + FuselageLongLiquid = true + FuselageLongLFO = false + } + } + VARIANT + { + name = BlackAndWhite + displayName = #autoLOC_8007122 + themeName = BlackAndWhite + primaryColor = #ffffff + secondaryColor = #000000 + GAMEOBJECTS + { + FuselageLongLiquid = false + FuselageLongLFO = true + } + } + } +} + +// mk3FuselageLFO_25 -> mk3FuselageLF_25 +@PART[mk3FuselageLF_25]:FOR[SimpleFuelSwitch] +{ + MODEL + { + model = Squad/Parts/FuelTank/mk3Fuselage/LFO_25 + } + MODULE + { + name = ModulePartVariants + baseVariant = White + baseThemeName = White + VARIANT + { + name = White + displayName = #autoLOC_8007119 + themeName = White + primaryColor = #ffffff + secondaryColor = #ffffff + GAMEOBJECTS + { + LF_2.5m = true + LFO_2.5m = false + } + } + VARIANT + { + name = BlackAndWhite + displayName = #autoLOC_8007122 + themeName = BlackAndWhite + primaryColor = #ffffff + secondaryColor = #000000 + GAMEOBJECTS + { + LF_2.5m = false + LFO_2.5m = true + } + } + } +} + +// mk3FuselageLFO_50 -> mk3FuselageLF_50 +@PART[mk3FuselageLF_50]:FOR[SimpleFuelSwitch] +{ + MODEL + { + model = Squad/Parts/FuelTank/mk3Fuselage/LFO_50 + } + MODULE + { + name = ModulePartVariants + baseVariant = White + baseThemeName = White + VARIANT + { + name = White + displayName = #autoLOC_8007119 + themeName = White + primaryColor = #ffffff + secondaryColor = #ffffff + GAMEOBJECTS + { + LF_5m = true + LFO_5m = false + } + } + VARIANT + { + name = BlackAndWhite + displayName = #autoLOC_8007122 + themeName = BlackAndWhite + primaryColor = #ffffff + secondaryColor = #000000 + GAMEOBJECTS + { + LF_5m = false + LFO_5m = true + } + } + } +} + +// mk3FuselageLFO_100 -> mk3FuselageLF_100 +@PART[mk3FuselageLF_100]:FOR[SimpleFuelSwitch] +{ + MODEL + { + model = Squad/Parts/FuelTank/mk3Fuselage/LFO_100 + } + MODULE + { + name = ModulePartVariants + baseVariant = White + baseThemeName = White + VARIANT + { + name = White + displayName = #autoLOC_8007119 + themeName = White + primaryColor = #ffffff + secondaryColor = #ffffff + GAMEOBJECTS + { + LF_10m = true + LFO_10m = false + } + } + VARIANT + { + name = BlackAndWhite + displayName = #autoLOC_8007122 + themeName = BlackAndWhite + primaryColor = #ffffff + secondaryColor = #000000 + GAMEOBJECTS + { + LF_10m = false + LFO_10m = true + } + } + } +} diff --git a/files/configs/README.md b/files/configs/README.md index cd783b1..138af30 100644 --- a/files/configs/README.md +++ b/files/configs/README.md @@ -1,57 +1,57 @@ -## SimpleFuelSwitch configuration - -### Configs provided with the mod - -There are currently three config files provided here: - -* Add_LFO_to_LF_tanks.cfg: Every LFO tank has an option added for an equivalent amount of LF. -* Add_LF_to_LFO_tanks.cfg: For certain specific LF tanks, add LFO as an option. -* Hide_redundant_parts.cfg: Some parts are no longer needed, because the function is filled by another tank that can now switch resources. Remove these, to reduce parts tab clutter in the editor. - -Note that the "removed" parts from the third config file aren't _actually_ removed, just hidden. Thus, any existing ships you've already designed or launched with them will be fine. - -If you don't like what any of the above files do (e.g. "Oh noes, I don't want to get rid of the 'redundant' parts" or whatever), you can just delete any or all of them. - - -### How to tinker with your own config - -SimpleFuelSwitch is fairly simple to configure, by design. There are two new PartModules to deal with: - -* ModuleSimpleFuelSwitch -* ModuleSwitchableResources - -For a part to use these modules, it should be set up as follows: - -1. If the part has any "built-in" resources that you want to be switchable, _remove them_. (They'll be replaced by these new modules.) -2. Add _one_ ModuleSimpleFuelSwitch. (Don't add multiple ones.) -3. Add one ModuleSwitchableResources for each resource option you want to have. Generally you'll always have at least two of these (otherwise there's nothing to "switch"). - -Example: You want to modify a monoprop tank to be able to choose between monoprop and LFO. You'd use ModuleManager to patch it as follows: - -1. Delete the monoprop from the part (since these modules will take over). -2. Add a ModuleSimpleFuelSwitch. -3. Add one ModuleSwitchableResources for the monoprop option, and another ModuleSwitchableResources for the LFO option. - -Each ModuleSwitchableResources can specify the following: - -* _resourcesId_: *Required.* A unique ID field that distinguishes this ModuleSwitchableResources from all the others on this part. Never displayed to a user. -* _displayName_: How you want it to show up in the UI (e.g. "LFO"). Optional. If you don't specify, will be auto-generated from the resource names. -* _selectorFieldName_: How you want the button in the UI to be labeled, e.g. "Fuel Type". Optional; if unspecified, defaults to "Resource". -* _isDefault_: Whether you want _this_ set of resources to be the one that's initially picked by default for newly placed parts. -* Resources. - -The "resourcesId" field can have any value you want (ideally would be something human-readable, to facilitate debugging). It needs to meet two requirements: - -* Unique within the part: don't add two ModuleSwitchableResources that have the same resourceId as each other. -* Permanently invariant: once you've used it to design and launch ships, you can never change it after that, because doing so would break any existing ships that used the old ID. - -The resources for the ModuleSwitchableResources are specified in a set of RESOURCE sections, same as resources for a regular part. - - -### Using variants - -SimpleFuelSwitch also supports the ability to set up config that ties specific resource selections to _variants_, i.e. picking different variants will select different resource types. - -The default configs that are installed with this mod don't happen to use the feature. If you'd like to see how it works, though, please see the "examples" folder on the mod's github repository for some ideas. - -Executive summary is that all you have to do is add a "linkedVariant" field to each of your ModuleSwitchableResources, specifying which variant (or variants) correspond to that resource selection. +## SimpleFuelSwitch configuration + +### Configs provided with the mod + +There are currently three config files provided here: + +* Add_LFO_to_LF_tanks.cfg: Every LFO tank has an option added for an equivalent amount of LF. +* Add_LF_to_LFO_tanks.cfg: For certain specific LF tanks, add LFO as an option. +* Hide_redundant_parts.cfg: Some parts are no longer needed, because the function is filled by another tank that can now switch resources. Remove these, to reduce parts tab clutter in the editor. + +Note that the "removed" parts from the third config file aren't _actually_ removed, just hidden. Thus, any existing ships you've already designed or launched with them will be fine. + +If you don't like what any of the above files do (e.g. "Oh noes, I don't want to get rid of the 'redundant' parts" or whatever), you can just delete any or all of them. + + +### How to tinker with your own config + +SimpleFuelSwitch is fairly simple to configure, by design. There are two new PartModules to deal with: + +* ModuleSimpleFuelSwitch +* ModuleSwitchableResources + +For a part to use these modules, it should be set up as follows: + +1. If the part has any "built-in" resources that you want to be switchable, _remove them_. (They'll be replaced by these new modules.) +2. Add _one_ ModuleSimpleFuelSwitch. (Don't add multiple ones.) +3. Add one ModuleSwitchableResources for each resource option you want to have. Generally you'll always have at least two of these (otherwise there's nothing to "switch"). + +Example: You want to modify a monoprop tank to be able to choose between monoprop and LFO. You'd use ModuleManager to patch it as follows: + +1. Delete the monoprop from the part (since these modules will take over). +2. Add a ModuleSimpleFuelSwitch. +3. Add one ModuleSwitchableResources for the monoprop option, and another ModuleSwitchableResources for the LFO option. + +Each ModuleSwitchableResources can specify the following: + +* _resourcesId_: *Required.* A unique ID field that distinguishes this ModuleSwitchableResources from all the others on this part. Never displayed to a user. +* _displayName_: How you want it to show up in the UI (e.g. "LFO"). Optional. If you don't specify, will be auto-generated from the resource names. +* _selectorFieldName_: How you want the button in the UI to be labeled, e.g. "Fuel Type". Optional; if unspecified, defaults to "Resource". +* _isDefault_: Whether you want _this_ set of resources to be the one that's initially picked by default for newly placed parts. +* Resources. + +The "resourcesId" field can have any value you want (ideally would be something human-readable, to facilitate debugging). It needs to meet two requirements: + +* Unique within the part: don't add two ModuleSwitchableResources that have the same resourceId as each other. +* Permanently invariant: once you've used it to design and launch ships, you can never change it after that, because doing so would break any existing ships that used the old ID. + +The resources for the ModuleSwitchableResources are specified in a set of RESOURCE sections, same as resources for a regular part. + + +### Using variants + +SimpleFuelSwitch also supports the ability to set up config that ties specific resource selections to _variants_, i.e. picking different variants will select different resource types. + +The default configs that are installed with this mod don't happen to use the feature. If you'd like to see how it works, though, please see the "examples" folder on the mod's github repository for some ideas. + +Executive summary is that all you have to do is add a "linkedVariant" field to each of your ModuleSwitchableResources, specifying which variant (or variants) correspond to that resource selection. diff --git a/files/configs/SimpleFuelSwitch.cfg b/files/configs/SimpleFuelSwitch.cfg index 2e40c30..16d239a 100644 --- a/files/configs/SimpleFuelSwitch.cfg +++ b/files/configs/SimpleFuelSwitch.cfg @@ -1,49 +1,49 @@ -SimpleFuelSwitch -{ - // Determines how resources are displayed in the "info panel" on the right - // side of the popup window in the editor. - // - // Each line is a key/value pair, where the key is the resourcesId to which - // the line applies, and the value is a format string. (The reserved key - // "default" specifies the format to use for all resourcesId that don't - // specify a format otherwise. - // - // Format strings are as follows: - // %u : "Units". Displays the number of units of the resource. - // %m : "Mass". Displays the mass of the resource, in tons, along with a unit specifier (e.g. "4.0 t") - // %q : "Quantity". Evaluates to "%u if the resource is massless, %m otherwise". - // - // Anything other than the above special tags will be interpreted as a literal character. - // - // For example, if you wanted to display resources for the resourcesId liquid_fuel_oxidizer - // so that it would show units followed by mass, e.g. "Liquid Fuel: 180 (0.9 t)", you could do this: - // liquid_fuel_oxidizer = %u (%m) - // - InfoFormat - { - default = %q - } - - // Similar to InfoFormat, but this applies to the summarized "primary info" - // that gets displayed on one line in the "main panel" at the center of the - // part's popup window. Unlike InfoFormat, which specifies information per - // *resource*, PrimaryInfoFormat specifies information per *selectable option* - // (which means it covers *all* the resources for that option). - // - // Format strings are as follows: - // %u : "Total units". Displays the sum of units of all resources. - // %u1, %u2, etc. : Displays the units of *one* resource (first, second, etc.) - // %m : "Total mass". Displays the sum of mass of all resources. - // %m1, %m2, etc. : Displays the mass of *one* resource (first, second, etc.) - // %q : "Total quantity". Evaluates to "%u if ALL resources are massless, %m otherwise". - // %q1, %q2, etc. : Like %q, but for *one* resource (first, second, etc.) - // - // For example, if you wanted the LFO option to display LF units, oxidizer units, - // and total mass, e.g. "Fuel Type LFO: 180/220 (2.0 t)", you could do this: - // liquid_fuel_oxidizer = %u1/%u2 (%m) - // - PrimaryInfoFormat - { - default = %q - } -} +SimpleFuelSwitch +{ + // Determines how resources are displayed in the "info panel" on the right + // side of the popup window in the editor. + // + // Each line is a key/value pair, where the key is the resourcesId to which + // the line applies, and the value is a format string. (The reserved key + // "default" specifies the format to use for all resourcesId that don't + // specify a format otherwise. + // + // Format strings are as follows: + // %u : "Units". Displays the number of units of the resource. + // %m : "Mass". Displays the mass of the resource, in tons, along with a unit specifier (e.g. "4.0 t") + // %q : "Quantity". Evaluates to "%u if the resource is massless, %m otherwise". + // + // Anything other than the above special tags will be interpreted as a literal character. + // + // For example, if you wanted to display resources for the resourcesId liquid_fuel_oxidizer + // so that it would show units followed by mass, e.g. "Liquid Fuel: 180 (0.9 t)", you could do this: + // liquid_fuel_oxidizer = %u (%m) + // + InfoFormat + { + default = %q + } + + // Similar to InfoFormat, but this applies to the summarized "primary info" + // that gets displayed on one line in the "main panel" at the center of the + // part's popup window. Unlike InfoFormat, which specifies information per + // *resource*, PrimaryInfoFormat specifies information per *selectable option* + // (which means it covers *all* the resources for that option). + // + // Format strings are as follows: + // %u : "Total units". Displays the sum of units of all resources. + // %u1, %u2, etc. : Displays the units of *one* resource (first, second, etc.) + // %m : "Total mass". Displays the sum of mass of all resources. + // %m1, %m2, etc. : Displays the mass of *one* resource (first, second, etc.) + // %q : "Total quantity". Evaluates to "%u if ALL resources are massless, %m otherwise". + // %q1, %q2, etc. : Like %q, but for *one* resource (first, second, etc.) + // + // For example, if you wanted the LFO option to display LF units, oxidizer units, + // and total mass, e.g. "Fuel Type LFO: 180/220 (2.0 t)", you could do this: + // liquid_fuel_oxidizer = %u1/%u2 (%m) + // + PrimaryInfoFormat + { + default = %q + } +} From 7509e827c9ffbf81d7316cd87cd30408511d1c7d Mon Sep 17 00:00:00 2001 From: RafaelDominiquini <61922887+RafaelDominiquini@users.noreply.github.com> Date: Wed, 23 Jun 2021 21:54:37 -0300 Subject: [PATCH 3/7] Some updates --- files/patches/TACLS/Container_0.cfg | 292 ++++++++++++------------- files/patches/TACLS/Container_1.cfg | 294 +++++++++++++------------- files/patches/TACLS/Container_2.cfg | 294 +++++++++++++------------- files/patches/TACLS/Container_3.cfg | 294 +++++++++++++------------- files/patches/TACLS/HexCan_large.cfg | 292 ++++++++++++------------- files/patches/TACLS/HexCan_medium.cfg | 292 ++++++++++++------------- files/patches/TACLS/HexCan_small.cfg | 292 ++++++++++++------------- 7 files changed, 1025 insertions(+), 1025 deletions(-) diff --git a/files/patches/TACLS/Container_0.cfg b/files/patches/TACLS/Container_0.cfg index 454b457..d50645b 100644 --- a/files/patches/TACLS/Container_0.cfg +++ b/files/patches/TACLS/Container_0.cfg @@ -1,146 +1,146 @@ -// Condense the various 0.625m TACLS supply containers into a single part -// that has switchable resources via variants. - -@PART[TacLifeSupportContainerSmall]:AFTER[ThunderAerospace] -{ - MODULE - { - name = ModulePartVariants - baseVariant = LifeSupport - VARIANT - { - name = LifeSupport - displayName = Supplies - primaryColor = #39826b - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/Texture - } - } - VARIANT - { - name = Food - displayName = #autoLOC_TACLS_00016 // Food - primaryColor = #b29368 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/FoodTexture - } - } - VARIANT - { - name = Water - displayName = #autoLOC_TACLS_00017 // Water - primaryColor = #316178 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WaterTexture - } - } - VARIANT - { - name = Oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - primaryColor = #94aebd - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture - } - } - } - - // Need this to make the resources switchable - MODULE - { - name = ModuleSimpleFuelSwitch - } - - // Now set up the switchable resource options for the part. - MODULE - { - name = ModuleSwitchableResources - resourcesId = supplies - displayName = Supplies - linkedVariant = LifeSupport - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$/RESOURCE[Food]/amount$ - maxAmount = #$/RESOURCE[Food]/maxAmount$ - } - RESOURCE - { - name = Water - amount = #$/RESOURCE[Water]/amount$ - maxAmount = #$/RESOURCE[Water]/maxAmount$ - } - RESOURCE - { - name = Oxygen - amount = #$/RESOURCE[Oxygen]/amount$ - maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = food - displayName = #autoLOC_TACLS_00016 // Food - linkedVariant = Food - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$@PART[TacFoodContainerSmall]/RESOURCE[Food]/amount$ - maxAmount = #$@PART[TacFoodContainerSmall]/RESOURCE[Food]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = water - displayName = #autoLOC_TACLS_00017 // Water - linkedVariant = Water - selectorFieldName = Supply Type - RESOURCE - { - name = Water - amount = #$@PART[TacWaterContainerSmall]/RESOURCE[Water]/amount$ - maxAmount = #$@PART[TacWaterContainerSmall]/RESOURCE[Water]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - linkedVariant = Oxygen - selectorFieldName = Supply Type - RESOURCE - { - name = Oxygen - amount = #$@PART[TacOxygenContainerSmall]/RESOURCE[Oxygen]/amount$ - maxAmount = #$@PART[TacOxygenContainerSmall]/RESOURCE[Oxygen]/maxAmount$ - } - } - - -RESOURCE[Food] {} - -RESOURCE[Water] {} - -RESOURCE[Oxygen] {} -} - -// Hide the original un-"condensed" parts, since they're no longer needed. -@PART[TacFoodContainerSmall|TacWaterContainerSmall|TacOxygenContainerSmall]:AFTER[ThunderAerospace] -{ - %TechHidden = True - @category = none - @tags ^= :\s*cck-lifesupport:: -} +// Condense the various 0.625m TACLS supply containers into a single part +// that has switchable resources via variants. + +@PART[TacLifeSupportContainerSmall]:AFTER[ThunderAerospace] +{ + MODULE + { + name = ModulePartVariants + baseVariant = LifeSupport + VARIANT + { + name = LifeSupport + displayName = Supplies + primaryColor = #39826b + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/Texture + } + } + VARIANT + { + name = Food + displayName = #autoLOC_TACLS_00016 // Food + primaryColor = #b29368 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/FoodTexture + } + } + VARIANT + { + name = Water + displayName = #autoLOC_TACLS_00017 // Water + primaryColor = #316178 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WaterTexture + } + } + VARIANT + { + name = Oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + primaryColor = #94aebd + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture + } + } + } + + // Need this to make the resources switchable + MODULE + { + name = ModuleSimpleFuelSwitch + } + + // Now set up the switchable resource options for the part. + MODULE + { + name = ModuleSwitchableResources + resourcesId = supplies + displayName = Supplies + linkedVariant = LifeSupport + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$/RESOURCE[Food]/amount$ + maxAmount = #$/RESOURCE[Food]/maxAmount$ + } + RESOURCE + { + name = Water + amount = #$/RESOURCE[Water]/amount$ + maxAmount = #$/RESOURCE[Water]/maxAmount$ + } + RESOURCE + { + name = Oxygen + amount = #$/RESOURCE[Oxygen]/amount$ + maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = food + displayName = #autoLOC_TACLS_00016 // Food + linkedVariant = Food + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$@PART[TacFoodContainerSmall]/RESOURCE[Food]/amount$ + maxAmount = #$@PART[TacFoodContainerSmall]/RESOURCE[Food]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = water + displayName = #autoLOC_TACLS_00017 // Water + linkedVariant = Water + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Water + amount = #$@PART[TacWaterContainerSmall]/RESOURCE[Water]/amount$ + maxAmount = #$@PART[TacWaterContainerSmall]/RESOURCE[Water]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + linkedVariant = Oxygen + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Oxygen + amount = #$@PART[TacOxygenContainerSmall]/RESOURCE[Oxygen]/amount$ + maxAmount = #$@PART[TacOxygenContainerSmall]/RESOURCE[Oxygen]/maxAmount$ + } + } + + -RESOURCE[Food] {} + -RESOURCE[Water] {} + -RESOURCE[Oxygen] {} +} + +// Hide the original un-"condensed" parts, since they're no longer needed. +@PART[TacFoodContainerSmall|TacWaterContainerSmall|TacOxygenContainerSmall]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/Container_1.cfg b/files/patches/TACLS/Container_1.cfg index 26de117..36af9aa 100644 --- a/files/patches/TACLS/Container_1.cfg +++ b/files/patches/TACLS/Container_1.cfg @@ -1,147 +1,147 @@ -// Condense the various 1.25m TACLS supply containers into a single part -// that has switchable resources via variants. - -@PART[TacLifeSupportContainer]:AFTER[ThunderAerospace] -{ - // First, set up all the variants - MODULE - { - name = ModulePartVariants - baseVariant = LifeSupport - VARIANT - { - name = LifeSupport - displayName = Supplies - primaryColor = #39826b - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/Texture - } - } - VARIANT - { - name = Food - displayName = #autoLOC_TACLS_00016 // Food - primaryColor = #b29368 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/FoodTexture - } - } - VARIANT - { - name = Water - displayName = #autoLOC_TACLS_00017 // Water - primaryColor = #316178 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WaterTexture - } - } - VARIANT - { - name = Oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - primaryColor = #94aebd - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture - } - } - } - - // Need this to make the resources switchable - MODULE - { - name = ModuleSimpleFuelSwitch - } - - // Now set up the switchable resource options for the part. - MODULE - { - name = ModuleSwitchableResources - resourcesId = supplies - displayName = Supplies - linkedVariant = LifeSupport - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$/RESOURCE[Food]/amount$ - maxAmount = #$/RESOURCE[Food]/maxAmount$ - } - RESOURCE - { - name = Water - amount = #$/RESOURCE[Water]/amount$ - maxAmount = #$/RESOURCE[Water]/maxAmount$ - } - RESOURCE - { - name = Oxygen - amount = #$/RESOURCE[Oxygen]/amount$ - maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = food - displayName = #autoLOC_TACLS_00016 // Food - linkedVariant = Food - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$@PART[TacFoodContainer]/RESOURCE[Food]/amount$ - maxAmount = #$@PART[TacFoodContainer]/RESOURCE[Food]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = water - displayName = #autoLOC_TACLS_00017 // Water - linkedVariant = Water - selectorFieldName = Supply Type - RESOURCE - { - name = Water - amount = #$@PART[TacWaterContainer]/RESOURCE[Water]/amount$ - maxAmount = #$@PART[TacWaterContainer]/RESOURCE[Water]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - linkedVariant = Oxygen - selectorFieldName = Supply Type - RESOURCE - { - name = Oxygen - amount = #$@PART[TacOxygenContainer]/RESOURCE[Oxygen]/amount$ - maxAmount = #$@PART[TacOxygenContainer]/RESOURCE[Oxygen]/maxAmount$ - } - } - - -RESOURCE[Food] {} - -RESOURCE[Water] {} - -RESOURCE[Oxygen] {} -} - -// Hide the original un-"condensed" parts, since they're no longer needed. -@PART[TacFoodContainer|TacWaterContainer|TacOxygenContainer]:AFTER[ThunderAerospace] -{ - %TechHidden = True - @category = none - @tags ^= :\s*cck-lifesupport:: -} +// Condense the various 1.25m TACLS supply containers into a single part +// that has switchable resources via variants. + +@PART[TacLifeSupportContainer]:AFTER[ThunderAerospace] +{ + // First, set up all the variants + MODULE + { + name = ModulePartVariants + baseVariant = LifeSupport + VARIANT + { + name = LifeSupport + displayName = Supplies + primaryColor = #39826b + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/Texture + } + } + VARIANT + { + name = Food + displayName = #autoLOC_TACLS_00016 // Food + primaryColor = #b29368 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/FoodTexture + } + } + VARIANT + { + name = Water + displayName = #autoLOC_TACLS_00017 // Water + primaryColor = #316178 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WaterTexture + } + } + VARIANT + { + name = Oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + primaryColor = #94aebd + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture + } + } + } + + // Need this to make the resources switchable + MODULE + { + name = ModuleSimpleFuelSwitch + } + + // Now set up the switchable resource options for the part. + MODULE + { + name = ModuleSwitchableResources + resourcesId = supplies + displayName = Supplies + linkedVariant = LifeSupport + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$/RESOURCE[Food]/amount$ + maxAmount = #$/RESOURCE[Food]/maxAmount$ + } + RESOURCE + { + name = Water + amount = #$/RESOURCE[Water]/amount$ + maxAmount = #$/RESOURCE[Water]/maxAmount$ + } + RESOURCE + { + name = Oxygen + amount = #$/RESOURCE[Oxygen]/amount$ + maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = food + displayName = #autoLOC_TACLS_00016 // Food + linkedVariant = Food + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$@PART[TacFoodContainer]/RESOURCE[Food]/amount$ + maxAmount = #$@PART[TacFoodContainer]/RESOURCE[Food]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = water + displayName = #autoLOC_TACLS_00017 // Water + linkedVariant = Water + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Water + amount = #$@PART[TacWaterContainer]/RESOURCE[Water]/amount$ + maxAmount = #$@PART[TacWaterContainer]/RESOURCE[Water]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + linkedVariant = Oxygen + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Oxygen + amount = #$@PART[TacOxygenContainer]/RESOURCE[Oxygen]/amount$ + maxAmount = #$@PART[TacOxygenContainer]/RESOURCE[Oxygen]/maxAmount$ + } + } + + -RESOURCE[Food] {} + -RESOURCE[Water] {} + -RESOURCE[Oxygen] {} +} + +// Hide the original un-"condensed" parts, since they're no longer needed. +@PART[TacFoodContainer|TacWaterContainer|TacOxygenContainer]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/Container_2.cfg b/files/patches/TACLS/Container_2.cfg index 00c95c6..b49e958 100644 --- a/files/patches/TACLS/Container_2.cfg +++ b/files/patches/TACLS/Container_2.cfg @@ -1,147 +1,147 @@ -// Condense the various 2.5m TACLS supply containers into a single part -// that has switchable resources via variants. - -@PART[TacLifeSupportContainerLarge]:AFTER[ThunderAerospace] -{ - // First, set up all the variants - MODULE - { - name = ModulePartVariants - baseVariant = LifeSupport - VARIANT - { - name = LifeSupport - displayName = Supplies - primaryColor = #39826b - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/Texture - } - } - VARIANT - { - name = Food - displayName = #autoLOC_TACLS_00016 // Food - primaryColor = #b29368 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/FoodTexture - } - } - VARIANT - { - name = Water - displayName = #autoLOC_TACLS_00017 // Water - primaryColor = #316178 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WaterTexture - } - } - VARIANT - { - name = Oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - primaryColor = #94aebd - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture - } - } - } - - // Need this to make the resources switchable - MODULE - { - name = ModuleSimpleFuelSwitch - } - - // Now set up the switchable resource options for the part. - MODULE - { - name = ModuleSwitchableResources - resourcesId = supplies - displayName = Supplies - linkedVariant = LifeSupport - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$/RESOURCE[Food]/amount$ - maxAmount = #$/RESOURCE[Food]/maxAmount$ - } - RESOURCE - { - name = Water - amount = #$/RESOURCE[Water]/amount$ - maxAmount = #$/RESOURCE[Water]/maxAmount$ - } - RESOURCE - { - name = Oxygen - amount = #$/RESOURCE[Oxygen]/amount$ - maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = food - displayName = #autoLOC_TACLS_00016 // Food - linkedVariant = Food - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$@PART[TacFoodContainerLarge]/RESOURCE[Food]/amount$ - maxAmount = #$@PART[TacFoodContainerLarge]/RESOURCE[Food]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = water - displayName = #autoLOC_TACLS_00017 // Water - linkedVariant = Water - selectorFieldName = Supply Type - RESOURCE - { - name = Water - amount = #$@PART[TacWaterContainerLarge]/RESOURCE[Water]/amount$ - maxAmount = #$@PART[TacWaterContainerLarge]/RESOURCE[Water]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - linkedVariant = Oxygen - selectorFieldName = Supply Type - RESOURCE - { - name = Oxygen - amount = #$@PART[TacOxygenContainerLarge]/RESOURCE[Oxygen]/amount$ - maxAmount = #$@PART[TacOxygenContainerLarge]/RESOURCE[Oxygen]/maxAmount$ - } - } - - -RESOURCE[Food] {} - -RESOURCE[Water] {} - -RESOURCE[Oxygen] {} -} - -// Hide the original un-"condensed" parts, since they're no longer needed. -@PART[TacFoodContainerLarge|TacWaterContainerLarge|TacOxygenContainerLarge]:AFTER[ThunderAerospace] -{ - %TechHidden = True - @category = none - @tags ^= :\s*cck-lifesupport:: -} +// Condense the various 2.5m TACLS supply containers into a single part +// that has switchable resources via variants. + +@PART[TacLifeSupportContainerLarge]:AFTER[ThunderAerospace] +{ + // First, set up all the variants + MODULE + { + name = ModulePartVariants + baseVariant = LifeSupport + VARIANT + { + name = LifeSupport + displayName = Supplies + primaryColor = #39826b + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/Texture + } + } + VARIANT + { + name = Food + displayName = #autoLOC_TACLS_00016 // Food + primaryColor = #b29368 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/FoodTexture + } + } + VARIANT + { + name = Water + displayName = #autoLOC_TACLS_00017 // Water + primaryColor = #316178 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WaterTexture + } + } + VARIANT + { + name = Oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + primaryColor = #94aebd + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture + } + } + } + + // Need this to make the resources switchable + MODULE + { + name = ModuleSimpleFuelSwitch + } + + // Now set up the switchable resource options for the part. + MODULE + { + name = ModuleSwitchableResources + resourcesId = supplies + displayName = Supplies + linkedVariant = LifeSupport + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$/RESOURCE[Food]/amount$ + maxAmount = #$/RESOURCE[Food]/maxAmount$ + } + RESOURCE + { + name = Water + amount = #$/RESOURCE[Water]/amount$ + maxAmount = #$/RESOURCE[Water]/maxAmount$ + } + RESOURCE + { + name = Oxygen + amount = #$/RESOURCE[Oxygen]/amount$ + maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = food + displayName = #autoLOC_TACLS_00016 // Food + linkedVariant = Food + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$@PART[TacFoodContainerLarge]/RESOURCE[Food]/amount$ + maxAmount = #$@PART[TacFoodContainerLarge]/RESOURCE[Food]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = water + displayName = #autoLOC_TACLS_00017 // Water + linkedVariant = Water + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Water + amount = #$@PART[TacWaterContainerLarge]/RESOURCE[Water]/amount$ + maxAmount = #$@PART[TacWaterContainerLarge]/RESOURCE[Water]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + linkedVariant = Oxygen + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Oxygen + amount = #$@PART[TacOxygenContainerLarge]/RESOURCE[Oxygen]/amount$ + maxAmount = #$@PART[TacOxygenContainerLarge]/RESOURCE[Oxygen]/maxAmount$ + } + } + + -RESOURCE[Food] {} + -RESOURCE[Water] {} + -RESOURCE[Oxygen] {} +} + +// Hide the original un-"condensed" parts, since they're no longer needed. +@PART[TacFoodContainerLarge|TacWaterContainerLarge|TacOxygenContainerLarge]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/Container_3.cfg b/files/patches/TACLS/Container_3.cfg index 69348c7..047f326 100644 --- a/files/patches/TACLS/Container_3.cfg +++ b/files/patches/TACLS/Container_3.cfg @@ -1,147 +1,147 @@ -// Condense the various 3.75m TACLS supply containers into a single part -// that has switchable resources via variants. - -@PART[TacLifeSupportContainerLarge375]:AFTER[ThunderAerospace] -{ - // First, set up all the variants - MODULE - { - name = ModulePartVariants - baseVariant = LifeSupport - VARIANT - { - name = LifeSupport - displayName = Supplies - primaryColor = #39826b - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/Texture - } - } - VARIANT - { - name = Food - displayName = #autoLOC_TACLS_00016 // Food - primaryColor = #b29368 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/FoodTexture - } - } - VARIANT - { - name = Water - displayName = #autoLOC_TACLS_00017 // Water - primaryColor = #316178 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WaterTexture - } - } - VARIANT - { - name = Oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - primaryColor = #94aebd - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture - } - } - } - - // Need this to make the resources switchable - MODULE - { - name = ModuleSimpleFuelSwitch - } - - // Now set up the switchable resource options for the part. - MODULE - { - name = ModuleSwitchableResources - resourcesId = supplies - displayName = Supplies - linkedVariant = LifeSupport - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$/RESOURCE[Food]/amount$ - maxAmount = #$/RESOURCE[Food]/maxAmount$ - } - RESOURCE - { - name = Water - amount = #$/RESOURCE[Water]/amount$ - maxAmount = #$/RESOURCE[Water]/maxAmount$ - } - RESOURCE - { - name = Oxygen - amount = #$/RESOURCE[Oxygen]/amount$ - maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = food - displayName = #autoLOC_TACLS_00016 // Food - linkedVariant = Food - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$@PART[TacFoodContainerLarge375]/RESOURCE[Food]/amount$ - maxAmount = #$@PART[TacFoodContainerLarge375]/RESOURCE[Food]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = water - displayName = #autoLOC_TACLS_00017 // Water - linkedVariant = Water - selectorFieldName = Supply Type - RESOURCE - { - name = Water - amount = #$@PART[TacWaterContainerLarge375]/RESOURCE[Water]/amount$ - maxAmount = #$@PART[TacWaterContainerLarge375]/RESOURCE[Water]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - linkedVariant = Oxygen - selectorFieldName = Supply Type - RESOURCE - { - name = Oxygen - amount = #$@PART[TacOxygenContainerLarge375]/RESOURCE[Oxygen]/amount$ - maxAmount = #$@PART[TacOxygenContainerLarge375]/RESOURCE[Oxygen]/maxAmount$ - } - } - - -RESOURCE[Food] {} - -RESOURCE[Water] {} - -RESOURCE[Oxygen] {} -} - -// Hide the original un-"condensed" parts, since they're no longer needed. -@PART[TacFoodContainerLarge375|TacWaterContainerLarge375|TacOxygenContainerLarge375]:AFTER[ThunderAerospace] -{ - %TechHidden = True - @category = none - @tags ^= :\s*cck-lifesupport:: -} +// Condense the various 3.75m TACLS supply containers into a single part +// that has switchable resources via variants. + +@PART[TacLifeSupportContainerLarge375]:AFTER[ThunderAerospace] +{ + // First, set up all the variants + MODULE + { + name = ModulePartVariants + baseVariant = LifeSupport + VARIANT + { + name = LifeSupport + displayName = Supplies + primaryColor = #39826b + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/Texture + } + } + VARIANT + { + name = Food + displayName = #autoLOC_TACLS_00016 // Food + primaryColor = #b29368 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/FoodTexture + } + } + VARIANT + { + name = Water + displayName = #autoLOC_TACLS_00017 // Water + primaryColor = #316178 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WaterTexture + } + } + VARIANT + { + name = Oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + primaryColor = #94aebd + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture + } + } + } + + // Need this to make the resources switchable + MODULE + { + name = ModuleSimpleFuelSwitch + } + + // Now set up the switchable resource options for the part. + MODULE + { + name = ModuleSwitchableResources + resourcesId = supplies + displayName = Supplies + linkedVariant = LifeSupport + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$/RESOURCE[Food]/amount$ + maxAmount = #$/RESOURCE[Food]/maxAmount$ + } + RESOURCE + { + name = Water + amount = #$/RESOURCE[Water]/amount$ + maxAmount = #$/RESOURCE[Water]/maxAmount$ + } + RESOURCE + { + name = Oxygen + amount = #$/RESOURCE[Oxygen]/amount$ + maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = food + displayName = #autoLOC_TACLS_00016 // Food + linkedVariant = Food + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$@PART[TacFoodContainerLarge375]/RESOURCE[Food]/amount$ + maxAmount = #$@PART[TacFoodContainerLarge375]/RESOURCE[Food]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = water + displayName = #autoLOC_TACLS_00017 // Water + linkedVariant = Water + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Water + amount = #$@PART[TacWaterContainerLarge375]/RESOURCE[Water]/amount$ + maxAmount = #$@PART[TacWaterContainerLarge375]/RESOURCE[Water]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + linkedVariant = Oxygen + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Oxygen + amount = #$@PART[TacOxygenContainerLarge375]/RESOURCE[Oxygen]/amount$ + maxAmount = #$@PART[TacOxygenContainerLarge375]/RESOURCE[Oxygen]/maxAmount$ + } + } + + -RESOURCE[Food] {} + -RESOURCE[Water] {} + -RESOURCE[Oxygen] {} +} + +// Hide the original un-"condensed" parts, since they're no longer needed. +@PART[TacFoodContainerLarge375|TacWaterContainerLarge375|TacOxygenContainerLarge375]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/HexCan_large.cfg b/files/patches/TACLS/HexCan_large.cfg index 8862ece..4c6d32e 100644 --- a/files/patches/TACLS/HexCan_large.cfg +++ b/files/patches/TACLS/HexCan_large.cfg @@ -1,146 +1,146 @@ -// Condense the various "large" TACLS hex cans into a single part -// that has switchable resources via variants. - -@PART[HexCanLifeSupportLarge]:AFTER[ThunderAerospace] -{ - MODULE - { - name = ModulePartVariants - baseVariant = LifeSupport - VARIANT - { - name = LifeSupport - displayName = Supplies - primaryColor = #39826b - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanLifeSupport/Texture - } - } - VARIANT - { - name = Food - displayName = #autoLOC_TACLS_00016 // Food - primaryColor = #b29368 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanFood/Texture - } - } - VARIANT - { - name = Water - displayName = #autoLOC_TACLS_00017 // Water - primaryColor = #316178 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanDrinkingWater/Texture - } - } - VARIANT - { - name = Oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - primaryColor = #94aebd - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanBreathingOxygen/Texture - } - } - } - - // Need this to make the resources switchable - MODULE - { - name = ModuleSimpleFuelSwitch - } - - // Now set up the switchable resource options for the part. - MODULE - { - name = ModuleSwitchableResources - resourcesId = supplies - displayName = Supplies - linkedVariant = LifeSupport - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$/RESOURCE[Food]/amount$ - maxAmount = #$/RESOURCE[Food]/maxAmount$ - } - RESOURCE - { - name = Water - amount = #$/RESOURCE[Water]/amount$ - maxAmount = #$/RESOURCE[Water]/maxAmount$ - } - RESOURCE - { - name = Oxygen - amount = #$/RESOURCE[Oxygen]/amount$ - maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = food - displayName = #autoLOC_TACLS_00016 // Food - linkedVariant = Food - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$@PART[HexCanFoodLarge]/RESOURCE[Food]/amount$ - maxAmount = #$@PART[HexCanFoodLarge]/RESOURCE[Food]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = water - displayName = #autoLOC_TACLS_00017 // Water - linkedVariant = Water - selectorFieldName = Supply Type - RESOURCE - { - name = Water - amount = #$@PART[HexCanDrinkingWaterLarge]/RESOURCE[Water]/amount$ - maxAmount = #$@PART[HexCanDrinkingWaterLarge]/RESOURCE[Water]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - linkedVariant = Oxygen - selectorFieldName = Supply Type - RESOURCE - { - name = Oxygen - amount = #$@PART[HexCanOxygenLarge]/RESOURCE[Oxygen]/amount$ - maxAmount = #$@PART[HexCanOxygenLarge]/RESOURCE[Oxygen]/maxAmount$ - } - } - - -RESOURCE[Food] {} - -RESOURCE[Water] {} - -RESOURCE[Oxygen] {} -} - -// Hide the original un-"condensed" parts, since they're no longer needed. -@PART[HexCanFoodLarge|HexCanDrinkingWaterLarge|HexCanOxygenLarge]:AFTER[ThunderAerospace] -{ - %TechHidden = True - @category = none - @tags ^= :\s*cck-lifesupport:: -} +// Condense the various "large" TACLS hex cans into a single part +// that has switchable resources via variants. + +@PART[HexCanLifeSupportLarge]:AFTER[ThunderAerospace] +{ + MODULE + { + name = ModulePartVariants + baseVariant = LifeSupport + VARIANT + { + name = LifeSupport + displayName = Supplies + primaryColor = #39826b + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanLifeSupport/Texture + } + } + VARIANT + { + name = Food + displayName = #autoLOC_TACLS_00016 // Food + primaryColor = #b29368 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanFood/Texture + } + } + VARIANT + { + name = Water + displayName = #autoLOC_TACLS_00017 // Water + primaryColor = #316178 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanDrinkingWater/Texture + } + } + VARIANT + { + name = Oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + primaryColor = #94aebd + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanBreathingOxygen/Texture + } + } + } + + // Need this to make the resources switchable + MODULE + { + name = ModuleSimpleFuelSwitch + } + + // Now set up the switchable resource options for the part. + MODULE + { + name = ModuleSwitchableResources + resourcesId = supplies + displayName = Supplies + linkedVariant = LifeSupport + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$/RESOURCE[Food]/amount$ + maxAmount = #$/RESOURCE[Food]/maxAmount$ + } + RESOURCE + { + name = Water + amount = #$/RESOURCE[Water]/amount$ + maxAmount = #$/RESOURCE[Water]/maxAmount$ + } + RESOURCE + { + name = Oxygen + amount = #$/RESOURCE[Oxygen]/amount$ + maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = food + displayName = #autoLOC_TACLS_00016 // Food + linkedVariant = Food + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$@PART[HexCanFoodLarge]/RESOURCE[Food]/amount$ + maxAmount = #$@PART[HexCanFoodLarge]/RESOURCE[Food]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = water + displayName = #autoLOC_TACLS_00017 // Water + linkedVariant = Water + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Water + amount = #$@PART[HexCanDrinkingWaterLarge]/RESOURCE[Water]/amount$ + maxAmount = #$@PART[HexCanDrinkingWaterLarge]/RESOURCE[Water]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + linkedVariant = Oxygen + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Oxygen + amount = #$@PART[HexCanOxygenLarge]/RESOURCE[Oxygen]/amount$ + maxAmount = #$@PART[HexCanOxygenLarge]/RESOURCE[Oxygen]/maxAmount$ + } + } + + -RESOURCE[Food] {} + -RESOURCE[Water] {} + -RESOURCE[Oxygen] {} +} + +// Hide the original un-"condensed" parts, since they're no longer needed. +@PART[HexCanFoodLarge|HexCanDrinkingWaterLarge|HexCanOxygenLarge]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/HexCan_medium.cfg b/files/patches/TACLS/HexCan_medium.cfg index 3731b5e..b171cbc 100644 --- a/files/patches/TACLS/HexCan_medium.cfg +++ b/files/patches/TACLS/HexCan_medium.cfg @@ -1,146 +1,146 @@ -// Condense the various "medium" TACLS hex cans into a single part -// that has switchable resources via variants. - -@PART[HexCanLifeSupport]:AFTER[ThunderAerospace] -{ - MODULE - { - name = ModulePartVariants - baseVariant = LifeSupport - VARIANT - { - name = LifeSupport - displayName = Supplies - primaryColor = #39826b - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanLifeSupport/Texture - } - } - VARIANT - { - name = Food - displayName = #autoLOC_TACLS_00016 // Food - primaryColor = #b29368 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanFood/Texture - } - } - VARIANT - { - name = Water - displayName = #autoLOC_TACLS_00017 // Water - primaryColor = #316178 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanDrinkingWater/Texture - } - } - VARIANT - { - name = Oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - primaryColor = #94aebd - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanBreathingOxygen/Texture - } - } - } - - // Need this to make the resources switchable - MODULE - { - name = ModuleSimpleFuelSwitch - } - - // Now set up the switchable resource options for the part. - MODULE - { - name = ModuleSwitchableResources - resourcesId = supplies - displayName = Supplies - linkedVariant = LifeSupport - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$/RESOURCE[Food]/amount$ - maxAmount = #$/RESOURCE[Food]/maxAmount$ - } - RESOURCE - { - name = Water - amount = #$/RESOURCE[Water]/amount$ - maxAmount = #$/RESOURCE[Water]/maxAmount$ - } - RESOURCE - { - name = Oxygen - amount = #$/RESOURCE[Oxygen]/amount$ - maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = food - displayName = #autoLOC_TACLS_00016 // Food - linkedVariant = Food - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$@PART[HexCanFood]/RESOURCE[Food]/amount$ - maxAmount = #$@PART[HexCanFood]/RESOURCE[Food]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = water - displayName = #autoLOC_TACLS_00017 // Water - linkedVariant = Water - selectorFieldName = Supply Type - RESOURCE - { - name = Water - amount = #$@PART[HexCanDrinkingWater]/RESOURCE[Water]/amount$ - maxAmount = #$@PART[HexCanDrinkingWater]/RESOURCE[Water]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - linkedVariant = Oxygen - selectorFieldName = Supply Type - RESOURCE - { - name = Oxygen - amount = #$@PART[HexCanOxygen]/RESOURCE[Oxygen]/amount$ - maxAmount = #$@PART[HexCanOxygen]/RESOURCE[Oxygen]/maxAmount$ - } - } - - -RESOURCE[Food] {} - -RESOURCE[Water] {} - -RESOURCE[Oxygen] {} -} - -// Hide the original un-"condensed" parts, since they're no longer needed. -@PART[HexCanFood|HexCanDrinkingWater|HexCanOxygen]:AFTER[ThunderAerospace] -{ - %TechHidden = True - @category = none - @tags ^= :\s*cck-lifesupport:: -} +// Condense the various "medium" TACLS hex cans into a single part +// that has switchable resources via variants. + +@PART[HexCanLifeSupport]:AFTER[ThunderAerospace] +{ + MODULE + { + name = ModulePartVariants + baseVariant = LifeSupport + VARIANT + { + name = LifeSupport + displayName = Supplies + primaryColor = #39826b + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanLifeSupport/Texture + } + } + VARIANT + { + name = Food + displayName = #autoLOC_TACLS_00016 // Food + primaryColor = #b29368 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanFood/Texture + } + } + VARIANT + { + name = Water + displayName = #autoLOC_TACLS_00017 // Water + primaryColor = #316178 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanDrinkingWater/Texture + } + } + VARIANT + { + name = Oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + primaryColor = #94aebd + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanBreathingOxygen/Texture + } + } + } + + // Need this to make the resources switchable + MODULE + { + name = ModuleSimpleFuelSwitch + } + + // Now set up the switchable resource options for the part. + MODULE + { + name = ModuleSwitchableResources + resourcesId = supplies + displayName = Supplies + linkedVariant = LifeSupport + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$/RESOURCE[Food]/amount$ + maxAmount = #$/RESOURCE[Food]/maxAmount$ + } + RESOURCE + { + name = Water + amount = #$/RESOURCE[Water]/amount$ + maxAmount = #$/RESOURCE[Water]/maxAmount$ + } + RESOURCE + { + name = Oxygen + amount = #$/RESOURCE[Oxygen]/amount$ + maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = food + displayName = #autoLOC_TACLS_00016 // Food + linkedVariant = Food + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$@PART[HexCanFood]/RESOURCE[Food]/amount$ + maxAmount = #$@PART[HexCanFood]/RESOURCE[Food]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = water + displayName = #autoLOC_TACLS_00017 // Water + linkedVariant = Water + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Water + amount = #$@PART[HexCanDrinkingWater]/RESOURCE[Water]/amount$ + maxAmount = #$@PART[HexCanDrinkingWater]/RESOURCE[Water]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + linkedVariant = Oxygen + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Oxygen + amount = #$@PART[HexCanOxygen]/RESOURCE[Oxygen]/amount$ + maxAmount = #$@PART[HexCanOxygen]/RESOURCE[Oxygen]/maxAmount$ + } + } + + -RESOURCE[Food] {} + -RESOURCE[Water] {} + -RESOURCE[Oxygen] {} +} + +// Hide the original un-"condensed" parts, since they're no longer needed. +@PART[HexCanFood|HexCanDrinkingWater|HexCanOxygen]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/HexCan_small.cfg b/files/patches/TACLS/HexCan_small.cfg index f764d56..b9c957d 100644 --- a/files/patches/TACLS/HexCan_small.cfg +++ b/files/patches/TACLS/HexCan_small.cfg @@ -1,146 +1,146 @@ -// Condense the various "small" TACLS hex cans into a single part -// that has switchable resources via variants. - -@PART[HexCanLifeSupportSmall]:AFTER[ThunderAerospace] -{ - MODULE - { - name = ModulePartVariants - baseVariant = LifeSupport - VARIANT - { - name = LifeSupport - displayName = Supplies - primaryColor = #39826b - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanLifeSupport/Texture - } - } - VARIANT - { - name = Food - displayName = #autoLOC_TACLS_00016 // Food - primaryColor = #b29368 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanFood/Texture - } - } - VARIANT - { - name = Water - displayName = #autoLOC_TACLS_00017 // Water - primaryColor = #316178 - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanDrinkingWater/Texture - } - } - VARIANT - { - name = Oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - primaryColor = #94aebd - secondaryColor = #ffffff - TEXTURE - { - mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanBreathingOxygen/Texture - } - } - } - - // Need this to make the resources switchable - MODULE - { - name = ModuleSimpleFuelSwitch - } - - // Now set up the switchable resource options for the part. - MODULE - { - name = ModuleSwitchableResources - resourcesId = supplies - displayName = Supplies - linkedVariant = LifeSupport - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$/RESOURCE[Food]/amount$ - maxAmount = #$/RESOURCE[Food]/maxAmount$ - } - RESOURCE - { - name = Water - amount = #$/RESOURCE[Water]/amount$ - maxAmount = #$/RESOURCE[Water]/maxAmount$ - } - RESOURCE - { - name = Oxygen - amount = #$/RESOURCE[Oxygen]/amount$ - maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = food - displayName = #autoLOC_TACLS_00016 // Food - linkedVariant = Food - selectorFieldName = Supply Type - RESOURCE - { - name = Food - amount = #$@PART[HexCanFoodSmall]/RESOURCE[Food]/amount$ - maxAmount = #$@PART[HexCanFoodSmall]/RESOURCE[Food]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = water - displayName = #autoLOC_TACLS_00017 // Water - linkedVariant = Water - selectorFieldName = Supply Type - RESOURCE - { - name = Water - amount = #$@PART[HexCanDrinkingWaterSmall]/RESOURCE[Water]/amount$ - maxAmount = #$@PART[HexCanDrinkingWaterSmall]/RESOURCE[Water]/maxAmount$ - } - } - - MODULE - { - name = ModuleSwitchableResources - resourcesId = oxygen - displayName = #autoLOC_TACLS_00018 // Oxygen - linkedVariant = Oxygen - selectorFieldName = Supply Type - RESOURCE - { - name = Oxygen - amount = #$@PART[HexCanOxygenSmall]/RESOURCE[Oxygen]/amount$ - maxAmount = #$@PART[HexCanOxygenSmall]/RESOURCE[Oxygen]/maxAmount$ - } - } - - -RESOURCE[Food] {} - -RESOURCE[Water] {} - -RESOURCE[Oxygen] {} -} - -// Hide the original un-"condensed" parts, since they're no longer needed. -@PART[HexCanFoodSmall|HexCanDrinkingWaterSmall|HexCanOxygenSmall]:AFTER[ThunderAerospace] -{ - %TechHidden = True - @category = none - @tags ^= :\s*cck-lifesupport:: -} +// Condense the various "small" TACLS hex cans into a single part +// that has switchable resources via variants. + +@PART[HexCanLifeSupportSmall]:AFTER[ThunderAerospace] +{ + MODULE + { + name = ModulePartVariants + baseVariant = LifeSupport + VARIANT + { + name = LifeSupport + displayName = Supplies + primaryColor = #39826b + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanLifeSupport/Texture + } + } + VARIANT + { + name = Food + displayName = #autoLOC_TACLS_00016 // Food + primaryColor = #b29368 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanFood/Texture + } + } + VARIANT + { + name = Water + displayName = #autoLOC_TACLS_00017 // Water + primaryColor = #316178 + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanDrinkingWater/Texture + } + } + VARIANT + { + name = Oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + primaryColor = #94aebd + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanBreathingOxygen/Texture + } + } + } + + // Need this to make the resources switchable + MODULE + { + name = ModuleSimpleFuelSwitch + } + + // Now set up the switchable resource options for the part. + MODULE + { + name = ModuleSwitchableResources + resourcesId = supplies + displayName = Supplies + linkedVariant = LifeSupport + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$/RESOURCE[Food]/amount$ + maxAmount = #$/RESOURCE[Food]/maxAmount$ + } + RESOURCE + { + name = Water + amount = #$/RESOURCE[Water]/amount$ + maxAmount = #$/RESOURCE[Water]/maxAmount$ + } + RESOURCE + { + name = Oxygen + amount = #$/RESOURCE[Oxygen]/amount$ + maxAmount = #$/RESOURCE[Oxygen]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = food + displayName = #autoLOC_TACLS_00016 // Food + linkedVariant = Food + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Food + amount = #$@PART[HexCanFoodSmall]/RESOURCE[Food]/amount$ + maxAmount = #$@PART[HexCanFoodSmall]/RESOURCE[Food]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = water + displayName = #autoLOC_TACLS_00017 // Water + linkedVariant = Water + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Water + amount = #$@PART[HexCanDrinkingWaterSmall]/RESOURCE[Water]/amount$ + maxAmount = #$@PART[HexCanDrinkingWaterSmall]/RESOURCE[Water]/maxAmount$ + } + } + + MODULE + { + name = ModuleSwitchableResources + resourcesId = oxygen + displayName = #autoLOC_TACLS_00018 // Oxygen + linkedVariant = Oxygen + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = Oxygen + amount = #$@PART[HexCanOxygenSmall]/RESOURCE[Oxygen]/amount$ + maxAmount = #$@PART[HexCanOxygenSmall]/RESOURCE[Oxygen]/maxAmount$ + } + } + + -RESOURCE[Food] {} + -RESOURCE[Water] {} + -RESOURCE[Oxygen] {} +} + +// Hide the original un-"condensed" parts, since they're no longer needed. +@PART[HexCanFoodSmall|HexCanDrinkingWaterSmall|HexCanOxygenSmall]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} From 658155d36a8727e0aec7c241523fcca4ef623c68 Mon Sep 17 00:00:00 2001 From: RafaelDominiquini <61922887+RafaelDominiquini@users.noreply.github.com> Date: Wed, 23 Jun 2021 21:55:23 -0300 Subject: [PATCH 4/7] Some updates --- files/localization/en-us.cfg | 78 ++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/files/localization/en-us.cfg b/files/localization/en-us.cfg index b5b0527..8d9f762 100644 --- a/files/localization/en-us.cfg +++ b/files/localization/en-us.cfg @@ -1,38 +1,40 @@ -Localization -{ - en-us - { - // Labels displayed in the PAW showing what you can choose from. - #SimpleFuelSwitch_resourceLabel = Resource - #SimpleFuelSwitch_fuelTypeLabel = Fuel Type - - // Short display names for various resource combinations - #SimpleFuelSwitch_LiquidFuelAndOxidizer = LFO - #SimpleFuelSwitch_LiquidFuel = LF - - // Formats "primary info" display in the part info panel in the editor. - // [0] is the label (e.g. fuelTypeLabel above). - // [1] is the display name of the fuel option (e.g. "LFO" or whatever) - // [2] is the quantity of resource involved. - #SimpleFuelSwitch_primaryInfoFormat = [0] [1]: [2] - - // Formats the title of each of the option panes in the part info panel. - // [0] is the label (e.g. fuelTypeLabel above). - // [1] is the display name of the resource combination. - #SimpleFuelSwitch_titleFormat = [0]: [1] - - // Same as titleFormat, except this one's applied to the default selection. - #SimpleFuelSwitch_titleFormatDefault = [0]: [1] (Default) - - // Formats "detailed info" for one resource in the info panel at right. - // [0] is the display name of the resource (e.g. "Liquid Fuel") - // [1] is the quantity (e.g. "0.3 t") - #SimpleFuelSwitch_detailedInfoFormat = [0]: [1] - - // Formats a number in tons to a displayable version, with units. - #SimpleFuelSwitch_massTonsFormat = [0:0.0##] t - - // Display name to use for a selection that has no resources in it. - #SimpleFuelSwitch_noResources = No Resources - } -} +Localization +{ + en-us + { + // Labels displayed in the PAW showing what you can choose from. + #SimpleFuelSwitch_fuelTypeLabel = Fuel Type + #SimpleFuelSwitch_supplyLabel = Supply Type + #SimpleFuelSwitch_resourceLabel = Resource Type + + // Short display names for various resource combinations + #SimpleFuelSwitch_LiquidFuelAndOxidizer = LF+Ox + #SimpleFuelSwitch_LiquidFuel = LF + #SimpleFuelSwitch_Oxidizer = Ox + + // Formats "primary info" display in the part info panel in the editor. + // [0] is the label (e.g. fuelTypeLabel above). + // [1] is the display name of the fuel option (e.g. "LFO" or whatever) + // [2] is the quantity of resource involved. + #SimpleFuelSwitch_primaryInfoFormat = [0] [1]: [2] + + // Formats the title of each of the option panes in the part info panel. + // [0] is the label (e.g. fuelTypeLabel above). + // [1] is the display name of the resource combination. + #SimpleFuelSwitch_titleFormat = [0]: [1] + + // Same as titleFormat, except this one's applied to the default selection. + #SimpleFuelSwitch_titleFormatDefault = [0]: [1] (Default) + + // Formats "detailed info" for one resource in the info panel at right. + // [0] is the display name of the resource (e.g. "Liquid Fuel") + // [1] is the quantity (e.g. "0.3 t") + #SimpleFuelSwitch_detailedInfoFormat = [0]: [1] + + // Formats a number in tons to a displayable version, with units. + #SimpleFuelSwitch_massTonsFormat = [0:0.0##] t + + // Display name to use for a selection that has no resources in it. + #SimpleFuelSwitch_noResources = No Resources + } +} From 43f0953d94ebe0644a346126667f3935084fcb77 Mon Sep 17 00:00:00 2001 From: Rafael Dominiquini Date: Wed, 23 Jun 2021 22:10:57 -0300 Subject: [PATCH 5/7] Generic fuel tank conversions --- files/ModuleManager.4.1.0.dll | Bin 139264 -> 0 bytes files/ModuleManager.4.1.4.dll | Bin 0 -> 141312 bytes files/configs/Add_LF+Ox_to_LF_Ox_tanks.cfg | 129 ++++++++++++++++++ files/configs/Add_LFO_to_LF_tanks.cfg | 50 ------- ...tanks.cfg => Add_LF_Ox_to_LF+Ox_tanks.cfg} | 112 ++++++++------- 5 files changed, 193 insertions(+), 98 deletions(-) delete mode 100644 files/ModuleManager.4.1.0.dll create mode 100644 files/ModuleManager.4.1.4.dll create mode 100644 files/configs/Add_LF+Ox_to_LF_Ox_tanks.cfg delete mode 100644 files/configs/Add_LFO_to_LF_tanks.cfg rename files/configs/{Add_LF_to_LFO_tanks.cfg => Add_LF_Ox_to_LF+Ox_tanks.cfg} (63%) diff --git a/files/ModuleManager.4.1.0.dll b/files/ModuleManager.4.1.0.dll deleted file mode 100644 index a04d7dc67943e758577784ca4d616a2cc6d99449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139264 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 diff --git a/files/ModuleManager.4.1.4.dll b/files/ModuleManager.4.1.4.dll new file mode 100644 index 0000000000000000000000000000000000000000..b47a6da15edd2330867ffa438c4b89d65b9503ec GIT binary patch literal 141312 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
  • ;$=am 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 Date: Thu, 24 Jun 2021 04:34:29 -0300 Subject: [PATCH 6/7] Integrate and hide waste containers --- files/patches/TACLS/Container_0.cfg | 48 ++++++++++++++++++++++++++- files/patches/TACLS/Container_1.cfg | 48 ++++++++++++++++++++++++++- files/patches/TACLS/Container_2.cfg | 48 ++++++++++++++++++++++++++- files/patches/TACLS/Container_3.cfg | 48 ++++++++++++++++++++++++++- files/patches/TACLS/HexCan_large.cfg | 48 ++++++++++++++++++++++++++- files/patches/TACLS/HexCan_medium.cfg | 48 ++++++++++++++++++++++++++- files/patches/TACLS/HexCan_small.cfg | 48 ++++++++++++++++++++++++++- 7 files changed, 329 insertions(+), 7 deletions(-) diff --git a/files/patches/TACLS/Container_0.cfg b/files/patches/TACLS/Container_0.cfg index d50645b..8387ed7 100644 --- a/files/patches/TACLS/Container_0.cfg +++ b/files/patches/TACLS/Container_0.cfg @@ -1,7 +1,7 @@ // Condense the various 0.625m TACLS supply containers into a single part // that has switchable resources via variants. -@PART[TacLifeSupportContainerSmall]:AFTER[ThunderAerospace] +@PART[TacLifeSupportContainerSmall]:HAS[!MODULE[ModuleSimpleFuelSwitch]]:AFTER[ThunderAerospace] { MODULE { @@ -51,6 +51,17 @@ mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture } } + VARIANT + { + name = Waste + displayName = #autoLOC_TACLS_00020 // Waste + primaryColor = #1d1d1d + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WasteTexture + } + } } // Need this to make the resources switchable @@ -132,6 +143,33 @@ } } + MODULE + { + name = ModuleSwitchableResources + resourcesId = waste + displayName = #autoLOC_TACLS_00020 // Waste + linkedVariant = Waste + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = CarbonDioxide + amount = #$@PART[TacWasteContainerSmall]/RESOURCE[CarbonDioxide]/amount$ + maxAmount = #$@PART[TacWasteContainerSmall]/RESOURCE[CarbonDioxide]/maxAmount$ + } + RESOURCE + { + name = WasteWater + amount = #$@PART[TacWasteContainerSmall]/RESOURCE[WasteWater]/amount$ + maxAmount = #$@PART[TacWasteContainerSmall]/RESOURCE[WasteWater]/maxAmount$ + } + RESOURCE + { + name = Waste + amount = #$@PART[TacWasteContainerSmall]/RESOURCE[Waste]/amount$ + maxAmount = #$@PART[TacWasteContainerSmall]/RESOURCE[Waste]/maxAmount$ + } + } + -RESOURCE[Food] {} -RESOURCE[Water] {} -RESOURCE[Oxygen] {} @@ -144,3 +182,11 @@ @category = none @tags ^= :\s*cck-lifesupport:: } + +// Hide the original waste parts, since they're no longer needed. +@PART[TacWasteContainerSmall]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/Container_1.cfg b/files/patches/TACLS/Container_1.cfg index 36af9aa..4f1603d 100644 --- a/files/patches/TACLS/Container_1.cfg +++ b/files/patches/TACLS/Container_1.cfg @@ -1,7 +1,7 @@ // Condense the various 1.25m TACLS supply containers into a single part // that has switchable resources via variants. -@PART[TacLifeSupportContainer]:AFTER[ThunderAerospace] +@PART[TacLifeSupportContainer]:HAS[!MODULE[ModuleSimpleFuelSwitch]]:AFTER[ThunderAerospace] { // First, set up all the variants MODULE @@ -52,6 +52,17 @@ mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture } } + VARIANT + { + name = Waste + displayName = #autoLOC_TACLS_00020 // Waste + primaryColor = #1d1d1d + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WasteTexture + } + } } // Need this to make the resources switchable @@ -133,6 +144,33 @@ } } + MODULE + { + name = ModuleSwitchableResources + resourcesId = waste + displayName = #autoLOC_TACLS_00020 // Waste + linkedVariant = Waste + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = CarbonDioxide + amount = #$@PART[TacWasteContainer]/RESOURCE[CarbonDioxide]/amount$ + maxAmount = #$@PART[TacWasteContainer]/RESOURCE[CarbonDioxide]/maxAmount$ + } + RESOURCE + { + name = WasteWater + amount = #$@PART[TacWasteContainer]/RESOURCE[WasteWater]/amount$ + maxAmount = #$@PART[TacWasteContainer]/RESOURCE[WasteWater]/maxAmount$ + } + RESOURCE + { + name = Waste + amount = #$@PART[TacWasteContainer]/RESOURCE[Waste]/amount$ + maxAmount = #$@PART[TacWasteContainer]/RESOURCE[Waste]/maxAmount$ + } + } + -RESOURCE[Food] {} -RESOURCE[Water] {} -RESOURCE[Oxygen] {} @@ -145,3 +183,11 @@ @category = none @tags ^= :\s*cck-lifesupport:: } + +// Hide the original waste parts, since they're no longer needed. +@PART[TacWasteContainer]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/Container_2.cfg b/files/patches/TACLS/Container_2.cfg index b49e958..7a7ed55 100644 --- a/files/patches/TACLS/Container_2.cfg +++ b/files/patches/TACLS/Container_2.cfg @@ -1,7 +1,7 @@ // Condense the various 2.5m TACLS supply containers into a single part // that has switchable resources via variants. -@PART[TacLifeSupportContainerLarge]:AFTER[ThunderAerospace] +@PART[TacLifeSupportContainerLarge]:HAS[!MODULE[ModuleSimpleFuelSwitch]]:AFTER[ThunderAerospace] { // First, set up all the variants MODULE @@ -52,6 +52,17 @@ mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture } } + VARIANT + { + name = Waste + displayName = #autoLOC_TACLS_00020 // Waste + primaryColor = #1d1d1d + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WasteTexture + } + } } // Need this to make the resources switchable @@ -133,6 +144,33 @@ } } + MODULE + { + name = ModuleSwitchableResources + resourcesId = waste + displayName = #autoLOC_TACLS_00020 // Waste + linkedVariant = Waste + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = CarbonDioxide + amount = #$@PART[TacWasteContainerLarge]/RESOURCE[CarbonDioxide]/amount$ + maxAmount = #$@PART[TacWasteContainerLarge]/RESOURCE[CarbonDioxide]/maxAmount$ + } + RESOURCE + { + name = WasteWater + amount = #$@PART[TacWasteContainerLarge]/RESOURCE[WasteWater]/amount$ + maxAmount = #$@PART[TacWasteContainerLarge]/RESOURCE[WasteWater]/maxAmount$ + } + RESOURCE + { + name = Waste + amount = #$@PART[TacWasteContainerLarge]/RESOURCE[Waste]/amount$ + maxAmount = #$@PART[TacWasteContainerLarge]/RESOURCE[Waste]/maxAmount$ + } + } + -RESOURCE[Food] {} -RESOURCE[Water] {} -RESOURCE[Oxygen] {} @@ -145,3 +183,11 @@ @category = none @tags ^= :\s*cck-lifesupport:: } + +// Hide the original waste parts, since they're no longer needed. +@PART[TacWasteContainerLarge]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/Container_3.cfg b/files/patches/TACLS/Container_3.cfg index 047f326..e019dcb 100644 --- a/files/patches/TACLS/Container_3.cfg +++ b/files/patches/TACLS/Container_3.cfg @@ -1,7 +1,7 @@ // Condense the various 3.75m TACLS supply containers into a single part // that has switchable resources via variants. -@PART[TacLifeSupportContainerLarge375]:AFTER[ThunderAerospace] +@PART[TacLifeSupportContainerLarge375]:HAS[!MODULE[ModuleSimpleFuelSwitch]]:AFTER[ThunderAerospace] { // First, set up all the variants MODULE @@ -52,6 +52,17 @@ mainTextureURL = ThunderAerospace/TacLifeSupportContainers/OxygenTexture } } + VARIANT + { + name = Waste + displayName = #autoLOC_TACLS_00020 // Waste + primaryColor = #1d1d1d + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportContainers/WasteTexture + } + } } // Need this to make the resources switchable @@ -133,6 +144,33 @@ } } + MODULE + { + name = ModuleSwitchableResources + resourcesId = waste + displayName = #autoLOC_TACLS_00020 // Waste + linkedVariant = Waste + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = CarbonDioxide + amount = #$@PART[TacWasteContainerLarge375]/RESOURCE[CarbonDioxide]/amount$ + maxAmount = #$@PART[TacWasteContainerLarge375]/RESOURCE[CarbonDioxide]/maxAmount$ + } + RESOURCE + { + name = WasteWater + amount = #$@PART[TacWasteContainerLarge375]/RESOURCE[WasteWater]/amount$ + maxAmount = #$@PART[TacWasteContainerLarge375]/RESOURCE[WasteWater]/maxAmount$ + } + RESOURCE + { + name = Waste + amount = #$@PART[TacWasteContainerLarge375]/RESOURCE[Waste]/amount$ + maxAmount = #$@PART[TacWasteContainerLarge375]/RESOURCE[Waste]/maxAmount$ + } + } + -RESOURCE[Food] {} -RESOURCE[Water] {} -RESOURCE[Oxygen] {} @@ -145,3 +183,11 @@ @category = none @tags ^= :\s*cck-lifesupport:: } + +// Hide the original waste parts, since they're no longer needed. +@PART[TacWasteContainerLarge375]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/HexCan_large.cfg b/files/patches/TACLS/HexCan_large.cfg index 4c6d32e..a3d1bb3 100644 --- a/files/patches/TACLS/HexCan_large.cfg +++ b/files/patches/TACLS/HexCan_large.cfg @@ -1,7 +1,7 @@ // Condense the various "large" TACLS hex cans into a single part // that has switchable resources via variants. -@PART[HexCanLifeSupportLarge]:AFTER[ThunderAerospace] +@PART[HexCanLifeSupportLarge]:HAS[!MODULE[ModuleSimpleFuelSwitch]]:AFTER[ThunderAerospace] { MODULE { @@ -51,6 +51,17 @@ mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanBreathingOxygen/Texture } } + VARIANT + { + name = Waste + displayName = #autoLOC_TACLS_00020 // Waste + primaryColor = #1d1d1d + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanWaste/WasteTexture + } + } } // Need this to make the resources switchable @@ -132,6 +143,33 @@ } } + MODULE + { + name = ModuleSwitchableResources + resourcesId = waste + displayName = #autoLOC_TACLS_00020 // Waste + linkedVariant = Waste + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = CarbonDioxide + amount = #$@PART[HexCanLifeSupportWasteLarge]/RESOURCE[CarbonDioxide]/amount$ + maxAmount = #$@PART[HexCanLifeSupportWasteLarge]/RESOURCE[CarbonDioxide]/maxAmount$ + } + RESOURCE + { + name = WasteWater + amount = #$@PART[HexCanLifeSupportWasteLarge]/RESOURCE[WasteWater]/amount$ + maxAmount = #$@PART[HexCanLifeSupportWasteLarge]/RESOURCE[WasteWater]/maxAmount$ + } + RESOURCE + { + name = Waste + amount = #$@PART[HexCanLifeSupportWasteLarge]/RESOURCE[Waste]/amount$ + maxAmount = #$@PART[HexCanLifeSupportWasteLarge]/RESOURCE[Waste]/maxAmount$ + } + } + -RESOURCE[Food] {} -RESOURCE[Water] {} -RESOURCE[Oxygen] {} @@ -144,3 +182,11 @@ @category = none @tags ^= :\s*cck-lifesupport:: } + +// Hide the original waste parts, since they're no longer needed. +@PART[HexCanLifeSupportWasteLarge]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/HexCan_medium.cfg b/files/patches/TACLS/HexCan_medium.cfg index b171cbc..7f84490 100644 --- a/files/patches/TACLS/HexCan_medium.cfg +++ b/files/patches/TACLS/HexCan_medium.cfg @@ -1,7 +1,7 @@ // Condense the various "medium" TACLS hex cans into a single part // that has switchable resources via variants. -@PART[HexCanLifeSupport]:AFTER[ThunderAerospace] +@PART[HexCanLifeSupport]:HAS[!MODULE[ModuleSimpleFuelSwitch]]:AFTER[ThunderAerospace] { MODULE { @@ -51,6 +51,17 @@ mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanBreathingOxygen/Texture } } + VARIANT + { + name = Waste + displayName = #autoLOC_TACLS_00020 // Waste + primaryColor = #1d1d1d + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanWaste/WasteTexture + } + } } // Need this to make the resources switchable @@ -132,6 +143,33 @@ } } + MODULE + { + name = ModuleSwitchableResources + resourcesId = waste + displayName = #autoLOC_TACLS_00020 // Waste + linkedVariant = Waste + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = CarbonDioxide + amount = #$@PART[HexCanLifeSupportWaste]/RESOURCE[CarbonDioxide]/amount$ + maxAmount = #$@PART[HexCanLifeSupportWaste]/RESOURCE[CarbonDioxide]/maxAmount$ + } + RESOURCE + { + name = WasteWater + amount = #$@PART[HexCanLifeSupportWaste]/RESOURCE[WasteWater]/amount$ + maxAmount = #$@PART[HexCanLifeSupportWaste]/RESOURCE[WasteWater]/maxAmount$ + } + RESOURCE + { + name = Waste + amount = #$@PART[HexCanLifeSupportWaste]/RESOURCE[Waste]/amount$ + maxAmount = #$@PART[HexCanLifeSupportWaste]/RESOURCE[Waste]/maxAmount$ + } + } + -RESOURCE[Food] {} -RESOURCE[Water] {} -RESOURCE[Oxygen] {} @@ -144,3 +182,11 @@ @category = none @tags ^= :\s*cck-lifesupport:: } + +// Hide the original waste parts, since they're no longer needed. +@PART[HexCanLifeSupportWaste]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} diff --git a/files/patches/TACLS/HexCan_small.cfg b/files/patches/TACLS/HexCan_small.cfg index b9c957d..6a3de62 100644 --- a/files/patches/TACLS/HexCan_small.cfg +++ b/files/patches/TACLS/HexCan_small.cfg @@ -1,7 +1,7 @@ // Condense the various "small" TACLS hex cans into a single part // that has switchable resources via variants. -@PART[HexCanLifeSupportSmall]:AFTER[ThunderAerospace] +@PART[HexCanLifeSupportSmall]:HAS[!MODULE[ModuleSimpleFuelSwitch]]:AFTER[ThunderAerospace] { MODULE { @@ -51,6 +51,17 @@ mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanBreathingOxygen/Texture } } + VARIANT + { + name = Waste + displayName = #autoLOC_TACLS_00020 // Waste + primaryColor = #1d1d1d + secondaryColor = #ffffff + TEXTURE + { + mainTextureURL = ThunderAerospace/TacLifeSupportHexCans/HexCanWaste/WasteTexture + } + } } // Need this to make the resources switchable @@ -132,6 +143,33 @@ } } + MODULE + { + name = ModuleSwitchableResources + resourcesId = waste + displayName = #autoLOC_TACLS_00020 // Waste + linkedVariant = Waste + selectorFieldName = #SimpleFuelSwitch_supplyLabel + RESOURCE + { + name = CarbonDioxide + amount = #$@PART[HexCanLifeSupportWasteSmall]/RESOURCE[CarbonDioxide]/amount$ + maxAmount = #$@PART[HexCanLifeSupportWasteSmall]/RESOURCE[CarbonDioxide]/maxAmount$ + } + RESOURCE + { + name = WasteWater + amount = #$@PART[HexCanLifeSupportWasteSmall]/RESOURCE[WasteWater]/amount$ + maxAmount = #$@PART[HexCanLifeSupportWasteSmall]/RESOURCE[WasteWater]/maxAmount$ + } + RESOURCE + { + name = Waste + amount = #$@PART[HexCanLifeSupportWasteSmall]/RESOURCE[Waste]/amount$ + maxAmount = #$@PART[HexCanLifeSupportWasteSmall]/RESOURCE[Waste]/maxAmount$ + } + } + -RESOURCE[Food] {} -RESOURCE[Water] {} -RESOURCE[Oxygen] {} @@ -144,3 +182,11 @@ @category = none @tags ^= :\s*cck-lifesupport:: } + +// Hide the original waste parts, since they're no longer needed. +@PART[HexCanLifeSupportWasteSmall]:AFTER[ThunderAerospace] +{ + %TechHidden = True + @category = none + @tags ^= :\s*cck-lifesupport:: +} From 1d1219f6c507fb2b35c6cb1c668a5b8e0657bcbb Mon Sep 17 00:00:00 2001 From: Rafael Dominiquini Date: Fri, 25 Jun 2021 15:14:50 -0300 Subject: [PATCH 7/7] Some improvements --- files/configs/Hide_redundant_parts.cfg | 51 +++++++++++++++++--------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/files/configs/Hide_redundant_parts.cfg b/files/configs/Hide_redundant_parts.cfg index ea91aa4..3348261 100644 --- a/files/configs/Hide_redundant_parts.cfg +++ b/files/configs/Hide_redundant_parts.cfg @@ -3,7 +3,7 @@ // to switch between LFO and LF as desired. Therefore, hide parts to remove // redundancy. -@PART[MK1Fuselage|mk2FuselageShortLFO|mk2FuselageLongLFO|mk3FuselageLFO_25|mk3FuselageLFO_50|mk3FuselageLFO_100]:FOR[SimpleFuelSwitch] +@PART[MK1Fuselage|mk2FuselageShortLiquid|mk2Fuselage|mk3FuselageLF_25|mk3FuselageLF_50|mk3FuselageLF_100]:FOR[SimpleFuelSwitch] { %TechHidden = True @category = none @@ -11,15 +11,22 @@ } //--------------------------------------------------------------------------------- -// Make the "hidden" Mk2 and Mk3 part textures available as part variants. -// Thanks to theonegalen for suggesting! +// Make the "hidden" Mk2 and Mk3 part textures available as part variants. Thanks to theonegalen for suggesting! +// Also rename the parts! -// mk2FuselageShortLFO -> mk2FuselageShortLiquid -@PART[mk2FuselageShortLiquid]:FOR[SimpleFuelSwitch] +@PART[miniFuselage]:FOR[SimpleFuelSwitch] { + @title ^= :Liquid Fuel:Fueled: +} + +// mk2FuselageShortLiquid -> mk2FuselageShortLFO +@PART[mk2FuselageShortLFO]:FOR[SimpleFuelSwitch] +{ + @title ^= :Rocket Fuel:Fueled: + MODEL { - model = Squad/Parts/FuelTank/mk2FuselageShort/FuselageShortLFO + model = Squad/Parts/FuelTank/mk2FuselageShort/FuselageShortLiquid } MODULE { @@ -55,12 +62,14 @@ } } -// mk2FuselageLongLFO -> mk2Fuselage -@PART[mk2Fuselage]:FOR[SimpleFuelSwitch] +// mk2Fuselage -> mk2FuselageLongLFO +@PART[mk2FuselageLongLFO]:FOR[SimpleFuelSwitch] { + @title ^= :Rocket Fuel:Fueled: + MODEL { - model = Squad/Parts/FuelTank/mk2FuselageLong/FuselageLongLFO + model = Squad/Parts/FuelTank/mk2FuselageLong/FuselageLongLiquid } MODULE { @@ -96,12 +105,14 @@ } } -// mk3FuselageLFO_25 -> mk3FuselageLF_25 -@PART[mk3FuselageLF_25]:FOR[SimpleFuelSwitch] +// mk3FuselageLF_25 -> mk3FuselageLFO_25 +@PART[mk3FuselageLFO_25]:FOR[SimpleFuelSwitch] { + @title ^= :Rocket Fuel:Fueled: + MODEL { - model = Squad/Parts/FuelTank/mk3Fuselage/LFO_25 + model = Squad/Parts/FuelTank/mk3Fuselage/LF_25 } MODULE { @@ -137,12 +148,14 @@ } } -// mk3FuselageLFO_50 -> mk3FuselageLF_50 -@PART[mk3FuselageLF_50]:FOR[SimpleFuelSwitch] +// mk3FuselageLF_50 -> mk3FuselageLFO_50 +@PART[mk3FuselageLFO_50]:FOR[SimpleFuelSwitch] { + @title ^= :Rocket Fuel:Fueled: + MODEL { - model = Squad/Parts/FuelTank/mk3Fuselage/LFO_50 + model = Squad/Parts/FuelTank/mk3Fuselage/LF_50 } MODULE { @@ -178,12 +191,14 @@ } } -// mk3FuselageLFO_100 -> mk3FuselageLF_100 -@PART[mk3FuselageLF_100]:FOR[SimpleFuelSwitch] +// mk3FuselageLF_100 -> mk3FuselageLFO_100 +@PART[mk3FuselageLFO_100]:FOR[SimpleFuelSwitch] { + @title ^= :Rocket Fuel:Fueled: + MODEL { - model = Squad/Parts/FuelTank/mk3Fuselage/LFO_100 + model = Squad/Parts/FuelTank/mk3Fuselage/LF_100 } MODULE {