package com.kokakiwi.mclauncher.core; import java.util.ArrayList; import java.util.List; import com.kokakiwi.mclauncher.MCLauncher; import com.kokakiwi.mclauncher.api.ui.Page; public class TimeLine { private final MCLauncher main; private final List<Page> pages = new ArrayList<Page>(); private int currentPage = -1; public TimeLine(MCLauncher main) { this.main = main; } public void init() { final List<Page> pages = main.getTheme().getPages(); if (pages != null) { this.pages.addAll(pages); } } public void start() { next(); } // Main section public void next() { currentPage++; if (currentPage < pages.size()) { main.getFrame().removeAll(); main.getFrame().reset(); final Page page = getCurrentPage(); page.fill(main.getFrame().getMainPanel(), main.getApi()); main.getFrame().validate(); } else { // Launch Minecraft main.getFrame().removeAll(); main.getFrame().reset(); main.getLauncher().launch(); main.getFrame().validate(); } } // Getter / Setter public MCLauncher getMain() { return main; } // Some utils... public int getCurrentPageId() { return currentPage; } public Page getCurrentPage() { return pages.get(currentPage); } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public List<Page> getPages() { return pages; } public static enum Step { INIT, LOGIN, LOADING, LAUNCHING, DONE; } }