Example #1
0
    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);
    }
Example #2
0
    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);
    }