Пример #1
0
        public override void OnStart(PartModule.StartState state)
        {
            base.OnStart(state);
            if (!HighLogic.LoadedSceneIsFlight)
            {
                return;
            }

            modeList.Add(new mode(primaryModeRange.x, primaryModeRange.y));

            engine = new Firespitter.engine.FSengineWrapper(part);

            anim = part.FindModelAnimators(animationName).FirstOrDefault();
            if (anim != null)
            {
                animTime = 0f;
                anim[animationName].layer          = animationLayer;
                anim[animationName].speed          = 0f;
                anim[animationName].normalizedTime = 0f;
                anim[animationName].wrapMode       = WrapMode.ClampForever;
            }
            else
            {
                Log.info("FSanimateThrottle: no animation found called {0}", animationName);
            }
        }
Пример #2
0
        public void initialize()
        {
            if (!initialized)
            {
                engine = new FSengineWrapper(part);

                bladeNumberRaw        = bladeNumber;
                engineLengthSliderRaw = engineLengthSlider;
                BladeLengthSliderRaw  = bladeLengthSlider;

                Log.dbg("FSpropellerTweak: find blade root");

                Transform originalBlade = part.FindModelTransform(bladeRootName);
                if (originalBlade != null)
                {
                    blades.Add(originalBlade.gameObject);
                }

                Log.dbg("FSpropellerTweak: find exhaust");

                //GameObject originalExhaust = GameObject.Find(exhaustName);
                Transform originalExhaust = part.FindModelTransform(exhaustName);
                if (originalExhaust != null)
                {
                    exhausts.Add(originalExhaust.gameObject);
                }

                Log.dbg("FSpropellerTweak: find engine extension");

                Transform engineExtensionTransform = part.FindModelTransform(engineExtenderName);
                if (engineExtensionTransform != null)
                {
                    engineExtension = engineExtensionTransform.gameObject;
                }

                Log.dbg("FSpropellerTweak: find propeller root");

                propellerRoot = part.FindModelTransform(propellerRootName);
                if (propellerRoot == null)
                {
                    Log.log("FSpropellerTweak: Nasty error, no propeller root found named {0}", propellerRootName);
                }

                movableSection = part.FindModelTransform(movableSectionName);
                engineEndPoint = part.FindModelTransform(engineEndPointName);
                //centerOfMass = part.FindModelTransform(centerOfMassName);

                Log.dbg("FSpropellerTweak: Blades: {0}", blades.Count);

                updateBladeList();
                updateEngineLength();
                updateBladeLength();

                part.mass = finalWeight;

                initialized = true;
            }
        }
Пример #3
0
        public override void OnStart(PartModule.StartState state)
        {
            base.OnStart(state);

            engageAssigned    = createGroup(engageGroup, engage, false);
            runningAssigned   = createGroup(runningGroup, running, true);
            powerAssigned     = createGroup(powerGroup, power, true);
            disengageAssigned = createGroup(disengageGroup, disengage, false);
            flameoutAssigned  = createGroup(flameoutGroup, flameout, false);
            warningAssigned   = createGroup(warningGroup, warning, false);

            engine = new Firespitter.engine.FSengineWrapper(part);

            if (engine != null)
            {
                maxThrust = engine.maxThrust;
            }
            //GameEvents.onGamePause.Add(new EventVoid.OnEvent(OnPause));
            //GameEvents.onGameUnpause.Add(new EventVoid.OnEvent(OnResume));
        }
Пример #4
0
        public override void OnStart(PartModule.StartState state)
        {
            base.OnStart(state);
            if (!HighLogic.LoadedSceneIsFlight)
                return;

            modeList.Add(new mode(primaryModeRange.x, primaryModeRange.y));

            engine = new Firespitter.engine.FSengineWrapper(part);

            anim = part.FindModelAnimators(animationName).FirstOrDefault();
            if (anim != null)
            {
                animTime = 0f;
                anim[animationName].layer = animationLayer;
                anim[animationName].speed = 0f;
                anim[animationName].normalizedTime = 0f;
                anim[animationName].wrapMode = WrapMode.ClampForever;
            }
            else
            {
                Debug.Log("FSanimateThrottle: no animation found called " + animationName);
            }
        }
        public override void OnStart(PartModule.StartState state)
        {
            base.OnStart(state);

            if (engineID == String.Empty || engineID == "")
            {
                engine = new Firespitter.engine.FSengineWrapper(part);
            }
            else
            {
                engine = new Firespitter.engine.FSengineWrapper(part, engineID);
            }

            if (engine.type == FSengineWrapper.EngineType.FSengine)
            {
                rotationSpeed = engine.fsengine.maxRPM;
            }

            propeller = part.FindModelTransform(propellerName);

            if (engine != null)
            {
                maxThrust = engine.maxThrust;
            }

            if (maxThrust <= 0f) // to avoid division by zero
            {
                maxThrust = 50f;
            }

            //assign blade meshes so they gan be hidden
            if (useRotorDiscSwap == 1)
            {
                if (duplicatedBlades)
                {
                    blurObjects = part.FindModelTransforms(rotorDiscName);
                    Transform[] bladeTransforms = part.FindModelTransforms(blade1);
                    for (int i = 0; i < bladeTransforms.Length; i++)
                    {
                        bladeObjects.Add(bladeTransforms[i].gameObject);
                    }
                }
                else
                {
                    rotorDisc = part.FindModelTransform(rotorDiscName);
                    if (rotorDisc != null)
                    {
                        rotorDisc.gameObject.GetComponent <Renderer>().enabled = false;

                        if (blade1 != "")
                        {
                            bladeNames.Add(blade1);
                        }
                        if (blade2 != "")
                        {
                            bladeNames.Add(blade2);
                        }
                        if (blade3 != "")
                        {
                            bladeNames.Add(blade3);
                        }
                        if (blade4 != "")
                        {
                            bladeNames.Add(blade4);
                        }
                        if (blade5 != "")
                        {
                            bladeNames.Add(blade5);
                        }
                        if (blade6 != "")
                        {
                            bladeNames.Add(blade6);
                        }

                        for (int i = 0; i < bladeNames.Count; i++)
                        {
                            try
                            {
                                bladeObjects.Add(part.FindModelTransform(bladeNames[i]).gameObject);
                            }
                            catch
                            {
                                Log.info("FSplanePropellerSpinner: Unable to find blade called {0}, disabling swap", bladeNames[i]);
                                useRotorDiscSwap = 0;
                            }
                        }
                    }
                    else
                    {
                        Log.info("FSplanePropellerSpinner: Unable to find rotor disc {0}, disabling swap", rotorDiscName);
                        useRotorDiscSwap = 0;
                    }
                }

                setBladeRendererState(true);
            }

            if (usesDeployAnimation)
            {
                deployAnimation = part.Modules.OfType <FSanimateGeneric>().FirstOrDefault();
            }
        }
        public override void OnStart(PartModule.StartState state)
        {
            base.OnStart(state);

            if (engineID == String.Empty || engineID == "")
                engine = new Firespitter.engine.FSengineWrapper(part);
            else
                engine = new Firespitter.engine.FSengineWrapper(part, engineID);

            if (engine.type == FSengineWrapper.EngineType.FSengine)
            {
                rotationSpeed = engine.fsengine.maxRPM;
            }

            propeller = part.FindModelTransform(propellerName);

            if (engine != null)
            {
                maxThrust = engine.maxThrust;
            }

            if (maxThrust <= 0f) // to avoid division by zero
            {
                maxThrust = 50f;
            }

            //assign blade meshes so they gan be hidden
            if (useRotorDiscSwap == 1)
            {
                if (duplicatedBlades)
                {
                    blurObjects = part.FindModelTransforms(rotorDiscName);
                    Transform[] bladeTransforms = part.FindModelTransforms(blade1);
                    for (int i = 0; i < bladeTransforms.Length; i++)
                    {
                        bladeObjects.Add(bladeTransforms[i].gameObject);
                    }
                }
                else
                {
                    rotorDisc = part.FindModelTransform(rotorDiscName);
                    if (rotorDisc != null)
                    {
                        rotorDisc.gameObject.GetComponent<Renderer>().enabled = false;

                        if (blade1 != "")
                            bladeNames.Add(blade1);
                        if (blade2 != "")
                            bladeNames.Add(blade2);
                        if (blade3 != "")
                            bladeNames.Add(blade3);
                        if (blade4 != "")
                            bladeNames.Add(blade4);
                        if (blade5 != "")
                            bladeNames.Add(blade5);
                        if (blade6 != "")
                            bladeNames.Add(blade6);

                        for (int i = 0; i < bladeNames.Count; i++)
                        {
                            try
                            {
                                bladeObjects.Add(part.FindModelTransform(bladeNames[i]).gameObject);
                            }
                            catch
                            {
                                Debug.Log("FSplanePropellerSpinner: Unable to find blade called " + bladeNames[i] + ", disabling swap");
                                useRotorDiscSwap = 0;
                            }
                        }
                    }
                    else
                    {
                        Debug.Log("FSplanePropellerSpinner: Unable to find rotor disc " + rotorDiscName + ", disabling swap");
                        useRotorDiscSwap = 0;
                    }
                }

                setBladeRendererState(true);
            }

            if (usesDeployAnimation)
            {
                deployAnimation = part.Modules.OfType<FSanimateGeneric>().FirstOrDefault();
            }
        }
Пример #7
0
        public override void OnStart(PartModule.StartState state)
        {
            base.OnStart(state);

            engageAssigned = createGroup(engageGroup, engage, false);
            runningAssigned = createGroup(runningGroup, running, true);
            powerAssigned = createGroup(powerGroup, power, true);
            disengageAssigned = createGroup(disengageGroup, disengage, false);
            flameoutAssigned = createGroup(flameoutGroup, flameout, false);
            warningAssigned = createGroup(warningGroup, warning, false);

            engine = new Firespitter.engine.FSengineWrapper(part);

            if (engine != null)
            {
                maxThrust = engine.maxThrust;
            }
            //GameEvents.onGamePause.Add(new EventVoid.OnEvent(OnPause));
            //GameEvents.onGameUnpause.Add(new EventVoid.OnEvent(OnResume));
        }
Пример #8
0
        public void initialize()
        {
            if (!initialized)
            {
                engine = new FSengineWrapper(part);

                bladeNumberRaw = bladeNumber;
                engineLengthSliderRaw = engineLengthSlider;
                BladeLengthSliderRaw = bladeLengthSlider;

                //Debug.Log("FSpropellerTweak: find blade root");

                Transform originalBlade = part.FindModelTransform(bladeRootName);
                if (originalBlade != null)
                {
                    blades.Add(originalBlade.gameObject);
                }

                //Debug.Log("FSpropellerTweak: find exhaust");

                //GameObject originalExhaust = GameObject.Find(exhaustName);
                Transform originalExhaust = part.FindModelTransform(exhaustName);
                if (originalExhaust != null)
                {
                    exhausts.Add(originalExhaust.gameObject);
                }

                //Debug.Log("FSpropellerTweak: find engine extension");

                Transform engineExtensionTransform = part.FindModelTransform(engineExtenderName);
                if (engineExtensionTransform != null)
                    engineExtension = engineExtensionTransform.gameObject;

                //Debug.Log("FSpropellerTweak: find propeller root");

                propellerRoot = part.FindModelTransform(propellerRootName);
                if (propellerRoot == null) Debug.Log("FSpropellerTweak: Nasty error, no propeller root found named " + propellerRootName);

                movableSection = part.FindModelTransform(movableSectionName);
                engineEndPoint = part.FindModelTransform(engineEndPointName);
                //centerOfMass = part.FindModelTransform(centerOfMassName);

                //Debug.Log("FSpropellerTweak: Blades: " + blades.Count);

                updateBladeList();
                updateEngineLength();
                updateBladeLength();

                part.mass = finalWeight;

                initialized = true;
            }
        }