aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetChooseVersion.java5
-rw-r--r--loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfo.java5
-rw-r--r--loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoJar.java42
-rw-r--r--loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoLocal.java43
-rw-r--r--loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoRemote.java6
5 files changed, 98 insertions, 3 deletions
diff --git a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetChooseVersion.java b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetChooseVersion.java
index b62cd91f..05484f21 100644
--- a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetChooseVersion.java
+++ b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetChooseVersion.java
@@ -45,13 +45,18 @@ public class WidgetChooseVersion extends AnnotatedImportOnlyWidget {
@Bind(variableName = "infoWidget")
public final BindableAttribute<Widget> infoWidget = new BindableAttribute<>(Widget.class);
private void back() {
+ Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F));
listVisibility.setValue("branch");
}
private void jar() {
+ infoWidget.setValue(new WidgetInfoJar());
+ infoVisibility.setValue("show");
}
private void local() {
+ infoWidget.setValue(new WidgetInfoLocal());
+ infoVisibility.setValue("show");
}
private void remote(UpdateBranch branch, Update update, boolean isLatest) {
diff --git a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfo.java b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfo.java
index 7196c5e2..780a3548 100644
--- a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfo.java
+++ b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfo.java
@@ -51,6 +51,7 @@ public abstract class WidgetInfo extends AnnotatedImportOnlyWidget {
updateLog.setValue(log);
}
public void setVersion(String version) {this.version.setValue(version);}
+ public void setDefault(boolean bool) {this.makeItDefault.setValue(bool);}
public abstract IDGLoader getLoader();
@@ -68,6 +69,8 @@ public abstract class WidgetInfo extends AnnotatedImportOnlyWidget {
setConfiguration(configuration);
configuration.save();
}
- // do smth
+
+ Minecraft.getMinecraft().displayGuiScreen(null);
+ Main.getMain().tryReloadingWithSplash(idgLoader);
}
}
diff --git a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoJar.java b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoJar.java
new file mode 100644
index 00000000..777b3860
--- /dev/null
+++ b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoJar.java
@@ -0,0 +1,42 @@
+/*
+ * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
+ * Copyright (C) 2023 cyoung06 (syeyoung)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package kr.syeyoung.dungeonsguide.launcher.gui.screen.version;
+
+import kr.syeyoung.dungeonsguide.launcher.loader.IDGLoader;
+import kr.syeyoung.dungeonsguide.launcher.loader.JarLoader;
+import kr.syeyoung.dungeonsguide.launcher.loader.LocalLoader;
+import net.minecraftforge.common.config.Configuration;
+
+public class WidgetInfoJar extends WidgetInfo {
+ public WidgetInfoJar() {
+ super();
+ setVersion("Local (Jar)");
+ setUpdateLog("");
+ }
+
+ @Override
+ public void setConfiguration(Configuration configuration) {
+ configuration.get("loader", "modsource", "").set("jar");
+ }
+
+ @Override
+ public IDGLoader getLoader() {
+ return new JarLoader();
+ }
+}
diff --git a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoLocal.java b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoLocal.java
new file mode 100644
index 00000000..92a8dcc6
--- /dev/null
+++ b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoLocal.java
@@ -0,0 +1,43 @@
+/*
+ * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
+ * Copyright (C) 2023 cyoung06 (syeyoung)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package kr.syeyoung.dungeonsguide.launcher.gui.screen.version;
+
+import kr.syeyoung.dungeonsguide.launcher.branch.Update;
+import kr.syeyoung.dungeonsguide.launcher.branch.UpdateBranch;
+import kr.syeyoung.dungeonsguide.launcher.loader.IDGLoader;
+import kr.syeyoung.dungeonsguide.launcher.loader.LocalLoader;
+import net.minecraftforge.common.config.Configuration;
+
+public class WidgetInfoLocal extends WidgetInfo {
+ public WidgetInfoLocal() {
+ super();
+ setVersion("Local (Classes)");
+ setUpdateLog("");
+ }
+
+ @Override
+ public void setConfiguration(Configuration configuration) {
+ configuration.get("loader", "modsource", "").set("local");
+ }
+
+ @Override
+ public IDGLoader getLoader() {
+ return new LocalLoader();
+ }
+}
diff --git a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoRemote.java b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoRemote.java
index 6b450a67..dc4e2331 100644
--- a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoRemote.java
+++ b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/version/WidgetInfoRemote.java
@@ -21,6 +21,7 @@ package kr.syeyoung.dungeonsguide.launcher.gui.screen.version;
import kr.syeyoung.dungeonsguide.launcher.branch.Update;
import kr.syeyoung.dungeonsguide.launcher.branch.UpdateBranch;
import kr.syeyoung.dungeonsguide.launcher.loader.IDGLoader;
+import kr.syeyoung.dungeonsguide.launcher.loader.RemoteLoader;
import net.minecraftforge.common.config.Configuration;
public class WidgetInfoRemote extends WidgetInfo {
@@ -34,7 +35,8 @@ public class WidgetInfoRemote extends WidgetInfo {
this.isLatest = isLatest;
setUpdateLog(update.getUpdateLog());
this.isLatest = isLatest;
- setVersion(branch.getName()+"/"+update.getName()+ " ("+branch.getId()+"/"+update.getId()+")");
+ setVersion((isLatest ? "Latest :: " : "") + branch.getName()+"/"+update.getName()+ " ("+branch.getId()+"/"+update.getId()+")");
+ setDefault(isLatest);
}
@Override
@@ -46,6 +48,6 @@ public class WidgetInfoRemote extends WidgetInfo {
@Override
public IDGLoader getLoader() {
- return null;
+ return new RemoteLoader(updateBranch.getName(), update.getBranchId(), update.getId());
}
}