Procedrually created (and adjustable/configurable) replacement for engine fairings, or any other part-attached fairing.
Inheritance: PartModule
Exemplo n.º 1
0
        /// <summary>
        /// Update the fairing module height and position based on current tank parameters
        /// </summary>
        private void updateFairing(bool userInput)
        {
            SSTUNodeFairing[] modules = part.GetComponents <SSTUNodeFairing>();
            if (modules == null || modules.Length < 2)
            {
                return;
            }
            SSTUNodeFairing topFairing = modules[topFairingIndex];

            if (topFairing != null)
            {
                FairingUpdateData data = new FairingUpdateData();
                data.setTopY(partTopY);
                data.setBottomY(topFairingBottomY);
                data.setBottomRadius(currentTankDiameter * 0.5f);
                if (userInput)
                {
                    data.setTopRadius(currentTankDiameter * 0.5f);
                }
                topFairing.updateExternal(data);
            }
            SSTUNodeFairing bottomFairing = modules[lowerFairingIndex];

            if (bottomFairing != null)
            {
                FairingUpdateData data = new FairingUpdateData();
                data.setTopRadius(currentTankDiameter * 0.5f);
                data.setTopY(bottomFairingTopY);
                if (userInput)
                {
                    data.setBottomRadius(currentTankDiameter * 0.5f);
                }
                bottomFairing.updateExternal(data);
            }
        }
Exemplo n.º 2
0
        private void updateFairing(bool userInput)
        {
            if (!standAlonePart)
            {
                return;
            }
            SSTUNodeFairing fairing = part.GetComponent <SSTUNodeFairing>();

            if (fairing == null)
            {
                return;
            }
            fairing.canDisableInEditor = true;
            FairingUpdateData data = new FairingUpdateData();

            data.setTopY(model.fairingTop);
            //bottom-y set by 'snap to node' functionality in nodefairing
            data.setTopRadius(currentDiameter * 0.5f);
            if (userInput)
            {
                data.setBottomRadius(currentDiameter * 0.5f);
            }
            data.setEnable(true);
            fairing.updateExternal(data);
        }
Exemplo n.º 3
0
        protected virtual void updateFairing()
        {
            SSTUNodeFairing fairing = part.GetComponent <SSTUNodeFairing>();

            if (fairing == null)
            {
                return;
            }
            float             pos  = currentMountModule.currentVerticalPosition + (currentMountModule.currentHeightScale * currentMountModule.modelDefinition.fairingTopOffset);
            FairingUpdateData data = new FairingUpdateData();

            data.setTopY(pos);
            data.setTopRadius(currentTankDiameter * 0.5f);
            if (currentMountModule.modelDefinition.fairingDisabled)
            {
                data.setEnable(false);
            }
            fairing.updateExternal(data);
        }
Exemplo n.º 4
0
        private void updateFairing(bool userInput)
        {
            SSTUNodeFairing fairing = part.GetComponent <SSTUNodeFairing>();

            if (fairing == null)
            {
                return;
            }
            fairing.canDisableInEditor = true;
            FairingUpdateData data = new FairingUpdateData();

            data.setTopY(model.model.currentHeight * 0.5f + model.model.getFairingOffset());
            data.setTopRadius(currentDiameter * 0.5f);
            if (userInput)
            {
                data.setBottomRadius(currentDiameter * 0.5f);
            }
            data.setEnable(true);
            fairing.updateExternal(data);
        }
Exemplo n.º 5
0
        private void updateFairing(bool userInput)
        {
            SSTUNodeFairing[] modules = part.GetComponents <SSTUNodeFairing>();
            if (modules == null || modules.Length < 2)
            {
                MonoBehaviour.print("ERROR: Could not locate both fairing modules for part: " + part.name);
                return;
            }
            SSTUNodeFairing topFairing = modules[0];

            if (topFairing != null)
            {
                float             topFairingBottomY = getTopFairingBottomY();
                FairingUpdateData data = new FairingUpdateData();
                data.setTopY(getPartTopY());
                data.setBottomY(topFairingBottomY);
                data.setBottomRadius(currentDiameter * 0.5f);
                if (userInput)
                {
                    data.setTopRadius(currentDiameter * 0.5f);
                }
                topFairing.updateExternal(data);
            }
            SSTUNodeFairing bottomFairing = modules[1];

            if (bottomFairing != null)
            {
                float             bottomFairingTopY = getBottomFairingTopY();
                FairingUpdateData data = new FairingUpdateData();
                data.setTopRadius(currentDiameter * 0.5f);
                data.setTopY(bottomFairingTopY);
                if (userInput)
                {
                    data.setBottomRadius(currentDiameter * 0.5f);
                }
                bottomFairing.updateExternal(data);
            }
        }