
PART
{
// --- general parameters ---
name = SWSSMEUpdate
module = Part
author = TheShadow1138

// --- asset parameters ---
MODEL
{
  model = ShadowWorks/Parts/SSME/SSME
}
rescaleFactor = 1.0
scale = 1.0

// --- node definitions ---
node_stack_top = 0.0, 0.046, 0.0, 0.0, 1.0, 0.0, 2
node_stack_bottom = 0.0, -1.185, 0.0, 0.0, -1.0, 0.0, 2



// --- FX definitions ---

//fx_exhaustFlame_blue = 0.0, -0.9, 0.0, 0.0, 1.0, 0.0, running
//fx_exhaustLight_blue = 0.0, -1.514, 0.0, 0.0, 0.0, 1.0, running
//fx_exhaustSparks_flameout = 0.0, -1.51, 0.0, 0.0, 0.0, 1.0, flameout
//fx_smokeTrail_light = 0.0, -1.51, 0.0, 0.0, 1.0, 0.0, running


// --- Sound FX definition ---

//sound_vent_medium = engage
//sound_rocket_hard = running
//sound_vent_soft = deactivate
//sound_explosion_low = flameout

// --- editor parameters ---
TechRequired = heavierRocketry
entryCost = 1200
cost = 1500
category = Propulsion
subcategory = 0
title = Amunet Shuttle Main Engine SW-LE-RS25
manufacturer = ShadowWorks
description = The SW-LE-RS25 is the engine intended for use as the main engine for your Amunet Space Shuttle Orbiter needs, as well as your Amun-Ra launchers.

// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
attachRules = 1,0,1,1,1

// --- standard part parameters ---
mass = 3.25
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.2
angularDrag = 2
crashTolerance = 18
breakingForce = 120
breakingTorque = 120
maxTemp = 2200
 bulkheadProfiles = size2
stagingIcon = LIQUID_ENGINE
 stageOffset = 1
childStageOffset = 1
tags = liquid engine ssme rs25 shuttle sls amunet amun ra amun-ra shadowworks

EFFECTS
	{
		running_closed
		{
			AUDIO
			{
				channel = Ship
				clip = sound_rocket_hard
				volume = 0.0 0.0
				volume = 0.05 0.6
				volume = 1.0 1.5
				pitch = 0.0 1.2
				pitch = 1.0 2.0
				loop = true
			}
			PREFAB_PARTICLE
			{
				prefabName = fx_smokeTrail_light
				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, 0
			}
			MODEL_MULTI_PARTICLE
			{
				//modelName = Squad/FX/ks25_Exhaust
				modelName = Squad/FX/hydroLOXFlame
				transformName = thrustPoint
				emission = 0.0 0.0
				emission = 0.1 0.5
				emission = 1.0 1.0
				speed = 0.0 0.8
				speed = 1.0 1.0
			}
		}
		shockDiamond
		{

//			MODEL_MULTI_PARTICLE
//			{
//				modelName = Squad/FX/diamondBlue
//				transformName = thrustTransform
//				emission = 0.0 0.0
//				//emission = 0.05 0.0
//				//emission = 0.075 0.5
//				emission = 1.0 1.0
//				speed = 0.0 0.2
//				speed = 1.0 1.0
//			}
			PREFAB_PARTICLE
			{
				prefabName = fx_exhaustFlame_blue_small
				transformName = thrustTransformYup
				emission = 0.0 0.0
				emission = 0.05 1.0
				emission = 0.5 3.5
				emission = 1.0 5.0
				speed = 0.0 0.5
				speed = 1.0 0.8
				localOffset = 0, 0, 0
			}
		}
		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 = thrustTransform
				oneShot = true
			}
			AUDIO
			{
				channel = Ship
				clip = sound_explosion_low
				volume = 1.0
				pitch = 2.0
				loop = false
			}
		}
	}

MODULE
{
	name = ModuleEnginesFX
	engineID = SWRS25Update
	runningEffectName = running_closed
	thrustVectorTransformName = thrustTransform
	powerEffectName = shockDiamond
	exhaustDamage = True
	ignitionThreshold = 0.1
	minThrust = 0
	maxThrust = 750
	//maxThrust = 1213		Based on real-life ratios of RS-25 to J-2
	//maxThrust = 550		Original FASA J-2 value
	heatProduction = 125
	fxOffset = 0, 0.0, 0.5
	PROPELLANT
	{
		name = LiquidFuel
       	        ratio = 0.9
		DrawGauge = True
	}
	PROPELLANT
	{
		name = Oxidizer
		ratio = 1.1
	}
	atmosphereCurve
 	{
	 //key = 0 419		My Original value
	 //key = 1 329		My Original Value
   	 //key = 0 390		Original FASA J-2 value
  	 //key = 1 180		Original FASA J-2 value

	 key = 0 232
	 key = 1 180
 	}
	
}

MODULE
{
	name = ModuleGimbal
	gimbalTransformName = thrustTransform
	gimbalRange = 10.5
}

MODULE
	{
		name = FXModuleAnimateThrottle
		animationName = emissiveAnim
		responseSpeed = 0.0025
		dependOnEngineState = True
		dependOnThrottle = True
	}


MODULE
{
	name = ModuleAlternator	
	RESOURCE
	{
		name = ElectricCharge
		rate = 3
	}
}


	MODULE
	{
		name = ModuleSurfaceFX
		thrustProviderModuleIndex = 0
		fxMax = 0.8
		maxDistance = 60
		falloff = 2
		thrustTransformName = thrustTransform
	}

	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 = 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
		}
	}

	
}





