public void SetMembrane(string membraneName) { var membrane = SimulationParameters.Instance.GetMembrane(membraneName); if (Membrane.Equals(membrane)) return; var action = new EditorAction(this, membrane.EditorCost, DoMembraneChangeAction, UndoMembraneChangeAction, new MembraneActionData(Membrane, membrane)); EnqueueAction(action); // In case the action failed, we need to make sure the membrane buttons are updated properly gui.UpdateMembraneButtons(Membrane.InternalName); }
public void SetMembrane(Membrane membrane) { if (Membrane.Equals(membrane)) { return; } throw new NotImplementedException(); // int cost = SimulationParameters::membraneRegistry().getTypeData( // string(vars.GetSingleValueByName("membrane"))).editorCost; // EditorAction@ action = EditorAction(cost, // // redo // function(EditorAction@ action, MicrobeEditor@ editor){ // editor.membrane = MembraneTypeId(action.data["membrane"]); // GenericEvent@ event = GenericEvent("MicrobeEditorMembraneUpdated"); // NamedVars@ vars = event.GetNamedVars(); // vars.AddValue(ScriptSafeVariableBlock("membrane", // SimulationParameters::membraneRegistry().getInternalName(editor.membrane))); // GetEngine().GetEventHandler().CallEvent(event); // // Calculate and send energy balance to the GUI // calculateEnergyBalanceWithOrganellesAndMembraneType( // editor.editedMicrobeOrganelles, editor.membrane, editor.targetPatch); // // not using _onEditedCellChange due to visuals not needing update // }, // // undo // function(EditorAction@ action, MicrobeEditor@ editor){ // editor.membrane = MembraneTypeId(action.data["prevMembrane"]); // GenericEvent@ event = GenericEvent("MicrobeEditorMembraneUpdated"); // NamedVars@ vars = event.GetNamedVars(); // vars.AddValue(ScriptSafeVariableBlock("membrane", // SimulationParameters::membraneRegistry().getInternalName(editor.membrane))); // GetEngine().GetEventHandler().CallEvent(event); // // Calculate and send energy balance to the GUI // calculateEnergyBalanceWithOrganellesAndMembraneType( // editor.editedMicrobeOrganelles, editor.membrane, editor.targetPatch); // } // ); // action.data["membrane"] = SimulationParameters::membraneRegistry().getTypeId( // string(vars.GetSingleValueByName("membrane"))); // action.data["prevMembrane"] = membrane; // enqueueAction(action); }