public void nextTextureEvent() { TextureSet next = SSTUUtils.findNext(textureSetData, m => m.setName == currentTextureSet, false); currentTextureSet = next?.setName; onTextureUpdated(null, null); }
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(); }
private void setupEngineModels(Transform modelBase) { engineModels = new InterstageDecouplerEngine[numberOfEngines]; float anglePerEngine = 360f / (float)numberOfEngines; float startAngle = enginePlacementAngleOffset; Transform modelTransform; String fullName; float placementAngle; for (int i = 0; i < numberOfEngines; i++) { placementAngle = startAngle + ((float)i * anglePerEngine); fullName = modelName + "-" + i; modelTransform = modelBase.FindRecursive(fullName); if (modelTransform == null) { modelTransform = SSTUUtils.cloneModel(modelName).transform; modelTransform.name = fullName; modelTransform.gameObject.name = fullName; } modelTransform.parent = modelBase; engineModels[i] = new InterstageDecouplerEngine(modelTransform, placementAngle, engineRotationOffset); } }
public void nextTextureEvent() { TextureSet next = SSTUUtils.findNext(textureSetData, m => m.setName == currentTextureSet, false); setTextureFromEditor(next == null ? null : next.setName, true); }