FreeThinker

[1.6.1/1.5.1/1.4.5/1.3.1] Interstellar Fuel Switch (IFS) 3.6.18

Recommended Posts

Version 2.7.1 for Kerbal Space Program 1.3.0 can be downloaded from here

Released on 2017-08-16

  • Updated CRP to 0.7.2
  • Fixed issue texture switch with applying the same texture to multiple objects
Edited by FreeThinker
  • Like 1

Share this post


Link to post
Share on other sites

Hoping someone can help me with the IFS mesh switcher...

i have an MM patch I wrote, to apply two mesh switching modules to 7 parts. For testing, I wrote a "master" patch, that included all available objects, and applied to all 7 parts using a wildcard in the PART node. Everything works perfectly.

The issue is when I apply only certain objects, to certain parts, using seperate PART nodes, assigned by actual part name, rather than wildcard.

The issue is that several (not all) meshes, are visible at once, and Z-fighting...

Here's my configs. first is the "master", applied to all parts, with ALL objects...
2nd & 3rd are exapmles of the specific part-named patches, using only SOME of the objects...

EDIT: this is happening with version 2.6.3 AND 2.7.1
 

Spoiler

// "master patch" applied to ALL parts, including ALL objects

@PART[DSAL.*]:NEEDS[Firespitter|InterstellarFuelSwitch]:AFTER[DeadSkins]
{

    MODULE
    {
        name:NEEDS[!InterstellarFuelSwitch] = FSmeshSwitch
        name:NEEDS[InterstellarFuelSwitch] = InterstellarMeshSwitch

        moduleID = 0
        buttonName = Next Housing
        switcherDescription = Housing
        objectDisplayNames = Graphite;Steel
        hasGui = true
        showPreviousButton = false
        objects = housing_Graphite; housing_Steel
        updateSymmetry = true
        showInfo = true
                
    }
    
    MODULE
    {
        name:NEEDS[!InterstellarFuelSwitch] = FSmeshSwitch
        name:NEEDS[InterstellarFuelSwitch] = InterstellarMeshSwitch

        moduleID = 1
        buttonName = Next Lens
        switcherDescription = Lens
        objectDisplayNames = Clear;Fisheye-Amber;Fisheye-Blue;Fisheye-Green;Fisheye-Red;Fisheye-White;Glass-Amber;Glass-White;Pyramid-Amber;Pyramid-Blue;Pyramid-Green;Pyramid-Red;Pyramid-White;Square-Amber;Square-Blue;Square-Green;Square-Red;Square-White
        showPreviousButton = false
        objects = lens_Clear;lens_Fisheye_amber;lens_Fisheye_blue;lens_Fisheye_green;lens_Fisheye_red;lens_Fisheye_white;lens_Glass_amber;lens_Glass_white;lens_Pyramid_amber;lens_Pyramid_blue;lens_Pyramid_green;lens_Pyramid_red;lens_Pyramid_white;lens_Square_amber;lens_Square_blue;lens_Square_green;lens_Square_red;lens_Square_white
        updateSymmetry = true
        showInfo = true
        
        debugMode = true
        showListButton = true
    }

}

// Two specific part examples, using only SOME of the objects

@PART[DSAL.beacon.amber]:NEEDS[Firespitter|InterstellarFuelSwitch]:AFTER[DeadSkins]
{

    MODULE
    {
        name:NEEDS[!InterstellarFuelSwitch] = FSmeshSwitch
        name:NEEDS[InterstellarFuelSwitch] = InterstellarMeshSwitch

        moduleID = 0
        buttonName = Next Housing
        switcherDescription = Housing
        objectDisplayNames = Graphite;Steel
        showPreviousButton = false
        objects = housing_Graphite;housing_Steel
        updateSymmetry = true
        showInfo = true
        
    }
    
    MODULE
    {
        name:NEEDS[!InterstellarFuelSwitch] = FSmeshSwitch
        name:NEEDS[InterstellarFuelSwitch] = InterstellarMeshSwitch

        moduleID = 1
        buttonName = Next Lens
        switcherDescription = Lens
        objectDisplayNames = Glass-Amber;Clear;Fisheye-Amber;Pyramid-Amber;Square-Amber
        showPreviousButton = false
        objects = lens_Glass_amber;lens_Clear;lens_Fisheye_amber;lens_Pyramid_amber;lens_Square_amber
        updateSymmetry = true
        showInfo = true
        
    }

}

@PART[DSAL.beacon.red]:NEEDS[Firespitter|InterstellarFuelSwitch]:AFTER[DeadSkins]
{

    MODULE
    {
        name:NEEDS[!InterstellarFuelSwitch] = FSmeshSwitch
        name:NEEDS[InterstellarFuelSwitch] = InterstellarMeshSwitch

        moduleID = 0
        buttonName = Next Housing
        switcherDescription = Housing
        objectDisplayNames = Graphite;Steel
        showPreviousButton = false
        objects = housing_Graphite; housing_Steel
        updateSymmetry = true
        showInfo = true
        
    }
    
    MODULE
    {
        name:NEEDS[!InterstellarFuelSwitch] = FSmeshSwitch
        name:NEEDS[InterstellarFuelSwitch] = InterstellarMeshSwitch

        moduleID = 1
        buttonName = Next Lens
        switcherDescription = Lens
        objectDisplayNames = Fisheye-Red;Clear;Pyramid-Red;Square-Red
        showPreviousButton = false
        objects = lens_Fisheye_red;lens_Clear;lens_Pyramid_red;lens_Square_red
        updateSymmetry = true
        showInfo = true
        
    }

}

 

Edited by Stone Blue

Share this post


Link to post
Share on other sites
13 hours ago, Stone Blue said:

Hoping someone can help me with the IFS mesh switcher...

i have an MM patch I wrote, to apply two mesh switching modules to 7 parts. For testing, I wrote a "master" patch, that included all available objects, and applied to all 7 parts using a wildcard in the PART node. Everything works perfectly.

The issue is when I apply only certain objects, to certain parts, using seperate PART nodes, assigned by actual part name, rather than wildcard.

The issue is that several (not all) meshes, are visible at once, and Z-fighting...
...

That is normal, all meshes not listed under "objects" are visible.

There is a fix for this. I usually combine it with the FuelSwitch but a quick test revealed that it also works without it .

	MODULE
	{
		name = InterstellarMeshSwitch
		moduleID = 0
		objectDisplayNames = setup1;setup2;setup3
		objects = mesh1;mesh2;mesh3;mesh4hidden;mesh5hidden;mesh6hidden
		useFuelSwitchModule = false
		fuelTankSetups = 0;1;2
		affectColliders = false
	}

The node "fuelTankSetups = 0;1;2" sets it to 3 setups. The amount of setups in the "objects" node can exceed the amount of actual setups rendering the exceeding meshes invisible.

  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, Eleusis La Arwall said:

That is normal, all meshes not listed under "objects" are visible.

The amount of setups in the "objects" node can exceed the amount of actual setups rendering the exceeding meshes invisible.

Thank You!...Youre a Gentleman and a Scholar...
I kinda figured it might be something where if you didnt "use" all objects in the model, that would be whats causing it...
Also, I'm not using it with fuel tanks, hence why I didnt bother to pay too close attention to the "fuel" modules in the documentation, or I might have realised what exactly the fuelTankSetups does... :P :oops:

Especially after i discovered the same behaviour from B9 Part Switcher... :P
Now to figure out how to fix THAT...

 

EDIT2:

Hmmm... Doesnt seem to be completely working for me... The selectedObjects node works, but the tank setups doesnt...I still get ALL the textures switchable...None "hidden"... :(
I must be missing something simple-stoopid...
 

Spoiler

@PART[DSAL.*]:NEEDS[Firespitter|InterstellarFuelSwitch]:FOR[DeadSkins]
{  
    MODULE
    {
        //name:NEEDS[!InterstellarFuelSwitch] = FSmeshSwitch
        name:NEEDS[InterstellarFuelSwitch] = InterstellarMeshSwitch

        moduleID = 1
        buttonName = Next Lens
        switcherDescription = Lens
        objectDisplayNames = Clear;Fisheye-Amber;Fisheye-Blue;Fisheye-Green;Fisheye-Red;Fisheye-White;Glass-Amber;Glass-White;Pyramid-Amber;Pyramid-Blue;Pyramid-Green;Pyramid-Red;Pyramid-White;Square-Amber;Square-Blue;Square-Green;Square-Red;Square-White
        showPreviousButton = false
        objects = lens_Clear;lens_Fisheye_amber;lens_Fisheye_blue;lens_Fisheye_green;lens_Fisheye_red;lens_Fisheye_white;lens_Glass_amber;lens_Glass_white;lens_Pyramid_amber;lens_Pyramid_blue;lens_Pyramid_green;lens_Pyramid_red;lens_Pyramid_white;lens_Square_amber;lens_Square_blue;lens_Square_green;lens_Square_red;lens_Square_white
        useFuelSwitchModule = false
        fuelTankSetups = 0;1;2;3;4;5;6  //;7;8;9;10;11;12;13;14;15;16;17
        selectedObject = 2
        affectColliders = false
        updateSymmetry = true
        showInfo = true
        
    }

}

 

Edited by Stone Blue
  • Like 1

Share this post


Link to post
Share on other sites
14 hours ago, Stone Blue said:

Hmmm... Doesnt seem to be completely working for me... The selectedObjects node works, but the tank setups doesnt...I still get ALL the textures switchable...None "hidden"... :(

I must be missing something simple-stoopid...

I've copied over the latest config you provided, adjusted the relevant fields and it works for me.

@PART[MESHTEST]
{
	MODULE
	{
//		name:NEEDS[!InterstellarFuelSwitch] = FSmeshSwitch
		name:NEEDS[InterstellarFuelSwitch] = InterstellarMeshSwitch
		moduleID = 1
		buttonName = Next Lens
		switcherDescription = Lens
		objectDisplayNames = LFO;MethaLOX;HydroLOX
//		objectDisplayNames = Clear;Fisheye-Amber;Fisheye-Blue;Fisheye-Green;Fisheye-Red;Fisheye-White;Glass-Amber;Glass-White;Pyramid-Amber;Pyramid-Blue;Pyramid-Green;Pyramid-Red;Pyramid-White;Square-Amber;Square-Blue;Square-Green;Square-Red;Square-White
		showPreviousButton = false
		objects = ;Methalox;Hydrolox;Kerolox
//		objects = lens_Clear;lens_Fisheye_amber;lens_Fisheye_blue;lens_Fisheye_green;lens_Fisheye_red;lens_Fisheye_white;lens_Glass_amber;lens_Glass_white;lens_Pyramid_amber;lens_Pyramid_blue;lens_Pyramid_green;lens_Pyramid_red;lens_Pyramid_white;lens_Square_amber;lens_Square_blue;lens_Square_green;lens_Square_red;lens_Square_white
		useFuelSwitchModule = false
		fuelTankSetups = 0;1;2  // ;3;4;5;6  //;7;8;9;10;11;12;13;14;15;16;17
		selectedObject = 2
		affectColliders = false
		updateSymmetry = true
		showInfo = true
	}
}

The mesh "Kerolox" does not appear and everything else fits the setup.

Have you tried to delete the MM cache files in the GameData folder? Sometimes it helps.

Otherwise I'd say it's a typo somewhere in the commented fields but since your first "master" config worked, that is rather unlikely.

Edit: To hide the meshes, the number of "objectDisplayNames" must match the number of "fuelTankSetups".

Edited by Eleusis La Arwall

Share this post


Link to post
Share on other sites

I'm proud to present a new set of remodeled tanks by @Eleusis La Arwall Here we see how the existing models had been remodeled and given smaller and larger versions

MTdkCg9.png

Notice all switchable tank now have a blue strip which indicated the amount of resource in the tank

Edited by FreeThinker
  • Like 3

Share this post


Link to post
Share on other sites

Version 2.8 for Kerbal Space Program 1.3.0

Released on 2017-08-27

  • Added a huge array of new tanks made by @Eleusis La Arwall

    +4 Cargo Container (CC) [No mass or cost cost balance done]

  • +5 Cryogenic Tank (CT) +1 Electric Capacitator

  • +1 Pressurized Gas Tank (PGT)

  • +3 Radioactive Fuel Container (RFC)

  • +11 Cryogenic Dual Tank (CDT)

  • +1 Inflatable Gas Tank

  • Fixed Switching fuel tank in Flight

  • Fixed Conversion between LqdXenon and XenonGas

 

 

Edited by FreeThinker
  • Like 2

Share this post


Link to post
Share on other sites

The latest release introduced a new Module named "AnimatedContainerContent":

	MODULE
	{
		name = AnimatedContainerContent	
		animationName = exampleAnim		// Name of the animation
		resourceName = Ore			// Name of the Resource to link with the animation
		animationExponent = 1			// Exponent. How is the animation related to the resource (normal 1; quadratic 2; qubic 3; ...)
		maximumRatio = 1			// How far does the animation play with the resource. (0.5: at 50% resource the animation is at the last frame.) 
	}

What does it?

This Module allows you to link an animation with the amount of stored resources on a part. Now we can visualize the tank-status directly on the model.

Details on how the resources are linked

Without the "resourceName" node defined all resources stored in the part will be taken into account, except resources without mass (EC, Megajoule). This is very usefull for tanks that hold 2 fuels at the same time or use FuelSwitch setups with lots of different setups.

Examples

One example is the IFS Inflatable Storage Tank that uses this module. As shown in the picture below, the spherical tank grows with the amount of stored Air. This is an example that uses "maximumRatio = 0.5". When the tank is half full, the sphere has reached its max volume (end of the animation) and filling the tank further is not animated anymore. To animate pressurized gas tanks for example.
ftynQoB.jpg

An example with bars indicating the amount of fuel can be found on most of the new tanks. You'll notice some blue (or red) little bars that show how much content the tank currently holds (blue=full, red=empty).
PnxyCfU.png

A big THANK YOU to @FreeThinker who realized this new module.

I hope this explanation is somewhat usefull and you guys have as much fun with it as I did. Happy modding! :)

 

Edited by Eleusis La Arwall
Changed Module name from InflatableStorageTank to AnimatedContainerContent
  • Like 2

Share this post


Link to post
Share on other sites

Version 2.8.1 for Kerbal Space Program 1.3.0 which can be downloaded from here

Released on 2017-08-27

  • Fixed Issue with switch buttons cluttering up VAB menu
  • Renamed InflatableStorageTank to AnimatedContainerContent
  • Disabled several obsolete parts
  • Fixed cluttering of context menu by auto converter
Edited by FreeThinker
  • Like 1

Share this post


Link to post
Share on other sites

Hi all,

on the new release, i can't find HTP (hydrogen peroxyde) storage nowhere other than spherical cryo tank ... it is intended or a bug?

Bye!

Share this post


Link to post
Share on other sites

Released Version 2.9.1 for Kerbal Space Program 1.3.0 which can be downloaded from here

Released on 2017-09-10

  • Included Patchmanager 0.0.8 in download package
  • Added support for PatchManager (by Eleusis La Arwall)
  • Added radial inflatable liquid tank (by Eleusis La Arwall)
  • Added inline inflatable liquid tank (by SpaceMouse)
  • Fixed integrated decoupler cluttering (by Eleusis La Arwall)
  • Fixed missing HTP resource
  • Fixed missing resource definition for Spodumene
Edited by FreeThinker
  • Like 4

Share this post


Link to post
Share on other sites

The integrated decouplers no longer clutter the staging menu. It was a bit annoying to have decouplers from inline-attached tanks (that were not usable at all) in the staging. The decouplers are not gone entirely, they can be triggered from the right click menu or put into action groups.

If you don't want to have integrated decouplers at all, it is also possible to deactivate them with PatchManager (integrated) by @linuxgurugamer. This handy tool can toggle MM configs on/off and makes life easier for modders and users.

With PatchManager you can also disable the FuelSwitch patches for the stock parts or choose how much setups the CDT have. Currently there are 3 options for the CDT: Basic config is 4 Fuel+Oxidizer setups. The 7 setups config additionally allows you to have the Fuels without Oxidizer and the 12 setups config makes Noble gases available too.
More options can and will be added in the future. Suggestions are very welcome but they need to follow some structure/concept. Please don't suggest personalized setups like "HydroLOx, Hydrogen, Xenon, HTP and Nitrogen-15" for example.

  • Like 2

Share this post


Link to post
Share on other sites
On 11.09.2017 at 0:35 AM, FreeThinker said:

Released Version 2.9.1 for Kerbal Space Program 1.3.0 which can be downloaded from here

  • Added inline inflatable liquid tank (by SpaceMouse)

Why does this one have 10 crew capacity? :)  GameData\InterstellarFuelSwitch\Parts\Mousecentrifuge\mousecentrifuge.cfg

Share this post


Link to post
Share on other sites
27 minutes ago, Khalkion said:

Why does this one have 10 crew capacity? :)  GameData\InterstellarFuelSwitch\Parts\Mousecentrifuge\mousecentrifuge.cfg

Yes, that a mistake which we already noticed ourselves. The part was originally intended by @SpaceMouse as a habitat, but I determined it is also useful as an inflatable liquid storage container

Edited by FreeThinker
  • Like 1

Share this post


Link to post
Share on other sites

Release IFS Version 2.9.2 for Kerbal Space Program 1.3.0 which can be downloaded from here

Released on 2017-09-13

  • Added English Localisation (by Eleusis La Arwall)
  • Fixed issue with missing IST2501

Share this post


Link to post
Share on other sites

I was wondering if something specific to the mod was causing that, but the IFS tanks each have a decoupler listed in my VAB, i don't think they should be there... they're not available for staging though. I thought i had installedthe latest version yesterday, i'll test again tonight with latest... 

 

Share this post


Link to post
Share on other sites
2 hours ago, Mokmo said:

I was wondering if something specific to the mod was causing that, but the IFS tanks each have a decoupler listed in my VAB, i don't think they should be there... they're not available for staging though. I thought i had installedthe latest version yesterday, i'll test again tonight with latest...

That is perfectly fine. All IFS tanks have an integrated (radial) decoupler. They were available for staging before, but inline-attached tanks also had a non-functional decoupler in the staging.

If you don't want the integrated decouplers, you can disable them with PatchManager (Wrapper tanks still have integrated decouplers).

  • Like 1

Share this post


Link to post
Share on other sites
23 hours ago, FreeThinker said:

Release IFS Version 2.9.2 for Kerbal Space Program 1.3.0 which can be downloaded from here

Released on 2017-09-13

  • Added English Localisation (by Eleusis La Arwall)
  • Fixed issue with missing IST2501

Warning ! In the archive the folder GameData is renamed GamaData.

Nice work anyway :-)

  • Like 3

Share this post


Link to post
Share on other sites

Version 2.9.3 for Kerbal Space Program 1.3.0 can be downloaded from here

Released on 2017-09-15

  • Update Patchmanager to 0.0.9
  • Added additional localization
  • Fixed Inline Inflatable tank crew capacity and temperature
  • Fixed Gamedata folder name
Edited by FreeThinker
  • Like 2

Share this post


Link to post
Share on other sites

@FreeThinker: Care to explain this thing I found when debugging a user's install containing IFS?


@RESOURCE_DEFINITION[Actinides]
{
	@isTweakable  = true
}

@RESOURCE_DEFINITION[DepletedFuel]
{
	@isTweakable  = true
	@density = 0.0117
}

@RESOURCE_DEFINITION[LqdCO2]
{
	@flowMode = STACK_PRIORITY_SEARCH
}

@RESOURCE_DEFINITION[Water]
{
	@flowMode = STACK_PRIORITY_SEARCH
}

@RESOURCE_DEFINITION[ElectricCharge]
{
	@unitCost = 0.00002
}

@RESOURCE_DEFINITION[Megajoules]
{
	@unitCost = 0.02
}

@RESOURCE_DEFINITION[Carbon]
{
	@isTweakable = true
	@isVisible = true
	@transfer = PUMP
	@flowMode = ALL_VESSEL
}

@RESOURCE_DEFINITION[Lithium6]
{
	%displayName = Lithium-6
}

Care to explain to me why you're patching common library resources in this also common library mod? Some of these changes will break mods! DepletedFuel density change will break NFT, ElectricCharge cost change will break all batteries' costs.

Pinging @RoverDude as this is a CRP issue too...

Edited by Nertea
  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now