Jump to content

Set all INPUT_RESOURCE to fusion pellets


Recommended Posts

I am trying to make a patch so all WBIGraviticEngineGenerator modules have their input_resource set to this:

Spoiler

INPUT_RESOURCE
            {
                ResourceName = FusionPellets
                Ratio = 0.00015
                FlowMode = STAGE_PRIORITY_FLOW
            }

This is what a standard gravitic engine part looks like: 

Spoiler

PART
{
    name = size2GraviticEngine
    module = Part
    author = Angel-125

    MODEL
    {
        model = WildBlueIndustries/FlyingSaucers/Parts/Engine/size2GraviticEngine/size2GraviticEngine
    }

    rescaleFactor = 1

    node_stack_front = 0.0, 0.9475, 0.0,  0.0, 1.0, 0.0
    node_stack_back = 0.0, -0.93752, 0.0,  0.0, -1.0, 0.0

    TechRequired = wbiGravityWaveApplications
    category = Engine
    subcategory = 0
    entryCost = 350000
    cost = 275000

    title = #LOC_KFS_size2GraviticEngineTitle // GND-02 "Quantum" Gravitic Engine
    manufacturer = <CLASSIFIED>
    description = #LOC_KFS_size2GraviticEngineDesc // Like the prior generation of gravitic engines, the GND-01 "Quantum" focuses gravity waves into an artificial singularity that enables a vessel to "fall" in the desired direction of travel. But unlike the previous generation, the GND-01 is an advanced, compact design that contains a fusion reactor and a gravimetric displacement generator in addition to the singularity projector. The end result is a self-contained system that allows vessels to fly via gravity.
    attachRules = 1,0,1,1,0
    mass = 3
    dragModelType = none
    maximum_drag = 0.02
    minimum_drag = 0.02
    angularDrag = 0.2
    crashTolerance = 26
    thermalMassModifier = 8.0
    emissiveConstant = 0.95
    maxTemp = 2900
    explosionPotential = 0.1
    fuelCrossFeed = True
    breakingForce = 2000
    breakingTorque = 2000
    bulkheadProfiles = size2
    tags = cck-KFS

    MODULE
    {
        // Combines a gravitic engine with a resource generator
        name = WBIGraviticEngineGenerator
        defaultMode = propelliumMode
        engineID = Gravitic

        // You can specify one or more resource modes for the generator and switch between them.
        // The generator is active when the engine is running.
        RESOURCE_MODE
        {
            name = propelliumMode
            displayName = #LOC_KFS_propelliumMode

            // If this looks familiar to Blueshift's Mk2 Gravimetric Displacement Generator, that's because it is. 
            INPUT_RESOURCE
            {
                name = Graviolium
                rate = 0.004
                resourceFlowMode = STAGE_PRIORITY_FLOW
            }
            INPUT_RESOURCE
            {
                name = Propellium
                rate = 0.002
                resourceFlowMode = STAGE_PRIORITY_FLOW
            }
            OUTPUT_RESOURCE
            {
                name = GravityWaves
                rate = 100
                resourceFlowMode = ALL_VESSEL
            }
            OUTPUT_RESOURCE
            {
                name = ElectricCharge
                rate = 4
                resourceFlowMode = ALL_VESSEL
            }
            OUTPUT_RESOURCE
            {
                name = StaticCharge
                rate = 0.004
                shutOffPercent = 100
                resourceFlowMode = ALL_VESSEL
            }
            DRAINED_RESOURCE
            {
                name = GravityWaves
                rate = 10
            }
        }
        
        // Standard WBIGraviticEngine stuff below.

        //Transforms. These will move around with the vessel's center of mass.
        thrustVectorTransformName = thrustTransform
        reverseTransformName = reverseThrustTransform
        vtolThrustTransformName = vtolThrustTransform

        //Always located at the center of the part.
        vtolFXTransformName = vtolThrustFX

        EngineType = Generic
        exhaustDamage = False
        heatProduction = 0
        fxOffset = 0, 0, 0
        ignitionThreshold = 0.01
        minThrust = 0

        //Maximum acceleration produced by the singularity, in meters per second per second.
        //A single engine can propel a very heavy craft but it will require more resources to do so
        //than a lighter craft.
        maxAcceleration = 40

        //The acceleration generated is affected by the throttle setting and thrust limiter
        //along with this acceleration curve.
        accelerationCurve
        {
            key = 0 0 0 0
            key = 1 1 2 2
        }

        PROPELLANT
        {
            name = GravityWaves
            resourceFlowMode = STAGE_STACK_FLOW_BALANCE
            ratio = 1
            DrawGauge = True
        }

        //Specifying a max thrust doesn't matter for the gravitic engine. It will be calculated in flight.
        //But we need a non-significant value so that KSP won't flip out when the flight scene is loaded.
        maxThrust = 100

        //ISP is important even for a gravitic engine. But we're unconcerned about atmosphere.
        atmosphereCurve
        {
            key = 0 3.456665 0 0 
            key = 1 3.456665 0 0 
        }

        //Effects
        // Note: You only need to color-change the flywheel and engine body parts. The plugin handles the lights.
        animationName = gravEngineLights
        flameoutEffectName = flameout
        powerEffectName = power
        runningEffectName = running
        engageEffectName = engage
        disengageEffectName = disengage

        //Gravity Ring
        gravRingTransformName = flyWheel
        gravRingSpinAxis = 0,0,1
        spinRateRPMMin = 4
        spinRateRPMMax = 15

        //How many seconds to spin up the gravity ring
        startupTime = 1.0

        //How many seconds to spin down the gravity ring
        shutdownTime = 1.0

        //Crazy Mode - Not the same as warp drive!
        crazyModeUnlocked = true
        crazyModeResource = GravityWaves
        crazyModeResourceReserve = 0.05 //When GravityWaves drops below 5%, stop crazy mode.

        //These values assume 100% throttle and are scaled to the current throttle setting and engine thrust percentage.
        crazyModeVelocity = 2000 //meters/sec
        crazyModeResourcePerSec = 20
    }

    MODULE
    {
        name = WBIModuleGraviticRCS
        stagingEnabled = False
        thrusterTransformName = RCSthruster
        shieldedCanThrust = true

        //Effects
//        runningEffectName = runningRCS
        rcsSoundEffectName = rcsSoundFX

        //Transform to move around to the vessel CoM
        clusterTransformName = rcsThrusterCluster

        //Computed on the fly, just like the gravitic engine,
        //but we need a value to start with to keep KSP from freaking out.
        thrusterPower = 5.0

        //Maximum acceleration that the gravitic RCS can produce
        maxAcceleration = 1.0

        //Can't use a resource with no density, so we convert
        //GravityWaves into VirtualMass.
        convertResource = GravityWaves
        convertPerSec = 1.0

        resourceName = VirtualMass
        resourceFlowMode = ALL_VESSEL
        atmosphereCurve
        {
            key = 0 1000
            key = 1 1000
        }
    }

    MODULE
    {
        name = WBIPlumeController
        plumeFXTransformName = plasmaTrailFX
        stationaryFXName = stationaryFX
        plumeFXName = plumeFX
    }

    MODULE
    {
        name = ModulePartVariants
        baseVariant = size2Mount
        baseMass = 0
        baseCost = 0
        useProceduralDragCubes = true

        VARIANT
        {
            name = size1Mount
            displayName = Size 1 Mount
            secondaryColor = #3a562a
            primaryColor = #999999
            sizeGroup = GroupB
            GAMEOBJECTS
            {
                size1Mount = true
                s1p5Mount = true
            }
            NODES
            {
                node_stack_front = 0.0, 1.5, 0.0,  0.0, 1.0, 0.0, 1
            }
        }

        VARIANT
        {
            name = size1p5Mount
            displayName = Size 1p5 Mount
            secondaryColor = #3a562a
            primaryColor = #999999
            sizeGroup = GroupB
            GAMEOBJECTS
            {
                size1Mount = false
                s1p5Mount = true
            }
            NODES
            {
                node_stack_front = 0.0, 1.13748, 0.0,  0.0, 1.0, 0.0, 2
            }
        }

        VARIANT
        {
            name = size2Mount
            displayName = Size 2 Mount
            secondaryColor = #3a562a
            primaryColor = #999999
            sizeGroup = GroupB
            GAMEOBJECTS
            {
                size1Mount = false
                s1p5Mount = false
            }
            NODES
            {
                node_stack_front = 0.0, 0.93748, 0.0,  0.0, 1.0, 0.0, 2
            }
        }
    }

    MODULE
    {
        name = ModuleCargoPart
        packedVolume = -1
    }

    EFFECTS
    {    
        plumeFX
        {
            MODEL_MULTI_PARTICLE
            {
                name = plasmaTrail
                modelName = WildBlueIndustries/FlyingSaucers/FX/s2PixiePlume
                transformName = plasmaTrailFX
                emission = 0.0 0.0
                emission = 1.0 1.25
                speed = 0.0 0.0
                speed = 1.25 1.25
            }
            MODEL_MULTI_PARTICLE
            {
                name = plasmaTrail2
                modelName = WildBlueIndustries/FlyingSaucers/FX/s2PixieSmoke
                transformName = plasmaTrailFX
                emission = 0.0 0.0
                emission = 1.0 1.25
                speed = 0.0 0.0
                speed = 1.25 1.25
            }
        }

        stationaryFX
        {
            MODEL_MULTI_PARTICLE
            {
                name = plasmaStationary
                modelName = WildBlueIndustries/FlyingSaucers/FX/s2PixieStationary
                transformName = plasmaStationaryFX
                emission = 0.0 0.0
                emission = 1.0 1.0
                speed = 0.0 0.0
                speed = 1.0 1.0
            }
        }

        //For some reason, sound only happens in one direction so this is a kludge.
        rcsSoundFX
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/FlyingSaucers/FX/UFOFlying
                volume = 0.0 0.0
                volume = 0.05 8.0
                volume = 1.0 8.0
                pitch = 0.0 0.5
                pitch = 0.25 0.5
                pitch = 1.0 1.0
                loop = true
            }
        }    
//        runningRCS
//        {
//            MODEL_MULTI_PARTICLE
//            {
//                modelName = WildBlueIndustries/FlyingSaucers/FX/FlapjackExhaustTrail
//                transformName = RCSthrusterFX
//                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
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/FlyingSaucers/FX/UFOEngineRunning
                volume = 0.0 0.0
                volume = 1.0 0.25
                pitch = 0.0 0.4
                pitch = 0.5 0.5
                pitch = 1.0 1.0
                speed = 0.0 0.0
                speed = 0.5 0.5
                speed = 1.0 1.0
                loop = true
            }
        }
        //Just the sound
        power
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/FlyingSaucers/FX/UFOFlying
                volume = 0.0 0.0
                volume = 0.05 8.0
                volume = 1.0 8.0
                pitch = 0.0 0.5
                pitch = 0.25 0.5
                pitch = 1.0 1.0
                loop = true
            }
        }
        engage
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/FlyingSaucers/FX/GeneratorStart
                volume = 0.5
                pitch = 1.0
                loop = false
            }

        }
        disengage
        {
            AUDIO
            {
                channel = Ship
                clip = WildBlueIndustries/FlyingSaucers/FX/GeneratorStop
                volume = 0.5
                pitch = 1.0
                loop = false
            }

        }
        flameout
        {
            AUDIO
            {
                channel = Ship
                clip = sound_explosion_low
                volume = 1.0
                pitch = 2.0
                loop = false
            }
        }
    }

    RESOURCE
    {
        name = StaticCharge
        amount = 0
        maxAmount = 50
    }

    RESOURCE
    {
        name = VirtualMass
        amount = 0
        maxAmount = 50
    }

    RESOURCE
    {
        name = GravityWaves
        amount = 0
        maxAmount = 500
    }

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

But the relevant part is this:

Spoiler

PART

{

name = blah blah

//stuff here

MODULE
    {
        // Combines a gravitic engine with a resource generator
        name = WBIGraviticEngineGenerator
        defaultMode = propelliumMode
        engineID = Gravitic

        // You can specify one or more resource modes for the generator and switch between them.
        // The generator is active when the engine is running.
        RESOURCE_MODE
        {
            name = propelliumMode
            displayName = #LOC_KFS_propelliumMode

            // If this looks familiar to Blueshift's Mk2 Gravimetric Displacement Generator, that's because it is. 
            INPUT_RESOURCE
            {
                name = Graviolium
                rate = 0.004
                resourceFlowMode = STAGE_PRIORITY_FLOW
            }
            INPUT_RESOURCE
            {
                name = Propellium
                rate = 0.002
                resourceFlowMode = STAGE_PRIORITY_FLOW
            }
            OUTPUT_RESOURCE
            {
                name = GravityWaves
                rate = 100
                resourceFlowMode = ALL_VESSEL
            }
            OUTPUT_RESOURCE
            {
                name = ElectricCharge
                rate = 4
                resourceFlowMode = ALL_VESSEL
            }
            OUTPUT_RESOURCE
            {
                name = StaticCharge
                rate = 0.004
                shutOffPercent = 100
                resourceFlowMode = ALL_VESSEL
            }
            DRAINED_RESOURCE
            {
                name = GravityWaves
                rate = 10
            }
        }
  //stuff here
    }

And this is my patch:

Spoiler

@PART:HAS[MODULE[WBIGraviticEngineGenerator]]:FINAL
{
    @MODULE[WBIGraviticEngineGenerator],*
    {
        @RESOURCE_MODE,*
        {
            -INPUT_RESOURCE,*
            INPUT_RESOURCE
            {
                ResourceName = FusionPellets
                Ratio = 0.00015
                FlowMode = STAGE_PRIORITY_FLOW
            }
        }
    }
}

Patch seems to have no effect and doesn't show up in MMPATCH.log

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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.

×
×
  • Create New...