public override void OnStart(StartState state)
{
base.OnStart(state);
initialize();
this.updateUIFloatEditControl("currentDiameter", minDiameter, maxDiameter, diameterIncrement*2, diameterIncrement, diameterIncrement*0.05f, true, currentDiameter);
this.updateUIFloatEditControl("currentGimbalOffset", -currentNozzleModule.gimbalAdjustmentRange, currentNozzleModule.gimbalAdjustmentRange, 2f, 1f, 0.1f, true, currentGimbalOffset);
currentNoseModule.updateTextureUIControl(this, "currentNoseTexture", currentNoseTexture);
currentMainModule.updateTextureUIControl(this, "currentMainTexture", currentMainTexture);
currentNozzleModule.updateTextureUIControl(this, "currentNozzleTexture", currentNozzleTexture);
string[] names = SSTUUtils.getNames(noseModules, m => m.name);
this.updateUIChooseOptionControl("currentNoseName", names, names, true, currentNoseName);
names = SSTUUtils.getNames(mainModules, m => m.name);
this.updateUIChooseOptionControl("currentMainName", names, names, true, currentMainName);
names = SSTUUtils.getNames(nozzleModules, m => m.name);
this.updateUIChooseOptionControl("currentNozzleName", names, names, true, currentNozzleName);
bool useModelSelectionGUI = HighLogic.CurrentGame.Parameters.CustomParams<SSTUGameSettings>().useModelSelectGui;
Events["selectNoseEvent"].guiActiveEditor = useModelSelectionGUI;
Fields["currentDiameter"].uiControlEditor.onFieldChanged = onDiameterUpdated;
Fields["currentGimbalOffset"].uiControlEditor.onFieldChanged = onGimbalUpdated;
Fields["currentNoseName"].uiControlEditor.onFieldChanged = onNoseUpdated;
Fields["currentMainName"].uiControlEditor.onFieldChanged = onBodyUpdated;
Fields["currentNozzleName"].uiControlEditor.onFieldChanged = onNozzleUpdated;
Fields["currentNoseName"].guiActiveEditor = !useModelSelectionGUI && noseModules.Length>1;
Fields["currentNozzleName"].guiActiveEditor = nozzleModules.Length > 1;
Fields["currentMainName"].guiActiveEditor = mainModules.Length > 1;
Fields["currentGimbalOffset"].guiActiveEditor = currentNozzleModule.gimbalAdjustmentRange > 0;
Fields["currentDiameter"].guiActiveEditor = maxDiameter > minDiameter;
Fields["currentNoseTexture"].uiControlEditor.onFieldChanged = onNoseTextureUpdated;
Fields["currentMainTexture"].uiControlEditor.onFieldChanged = onMainTextureUpdated;
Fields["currentNozzleTexture"].uiControlEditor.onFieldChanged = onNozzleTextureUpdated;
SSTUModInterop.onPartGeometryUpdate(part, true);
GameEvents.onEditorShipModified.Add(new EventData<ShipConstruct>.OnEvent(onEditorShipModified));
}