Inceptum/launcher-imgui/src/main/java/io/gitlab/jfronny/inceptum/imgui/window/edit/ExportTab.java

48 lines
2.4 KiB
Java
Raw Normal View History

2022-09-04 21:21:24 +02:00
package io.gitlab.jfronny.inceptum.imgui.window.edit;
import imgui.ImGui;
import io.gitlab.jfronny.commons.ref.R;
2022-09-04 21:21:24 +02:00
import io.gitlab.jfronny.inceptum.imgui.GuiMain;
import io.gitlab.jfronny.inceptum.imgui.control.Tab;
import io.gitlab.jfronny.inceptum.imgui.window.dialog.ProcessStateWatcherWindow;
import io.gitlab.jfronny.inceptum.imgui.window.dialog.TextBoxWindow;
2022-09-18 15:15:30 +02:00
import io.gitlab.jfronny.inceptum.launcher.LauncherEnv;
2022-10-27 20:54:55 +02:00
import io.gitlab.jfronny.inceptum.launcher.system.exporter.Exporter;
import io.gitlab.jfronny.inceptum.launcher.system.exporter.Exporters;
2022-09-04 21:21:24 +02:00
import io.gitlab.jfronny.inceptum.launcher.util.ProcessState;
import java.nio.file.Path;
public class ExportTab extends Tab {
private final InstanceEditWindow window;
public ExportTab(InstanceEditWindow window) {
super("Export");
this.window = window;
}
@Override
protected void renderInner() {
if (window.instance.mds.isComplete) {
2022-09-18 15:15:30 +02:00
for (Exporter<?> exporter : Exporters.EXPORTERS) {
if (ImGui.button(exporter.name)) {
2022-09-18 15:15:30 +02:00
GuiMain.open(new TextBoxWindow("Version", "Please enter the current version of your modpack", "1.0", version -> {
String defaultName = window.instance.name + " " + version + " (" + exporter.name + ")." + exporter.fileExtension;
String filter = "*." + exporter.fileExtension;
Path exportPath = GuiMain.saveFileDialog("Export " + exporter.name + " Pack", defaultName, new String[]{filter}, exporter.name + " packs (" + filter + ")");
2022-09-19 21:26:23 +02:00
if (exportPath != null) {
2022-09-18 15:15:30 +02:00
ProcessState state = new ProcessState(Exporters.STEP_COUNT, "Initializing...");
GuiMain.open(new ProcessStateWatcherWindow("Exporting", "Could not export pack", state, cToken -> {
exporter.generate(state, window.instance, exportPath, version);
LauncherEnv.showInfo(window.instance.name + " has been successfully exported to " + exportPath, "Successfully exported");
2022-09-18 15:15:30 +02:00
}, null));
}
}, R::nop));
}
}
2022-09-04 21:21:24 +02:00
} else {
ImGui.text("The mods directory scan must be completed.\nThe progress for this can be observed in the mods tab");
}
}
}