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

59 lines
1.7 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;
2022-09-04 21:21:24 +02:00
import io.gitlab.jfronny.inceptum.imgui.control.Tab;
import io.gitlab.jfronny.inceptum.imgui.window.GuiUtil;
import io.gitlab.jfronny.inceptum.imgui.window.Window;
import io.gitlab.jfronny.inceptum.launcher.model.inceptum.rt.Instance;
import java.io.IOException;
import java.util.List;
public class InstanceEditWindow extends Window {
protected final Instance instance;
private final List<Tab> tabs;
protected boolean reDownload = false;
protected boolean lastTabWasMods = false;
public InstanceEditWindow(Instance instance) throws IOException {
super(instance.getName() + " - Edit");
this.instance = instance;
2022-10-19 21:44:33 +02:00
this.instance.mds().start();
this.tabs = List.of(
new GeneralTab(this),
new ArgumentsTab(this),
new ModsTab(this),
new ExportTab(this)
);
}
@Override
public void draw() {
if (instance.isSetupLocked()) {
ImGui.text("This instance is still being set up.");
return;
}
if (instance.isRunningLocked()) {
ImGui.text("This instance is running. Edits in this state will result in breakage.");
}
lastTabWasMods = false;
if (ImGui.beginTabBar("InstanceEdit" + instance.id())) {
for (Tab tab : tabs) tab.render();
ImGui.endTabBar();
}
}
@Override
public void close() {
super.close();
if (reDownload) {
GuiUtil.reload(instance);
}
}
@Override
public int getFlags() {
return lastTabWasMods ? 0 : super.getFlags();
}
}