public void onTextureUpdated(BaseField field, object obj) { this.actionWithSymmetry(m => { m.currentTextureSet = currentTextureSet; m.updateTextureSet(!SSTUGameSettings.persistRecolor()); }); }
/// <summary> /// Symmetry-enabled method. Should only be called when symmetry updates are desired. /// </summary> /// <param name="field"></param> /// <param name="oldValue"></param> public void textureSetSelected(BaseField field, System.Object oldValue) { bool defaultColors = !SSTUGameSettings.persistRecolor(); actionWithSymmetry(m => { m.textureSet = textureSet; m.applyTextureSet(m.textureSet, defaultColors); if (textureField != null) { m.partModule.updateUIChooseOptionControl(textureField.name, m.model.modelDefinition.getTextureSetNames(), m.model.modelDefinition.getTextureSetTitles(), true, m.textureSet); } }); }
/// <summary> /// Initialization method. Subsequent changes to model should call the modelSelectedXXX methods below. /// </summary> public void setupModel() { SSTUUtils.destroyChildrenImmediate(root); if (models == null) { MonoBehaviour.print("ERROR: model list was null! Models must be populated after module construction."); } model = models.Find(m => m.name == modelName); if (model == null) { MonoBehaviour.print("ERROR: could not locate model for name: " + modelName); model = models[0]; modelName = model.name; MonoBehaviour.print("Using first available model: " + model.name); } preModelSetup(model); model.setupModel(root, orientation); bool useDefaultTextureColors = false; if (!model.isValidTextureSet(textureSet) && !string.Equals("default", textureSet)) { if (!string.Equals(string.Empty, textureSet)) { MonoBehaviour.print("Current texture set for model " + model.name + " invalid: " + textureSet + ", clearing colors and assigning default texture set."); } textureSet = model.getDefaultTextureSet(); if (!model.isValidTextureSet(textureSet)) { MonoBehaviour.print("ERROR: Default texture set: " + textureSet + " set for model: " + model.name + " is invalid. This is a configuration level error in the model definition that needs to be corrected."); } useDefaultTextureColors = true; if (SSTUGameSettings.persistRecolor()) { useDefaultTextureColors = false; } } if (customColors == null || customColors.Length == 0) { useDefaultTextureColors = true; } applyTextureSet(textureSet, useDefaultTextureColors); }
public override void OnStart(StartState state) { base.OnStart(state); initialize(); Fields[nameof(guiTopDiameter)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { m.guiTopDiameter = guiTopDiameter; float radius = m.guiTopDiameter * 0.5f; int len = m.fairingParts.Length; for (int i = 0; i < len; i++) { if (m.fairingParts[i].canAdjustTop && m.fairingParts[i].topRadius != radius) { m.fairingParts[i].topRadius = radius; m.needsRebuilt = m.fairingCreated; } } }); }; Fields[nameof(guiBottomDiameter)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { m.guiBottomDiameter = guiBottomDiameter; float radius = m.guiBottomDiameter * 0.5f; int len = m.fairingParts.Length; for (int i = 0; i < len; i++) { if (m.fairingParts[i].canAdjustBottom && m.fairingParts[i].bottomRadius != radius) { m.fairingParts[i].bottomRadius = radius; m.needsRebuilt = m.fairingCreated; } } }); }; Fields[nameof(numOfSections)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { m.numOfSections = numOfSections; m.needsRebuilt = m.fairingCreated; }); }; Fields[nameof(editorTransparency)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { m.editorTransparency = editorTransparency; m.updateOpacity(); }); }; Fields[nameof(generateColliders)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { m.generateColliders = generateColliders; m.updateColliders(); }); }; Fields[nameof(currentTextureSet)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { m.currentTextureSet = currentTextureSet; m.updateTextureSet(!SSTUGameSettings.persistRecolor()); }); }; this.updateUIFloatEditControl(nameof(guiTopDiameter), minTopDiameter, maxTopDiameter, topDiameterIncrement * 2, topDiameterIncrement, topDiameterIncrement * 0.05f, true, guiTopDiameter); this.updateUIFloatEditControl(nameof(guiBottomDiameter), minBottomDiameter, maxBottomDiameter, bottomDiameterIncrement * 2, bottomDiameterIncrement, bottomDiameterIncrement * 0.05f, true, guiBottomDiameter); GameEvents.onEditorShipModified.Add(new EventData <ShipConstruct> .OnEvent(onEditorVesselModified)); GameEvents.onVesselWasModified.Add(new EventData <Vessel> .OnEvent(onVesselModified)); }
public override void OnStart(StartState state) { base.OnStart(state); initialize(); this.updateUIFloatEditControl(nameof(currentTopDiameter), minDiameter, maxDiameter, diameterIncrement * 2, diameterIncrement, diameterIncrement * 0.05f, true, currentTopDiameter); this.updateUIFloatEditControl(nameof(currentBottomDiameter), minDiameter, maxDiameter, diameterIncrement * 2, diameterIncrement, diameterIncrement * 0.05f, true, currentBottomDiameter); this.updateUIFloatEditControl(nameof(currentHeight), minHeight, maxHeight, heightIncrement * 2, heightIncrement, heightIncrement * 0.05f, true, currentHeight); this.updateUIFloatEditControl(nameof(currentTaperHeight), minHeight, maxHeight, heightIncrement * 2, heightIncrement, heightIncrement * 0.05f, true, currentTaperHeight); Action <SSTUInterstageDecoupler> rebuild = delegate(SSTUInterstageDecoupler m) { m.updateEditorFields(); m.buildFairing(); m.updateEnginePositionAndScale(); m.updateNodePositions(true); m.updatePartMass(); m.updateShielding(); m.updateDragCubes(); m.updateFairingTextureSet(false); }; Fields[nameof(currentTopDiameter)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { if (m != this) { m.currentTopDiameter = this.currentTopDiameter; } rebuild(m); }); }; Fields[nameof(currentBottomDiameter)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { if (m != this) { m.currentBottomDiameter = this.currentBottomDiameter; } rebuild(m); }); }; Fields[nameof(currentHeight)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { if (m != this) { m.currentHeight = this.currentHeight; } rebuild(m); }); }; Fields[nameof(currentTaperHeight)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { if (m != this) { m.currentTaperHeight = this.currentTaperHeight; } rebuild(m); }); }; Fields[nameof(editorTransparency)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { if (m != this) { m.editorTransparency = this.editorTransparency; } m.fairingBase.setOpacity(m.editorTransparency ? 0.25f : 1); }); }; Fields[nameof(generateColliders)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { if (m != this) { m.generateColliders = this.generateColliders; } if (m.fairingBase.generateColliders != m.generateColliders) { m.fairingBase.generateColliders = m.generateColliders; m.buildFairing(); m.updateFairingTextureSet(false); } }); }; Fields[nameof(currentTextureSet)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { m.currentTextureSet = currentTextureSet; m.updateFairingTextureSet(!SSTUGameSettings.persistRecolor()); }); }; Fields[nameof(currentEngineModel)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { engineModels.modelSelected(a, b); this.actionWithSymmetry(m => { //model selected action sets vars on symmetry parts rebuild(m); m.reInitEngineModule(); SSTUModInterop.updateResourceVolume(m.part); }); }; Fields[nameof(currentEngineScale)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { if (m != this) { m.currentEngineScale = this.currentEngineScale; } rebuild(m); SSTUModInterop.updateResourceVolume(m.part); }); }; Fields[nameof(currentEngineLayout)].uiControlEditor.onFieldChanged = delegate(BaseField a, System.Object b) { engineModels.layoutSelected(a, b); this.actionWithSymmetry(m => { m.reInitEngineModule(); m.updatePartMass(); m.updateDragCubes(); SSTUModInterop.updateResourceVolume(m.part); }); }; Fields[nameof(currentEngineTextureSet)].uiControlEditor.onFieldChanged = engineModels.textureSetSelected; Fields[nameof(currentEngineTextureSet)].guiActiveEditor = engineModels.definition.textureSets.Length > 1; GameEvents.onEditorShipModified.Add(new EventData <ShipConstruct> .OnEvent(onEditorShipModified)); SSTUModInterop.onPartGeometryUpdate(part, true); SSTUModInterop.updateResourceVolume(part); }