/// <summary> /// Singular 'enable texture set' function to be used by internal and external plugin code. Optionally calls recursively /// to update symmetry counterparts if 'symmetry' parameter is true.<para/> /// </summary> /// <param name="name"></param> /// <param name="symmetry"></param> public void enableTextureSet(string name, bool symmetry, bool userInput) { if (textureSets == null) { return; } //TODO - validate input texture set name; log error if invalid currentTextureSet = name; textureSets.enableCurrentSet(getModelTransforms(), userInput); TextureCallbacks.onTextureSetChanged(part); if (symmetry) { this.actionWithSymmetry(m => { m.enableTextureSet(name, false, userInput); }); } }
public override void OnStart(PartModule.StartState state) { base.OnStart(state); initialize(); Callback <BaseField, System.Object> onChangeAction = delegate(BaseField a, System.Object b) { this.actionWithSymmetry(m => { m.currentTextureSet = currentTextureSet; m.textureSets.enableCurrentSet(m.getModelTransforms()); TextureCallbacks.onTextureSetChanged(m.part); }); }; BaseField field = Fields[nameof(currentTextureSet)]; field.uiControlEditor.onFieldChanged = onChangeAction; field.uiControlFlight.onFieldChanged = onChangeAction; field.guiActive = canChangeInFlight; if (textureSets.textureSets.Length <= 1) { field.guiActive = field.guiActiveEditor = false; } }