Parts/Engine/rapierEngine/rapierEngine.cfg

From Kerbal Space Program Wiki
< Parts
Revision as of 16:09, 10 October 2024 by ArnePeirs (talk | contribs) (Update config)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This is the configuration file for CR-7 R.A.P.I.E.R. Engine.
PART
{
	name = RAPIER
	module = Part
	author = C. Jenkins
	mesh = rapier.mu
	MODEL
	{
		model = Squad/Parts/Engine/rapierEngine/rapier
	}
	//MODEL
	//{
	//	model = Squad/Parts/Engine/jetEngines/turbineInside
	//	position = 0.0, 0.741545, 0.0
	//	scale = 0.8, 0.8, 0.8
	//}
	scale = 1.0
	node_stack_top = 0.0,0.741545,0.0 , 0.0, 1.0, 0.0
	node_stack_bottom = 0.0,-0.2048244, 0.0, 0.0, -1.0, 0.0
	CoMOffset = 0.0, 2.6, 0.0
	mass = 2.0
	heatConductivity = 0.06 // half default
	skinInternalConductionMult = 4.0
	emissiveConstant = 0.8 // engine nozzles are good at radiating.
	dragModelType = default
	maximum_drag = 0.2
	minimum_drag = 0.2
	angularDrag = 2
	crashTolerance = 20
	maxTemp = 2000 // = 3600
	TechRequired = aerospaceTech
	entryCost = 35000
	cost = 6000
	category = Engine
	subcategory = 0
	title = #autoLOC_500469 //#autoLOC_500469 = CR-7 R.A.P.I.E.R. Engine
	manufacturer = #autoLOC_501640 //#autoLOC_501640 = C7 Aerospace Division and Rockomax Conglomerate
	description = #autoLOC_500470 //#autoLOC_500470 = The R.A.P.I.E.R. (Reactive Alternate-Propellant Intelligent Engine for Rockets) is a joint venture between C7 Aerospace and the Rockomax Conglomerate. Designed to fill a gap in the design requirements for sustainable single stage to orbit aircraft, this engine combines the best of rocket and air-breathing thrust technology.
	attachRules = 1,0,1,1,0
	bulkheadProfiles = size1
	tags = #autoLOC_500471 //#autoLOC_500471 = aircraft ascent closed cycle dual fuel hybrid jet liquid main mode plane propuls rapier rocket ssto
	EFFECTS
	{
		running_closed
		{
			AUDIO
			{
				channel = Ship
				clip = sound_rocket_spurts
				volume = 0.0 0.0
				volume = 1.0 1.0
				pitch = 0.0 0.2
				pitch = 1.0 1.0
				loop = true
			}
			PREFAB_PARTICLE
			{
				prefabName = fx_smokeTrail_aeroSpike
				transformName = smokePoint
				emission = 0.0 0.0
				emission = 0.05 0.0
				emission = 0.075 0.25
				emission = 1.0 1.25
				speed = 0.0 0.25
				speed = 1.0 1.0
				localOffset = 0, 0, 1
			}
			MODEL_MULTI_PARTICLE
			{
				modelName = Squad/FX/shockExhaust_blue_small
				transformName = thrustTransform
				emission = 0.0 0.0
				emission = 0.05 0.0
				emission = 0.075 0.25
				emission = 1.0 1.25
				speed = 0.0 0.5
				speed = 1.0 1.2
			}
		}
		power_open
		{
			AUDIO
			{
				channel = Ship
				clip = sound_rocket_spurts
				volume = 0.0 0.0
				volume = 0.05 0.0
				volume = 1.0 1.0
				pitch = 0.0 0.2
				pitch = 1.0 1.0
				loop = true
			}
			MODEL_MULTI_PARTICLE
			{
				modelName = Squad/FX/shockExhaust_red_small
				transformName = thrustTransform
				emission = 0.0 0.0
				emission = 0.05 0.0
				emission = 0.075 0.25
				emission = 1.0 1.25
				speed = 0.0 0.5
				speed = 1.0 1.2
			}
		}
		running_open
		{
			AUDIO
			{
				channel = Ship
				clip = sound_jet_deep
				volume = 0.0 0.0
				volume = 0.05 0.6
				volume = 1.0 1.0
				pitch = 0.0 0.7
				pitch = 1.0 1.4
				loop = true
			}
			PREFAB_PARTICLE
			{
				prefabName = fx_smokeTrail_aeroSpike
				transformName = smokePoint
				emission = 0.0 0.0
				emission = 0.05 0.0
				emission = 0.075 0.25
				emission = 1.0 1.25
				speed = 0.0 0.25
				speed = 1.0 1.0
				localOffset = 0, 0, 1
			}
		}
		engage
		{
			AUDIO
			{
				channel = Ship
				clip = sound_vent_soft
				volume = 1.0
				pitch = 2.0
				loop = false
			}
		}
		flameout
		{
			PREFAB_PARTICLE
			{
				prefabName = fx_exhaustSparks_flameout_2
				transformName = smokePoint
				oneShot = true
			}
			AUDIO
			{
				channel = Ship
				clip = sound_explosion_low
				volume = 1.0
				pitch = 2.0
				loop = false
			}
		}
	}
	MODULE
	{
		name = MultiModeEngine
		primaryEngineID = AirBreathing
		primaryEngineModeDisplayName = #autoLOC_6001897 //#autoLOC_6001897 = AirBreathing
		secondaryEngineID = ClosedCycle
		secondaryEngineModeDisplayName = #autoLOC_6001898 //#autoLOC_6001898 = ClosedCycle
	}
	MODULE
	{
		name = ModuleEnginesFX
		engineID = AirBreathing
		powerEffectName = power_open
		//runningEffectName = running_open
		thrustVectorTransformName = thrustTransform
		exhaustDamage = True
		ignitionThreshold = 0.33
		minThrust = 0
		maxThrust = 105
		heatProduction = 60
		useEngineResponseTime = True
		engineAccelerationSpeed = 0.2
		engineDecelerationSpeed = 0.35
		useVelocityCurve = False		
		spoolEffectName = running_open
		engineSpoolIdle = 0.05
		engineSpoolTime = 2.0
		EngineType = Turbine
		exhaustDamageMultiplier = 50
		exhaustDamageDistanceOffset = 0.19
		clampPropReceived = True
		PROPELLANT
		{
			name = IntakeAir
			ignoreForIsp = True
			ratio = 6
		}
		PROPELLANT
		{
			name = LiquidFuel
			resourceFlowMode = STAGE_STACK_FLOW_BALANCE
			ratio = 1
			DrawGauge = True
		}
		atmosphereCurve
		{
			key = 0 3200 0 0
		}
		// Jet params
		atmChangeFlow = True
		useVelCurve = True
		useAtmCurve = True
		flowMultCap = 3.0
		// no mach (heat) limit
		velCurve
		{
			key = 0 1 0 0.08333334
			key = 0.2 0.98 0.42074 0.42074
			key = 0.7 1.8 2.290406 2.290406
			key = 1.4 4.00 3.887193 3.887193
			key = 3.75 8.5 0 0
			key = 4.5 7.3 -2.831749 -2.831749
			key = 5.5 3 -5.260566 -5.260566
			key = 6 0 -0.02420209 0
		}
		atmCurve
		{
			// higher thrust at altitude than even TRJ
			key = 0 0 0 0
			key = 0.018 0.09 7.914787 7.914787
			key = 0.08 0.3 1.051923 1.051923
			key = 0.35 0.5 0.3927226 0.3927226
			key = 1 1 1.055097 0
		}
	}
	MODULE
	{
		name = ModuleEnginesFX
		engineID = ClosedCycle
		runningEffectName = running_closed
		thrustVectorTransformName = thrustTransform
		exhaustDamage = True
		ignitionThreshold = 0.1
		minThrust = 0
		maxThrust = 180
		heatProduction = 133
		fxOffset = 0, 0, 0.25
		EngineType = LiquidFuel
		exhaustDamageDistanceOffset = 0.19
		PROPELLANT
		{
			name = LiquidFuel
			resourceFlowMode = STAGE_STACK_FLOW_BALANCE
			ratio = 0.9
			DrawGauge = True
		}
		PROPELLANT
		{
			name = Oxidizer
			resourceFlowMode = STAGE_STACK_FLOW_BALANCE
			ratio = 1.1
		}
		atmosphereCurve
		{
			key = 0 305
			key = 1 275
			key = 9 0.001
		}
	}
	MODULE
	{
		name = FXModuleAnimateThrottle
		animationName = HeatAnimationEmissiveRapier
		responseSpeed = 0.001
		dependOnEngineState = True
		dependOnThrottle = True
		preferMultiMode = True // bind to the parent multimode module, not the actual engines.
	}
	MODULE
	{
		name = ModuleGimbal
		gimbalTransformName = obj_gimbal
		gimbalRange = 3
	}
	MODULE
	{
		name = ModuleTestSubject
		useStaging = True
		useEvent = True
		situationMask = 127
		CONSTRAINT
		{
			type = REPEATABILITY
			value = ALWAYS
			prestige = Trivial
		}
		CONSTRAINT
		{
			type = REPEATABILITY
			value = BODYANDSITUATION
			prestige = Significant
		}
		CONSTRAINT
		{
			type = REPEATABILITY
			value = ONCEPERPART
			prestige = Exceptional
		}
		CONSTRAINT
		{
			type = ALTITUDEENV
			test = GT
			value = 4000
			prestige = Trivial
		}
		CONSTRAINT
		{
			type = ALTITUDEENV
			test = LT
			value = 8000
			prestige = Trivial
		}
		CONSTRAINT
		{
			type = ALTITUDEENV
			test = GT
			value = 2000
			prestige = Significant
		}
		CONSTRAINT
		{
			type = ALTITUDEENV
			test = LT
			value = 4000
			prestige = Significant
		}
		CONSTRAINT
		{
			type = ALTITUDEENV
			test = GT
			value = 1000
			prestige = Exceptional
		}
		CONSTRAINT
		{
			type = ALTITUDEENV
			test = LT
			value = 2000
			prestige = Exceptional
		}
		CONSTRAINT
		{
			type = ALTITUDE
			test = GT
			value = 0 // this just registers altitude as something to care about
			situationMask = 8
		}
		CONSTRAINT
		{
			type = ALTITUDE
			test = LT
			value = 300000
			situationMask = 16
			body = _NotSun
		}
		CONSTRAINT
		{
			type = ALTITUDE
			test = LT
			value = 600000
			situationMask = 32
			body = _NotSun
		}
		CONSTRAINT
		{
			type = SPEED
			test = GT
			value = 0
			situationMask = 8
			prestige = Trivial
		}
		CONSTRAINT
		{
			type = SPEED
			test = LT
			value = 600
			situationMask = 8
			prestige = Trivial
		}
		CONSTRAINT
		{
			type = SPEED
			test = GT
			value = 300
			situationMask = 8
			prestige = Significant
		}
		CONSTRAINT
		{
			type = SPEED
			test = LT
			value = 1200
			situationMask = 8
			prestige = Significant
		}
		CONSTRAINT
		{
			type = SPEED
			test = GT
			value = 600
			situationMask = 8
			prestige = Exceptional
		}
		CONSTRAINT
		{
			type = SPEED
			test = LT
			value = 2500
			situationMask = 8
			prestige = Exceptional
		}
		CONSTRAINT
		{
			type = SPEEDENV
			test = LT
			value = 200
			prestige = Trivial
		}
		CONSTRAINT
		{
			type = SPEEDENV
			test = GT
			value = 100
			prestige = Trivial
		}
		CONSTRAINT
		{
			type = SPEEDENV
			test = LT
			value = 100
			prestige = Significant
		}
		CONSTRAINT
		{
			type = SPEEDENV
			test = GT
			value = 50
			prestige = Significant
		}
		CONSTRAINT
		{
			type = SPEEDENV
			test = LT
			value = 50
			prestige = Exceptional
		}
		CONSTRAINT
		{
			type = SPEEDENV
			test = GT
			value = 20
			prestige = Exceptional
		}
	}
	MODULE
	{
		name = ModuleSurfaceFX
		thrustProviderModuleIndex = 1
		fxMax = 0.5
		maxDistance = 20
		falloff = 2
		thrustTransformName = thrustTransform
	}
	MODULE
	{
		name = ModuleSurfaceFX
		thrustProviderModuleIndex = 2
		fxMax = 0.6
		maxDistance = 30
		falloff = 1.6
		thrustTransformName = thrustTransform
	}
}