package action;
import java.util.ArrayList;
import cupcarbon.CupCarbon;
import cupcarbon_script.CupCommand;
public class CupActionStack {
public static int MAX_ELEMENT = 100;
public static ArrayList<CupActionBlock> actions ;
public static int idx = -1;
public static int n = 0;
public static void init() {
idx = -1;
n = 0;
CupCommand.isExecuted = true;
actions = new ArrayList<CupActionBlock>();
for(int i=0; i<MAX_ELEMENT+1; i++) {
actions.add(null);
}
}
public static void add(CupActionBlock actionList) {
idx++;
if(idx > MAX_ELEMENT-1) {
idx = MAX_ELEMENT-1;
actions.remove(0);
actions.add(null);
}
n = idx+1;
actions.set(idx, actionList);
idx--;
}
public static void execute() {
CupCarbon.cupCarbonController.saveButton.setDisable(false);
if(idx<n-1) {
idx++;
actions.get(idx).execute();
}
}
public static void antiExecute() {
CupCarbon.cupCarbonController.saveButton.setDisable(false);
if(idx>-1) {
actions.get(idx).antiExecute();
idx--;
}
}
}