Jump to content

Buffalo 2 Modular Space Exploration Vehicle


Angel-125
 Share

Recommended Posts

1 hour ago, JadeOfMaar said:

Parachutes are not engines. They explicitly use high drag surface area to function, and they provide stopping force. They don't add to a craft's motion by any means. Robotic props and krakentech props use the relative and actual motion of control surface blades (separate parts) to produce lift. I haven't played enough with those to remember but I believe the plain servos merely consume ElectricCharge and have to be rigged with the KAL. The "rotor engines" I believe will consume LiquidFuel and IntakeAir and immediately respond to throttle, but both will produce spin torque which leads to lift force and don't care about mass flow.

None of these use an engine module and really "consume the ambient air" and produce thrust.

Thanks for taking the time to help me start to get an understanding.  It adds to the enjoyment of the game to have some understanding of what is happening behind the scenes.
Heh.. as for parachutes not adding to a crafts motion...  of course, these are the EVA chutes - but still this is fun and wierd.   This thing is fussy to fly.

Spoiler

 

 

Link to comment
Share on other sites

Well, I tried making the electric version of the tilt-rotors today but to no avail. I keep getting NaN errors when using EC & Atmosphere. Why, I don't know but for now they'll remain as LF/IntakeAir. Not sure why OG Buffalo worked, but given the complaints about EC usage, it's probably best to let it go for now.

Link to comment
Share on other sites

3 hours ago, Angel-125 said:

Well, I tried making the electric version of the tilt-rotors today but to no avail. I keep getting NaN errors when using EC & Atmosphere. Why, I don't know but for now they'll remain as LF/IntakeAir. Not sure why OG Buffalo worked, but given the complaints about EC usage, it's probably best to let it go for now.

But you already have electroprops in Heisenberg Airships and they work just fine.

qL5XgKa.png

Link to comment
Share on other sites

8 hours ago, Angel-125 said:

I keep getting NaN errors when using EC & Atmosphere.

You forgot to remove  ignoreForIsp = True for IntakeAtm I guess :wink: So the engine is trying to consume infinite amount of massless resource ElecticCharge to produce thrust using only EC as a propellant instead of using a real thing that has mass.

Stock engines for some reason just ignore the fact that more than 90% of their exhaust mass is IntakeAir not LiquidFuel. Instead they have ridiculously high ISP (10+ times higher than it should be) to reduce fuel consumption.

Edited by Manul
Link to comment
Share on other sites

9 hours ago, Angel-125 said:

Well, I tried making the electric version of the tilt-rotors today but to no avail. I keep getting NaN errors when using EC & Atmosphere. Why, I don't know but for now they'll remain as LF/IntakeAir. Not sure why OG Buffalo worked, but given the complaints about EC usage, it's probably best to let it go for now.

Undoubtedly rounding errors by junior scientists on your staff.

Link to comment
Share on other sites

23 minutes ago, Angel-125 said:

I haven’t made an electric engine since 2015 so it’s been awhile. If it is as simple a fix as ignoreForIsp = true, I’m gonna laugh.

Yes,  it's this simple. (the example uses IntakeAtm because I have CRP installed)

Spoiler

PART:NEEDS[WildBlueIndustries/001KerbalActuators]
{
    name = wbiSize1TiltRotorE
    module = Part
    author = Angel-125

    MODEL
    {
        model = WildBlueIndustries/Buffalo2/Parts/Engine/tiltRotor/tiltRotor
    }
    rescaleFactor = 1
//    mirrorRefAxis = 0, 1, 0

    node_attach = 0.0, 0.0, 0.0, 1, 0, 0

    TechRequired = advAerodynamics
    entryCost = 40000
    cost = 1400
    category = Engine
    subcategory = 0
    title = ER-22 "Lightning" Tiltrotor Electroprop
    manufacturer = Wild Blue Industries
    description = #LOC_BUFFALO_size1TiltRotorDesc // The tiltrotor engine is great for VTOL aircraft. It can pivot upwards, forwards, and backwards as needed. Its powerful motors allow for fast response to throttle commands. Best of all, the prop-rotors can be folded up for compact storage.
    attachRules = 0,1,1,1,0
    mass = 1.5
    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 = 7
    maxTemp = 2000 // = 3600
    bulkheadProfiles = size1
    tags = aircraft tiltrotor plane propuls reverse (osprey

    MODULE
    {
        name = ModuleResourceIntake
        resourceName = IntakeAtm
        checkForOxygen = false
        area = 0.2
        intakeSpeed = 50
        intakeTransformName = Intake
        machCurve
        {
            key = 1 1 0 0
            key = 1.5 0.9 -0.4312553 -0.4312553
            key = 2.5 0.45 -0.5275364 -0.5275364
            key = 3.5 0.1 0 0
        }
    }

    MODULE
    {
        name = ModuleEnginesFX
        engineID = Cruise
        thrustVectorTransformName = thrustTransform
        exhaustDamage = False
        ignitionThreshold = 0.1
        minThrust = 0
        maxThrust = 150
        heatProduction = 0
        useEngineResponseTime = True
        engineAccelerationSpeed = 1
        engineDecelerationSpeed = 1
        fxOffset = 0, 0, 0.74
        flameoutEffectName = flameout
        engageEffectName = engage
        disengageEffectName = disengage
        spoolEffectName = running_turbine
        engineSpoolIdle = 0.05
        engineSpoolTime = 3.0
        EngineType = Turbine

        PROPELLANT
        {
            name = IntakeAtm
            //ignoreForIsp = True
            ratio = 15
            DrawGauge = True
        }
        PROPELLANT
        {
            name = ElectricCharge
            ratio = 22.06
            DrawGauge = True
        }
        atmosphereCurve
        {
            key = 0 1000 0 0
        }

        // Jet params
        atmChangeFlow = True
        useVelCurve = True
        useAtmCurve = True
        flameoutBar = 0.02
        flowCapMult = 1.0
        machLimit = 0.85
        machHeatMult = 25
        velCurve
        {
            key = 0 0.9 0 5
            key = 0.1 1.2 1 2
            key = 0.2 1.3 0 1.3
            key = 0.3 1.3 0 0
            key = 0.4 1.25 -1 0
            key = 0.5 1 -3.8 -2
            key = 0.6 0 3 0
            key = 0.7 -0.1 1 0
        }
        atmCurve
        {
            key = 0 0 0 0
            key = 0.2 0.15 2 1.5
            key = 0.4 0.55 2 2
            key = 0.6 0.69 0.5 0.6
            key = 0.8 0.8 1 1
            key = 1 1 0 0
        }
    }

    MODULE
    {
        name = ModuleSurfaceFX
        thrustProviderModuleIndex = 1
        fxMax = 0.5
        maxDistance = 30
        falloff = 1 //2
        thrustTransformName = thrustTransform
    }

    MODULE
    {
        name = ModuleAnimateGeneric
        animationName = Deploy
        startEventGUIName = Fold Rotors
        endEventGUIName = Unfold Rotors
        actionGUIName = Fold/Unfold Rotors
    }

    MODULE
    {
        name = WBIHoverController

        //We'll use the toolbar app button to control VTOL operations.
        guiVisible = false

        //How many m/sec to increase/decrease vertical speed per increment.
        verticalSpeedIncrements = 1.0
    }

    MODULE
    {
        //This module handles mesh rotation operations such as an engine nacelle pivot.
        name = WBIRotationController

        //(Optional, defaults to Actuator) User-friendly name of the rotation controller.
        rotatorName = Actuator

        //(Optional, defaults to Engine) Group ID for the actuator. Allows you to differentiate
        //between the VTOL manager (which uses the Engine group), and, say, a robot arm manager.
        groupID = Engine

        //We'll use the toolbar app button to control VTOL operations.
        //(defaults to true, so we have the buttons in the right-click menu)
        guiVisible = false

        //Name of the pivot
        rotationMeshName = EnginePivot

        //Rotation axis of the pivot
        rotationMeshAxis = -1,0,0

        //How fast to rotate the pivot
        rotationDegPerSec = 15

        //Maximum rotation angle
        //From 0 to 360 degrees
        //Min --- Neutral (0) --- Max
        //NOTE: if maxRotateAngle & minRotateAngle are -1 (which is the default),
        //then the rotation pivot can go 360 degrees.
        maxRotateAngle = 90

        //Minimum rotation angle (0 to 360 degrees)
        minRotateAngle = 0

        //Can we rotate to minimum?
        //Ex: tilt-rotor can pivot up and forward and that's it.
        canRotateMin = false

        //Can we rotate to maximum?
        canRotateMax = true

        //Name of the rotate to maximum button (only applies if gui buttons are visible)
        rotateMaxName = Rotate Vertical
    
        //Name of the rotate to minimum button (only applies if gui buttons are visible)
//        rotateMinName = Rotate To Minimum

        //Name of the rotate to neutral button (only applies if gui buttons are visible)
        rotateNeutralName = Rotate Horizontal
    }

    //If you want to subscribe to the WBIRotationController's events, then
    //add this module AFTER you add WBIRotationController. Great for detecting when
    //the user toggles the mirror on an engine, for instance.
    MODULE
    {
        name = WBIPropSpinner

        //We'll use the toolbar app button to control propeller operations.
        guiVisible = false

        //Name of the non-blurred rotor
        //The whole thing spins
        //Your hierarchy should have:
        //Rotor
        //---Hub: gets spun even when blades are blurred.
        //---Standard Blades (Optional): spun along with the hub
        //---Mirrored Blades (Optional): spun along with the hub
        rotorTransformName = Rotor

        //(Optional) To properly mirror the engine, these parameters specify
        //the standard and mirrored (symmetrical) rotor blade transforms.
        //If included, they MUST be child meshes of the mesh specified by rotorTransformName.
        standardBladesName = RotorBlades
        mirrorBladesName = RotorBladesMirrored

        //Rotations per minute for the non-blurred rotor
        rotorRPM = 30

            //How fast to spin the rotor when blurred; multiply rotorRPM by blurredRotorFactor
        //When rotors are blurred, the hub is not; it's spun at high speed.
        blurredRotorFactor = 4.0

        //How fast to spool up to RPM
        rotorSpoolTime = 3.0

        //Rotation axis for both the non-blurred rotor and the blurred rotor
        rotorRotationAxis = 0,0,1

        //(Optional) Name of the blurred rotor
        //Blurred rotors should NOT be part of the Rotor hierarchy.
        //For the tilt-rotor, they are a child of EnginePivot.
        blurredRotorName = BlurredRotor

        //How fast to spin the blurred rotor
        blurredRotorRPM = 6

        //At what percentage of thrust to switch to the blurred rotor/mesh rotor.
        minThrustRotorBlur = 20
    }

    MODULE
    {
        name = ModuleAlternator    
        outputName = Compressor Output
        outputUnits = CG/s
        RESOURCE
        {
            name = CompressedAtmosphere
            rate = 5.0
        }
    }

    MODULE
    {
        name = ModuleReactionWheel
        PitchTorque = 15
        YawTorque = 15
        RollTorque = 15
        torqueResponseSpeed = 15
        RESOURCE
        {
            name = ElectricCharge
            rate = 0.45
        }
    }

    RESOURCE
    {
        name = IntakeAtm
        amount = 75
        maxAmount = 75
    }

    RESOURCE
    {
        name = CompressedAtmosphere
        amount = 15
        maxAmount = 15
    }

    MODULE
    {
        name = ModuleTestSubject
        useStaging = True
        useEvent = True
        situationMask = 15
        CONSTRAINT
        {
            type = OXYGEN
            value = True
        }
        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
        }
        CONSTRAINT
        {
            type = SPEED
            test = LT
            value = 300
            situationMask = 8
        }
        CONSTRAINT
        {
            type = SPEED
            test = GT
            value = 50
            situationMask = 8
        }
        CONSTRAINT
        {
            type = DENSITY
            test = GT
            value = 0.3
            situationMask = 8
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = DENSITY
            test = GT
            value = 0.1
            situationMask = 8
            prestige = Significant
        }
        CONSTRAINT
        {
            type = DENSITY
            test = GT
            value = 0.05
            situationMask = 8
            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 = 1000
            prestige = Significant
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = LT
            value = 2000
            prestige = Significant
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = GT
            value = 500
            prestige = Exceptional
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = LT
            value = 1000
            prestige = Exceptional
        }
        CONSTRAINT
        {
            type = REPEATABILITY
            value = ALWAYS
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = REPEATABILITY
            value = BODYANDSITUATION
            prestige = Significant
        }
        CONSTRAINT
        {
            type = REPEATABILITY
            value = ONCEPERPART
            prestige = Exceptional
        }
    }

    EFFECTS
    {        
        running_thrust
        {            
            AUDIO
            {
                channel = Ship
                clip = sound_jet_deep
                volume = 0.0 0.0
                volume = 0.05 0.4
                volume = 1.0 1.0
                pitch = 0.0 0.6
                pitch = 1.0 1.0
                loop = true
            }    
    
        }

        running_turbine
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/Buffalo2/FX/OspreyRotorsJet
                volume = 0.0 0.0
                volume = 0.05 0.7
                volume = 1.0 1.0
                pitch = 0.0 0.4
                pitch = 0.05 0.5
                pitch = 1.0 1.0
                loop = true
            }

        }
        engage
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/Buffalo2/FX/OspreyStart
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
        disengage
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/Buffalo2/FX/OspreyStop
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
        flameout
        {

            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/Buffalo2/FX/OspreyStop
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
    }
}

zaujC38.png

Link to comment
Share on other sites

4 hours ago, Manul said:

Yes,  it's this simple. (the example uses IntakeAtm because I have CRP installed)

  Reveal hidden contents

PART:NEEDS[WildBlueIndustries/001KerbalActuators]
{
    name = wbiSize1TiltRotorE
    module = Part
    author = Angel-125

    MODEL
    {
        model = WildBlueIndustries/Buffalo2/Parts/Engine/tiltRotor/tiltRotor
    }
    rescaleFactor = 1
//    mirrorRefAxis = 0, 1, 0

    node_attach = 0.0, 0.0, 0.0, 1, 0, 0

    TechRequired = advAerodynamics
    entryCost = 40000
    cost = 1400
    category = Engine
    subcategory = 0
    title = ER-22 "Lightning" Tiltrotor Electroprop
    manufacturer = Wild Blue Industries
    description = #LOC_BUFFALO_size1TiltRotorDesc // The tiltrotor engine is great for VTOL aircraft. It can pivot upwards, forwards, and backwards as needed. Its powerful motors allow for fast response to throttle commands. Best of all, the prop-rotors can be folded up for compact storage.
    attachRules = 0,1,1,1,0
    mass = 1.5
    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 = 7
    maxTemp = 2000 // = 3600
    bulkheadProfiles = size1
    tags = aircraft tiltrotor plane propuls reverse (osprey

    MODULE
    {
        name = ModuleResourceIntake
        resourceName = IntakeAtm
        checkForOxygen = false
        area = 0.2
        intakeSpeed = 50
        intakeTransformName = Intake
        machCurve
        {
            key = 1 1 0 0
            key = 1.5 0.9 -0.4312553 -0.4312553
            key = 2.5 0.45 -0.5275364 -0.5275364
            key = 3.5 0.1 0 0
        }
    }

    MODULE
    {
        name = ModuleEnginesFX
        engineID = Cruise
        thrustVectorTransformName = thrustTransform
        exhaustDamage = False
        ignitionThreshold = 0.1
        minThrust = 0
        maxThrust = 150
        heatProduction = 0
        useEngineResponseTime = True
        engineAccelerationSpeed = 1
        engineDecelerationSpeed = 1
        fxOffset = 0, 0, 0.74
        flameoutEffectName = flameout
        engageEffectName = engage
        disengageEffectName = disengage
        spoolEffectName = running_turbine
        engineSpoolIdle = 0.05
        engineSpoolTime = 3.0
        EngineType = Turbine

        PROPELLANT
        {
            name = IntakeAtm
            //ignoreForIsp = True
            ratio = 15
            DrawGauge = True
        }
        PROPELLANT
        {
            name = ElectricCharge
            ratio = 22.06
            DrawGauge = True
        }
        atmosphereCurve
        {
            key = 0 1000 0 0
        }

        // Jet params
        atmChangeFlow = True
        useVelCurve = True
        useAtmCurve = True
        flameoutBar = 0.02
        flowCapMult = 1.0
        machLimit = 0.85
        machHeatMult = 25
        velCurve
        {
            key = 0 0.9 0 5
            key = 0.1 1.2 1 2
            key = 0.2 1.3 0 1.3
            key = 0.3 1.3 0 0
            key = 0.4 1.25 -1 0
            key = 0.5 1 -3.8 -2
            key = 0.6 0 3 0
            key = 0.7 -0.1 1 0
        }
        atmCurve
        {
            key = 0 0 0 0
            key = 0.2 0.15 2 1.5
            key = 0.4 0.55 2 2
            key = 0.6 0.69 0.5 0.6
            key = 0.8 0.8 1 1
            key = 1 1 0 0
        }
    }

    MODULE
    {
        name = ModuleSurfaceFX
        thrustProviderModuleIndex = 1
        fxMax = 0.5
        maxDistance = 30
        falloff = 1 //2
        thrustTransformName = thrustTransform
    }

    MODULE
    {
        name = ModuleAnimateGeneric
        animationName = Deploy
        startEventGUIName = Fold Rotors
        endEventGUIName = Unfold Rotors
        actionGUIName = Fold/Unfold Rotors
    }

    MODULE
    {
        name = WBIHoverController

        //We'll use the toolbar app button to control VTOL operations.
        guiVisible = false

        //How many m/sec to increase/decrease vertical speed per increment.
        verticalSpeedIncrements = 1.0
    }

    MODULE
    {
        //This module handles mesh rotation operations such as an engine nacelle pivot.
        name = WBIRotationController

        //(Optional, defaults to Actuator) User-friendly name of the rotation controller.
        rotatorName = Actuator

        //(Optional, defaults to Engine) Group ID for the actuator. Allows you to differentiate
        //between the VTOL manager (which uses the Engine group), and, say, a robot arm manager.
        groupID = Engine

        //We'll use the toolbar app button to control VTOL operations.
        //(defaults to true, so we have the buttons in the right-click menu)
        guiVisible = false

        //Name of the pivot
        rotationMeshName = EnginePivot

        //Rotation axis of the pivot
        rotationMeshAxis = -1,0,0

        //How fast to rotate the pivot
        rotationDegPerSec = 15

        //Maximum rotation angle
        //From 0 to 360 degrees
        //Min --- Neutral (0) --- Max
        //NOTE: if maxRotateAngle & minRotateAngle are -1 (which is the default),
        //then the rotation pivot can go 360 degrees.
        maxRotateAngle = 90

        //Minimum rotation angle (0 to 360 degrees)
        minRotateAngle = 0

        //Can we rotate to minimum?
        //Ex: tilt-rotor can pivot up and forward and that's it.
        canRotateMin = false

        //Can we rotate to maximum?
        canRotateMax = true

        //Name of the rotate to maximum button (only applies if gui buttons are visible)
        rotateMaxName = Rotate Vertical
    
        //Name of the rotate to minimum button (only applies if gui buttons are visible)
//        rotateMinName = Rotate To Minimum

        //Name of the rotate to neutral button (only applies if gui buttons are visible)
        rotateNeutralName = Rotate Horizontal
    }

    //If you want to subscribe to the WBIRotationController's events, then
    //add this module AFTER you add WBIRotationController. Great for detecting when
    //the user toggles the mirror on an engine, for instance.
    MODULE
    {
        name = WBIPropSpinner

        //We'll use the toolbar app button to control propeller operations.
        guiVisible = false

        //Name of the non-blurred rotor
        //The whole thing spins
        //Your hierarchy should have:
        //Rotor
        //---Hub: gets spun even when blades are blurred.
        //---Standard Blades (Optional): spun along with the hub
        //---Mirrored Blades (Optional): spun along with the hub
        rotorTransformName = Rotor

        //(Optional) To properly mirror the engine, these parameters specify
        //the standard and mirrored (symmetrical) rotor blade transforms.
        //If included, they MUST be child meshes of the mesh specified by rotorTransformName.
        standardBladesName = RotorBlades
        mirrorBladesName = RotorBladesMirrored

        //Rotations per minute for the non-blurred rotor
        rotorRPM = 30

            //How fast to spin the rotor when blurred; multiply rotorRPM by blurredRotorFactor
        //When rotors are blurred, the hub is not; it's spun at high speed.
        blurredRotorFactor = 4.0

        //How fast to spool up to RPM
        rotorSpoolTime = 3.0

        //Rotation axis for both the non-blurred rotor and the blurred rotor
        rotorRotationAxis = 0,0,1

        //(Optional) Name of the blurred rotor
        //Blurred rotors should NOT be part of the Rotor hierarchy.
        //For the tilt-rotor, they are a child of EnginePivot.
        blurredRotorName = BlurredRotor

        //How fast to spin the blurred rotor
        blurredRotorRPM = 6

        //At what percentage of thrust to switch to the blurred rotor/mesh rotor.
        minThrustRotorBlur = 20
    }

    MODULE
    {
        name = ModuleAlternator    
        outputName = Compressor Output
        outputUnits = CG/s
        RESOURCE
        {
            name = CompressedAtmosphere
            rate = 5.0
        }
    }

    MODULE
    {
        name = ModuleReactionWheel
        PitchTorque = 15
        YawTorque = 15
        RollTorque = 15
        torqueResponseSpeed = 15
        RESOURCE
        {
            name = ElectricCharge
            rate = 0.45
        }
    }

    RESOURCE
    {
        name = IntakeAtm
        amount = 75
        maxAmount = 75
    }

    RESOURCE
    {
        name = CompressedAtmosphere
        amount = 15
        maxAmount = 15
    }

    MODULE
    {
        name = ModuleTestSubject
        useStaging = True
        useEvent = True
        situationMask = 15
        CONSTRAINT
        {
            type = OXYGEN
            value = True
        }
        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
        }
        CONSTRAINT
        {
            type = SPEED
            test = LT
            value = 300
            situationMask = 8
        }
        CONSTRAINT
        {
            type = SPEED
            test = GT
            value = 50
            situationMask = 8
        }
        CONSTRAINT
        {
            type = DENSITY
            test = GT
            value = 0.3
            situationMask = 8
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = DENSITY
            test = GT
            value = 0.1
            situationMask = 8
            prestige = Significant
        }
        CONSTRAINT
        {
            type = DENSITY
            test = GT
            value = 0.05
            situationMask = 8
            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 = 1000
            prestige = Significant
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = LT
            value = 2000
            prestige = Significant
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = GT
            value = 500
            prestige = Exceptional
        }
        CONSTRAINT
        {
            type = ALTITUDEENV
            test = LT
            value = 1000
            prestige = Exceptional
        }
        CONSTRAINT
        {
            type = REPEATABILITY
            value = ALWAYS
            prestige = Trivial
        }
        CONSTRAINT
        {
            type = REPEATABILITY
            value = BODYANDSITUATION
            prestige = Significant
        }
        CONSTRAINT
        {
            type = REPEATABILITY
            value = ONCEPERPART
            prestige = Exceptional
        }
    }

    EFFECTS
    {        
        running_thrust
        {            
            AUDIO
            {
                channel = Ship
                clip = sound_jet_deep
                volume = 0.0 0.0
                volume = 0.05 0.4
                volume = 1.0 1.0
                pitch = 0.0 0.6
                pitch = 1.0 1.0
                loop = true
            }    
    
        }

        running_turbine
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/Buffalo2/FX/OspreyRotorsJet
                volume = 0.0 0.0
                volume = 0.05 0.7
                volume = 1.0 1.0
                pitch = 0.0 0.4
                pitch = 0.05 0.5
                pitch = 1.0 1.0
                loop = true
            }

        }
        engage
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/Buffalo2/FX/OspreyStart
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
        disengage
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/Buffalo2/FX/OspreyStop
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
        flameout
        {

            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/Buffalo2/FX/OspreyStop
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
    }
}

 

Well what do you know, it works, ROFL! Thanks for pointing that out. :) Today I reworked the tilt-rotors. The TR-22 and TR-44 have been renamed "Thunderbolt" and "Lightning Storm" respectively to reflect that they are now dual-mode engines with a Jet Turbine mode and Electric Motor mode. Plus, I textured the Rover and Flatbed cargo bays. You can find the latest pre-release here.

Additionally, I've updated Kerbal Actuators. I've organized the hover controller, prop spinner, and actuator controls into their own groups- PAW groups didn't exist when I made Kerbal Actuators. And since I know people will complain  that they can't use the helicopter parts and will forget to download Kerbal Actuators, it's now a requirement and part of the installation.

5 hours ago, TruthfulGnome said:

Will you make the JAXA/Toyota Lunar Cruiser?

No. Perhaps someone else will though.

Link to comment
Share on other sites

9 hours ago, Angel-125 said:

Well what do you know, it works, ROFL! Thanks for pointing that out. :) Today I reworked the tilt-rotors. The TR-22 and TR-44 have been renamed "Thunderbolt" and "Lightning Storm" respectively to reflect that they are now dual-mode engines with a Jet Turbine mode and Electric Motor mode. Plus, I textured the Rover and Flatbed cargo bays. You can find the latest pre-release here.

 

So there was laughing to be had then.  Excellent!

Link to comment
Share on other sites

5 minutes ago, Rutabaga22 said:

will you provide a craft file for this helicopter you've been using when get to the chopper is released?

Yeah, I'll include it. It was definitely worth making the Choppah cockpit variant and include updated versions of the wings and tilt-rotors. I'm having fun with Da Choppah. :)

Link to comment
Share on other sites

Buffalo 2 v1.1: GET TO DA CHOPPAH!

Get it here.

New Parts

- TR-22 "Thunderbolt" Tiltrotor: Requires Kerbal Actuators (included)
- TR-44 "Lightning Storm" Tiltrotor: Requires Kerbal Actuators (included)
- Air Blast RCS Thruster: This RCS thruster runs on Atmosphere, allowing it to be used on any world with... wait for it... an atmosphere.
- Buffalo Wing Type 1: Holds a small amount of LiquidFuel
- Buffalo Wing Type 2: Holds a small amount of LiquidFuel
- Buffalo Wing Type 3: Holds a small amount of LiquidFuel
- Buffalo Wing Type 4: Holds a small amount of LiquidFuel
- Buffalo Canard Type 1
- Buffalo Canard Type 2
- Buffalo Elevon Type 1
- Buffalo Winglets: Designed as a mounting point for landing gear.
- Buffalo Wing Root: Holds a small amount of LiquidFuel. Can rotate if DockRotate is installed.
- B2 Inline Ballast Tank: An inline ballast tank for submarines. Requires SunkWorks.
- B2 Cargo Bay: Offers several different styles including Rover, Station, and Flatbed, optional endcaps, and optional cargo bay door styles.
- B2 Cargo Bay (Short): Offers several different styles including Rover, Station, and Flatbed, optional endcaps, and optional cargo bay door styles.
- LY-5 Mini Landing Gear: sub-scale version of the stock LY-10 Small Landing Gear.

Link to comment
Share on other sites

27 minutes ago, Ooglak Kerman said:

I installed that distro of Buffalo 2 and when I went to load up Da Choppah, the game complained about a lot of mods missing.  It still loaded and flew though.  I don't have Sunkworks or DockRotate though.

 

That's probably because other mods add part modules. My dev install isn't super clean. Did you have the same issues with the cargo bay as @Rutabaga22?

Link to comment
Share on other sites

1 minute ago, Angel-125 said:

That's probably because other mods add part modules. My dev install isn't super clean. Did you have the same issues with the cargo bay as @Rutabaga22?

I've not tested that yet.  Doing some catch-up and house cleaning on my production game.  I'll know here in just a few though.

I get that.  It's tough to keep a dev install nice and clean.

Link to comment
Share on other sites

Nope.  Not seeing the issue with the door window that @Rutabaga22 is experiencing.  Recall that I was having that sort of issue with a couple of the Buffalo 2 parts.

@Rutabaga22 I recommend that you delete the Buffalo2, 00WildblueCore, and 001KerbalActuators directories from your game and reimport them from the distro.  I've found that just copying over can have unfortunate side-effects associated with left-over bits and pieces from previous.

I built out action groups and Da Choppah flies much better.   You sure gotta fly the thing.  I need to get a good joystick rather than dinking with the keyboard to fly it.  @Angel-125 you did a good job with the sound of it.  Not dead on with a V-22 but pretty close.  Closer to a UH-1 actually.  Enough that it was... well... memorable.

Edit:  Whoo... survivability in even a minor crash is...  low

Edited by Ooglak Kerman
Link to comment
Share on other sites

16 minutes ago, Ooglak Kerman said:

Nope.  Not seeing the issue with the door window that @Rutabaga22 is experiencing.  Recall that I was having that sort of issue with a couple of the Buffalo 2 parts.

@Rutabaga22 I recommend that you delete the Buffalo2, 00WildblueCore, and 001KerbalActuators directories from your game and reimport them from the distro.  I've found that just copying over can have unfortunate side-effects associated with left-over bits and pieces from previous.

I built out action groups and Da Choppah flies much better.   You sure gotta fly the thing.  I need to get a good joystick rather than dinking with the keyboard to fly it.  @Angel-125 you did a good job with the sound of it.  Not dead on with a V-22 but pretty close.  Closer to a UH-1 actually.  Enough that it was... well... memorable.

Thanks! :) Regarding the sound, it was hard to find a steady, consistent sound clip of the V-22, but the original sound sample was taken from one and I tweaked it. I also mixed in some Harrier jump jet noise for the turbine. When in Electric Motor mode, you won't (or shouldn't) hear the jet turbine...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...