Class UndoableAction.Utils

  • Enclosing interface:
    UndoableAction

    public static final class UndoableAction.Utils
    extends java.lang.Object
    • Constructor Detail

      • Utils

        public Utils()
    • Method Detail

      • getSimpleUniformSelection

        public static final UndoableAction getSimpleUniformSelection​(UndoableAction[] subActions)
        Create an action that selects uniformly from a number of sub actions
        Parameters:
        subActions -
        Returns:
      • getDistributedSelection

        public static final UndoableAction getDistributedSelection​(UndoableAction[] subActions,
                                                                   double[] actionProportions)
        Create an action that selects uniformly from a number of sub actions
        Parameters:
        subActions -
        acitionProportions -
        Returns:
        Throws:
        java.lang.IllegalArgumentException - if action array and proportion arrays are different lengths
      • getCombined

        public static final UndoableAction getCombined​(UndoableAction[] subActions)
        Create an action that combines multiple actions
        Parameters:
        subActions - The actions that are do in turn.
        Returns:
        An action that performs all the sub actions
      • getSimpleDesparation

        public static final UndoableAction getSimpleDesparation​(UndoableAction primaryAction,
                                                                UndoableAction desparateAction,
                                                                double desparationLimit,
                                                                int desparationInterval)
        A simple tool for change actions when things get desparate
        Parameters:
        primaryAction - The main action to do when things are going well
        desparateAction - The action to do when things get desparate. The desperation value for the desparate action will be scaled according to how much over the limit we are
        desparationLimit - The desparate value at which we start doing the desparate action
        desparationInterval - The time between desparate actions when we cross the cutoff (a value of one will mean do all the time after desparation value has crossed cutoff)