GTI Multi Mode Engines - WarezCrawler/Guybrush101 GitHub Wiki

The purpose is to introduce a Multi Mode Engine module, which can handle more than two configurations.

###Features:

  • GTI Multi Mode Engines
  • Select which engine ID to affect
  • Availability (Flight, Editor)
  • Propellants, Ratios, IgnoreForISP, DrawGauge etc. is set up like stock through the alternative ModuleEngineFX modules
  • Custom naming of Engine configuration
  • Set Engine Type [LiquidFuel, Nuclear, SolidBooster, Turbine, MonoProp, ScramJet, Electric, Generic, Piston]
  • Thrust
  • Heat production
  • Curves: atmosphereCurve, velCurve, atmCurve

Field description:

"GTI_MultiModeEngine"

name = GTI_MultiModeEngine **The name of the module is always needed

messagePosition = UPPER_RIGHT **This changes where in screen the message is put : Default = UPPER_CENTER

availableInFlight = false ** Set if it is available in flight : Default = true

availableInEditor = true ** Set if it is available in VAB: Default = true

GUIengineModeNames = ** semi colon separated list of mode names for gui. If empty the propellant names are used

propellantNames = ** semi colon separated list of propellants. For each mode the propellants are separated by comma.

propellantRatios = ** semi colon separated list of ratios. For each mode the propellants are separated by comma.

propIgnoreForISP = ** semi colon separated list of true/false. For each mode the propellants are separated by comma.

propDrawGauge = ** semi colon separated list of true/false. For each mode the propellants are separated by comma.

useEngineResponseTime = ** semi colon separated list of true/false

engineAccelerationSpeed = ** semi colon separated list of time (float)

engineDecelerationSpeed = ** semi colon separated list of time (float)

atmChangeFlows = ** semi colon separated list of true/false

useVelCurves = ** semi colon separated list of true/false

useAtmCurves = ** semi colon separated list of true/false

maxThrust = ** semi colon separated list of thrust

heatProduction = ** semi colon separated list of heat production

**Curves are added as if it was a ModuleEngines module. It is important the if the are two modes then if a curve is used, then the number of that curve is the same, namely two. **This means that e.g. atmosphereCurve would be there twice in a row. When switching modes the curve will be replaced in the moduleEngine.

atmosphereCurve{}

velCurve{}

atmCurve{}


Example

@PART[engineLargeSkipper]
{
	@description = The smaller sibling of the Mainsail, the Skipper's power rivals that of... large cities. Combining high thrust with reasonable efficiency, this engine excels when used as a mid-stage booster. This upgraded version also feature a liftoff version, which uses intakeair instead of oxidizer. This is much more efficient, but also only works inside the atmosphere.

	MODULE
	{
		name = GTI_MultiModeEngine
		
		messagePosition = UPPER_RIGHT
		availableInFlight = true
		availableInEditor = true
		
		GUIengineModeNames = Liquid Fuel & Oxidizer;Liquid Fuel & Intake Oxygen
		//EngineTypes =
		
		propellantNames = LiquidFuel,Oxidizer;LiquidFuel,Oxidizer
		propellantRatios = 0.9,1.1;0.9,1.1
		propIgnoreForISP = False,False;False,False
		propDrawGauge = True,True;True,True
		resourceFlowMode = STAGE_STACK_FLOW_BALANCE,STAGE_STACK_FLOW_BALANCE;STAGE_STACK_FLOW_BALANCE,STAGE_STACK_FLOW_BALANCE

		useEngineResponseTime = false;false
		//engineAccelerationSpeed = 
		//engineDecelerationSpeed = 
		
		//atmChangeFlows =
		useVelCurves = False;False
		useAtmCurves = False;False
		useGTIthrottleISPCurves = true;true

		maxThrust = 650;700
		heatProduction = 350;600
		
		atmosphereCurve
		{
			key = 0 280
			key = 1 100
			key = 6 0.001
		}
		atmosphereCurve
		{
			key = 0 320
			key = 1 280
			key = 6 0.001
		}
		throttleISPCurve
		{
			key = 0 3
			key = 1 1
		}
		throttleISPCurve
		{
			key = 0 2
			key = 1 1
		}
	}
}