From bef8b905de31f4f21842a9204fb9186e7be107a4 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 13 Oct 2019 17:14:35 -0400 Subject: [PATCH] Added github import dialog --- core/src/io/anuke/mindustry/core/UI.java | 1 + .../mindustry/ui/dialogs/ModsDialog.java | 51 ++++++++++--------- .../mindustry/ui/dialogs/TechTreeDialog.java | 2 +- 3 files changed, 29 insertions(+), 25 deletions(-) diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index 811a0e79e5..57ad4cccda 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -338,6 +338,7 @@ public class UI implements ApplicationListener, Loadable{ } public void showException(String text, Throwable exc){ + loadfrag.hide(); new Dialog(""){{ String message = Strings.getFinalMesage(exc); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/ModsDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/ModsDialog.java index 26d85887c1..c0a42d71a7 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/ModsDialog.java @@ -4,7 +4,6 @@ import io.anuke.arc.*; import io.anuke.arc.collection.*; import io.anuke.arc.util.*; import io.anuke.arc.util.io.*; -import io.anuke.mindustry.game.*; import io.anuke.mindustry.gen.*; import io.anuke.mindustry.graphics.*; import io.anuke.mindustry.mod.Mods.*; @@ -24,9 +23,35 @@ public class ModsDialog extends FloatingDialog{ () -> Core.net.openURI(reportIssueURL)) .size(250f, 64f); + buttons.row(); + buttons.addImageTextButton("$mods.guide", Icon.wiki, () -> Core.net.openURI(modGuideURL)) - .size(280f, 64f); + .size(210f, 64f); + + buttons.addImageTextButton("$mod.import.github", Icon.github, () -> { + ui.showTextInput("$mod.import.github", "", "Anuken/ExampleMod", text -> { + ui.loadfrag.show(); + Core.net.httpGet("http://api.github.com/repos/" + text + "/zipball/master", loc -> { + Core.net.httpGet(loc.getHeader("Location"), result -> { + try{ + Streams.copyStream(result.getResultAsStream(), modDirectory.child(text.replace("/", "") + ".zip").write(false)); + Core.app.post(() -> { + try{ + mods.reloadContent(); + setup(); + ui.loadfrag.hide(); + }catch(Exception e){ + ui.showException(e); + } + }); + }catch(Exception e){ + ui.showException(e); + } + }, t -> Core.app.post(() -> ui.showException(t))); + }, t -> Core.app.post(() -> ui.showException(t))); + }); + }).size(250f, 64f); shown(this::setup); @@ -120,27 +145,5 @@ public class ModsDialog extends FloatingDialog{ } }); }).margin(12f).width(500f); - - //not well tested currently - if(Version.build == -1){ - cont.row(); - - cont.addImageTextButton("$mod.import.github", Icon.github, () -> { - ui.showTextInput("$mod.import.github", "", "Anuken/ExampleMod", text -> { - Core.net.httpGet("http://api.github.com/repos/" + text + "/zipball/master", loc -> { - Core.net.httpGet(loc.getHeader("Location"), result -> { - try{ - Streams.copyStream(result.getResultAsStream(), modDirectory.child(text.replace("/", "") + ".zip").write(false)); - ui.loadAnd(() -> { - mods.reloadContent(); - }); - }catch(Exception e){ - ui.showException(e); - } - }, ui::showException); - }, ui::showException); - }); - }).margin(12f).width(500f); - } } } \ No newline at end of file diff --git a/core/src/io/anuke/mindustry/ui/dialogs/TechTreeDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/TechTreeDialog.java index 41cc27931b..25bfca4b5f 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/TechTreeDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/TechTreeDialog.java @@ -216,7 +216,7 @@ public class TechTreeDialog extends FloatingDialog{ addListener(new InputListener(){ @Override public boolean scrolled(InputEvent event, float x, float y, float amountX, float amountY){ - setScale(Mathf.clamp(getScaleX() - amountY / 100f, 0.2f, 1f)); + setScale(Mathf.clamp(getScaleX() - amountY / 40f, 0.2f, 1f)); setOrigin(Align.center); setTransform(true); return true;