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

// --- asset parameters ---
MODEL
{
  model = ShadowWorks/Parts/Engines/F1B
}
rescaleFactor = 1.0


// --- node definitions ---
node_stack_top = 0.0, 0.001, 0.0, 0.0, 1.0, 0.0, 2
//node_stack_bottom = 0.0, -3.442, 0.0, 0.0, -1.0, 0.0, 2



// --- editor parameters ---
TechRequired = heavierRocketry
entryCost = 8800
cost = 9000
category = Propulsion
subcategory = 0
title = F-1B Engine SW-LE-F1-B
manufacturer = ShadowWorks
description = An extremely powerful liquid fueled engine in the 2.5m size class.  Resurrecting an older engine design to increase the lifting capacity of the Block II Space Launch System.

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

// --- standard part parameters ---
mass = 8.78
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.2
angularDrag = 2
crashTolerance = 18
breakingForce = 22000
breakingTorque = 22000
maxTemp = 2600
bulkheadProfiles = size3

stagingIcon = LIQUID_ENGINE
 stageOffset = 1
childStageOffset = 1

EFFECTS
{
  running_closed
  {
    AUDIO
    {
      channel = Ship
      clip = sound_rocket_hard
      volume = 0.0 0.0
      volume = 1.0 1.0
      pitch = 1.0 1.02
      pitch = 1.0 1.0
      loop = true
    }
    PREFAB_PARTICLE
    {
      prefabName = fx_smokeTrail_veryLarge
      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.25
      speed = 1.0 1.0
      localOffset = 0, 0, 4.5
    }
    MODEL_MULTI_PARTICLE
    {
      modelName = Squad/FX/SRB_Large
      transformName = thrustTransform
      emission = 0.0 0.0
      emission = 0.05 0.0
      emission = 0.075 0.25
      emission = 0.7 0.85
      speed = 0.0 0.5
      speed = 1.0 1.2
	localPosition = 0, 0, 2.5
    }
    MODEL_PARTICLE
    {
      modelName = Squad/FX/SRB_LargeSparks
      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
      localPosition = 0, 0, 2.5
    }
  }
  engage
  {
    AUDIO
    {
      channel = Ship
      clip = sound_vent_medium
      volume = 1.0
      pitch = 1.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
	thrustVectorTransformName = thrustTransform
        engineID = SWF1B
        runningEffectName = running_closed
	exhaustDamage = True
	ignitionThreshold = 0.1
	minThrust = 0
	maxThrust = 5369
	heatProduction = 325
	fxOffset = 0, 0, 0.5
	PROPELLANT
	{
		name = LiquidFuel
       	        ratio = 0.9
		DrawGauge = True
	}
	PROPELLANT
	{
		name = Oxidizer
		ratio = 1.1
	}
	atmosphereCurve
 	{
   	 key = 0 426		// Original Value with maxThrust = 350 => 320
  	 key = 1 373		// Original Value with maxThrust = 350 => 232
 	}
	
}

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



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

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

	MODULE
	{
		name = ModuleSurfaceFX
		thrustProviderModuleIndex = 0
		fxMax = 0.75
		maxDistance = 100
		falloff = 1.5
		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
		}
	}
	
}





