Ejemplo n.º 1
0
 public void addPresetRatios(ContainerDefinition container, ContainerFuelPreset preset, bool updateSymmetry)
 {
     container.addPresetRatios(preset);
     if (updateSymmetry)
     {
         foreach (Part p in part.symmetryCounterparts)
         {
             SSTUVolumeContainer symmetryModule = p.GetComponent<SSTUVolumeContainer>();
             ContainerDefinition symmetryModuleContainer = symmetryModule.getContainer(container.name);
             ContainerFuelPreset symmetryModulePreset = symmetryModuleContainer.internalGetFuelPreset(preset.name);
             symmetryModule.addPresetRatios(symmetryModuleContainer, symmetryModulePreset, false);
         }
     }
 }
        private void initialize()
        {
            if (initialized) { return; }
            initialized = true;
            ConfigNode node = SSTUConfigNodeUtils.parseConfigNode(configNodeData);
            ConfigNode[] textureNodes = node.GetNodes("TEXTURESET");
            textureSetData = TextureSet.loadTextureSets(textureNodes);
            currentTextureSetData = Array.Find(textureSetData, m => m.setName == currentTextureSet);
            if (currentTextureSetData == null)
            {
                currentTextureSetData = textureSetData[0];
                currentTextureSet = currentTextureSetData.setName;
            }
            int len = textureSetData.Length;
            string[] textureSetNames = new string[len];
            for (int i = 0; i < len; i++)
            {
                textureSetNames[i] = textureSetData[i].setName;
            }
            this.updateUIChooseOptionControl("currentTextureSet", textureSetNames, textureSetNames, true, currentTextureSet);

            TextureData data = currentTextureSetData.textureDatas[0];
            fairingMaterial = SSTUUtils.loadMaterial(data.diffuseTextureName, null, "KSP/Specular");

            fuelType = VolumeContainerLoader.getPreset(fuelPreset);

            Transform modelBase = part.transform.FindRecursive("model");
            setupEngineModels(modelBase);
            minHeight = engineHeight * getEngineScale();
            Transform root = modelBase.FindOrCreate(baseTransformName);
            Transform collider = modelBase.FindOrCreate("InterstageFairingBaseCollider");
            fairingBase = new InterstageDecouplerModel(root.gameObject, collider.gameObject, 0.25f, cylinderSides, numberOfPanels, wallThickness);
            updateEditorFields();
            buildFairing();
            updateNodePositions(false);
            if (!initializedResources && (HighLogic.LoadedSceneIsFlight || HighLogic.LoadedSceneIsEditor))
            {
                initializedResources = true;
                updateResources();
            }
            updatePartMass();
            updateEngineThrust();
        }
Ejemplo n.º 3
0
 public void subtractPresetRatios(ContainerDefinition container, ContainerFuelPreset preset, bool updateSymmetry)
 {
     container.subtractPresetRatios(preset);
     if (updateSymmetry)
     {
         foreach (Part p in part.symmetryCounterparts)
         {
             SSTUVolumeContainer mod = p.GetComponent<SSTUVolumeContainer>();
             ContainerDefinition def2 = mod.getContainer(container.name);
             ContainerFuelPreset preset2 = def2.internalGetFuelPreset(preset.name);
             mod.subtractPresetRatios(def2, preset2, false);
         }
     }
 }