From 1d24dd6d4d04ff3d9cecb83703536f3b1a1c19cc Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Fri, 31 Jul 2020 12:12:43 +0200 Subject: [PATCH 01/32] Create Mod Browser --- core/src/mindustry/ui/dialogs/ModsDialog.java | 74 ++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index ddb72815b4..f249cc1fc8 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -3,18 +3,23 @@ package mindustry.ui.dialogs; import arc.*; import arc.Net.*; import arc.files.*; +import arc.func.Cons; +import arc.struct.*; import arc.graphics.*; import arc.graphics.g2d.*; import arc.scene.ui.TextButton.*; import arc.util.*; import arc.util.io.*; +import arc.util.serialization.Json; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.mod.ModListing; import mindustry.mod.Mods.*; import mindustry.ui.*; import java.io.*; + import static mindustry.Vars.*; public class ModsDialog extends BaseDialog{ @@ -133,11 +138,78 @@ public class ModsDialog extends BaseDialog{ }, t2 -> Core.app.post(() -> modError(t2))); }); }).margin(12f); - }); + t.row(); + + t.button("$mod.featured.title", Icon.github, bstyle, () -> { + try { + //Keep this until mods work + ui.showErrorMessage("This feature doesnt work completely due to mods not working in v6. Wait for this to be fixed. If you decide to use it anyways, mods will not let you enter the game."); + //Until here + dialog.hide(); + BaseDialog dialog2 = new BaseDialog("$mod.featured.dialog.title"); + dialog2.cont.pane(tablebrow -> { + tablebrow.margin(10f).top(); + Core.net.httpGet("https://raw.githubusercontent.com/Anuken/MindustryMods/master/mods.json", response -> { + if (response.getStatus() != HttpStatus.OK) { + return; + } + Json json = new Json(); + Seq listings = json.fromJson(Seq.class, ModListing.class, response.getResultAsString()); + for (ModListing modsbrolist : listings) { + tablebrow.button(btn -> { + btn.top().left(); + btn.margin(12f); + btn.table(con -> { + con.left(); + con.add("[lightgray]Name:[] " + modsbrolist.name + "\n[lightgray]Author:[] " + modsbrolist.author + "\n[]Stars: " + modsbrolist.stars + "\n[]" + modsbrolist.description).wrap().width(380f).growX(); + con.add().growX(); + }).fillY(); + }, Styles.clearPartialt, () -> { + Core.net.httpGet("http://api.github.com/repos/" + modsbrolist.repo + "/zipball/master", loc -> { + Core.net.httpGet(loc.getHeader("Location"), result -> { + if(result.getStatus() != HttpStatus.OK){ + ui.showErrorMessage(Core.bundle.format("connectfail", result.getStatus())); + ui.loadfrag.hide(); + }else{ + try{ + Fi file = tmpDirectory.child(modsbrolist.repo.replace("/", "") + ".zip"); + Streams.copy(result.getResultAsStream(), file.write(false)); + mods.importMod(file); + file.delete(); + Core.app.post(() -> { + try{ + setup(); + ui.loadfrag.hide(); + }catch(Throwable e){ + ui.showException(e); + } + }); + }catch(Throwable e){ + modError(e); + } + } + }, t2 -> Core.app.post(() -> modError(t2))); + }, t2 -> Core.app.post(() -> modError(t2))); + }).width(380f).growX().left().fillY(); + tablebrow.row(); + } + }, error -> { + ui.showErrorMessage(error.toString()); + }); + + }); + dialog2.addCloseButton(); + dialog2.show(); + }catch (Exception ignored){ } + }).margin(12f); + + + }); dialog.addCloseButton(); dialog.show(); + }).margin(margin); if(!mobile){ From d83405c946602a58a89ee43279aef2b84aa9aaea Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Fri, 31 Jul 2020 12:33:25 +0200 Subject: [PATCH 02/32] fix --- core/src/mindustry/ui/dialogs/ModsDialog.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index f249cc1fc8..bba53bf5a7 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -143,7 +143,7 @@ public class ModsDialog extends BaseDialog{ t.button("$mod.featured.title", Icon.github, bstyle, () -> { try { - //Keep this until mods work + //Remove this until mods work ui.showErrorMessage("This feature doesnt work completely due to mods not working in v6. Wait for this to be fixed. If you decide to use it anyways, mods will not let you enter the game."); //Until here dialog.hide(); @@ -162,7 +162,7 @@ public class ModsDialog extends BaseDialog{ btn.margin(12f); btn.table(con -> { con.left(); - con.add("[lightgray]Name:[] " + modsbrolist.name + "\n[lightgray]Author:[] " + modsbrolist.author + "\n[]Stars: " + modsbrolist.stars + "\n[]" + modsbrolist.description).wrap().width(380f).growX(); + con.add("[lightgray]Name:[] " + modsbrolist.name + "\n[lightgray]Author:[] " + modsbrolist.author + "\n[]Stars: " + modsbrolist.stars + "\n" + modsbrolist.description).wrap().width(380f).growX(); con.add().growX(); }).fillY(); }, Styles.clearPartialt, () -> { @@ -173,7 +173,7 @@ public class ModsDialog extends BaseDialog{ ui.loadfrag.hide(); }else{ try{ - Fi file = tmpDirectory.child(modsbrolist.repo.replace("/", "") + ".zip"); + Fi file = tmpDirectory.child((modsbrolist.repo).replace("/", "") + ".zip"); Streams.copy(result.getResultAsStream(), file.write(false)); mods.importMod(file); file.delete(); From 5d4cbf6af5e34d03a40020a2084c68bbdea4e628 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Fri, 31 Jul 2020 12:34:36 +0200 Subject: [PATCH 03/32] Update ModsDialog.java --- core/src/mindustry/ui/dialogs/ModsDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index bba53bf5a7..abaea0f441 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -143,7 +143,7 @@ public class ModsDialog extends BaseDialog{ t.button("$mod.featured.title", Icon.github, bstyle, () -> { try { - //Remove this until mods work + //Keep this until mods work ui.showErrorMessage("This feature doesnt work completely due to mods not working in v6. Wait for this to be fixed. If you decide to use it anyways, mods will not let you enter the game."); //Until here dialog.hide(); From 3a2a591c43815d3bfe8dc6b64384c4f20b54e884 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Fri, 31 Jul 2020 12:35:32 +0200 Subject: [PATCH 04/32] Last fix (i hope) --- core/src/mindustry/ui/dialogs/ModsDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index abaea0f441..d4e6384781 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -141,7 +141,7 @@ public class ModsDialog extends BaseDialog{ t.row(); - t.button("$mod.featured.title", Icon.github, bstyle, () -> { + t.button("$mod.featured.title", Icon.star, bstyle, () -> { try { //Keep this until mods work ui.showErrorMessage("This feature doesnt work completely due to mods not working in v6. Wait for this to be fixed. If you decide to use it anyways, mods will not let you enter the game."); From b2f973735b95b9b0111cf6e56d34de9fc253b58e Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Fri, 31 Jul 2020 12:49:03 +0200 Subject: [PATCH 05/32] add margin to the buttons --- core/src/mindustry/ui/dialogs/ModsDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index d4e6384781..6c4d5e8ed5 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -191,7 +191,7 @@ public class ModsDialog extends BaseDialog{ } }, t2 -> Core.app.post(() -> modError(t2))); }, t2 -> Core.app.post(() -> modError(t2))); - }).width(380f).growX().left().fillY(); + }).width(380f).margin(8f).growX().left().fillY(); tablebrow.row(); } }, error -> { From df635777c37d623bcc185afc3d577df8b55058fd Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Fri, 31 Jul 2020 13:20:38 +0200 Subject: [PATCH 06/32] larger margin --- core/src/mindustry/ui/dialogs/ModsDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 6c4d5e8ed5..290af20026 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -191,7 +191,7 @@ public class ModsDialog extends BaseDialog{ } }, t2 -> Core.app.post(() -> modError(t2))); }, t2 -> Core.app.post(() -> modError(t2))); - }).width(380f).margin(8f).growX().left().fillY(); + }).width(380f).margin(20f).growX().left().fillY(); tablebrow.row(); } }, error -> { From 2e09373fdcbf18ff2c60c6b6cd3cf245fe563fab Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Fri, 31 Jul 2020 14:29:23 +0200 Subject: [PATCH 07/32] less margin --- core/src/mindustry/ui/dialogs/ModsDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 290af20026..429372fdac 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -191,7 +191,7 @@ public class ModsDialog extends BaseDialog{ } }, t2 -> Core.app.post(() -> modError(t2))); }, t2 -> Core.app.post(() -> modError(t2))); - }).width(380f).margin(20f).growX().left().fillY(); + }).width(380f).margin(15f).growX().left().fillY(); tablebrow.row(); } }, error -> { From 451a4faa5b0952c89dbcf5a607def4d2c7f1af7d Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Fri, 31 Jul 2020 16:06:42 +0200 Subject: [PATCH 08/32] fix --- core/src/mindustry/ui/dialogs/ModsDialog.java | 84 ++++++++++--------- 1 file changed, 44 insertions(+), 40 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 429372fdac..177620b8c4 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -152,47 +152,49 @@ public class ModsDialog extends BaseDialog{ tablebrow.margin(10f).top(); Core.net.httpGet("https://raw.githubusercontent.com/Anuken/MindustryMods/master/mods.json", response -> { if (response.getStatus() != HttpStatus.OK) { - return; - } - Json json = new Json(); - Seq listings = json.fromJson(Seq.class, ModListing.class, response.getResultAsString()); - for (ModListing modsbrolist : listings) { - tablebrow.button(btn -> { - btn.top().left(); - btn.margin(12f); - btn.table(con -> { - con.left(); - con.add("[lightgray]Name:[] " + modsbrolist.name + "\n[lightgray]Author:[] " + modsbrolist.author + "\n[]Stars: " + modsbrolist.stars + "\n" + modsbrolist.description).wrap().width(380f).growX(); - con.add().growX(); - }).fillY(); - }, Styles.clearPartialt, () -> { - Core.net.httpGet("http://api.github.com/repos/" + modsbrolist.repo + "/zipball/master", loc -> { - Core.net.httpGet(loc.getHeader("Location"), result -> { - if(result.getStatus() != HttpStatus.OK){ - ui.showErrorMessage(Core.bundle.format("connectfail", result.getStatus())); - ui.loadfrag.hide(); - }else{ - try{ - Fi file = tmpDirectory.child((modsbrolist.repo).replace("/", "") + ".zip"); - Streams.copy(result.getResultAsStream(), file.write(false)); - mods.importMod(file); - file.delete(); - Core.app.post(() -> { - try{ - setup(); - ui.loadfrag.hide(); - }catch(Throwable e){ - ui.showException(e); - } - }); - }catch(Throwable e){ - modError(e); + ui.showErrorMessage(Core.bundle.format("connectfail", response.getStatus())); + } else { + Json json = new Json(); + Seq listings = json.fromJson(Seq.class, ModListing.class, response.getResultAsString()); + for (ModListing modsbrolist : listings) { + tablebrow.button(btn -> { + btn.top().left(); + btn.margin(12f); + btn.table(con -> { + con.left(); + con.add("[lightgray]Name:[] " + modsbrolist.name + "\n[lightgray]Author:[] " + modsbrolist.author + "\n[]Stars: " + modsbrolist.stars + "\n" + modsbrolist.description).wrap().width(380f).growX().get().setWrap(true); + con.add().growX(); + }).fillY(); + }, Styles.clearPartialt, () -> { + ui.loadfrag.show(); + Core.net.httpGet("http://api.github.com/repos/" + modsbrolist.repo + "/zipball/master", loc -> { + Core.net.httpGet(loc.getHeader("Location"), result -> { + if (result.getStatus() != HttpStatus.OK) { + ui.showErrorMessage(Core.bundle.format("connectfail", result.getStatus())); + ui.loadfrag.hide(); + } else { + try { + Fi file = tmpDirectory.child((modsbrolist.repo).replace("/", "") + ".zip"); + Streams.copy(result.getResultAsStream(), file.write(false)); + mods.importMod(file); + file.delete(); + Core.app.post(() -> { + try { + setup(); + ui.loadfrag.hide(); + } catch (Throwable e) { + ui.showException(e); + } + }); + } catch (Throwable e) { + modError(e); + } } - } + }, t2 -> Core.app.post(() -> modError(t2))); }, t2 -> Core.app.post(() -> modError(t2))); - }, t2 -> Core.app.post(() -> modError(t2))); - }).width(380f).margin(15f).growX().left().fillY(); - tablebrow.row(); + }).width(380f).margin(15f).growX().left().fillY(); + tablebrow.row(); + } } }, error -> { ui.showErrorMessage(error.toString()); @@ -201,7 +203,9 @@ public class ModsDialog extends BaseDialog{ }); dialog2.addCloseButton(); dialog2.show(); - }catch (Exception ignored){ } + }catch (Exception e){ + //ignore + } }).margin(12f); From 53f0a4516fb4b510a4cad3e00c343b3e70f7f325 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 1 Aug 2020 15:49:53 +0200 Subject: [PATCH 09/32] Update ModsDialog.java --- core/src/mindustry/ui/dialogs/ModsDialog.java | 123 +++++++++++------- 1 file changed, 73 insertions(+), 50 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 177620b8c4..a41d03c971 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -4,6 +4,7 @@ import arc.*; import arc.Net.*; import arc.files.*; import arc.func.Cons; +import arc.scene.ui.TextField; import arc.struct.*; import arc.graphics.*; import arc.graphics.g2d.*; @@ -23,7 +24,8 @@ import java.io.*; import static mindustry.Vars.*; public class ModsDialog extends BaseDialog{ - + private String searchtxt = ""; + private TextField searchBar; public ModsDialog(){ super("$mods"); addCloseButton(); @@ -56,6 +58,7 @@ public class ModsDialog extends BaseDialog{ } void setup(){ + Runnable[] rebuildBrowser = {null}; float h = 110f; float w = mobile ? 430f : 524f; @@ -143,66 +146,86 @@ public class ModsDialog extends BaseDialog{ t.button("$mod.featured.title", Icon.star, bstyle, () -> { try { - //Keep this until mods work - ui.showErrorMessage("This feature doesnt work completely due to mods not working in v6. Wait for this to be fixed. If you decide to use it anyways, mods will not let you enter the game."); - //Until here dialog.hide(); BaseDialog dialog2 = new BaseDialog("$mod.featured.dialog.title"); + dialog2.cont.table(table -> { + table.left(); + table.image(Icon.zoom); + searchBar = table.field(searchtxt, res -> { + searchtxt = res; + rebuildBrowser[0].run(); + }).growX().get(); + }).fillX().padBottom(4); + + dialog2.cont.row(); + dialog2.cont.pane(tablebrow -> { tablebrow.margin(10f).top(); - Core.net.httpGet("https://raw.githubusercontent.com/Anuken/MindustryMods/master/mods.json", response -> { - if (response.getStatus() != HttpStatus.OK) { - ui.showErrorMessage(Core.bundle.format("connectfail", response.getStatus())); - } else { - Json json = new Json(); - Seq listings = json.fromJson(Seq.class, ModListing.class, response.getResultAsString()); - for (ModListing modsbrolist : listings) { - tablebrow.button(btn -> { - btn.top().left(); - btn.margin(12f); - btn.table(con -> { - con.left(); - con.add("[lightgray]Name:[] " + modsbrolist.name + "\n[lightgray]Author:[] " + modsbrolist.author + "\n[]Stars: " + modsbrolist.stars + "\n" + modsbrolist.description).wrap().width(380f).growX().get().setWrap(true); - con.add().growX(); - }).fillY(); - }, Styles.clearPartialt, () -> { - ui.loadfrag.show(); - Core.net.httpGet("http://api.github.com/repos/" + modsbrolist.repo + "/zipball/master", loc -> { - Core.net.httpGet(loc.getHeader("Location"), result -> { - if (result.getStatus() != HttpStatus.OK) { - ui.showErrorMessage(Core.bundle.format("connectfail", result.getStatus())); - ui.loadfrag.hide(); - } else { - try { - Fi file = tmpDirectory.child((modsbrolist.repo).replace("/", "") + ".zip"); - Streams.copy(result.getResultAsStream(), file.write(false)); - mods.importMod(file); - file.delete(); - Core.app.post(() -> { + rebuildBrowser[0] = () -> { + tablebrow.clear(); + String searchString = searchtxt.toLowerCase(); + Core.net.httpGet("https://raw.githubusercontent.com/Anuken/MindustryMods/master/mods.json", response -> { + if (response.getStatus() != HttpStatus.OK) { + ui.showErrorMessage(Core.bundle.format("connectfail", response.getStatus())); + } else { + Json json = new Json(); + Seq listings = json.fromJson(Seq.class, ModListing.class, response.getResultAsString()); + for (ModListing modsbrolist : listings) { + if((!searchtxt.isEmpty() && !modsbrolist.repo.contains(searchtxt))||searchtxt==null) continue; + tablebrow.button(btn -> { + btn.top().left(); + btn.margin(12f); + btn.table(con -> { + con.left(); + con.add("[lightgray]Name:[] " + modsbrolist.name + "\n[lightgray]Author:[] " + modsbrolist.author + "\n[accent]\uE809: " + modsbrolist.stars).wrap().growX().pad(0f,6f,0f,6f); + con.add().growX().pad(0f,6f,0f,6f); + }).fillY().growX().pad(0f,6f,0f,6f); + }, Styles.clearPartialt, () -> { + ui.showCustomConfirm("$mods.browser.selected" + ": " + modsbrolist.name, modsbrolist.description, "$mods.browser.add", "$mods.github.open", () -> { + ui.loadfrag.show(); + Core.net.httpGet("http://api.github.com/repos/" + modsbrolist.repo + "/zipball/master", loc -> { + Core.net.httpGet(loc.getHeader("Location"), result -> { + if (result.getStatus() != HttpStatus.OK) { + ui.showErrorMessage(Core.bundle.format("connectfail", result.getStatus())); + ui.loadfrag.hide(); + } else { try { - setup(); - ui.loadfrag.hide(); + Fi file = tmpDirectory.child((modsbrolist.repo).replace("/", "") + ".zip"); + Streams.copy(result.getResultAsStream(), file.write(false)); + mods.importMod(file); + file.delete(); + Core.app.post(() -> { + try { + setup(); + ui.loadfrag.hide(); + } catch (Throwable e) { + ui.showException(e); + } + }); } catch (Throwable e) { - ui.showException(e); + modError(e); } - }); - } catch (Throwable e) { - modError(e); - } - } - }, t2 -> Core.app.post(() -> modError(t2))); - }, t2 -> Core.app.post(() -> modError(t2))); - }).width(380f).margin(15f).growX().left().fillY(); - tablebrow.row(); + } + }, t2 -> Core.app.post(() -> modError(t2))); + }, t2 -> Core.app.post(() -> modError(t2))); + }, () -> { + Core.app.openURI("https://github.com/" + modsbrolist.repo); + }); + }).width(480f).margin(15f).growX().left().fillY(); + tablebrow.row(); + } } - } - }, error -> { - ui.showErrorMessage(error.toString()); - }); - + }, error -> { + ui.showErrorMessage(error.toString()); + }); + }; + rebuildBrowser[0].run(); }); dialog2.addCloseButton(); dialog2.show(); + //Keep this until mods work + ui.showErrorMessage("This feature doesnt work completely due to mods not working in v6. Wait for this to be fixed. If you decide to use it anyways, mods will not let you enter the game."); + //Until here }catch (Exception e){ //ignore } From 5aeb77fd6540fd39d3f05c598ef3f5c85e28e9d3 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 1 Aug 2020 17:25:22 +0200 Subject: [PATCH 10/32] Update bundle.properties --- core/assets/bundles/bundle.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 344101e0e6..48532e3107 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -36,6 +36,12 @@ be.ignore = Ignore be.noupdates = No updates found. be.check = Check for updates +mod.featured.title = Mod browser +mod.featured.dialog.title = Mod Browser +mods.browser.selected = Selected mod +mods.browser.add = Install Mod +mods.github.open = Open in Github Page + schematic = Schematic schematic.add = Save Schematic... schematics = Schematics From 2aa70fdae52ff93f622b68869e5e42497058b0a3 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 1 Aug 2020 17:27:54 +0200 Subject: [PATCH 11/32] Update bundle_es.properties --- core/assets/bundles/bundle_es.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 7d20286d0f..c55cc4e5f7 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -36,6 +36,12 @@ be.ignore = Ignorar be.noupdates = No se encontraron actualizaciones. be.check = Revisando actualizaciones +mod.featured.title = Explorador de mods +mod.featured.dialog.title = Explorador de Mods +mods.browser.selected = Mod seleccionado +mods.browser.add = Installar Mod +mods.github.open = Abrir la Pagina Github + schematic = Esquemático schematic.add = Guardar esquemático... schematics = Esquemáticos From c287a173e380fc4c805700c3422e60a7cd43f1cb Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 1 Aug 2020 17:30:13 +0200 Subject: [PATCH 12/32] Update bundle_fr.properties --- core/assets/bundles/bundle_fr.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index fb20242768..19dbeefc49 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -36,6 +36,12 @@ be.ignore = Ignorer be.noupdates = Aucune mise à jour trouvée. be.check = Vérifiez les mises à jour +mod.featured.title = Explorateur de mods +mod.featured.dialog.title = Explorateur de Mods +mods.browser.selected = Mod sélectionné +mods.browser.add = Installer le mod +mods.github.open = Ouvrir la page Github + schematic = Schéma schematic.add = Sauvegarder le schéma... schematics = Schémas From faf1ea310278d99275c668dacf6da2a6e517f848 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 1 Aug 2020 17:31:30 +0200 Subject: [PATCH 13/32] Update bundle_ko.properties --- core/assets/bundles/bundle_ko.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 6a7fd649e2..051e9ebf5b 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -36,6 +36,12 @@ be.ignore = 무시 be.noupdates = 업데이트가 없습니다. be.check = 업데이트 확인 +mod.featured.title = 모드 탐색기 +mod.featured.dialog.title = 모드 탐색 +mods.browser.selected = 선택된 모드 +mods.browser.add = 모드 설치 +mods.github.open = 깃허브 사이트 열기 + schematic = 설계도 schematic.add = 설계도 저장하기 schematics = 설계도들 From 428e1f22d551d57d31f80333e640cc0112e22f2f Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 1 Aug 2020 17:31:54 +0200 Subject: [PATCH 14/32] Update ModsDialog.java --- core/src/mindustry/ui/dialogs/ModsDialog.java | 58 ++++++++++++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index a41d03c971..f62d1d9984 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -3,6 +3,7 @@ package mindustry.ui.dialogs; import arc.*; import arc.Net.*; import arc.files.*; +import arc.input.*; import arc.func.Cons; import arc.scene.ui.TextField; import arc.struct.*; @@ -59,6 +60,8 @@ public class ModsDialog extends BaseDialog{ void setup(){ Runnable[] rebuildBrowser = {null}; + Runnable[] openGithubPage = {null}; + Runnable[] installMod = {null}; float h = 110f; float w = mobile ? 430f : 524f; @@ -177,10 +180,60 @@ public class ModsDialog extends BaseDialog{ btn.margin(12f); btn.table(con -> { con.left(); - con.add("[lightgray]Name:[] " + modsbrolist.name + "\n[lightgray]Author:[] " + modsbrolist.author + "\n[accent]\uE809: " + modsbrolist.stars).wrap().growX().pad(0f,6f,0f,6f); + con.add("[lightgray]Name:[] " + modsbrolist.name + "\n[lightgray]Author:[] " + modsbrolist.author + "\n[accent]\uE809: " + modsbrolist.stars).width(388f).wrap().growX().pad(0f,6f,0f,6f); con.add().growX().pad(0f,6f,0f,6f); }).fillY().growX().pad(0f,6f,0f,6f); }, Styles.clearPartialt, () -> { + BaseDialog modSelected = new BaseDialog((Core.bundle.get("mods.browser.selected"))+ ": "+ modsbrolist.name); + modSelected.cont.add(modsbrolist.description).width(mobile ? 400f : 500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); + modSelected.buttons.defaults().size(200f, 54f).pad(2f); + modSelected.setFillParent(false); + modSelected.buttons.button("$mods.browser.add", () -> { + modSelected.hide(); + installMod[0] = () -> { + ui.loadfrag.show(); + Core.net.httpGet("http://api.github.com/repos/" + modsbrolist.repo + "/zipball/master", loc -> { + Core.net.httpGet(loc.getHeader("Location"), result -> { + if (result.getStatus() != HttpStatus.OK) { + ui.showErrorMessage(Core.bundle.format("connectfail", result.getStatus())); + ui.loadfrag.hide(); + } else { + try { + Fi file = tmpDirectory.child((modsbrolist.repo).replace("/", "") + ".zip"); + Streams.copy(result.getResultAsStream(), file.write(false)); + mods.importMod(file); + file.delete(); + Core.app.post(() -> { + try { + setup(); + ui.loadfrag.hide(); + } catch (Throwable e) { + ui.showException(e); + } + }); + } catch (Throwable e) { + modError(e); + } + } + }, t2 -> Core.app.post(() -> modError(t2))); + }, t2 -> Core.app.post(() -> modError(t2))); + }; + installMod[0].run(); + }); + modSelected.buttons.button("$mods.github.open", () -> { + openGithubPage[0] = () -> { + Core.app.openURI("https://github.com/" + modsbrolist.repo); + }; + openGithubPage[0].run(); + }); + modSelected.buttons.button("$back", Icon.left, () -> { + modSelected.clear(); + modSelected.hide(); + }); + modSelected.keyDown(KeyCode.escape, modSelected::hide); + modSelected.keyDown(KeyCode.back, modSelected::hide); + modSelected.show(); + /* ui.showCustomConfirm("$mods.browser.selected" + ": " + modsbrolist.name, modsbrolist.description, "$mods.browser.add", "$mods.github.open", () -> { ui.loadfrag.show(); Core.net.httpGet("http://api.github.com/repos/" + modsbrolist.repo + "/zipball/master", loc -> { @@ -211,7 +264,8 @@ public class ModsDialog extends BaseDialog{ }, () -> { Core.app.openURI("https://github.com/" + modsbrolist.repo); }); - }).width(480f).margin(15f).growX().left().fillY(); + */ + }).width(480f)/*.margin(15f)*/.growX().left().fillY(); tablebrow.row(); } } From a3054c75b4f7685d5426ba3081a191e8b41d66f2 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 1 Aug 2020 17:53:12 +0200 Subject: [PATCH 15/32] Update bundle_uk_UA.properties --- core/assets/bundles/bundle_uk_UA.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index fa78384973..a0ccc6b90d 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -54,6 +54,12 @@ schematic.delete.confirm = Ця схема буде повністю випал schematic.rename = Перейменувати схему schematic.info = {0}x{1}, {2} блоків +mod.featured.title = Переглядач модифікацій +mod.featured.dialog.title = Переглядач модифікацій +mods.browser.selected = Обрана модифікація +mods.browser.add = Установити модифікацію +mods.github.open = Відкрити сторінку на Github + stat.wave = Хвиль відбито:[accent] {0} stat.enemiesDestroyed = Противників знищено:[accent] {0} stat.built = Будівель збудовано:[accent] {0} From f37ecda3a74b3a93e62741024869fbacfcda0aa8 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 1 Aug 2020 18:01:12 +0200 Subject: [PATCH 16/32] Update bundle.properties --- core/assets/bundles/bundle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 48532e3107..025b46b2c0 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -40,7 +40,7 @@ mod.featured.title = Mod browser mod.featured.dialog.title = Mod Browser mods.browser.selected = Selected mod mods.browser.add = Install Mod -mods.github.open = Open in Github Page +mods.github.open = Open in Github schematic = Schematic schematic.add = Save Schematic... From 11a8c227d2894b1ce26d962f97647a6f7c49b988 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 1 Aug 2020 18:01:31 +0200 Subject: [PATCH 17/32] Update bundle_es.properties --- core/assets/bundles/bundle_es.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index c55cc4e5f7..b3af57b03e 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -40,7 +40,7 @@ mod.featured.title = Explorador de mods mod.featured.dialog.title = Explorador de Mods mods.browser.selected = Mod seleccionado mods.browser.add = Installar Mod -mods.github.open = Abrir la Pagina Github +mods.github.open = Abrir en Github schematic = Esquemático schematic.add = Guardar esquemático... From ee3c99991ef80f797c6c4e0a069f103f61518beb Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 1 Aug 2020 18:02:16 +0200 Subject: [PATCH 18/32] Update bundle_fr.properties --- core/assets/bundles/bundle_fr.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 19dbeefc49..f73485999c 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -40,7 +40,7 @@ mod.featured.title = Explorateur de mods mod.featured.dialog.title = Explorateur de Mods mods.browser.selected = Mod sélectionné mods.browser.add = Installer le mod -mods.github.open = Ouvrir la page Github +mods.github.open = Ouvrir au Github schematic = Schéma schematic.add = Sauvegarder le schéma... From dfcd94c4bcf1d23ce57e585e3f3346c1ab693e04 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sun, 2 Aug 2020 11:29:55 +0200 Subject: [PATCH 19/32] inconsistency fix --- core/src/mindustry/ui/dialogs/ModsDialog.java | 38 ++----------------- 1 file changed, 3 insertions(+), 35 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index f62d1d9984..f916899894 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -188,7 +188,7 @@ public class ModsDialog extends BaseDialog{ modSelected.cont.add(modsbrolist.description).width(mobile ? 400f : 500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); modSelected.buttons.defaults().size(200f, 54f).pad(2f); modSelected.setFillParent(false); - modSelected.buttons.button("$mods.browser.add", () -> { + modSelected.buttons.button("$mods.browser.add", Icon.download, () -> { modSelected.hide(); installMod[0] = () -> { ui.loadfrag.show(); @@ -220,7 +220,7 @@ public class ModsDialog extends BaseDialog{ }; installMod[0].run(); }); - modSelected.buttons.button("$mods.github.open", () -> { + modSelected.buttons.button("$mods.github.open", Icon.github, () -> { openGithubPage[0] = () -> { Core.app.openURI("https://github.com/" + modsbrolist.repo); }; @@ -233,39 +233,7 @@ public class ModsDialog extends BaseDialog{ modSelected.keyDown(KeyCode.escape, modSelected::hide); modSelected.keyDown(KeyCode.back, modSelected::hide); modSelected.show(); - /* - ui.showCustomConfirm("$mods.browser.selected" + ": " + modsbrolist.name, modsbrolist.description, "$mods.browser.add", "$mods.github.open", () -> { - ui.loadfrag.show(); - Core.net.httpGet("http://api.github.com/repos/" + modsbrolist.repo + "/zipball/master", loc -> { - Core.net.httpGet(loc.getHeader("Location"), result -> { - if (result.getStatus() != HttpStatus.OK) { - ui.showErrorMessage(Core.bundle.format("connectfail", result.getStatus())); - ui.loadfrag.hide(); - } else { - try { - Fi file = tmpDirectory.child((modsbrolist.repo).replace("/", "") + ".zip"); - Streams.copy(result.getResultAsStream(), file.write(false)); - mods.importMod(file); - file.delete(); - Core.app.post(() -> { - try { - setup(); - ui.loadfrag.hide(); - } catch (Throwable e) { - ui.showException(e); - } - }); - } catch (Throwable e) { - modError(e); - } - } - }, t2 -> Core.app.post(() -> modError(t2))); - }, t2 -> Core.app.post(() -> modError(t2))); - }, () -> { - Core.app.openURI("https://github.com/" + modsbrolist.repo); - }); - */ - }).width(480f)/*.margin(15f)*/.growX().left().fillY(); + }).width(480f).growX().left().fillY(); tablebrow.row(); } } From 7bfbca7234342feacd2549c165910aefeb0e47bf Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Tue, 4 Aug 2020 11:17:13 +0200 Subject: [PATCH 20/32] Update ModsDialog.java --- core/src/mindustry/ui/dialogs/ModsDialog.java | 64 ++++++++++--------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index f916899894..bea3cddd9c 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -287,43 +287,42 @@ public class ModsDialog extends BaseDialog{ t.top().left(); t.margin(12f); - t.add(new BorderImage(){ - { - if(mod.iconTexture != null){ - setDrawable(new TextureRegion(mod.iconTexture)); - }else{ - setDrawable(Tex.clear); - } - } - - @Override - public void draw(){ - super.draw(); - - if(mod.iconTexture == null){ - Fonts.def.draw(letter, x + width/2f, y + height/2f, Align.center); - } - } - }.border(Pal.accent)).size(h - 8f).padTop(-8f).padLeft(-8f).padRight(2f); - t.defaults().left().top(); t.table(title -> { title.left(); + + title.add(new BorderImage(){ + { + if(mod.iconTexture != null){ + setDrawable(new TextureRegion(mod.iconTexture)); + }else{ + setDrawable(Tex.clear); + } + border(Pal.accent); + } + + @Override + public void draw(){ + super.draw(); + + if(mod.iconTexture == null){ + Fonts.def.draw(letter, x + width/2f, y + height/2f, Align.center); + } + } + }).size(h - 8f).padTop(-8f).padLeft(-8f).padRight(8f); + title.add("" + mod.meta.displayName() + "\n[lightgray]v" + mod.meta.version + (mod.enabled() ? "" : "\n" + Core.bundle.get("mod.disabled") + "")).wrap().width(170f).growX(); title.add().growX(); + }).growX().left(); - title.button(mod.enabled() ? "$mod.disable" : "$mod.enable", mod.enabled() ? Icon.downOpen : Icon.upOpen, Styles.transt, () -> { + t.table(right -> { + right.right(); + right.button(mod.enabled() ? "$mod.disable" : "$mod.enable", mod.enabled() ? Icon.downOpen : Icon.upOpen, Styles.transt, () -> { mods.setEnabled(mod, !mod.enabled()); setup(); }).height(50f).margin(8f).width(130f).disabled(!mod.isSupported()); - if(steam && !mod.hasSteamID()){ - title.button(Icon.download, Styles.clearTransi, () -> { - platform.publish(mod); - }).size(50f); - } - - title.button(mod.hasSteamID() ? Icon.link : Icon.trash, Styles.clearPartiali, () -> { + right.button(mod.hasSteamID() ? Icon.link : Icon.trash, Styles.clearPartiali, () -> { if(!mod.hasSteamID()){ ui.showConfirm("$confirm", "$mod.remove.confirm", () -> { mods.removeMod(mod); @@ -333,7 +332,14 @@ public class ModsDialog extends BaseDialog{ platform.viewListing(mod); } }).size(50f); - }).growX().left(); + + if(steam && !mod.hasSteamID()){ + right.row(); + right.button(Icon.download, Styles.clearTransi, () -> { + platform.publish(mod); + }).size(50f); + } + }).growX().right(); t.row(); if(!mod.isSupported()){ @@ -346,7 +352,7 @@ public class ModsDialog extends BaseDialog{ t.labelWrap("$mod.erroredcontent").growX(); t.row(); } - }, Styles.clearPartialt, () -> showMod(mod)).size(w, h); + }, Styles.clearPartialt, () -> showMod(mod)).size(w, h).growX().pad(4f); table.row(); } }); From 4df0393e00fbf6bb8c51230146f9d3fbf13db559 Mon Sep 17 00:00:00 2001 From: Wiki Updater <57631841+Catchears@users.noreply.github.com> Date: Fri, 7 Aug 2020 17:19:24 +0200 Subject: [PATCH 21/32] Add german translation --- core/assets/bundles/bundle_de.properties | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 2e09d13cee..2a88e6bfb4 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -36,6 +36,12 @@ be.ignore = Ignorieren be.noupdates = Keine Aktualisierungen gefunden. be.check = Auf Aktualisierungen prüfen +mod.featured.title = Mod Browser +mod.featured.dialog.title = Mod Browser +mods.browser.selected = Ausgewählter Mod +mods.browser.add = Mod installieren +mods.github.open = Auf GitHub ansehen + schematic = Entwurf schematic.add = Entwurf speichern... schematics = Entwürfe @@ -472,7 +478,7 @@ launch.skip.confirm = Wenn du die Wartezeit überspringst, kannst du den Kern bi uncover = Freischalten configure = Startitems festlegen loadout = Loadout -resources = Resources +resources = Resources bannedblocks = Gesperrte Blöcke addall = Alle hinzufügen configure.invalid = Anzahl muss eine Zahl zwischen 0 und {0} sein. @@ -785,7 +791,7 @@ rules.attack = Angriff-Modus rules.enemyCheat = Unbegrenzte Ressourcen für die KI (Rotes Team) rules.blockhealthmultiplier = Block Health Multiplier rules.blockdamagemultiplier = Block Damage Multiplier -rules.unitbuildspeedmultiplier = Baugeschwindigkeit-Einheit Multiplikator +rules.unitbuildspeedmultiplier = Baugeschwindigkeit-Einheit Multiplikator rules.unithealthmultiplier = Lebenspunkte-Einheit Multiplikator rules.unitdamagemultiplier = Schaden-Einheit Multiplikator rules.enemycorebuildradius = Bauverbot Radius druch feindlichen Kern:[lightgray] (Kacheln) @@ -974,7 +980,7 @@ block.sorter.name = Sortierer block.inverted-sorter.name = Invertierter Sortierer block.message.name = Nachricht block.illuminator.name = Illuminierer -block.illuminator.description = Eine kleine, kompakte, konfigurierbare Lichtquelle. Benötigt Strom. +block.illuminator.description = Eine kleine, kompakte, konfigurierbare Lichtquelle. Benötigt Strom. block.overflow-gate.name = Überlauftor block.underflow-gate.name = Unterlauftor block.silicon-smelter.name = Silizium-Schmelzer From b36c074e72259da48e59fc83e4132de3a50e6cd4 Mon Sep 17 00:00:00 2001 From: Felix Corvus Date: Sat, 8 Aug 2020 07:56:21 +0300 Subject: [PATCH 22/32] RU l10n for Mod Browser PR --- core/assets/bundles/bundle_ru.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index b724f7df71..81c5e0299b 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -36,6 +36,12 @@ be.ignore = Игнорировать be.noupdates = Обновления не найдены. be.check = Проверить обновления +mod.featured.title = Обозреватель модов +mod.featured.dialog.title = Обозреватель модов +mods.browser.selected = Выбранный мод +mods.browser.add = Установить мод +mods.github.open = Открыть на GitHub + schematic = Схема schematic.add = Сохранить схему... schematics = Схемы From b56aa4adc29e4d2eaf8193b202d6387236d5ab7c Mon Sep 17 00:00:00 2001 From: Felix Corvus Date: Sat, 8 Aug 2020 07:58:51 +0300 Subject: [PATCH 23/32] Update bundle_ru.properties --- core/assets/bundles/bundle_ru.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 81c5e0299b..f1874945f0 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -40,7 +40,7 @@ mod.featured.title = Обозреватель модов mod.featured.dialog.title = Обозреватель модов mods.browser.selected = Выбранный мод mods.browser.add = Установить мод -mods.github.open = Открыть на GitHub +mods.github.open = Открыть GitHub страницу schematic = Схема schematic.add = Сохранить схему... From d6065865f57352d85a18c71689c22709beb6caa5 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sat, 8 Aug 2020 19:31:52 +0200 Subject: [PATCH 24/32] Delete warning --- core/src/mindustry/ui/dialogs/ModsDialog.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index bea3cddd9c..7489788bc7 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -245,9 +245,6 @@ public class ModsDialog extends BaseDialog{ }); dialog2.addCloseButton(); dialog2.show(); - //Keep this until mods work - ui.showErrorMessage("This feature doesnt work completely due to mods not working in v6. Wait for this to be fixed. If you decide to use it anyways, mods will not let you enter the game."); - //Until here }catch (Exception e){ //ignore } From f9a0d7a3c6e5c3d30af408a7fbcc2f75bf940f51 Mon Sep 17 00:00:00 2001 From: J-VdS <38380578+J-VdS@users.noreply.github.com> Date: Sat, 8 Aug 2020 21:33:32 +0200 Subject: [PATCH 25/32] better look this looks better in my opinion --- core/src/mindustry/ui/dialogs/ModsDialog.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 7489788bc7..7f660e6568 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -188,6 +188,10 @@ public class ModsDialog extends BaseDialog{ modSelected.cont.add(modsbrolist.description).width(mobile ? 400f : 500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); modSelected.buttons.defaults().size(200f, 54f).pad(2f); modSelected.setFillParent(false); + modSelected.buttons.button("$back", Icon.left, () -> { + modSelected.clear(); + modSelected.hide(); + }); modSelected.buttons.button("$mods.browser.add", Icon.download, () -> { modSelected.hide(); installMod[0] = () -> { @@ -226,10 +230,6 @@ public class ModsDialog extends BaseDialog{ }; openGithubPage[0].run(); }); - modSelected.buttons.button("$back", Icon.left, () -> { - modSelected.clear(); - modSelected.hide(); - }); modSelected.keyDown(KeyCode.escape, modSelected::hide); modSelected.keyDown(KeyCode.back, modSelected::hide); modSelected.show(); From e4b0ea92da00de3aa66cb7d693421be1166eae8c Mon Sep 17 00:00:00 2001 From: Gdeft <63198340+Gdeft@users.noreply.github.com> Date: Sun, 9 Aug 2020 16:09:33 +0700 Subject: [PATCH 26/32] Update bundle.in_ID.properties: Mod Browser --- core/assets/bundles/bundle_in_ID.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/assets/bundles/bundle_in_ID.properties b/core/assets/bundles/bundle_in_ID.properties index 15bdaa0cf0..ed3ff27fcc 100644 --- a/core/assets/bundles/bundle_in_ID.properties +++ b/core/assets/bundles/bundle_in_ID.properties @@ -36,6 +36,12 @@ be.ignore = Biarkan be.noupdates = Tidak ada hal baru yang ditemukan. be.check = Cek versi baru +mod.featured.title = Browser mod +mod.featured.dialog.title = Browser Mod +mods.browser.selected = Mod yang Dipilih +mods.browser.add = Unduh Mod +mods.github.open = Buka di GitHub + schematic = Skema schematic.add = Menyimpan skema... schematics = Kumpulan skema From 816402ae56fa2af2f96918c62dec4451d3c50d8d Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sun, 9 Aug 2020 11:56:03 +0200 Subject: [PATCH 27/32] hopefully everything got fixed --- core/src/mindustry/ui/dialogs/ModsDialog.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 7f660e6568..8560596d1f 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -173,19 +173,19 @@ public class ModsDialog extends BaseDialog{ } else { Json json = new Json(); Seq listings = json.fromJson(Seq.class, ModListing.class, response.getResultAsString()); - for (ModListing modsbrolist : listings) { - if((!searchtxt.isEmpty() && !modsbrolist.repo.contains(searchtxt))||searchtxt==null) continue; + for (ModListing mod : listings) { + if((!searchtxt.isEmpty() && !mod.repo.contains(searchtxt))||searchtxt==null) continue; tablebrow.button(btn -> { btn.top().left(); btn.margin(12f); btn.table(con -> { con.left(); - con.add("[lightgray]Name:[] " + modsbrolist.name + "\n[lightgray]Author:[] " + modsbrolist.author + "\n[accent]\uE809: " + modsbrolist.stars).width(388f).wrap().growX().pad(0f,6f,0f,6f); + con.add("[lightgray]Name:[] " + mod.name + "\n[lightgray]Author:[] " + mod.author + "\n[accent]\uE809 " + mod.stars).width(388f).wrap().growX().pad(0f,6f,0f,6f); con.add().growX().pad(0f,6f,0f,6f); }).fillY().growX().pad(0f,6f,0f,6f); }, Styles.clearPartialt, () -> { - BaseDialog modSelected = new BaseDialog((Core.bundle.get("mods.browser.selected"))+ ": "+ modsbrolist.name); - modSelected.cont.add(modsbrolist.description).width(mobile ? 400f : 500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); + BaseDialog modSelected = new BaseDialog((Core.bundle.get("mods.browser.selected"))+ ": "+ mod.name); + modSelected.cont.add(mod.description).width(mobile ? 400f : 500f).wrap().pad(4f).get().setAlignment(Align.center, Align.center); modSelected.buttons.defaults().size(200f, 54f).pad(2f); modSelected.setFillParent(false); modSelected.buttons.button("$back", Icon.left, () -> { @@ -196,14 +196,14 @@ public class ModsDialog extends BaseDialog{ modSelected.hide(); installMod[0] = () -> { ui.loadfrag.show(); - Core.net.httpGet("http://api.github.com/repos/" + modsbrolist.repo + "/zipball/master", loc -> { + Core.net.httpGet("http://api.github.com/repos/" + mod.repo + "/zipball/master", loc -> { Core.net.httpGet(loc.getHeader("Location"), result -> { if (result.getStatus() != HttpStatus.OK) { ui.showErrorMessage(Core.bundle.format("connectfail", result.getStatus())); ui.loadfrag.hide(); } else { try { - Fi file = tmpDirectory.child((modsbrolist.repo).replace("/", "") + ".zip"); + Fi file = tmpDirectory.child((mod.repo).replace("/", "") + ".zip"); Streams.copy(result.getResultAsStream(), file.write(false)); mods.importMod(file); file.delete(); @@ -226,7 +226,7 @@ public class ModsDialog extends BaseDialog{ }); modSelected.buttons.button("$mods.github.open", Icon.github, () -> { openGithubPage[0] = () -> { - Core.app.openURI("https://github.com/" + modsbrolist.repo); + Core.app.openURI("https://github.com/" + mod.repo); }; openGithubPage[0].run(); }); From b8fca9a0912ea9ef8c40112b46835c0c2fd8664b Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sun, 9 Aug 2020 11:57:48 +0200 Subject: [PATCH 28/32] nope, now _everything_ is fixed --- core/src/mindustry/ui/dialogs/ModsDialog.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 8560596d1f..3cab5580cc 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -148,7 +148,7 @@ public class ModsDialog extends BaseDialog{ t.row(); t.button("$mod.featured.title", Icon.star, bstyle, () -> { - try { + try{ dialog.hide(); BaseDialog dialog2 = new BaseDialog("$mod.featured.dialog.title"); dialog2.cont.table(table -> { @@ -168,12 +168,12 @@ public class ModsDialog extends BaseDialog{ tablebrow.clear(); String searchString = searchtxt.toLowerCase(); Core.net.httpGet("https://raw.githubusercontent.com/Anuken/MindustryMods/master/mods.json", response -> { - if (response.getStatus() != HttpStatus.OK) { + if(response.getStatus() != HttpStatus.OK){ ui.showErrorMessage(Core.bundle.format("connectfail", response.getStatus())); - } else { + }else{ Json json = new Json(); Seq listings = json.fromJson(Seq.class, ModListing.class, response.getResultAsString()); - for (ModListing mod : listings) { + if(ModListing mod : listings){ if((!searchtxt.isEmpty() && !mod.repo.contains(searchtxt))||searchtxt==null) continue; tablebrow.button(btn -> { btn.top().left(); @@ -198,24 +198,24 @@ public class ModsDialog extends BaseDialog{ ui.loadfrag.show(); Core.net.httpGet("http://api.github.com/repos/" + mod.repo + "/zipball/master", loc -> { Core.net.httpGet(loc.getHeader("Location"), result -> { - if (result.getStatus() != HttpStatus.OK) { + if(result.getStatus() != HttpStatus.OK){ ui.showErrorMessage(Core.bundle.format("connectfail", result.getStatus())); ui.loadfrag.hide(); - } else { - try { + }else{ + try{ Fi file = tmpDirectory.child((mod.repo).replace("/", "") + ".zip"); Streams.copy(result.getResultAsStream(), file.write(false)); mods.importMod(file); file.delete(); Core.app.post(() -> { - try { + try{ setup(); ui.loadfrag.hide(); - } catch (Throwable e) { + }catch(Throwable e){ ui.showException(e); } }); - } catch (Throwable e) { + }catch(Throwable e){ modError(e); } } @@ -245,7 +245,7 @@ public class ModsDialog extends BaseDialog{ }); dialog2.addCloseButton(); dialog2.show(); - }catch (Exception e){ + }catch(Exception e){ //ignore } }).margin(12f); From e96a9a2f3299331efde515d4a544eea689821df1 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sun, 9 Aug 2020 15:49:04 +0200 Subject: [PATCH 29/32] facepalm --- core/src/mindustry/ui/dialogs/ModsDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 3cab5580cc..ae472464d3 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -173,7 +173,7 @@ public class ModsDialog extends BaseDialog{ }else{ Json json = new Json(); Seq listings = json.fromJson(Seq.class, ModListing.class, response.getResultAsString()); - if(ModListing mod : listings){ + for(ModListing mod : listings){ if((!searchtxt.isEmpty() && !mod.repo.contains(searchtxt))||searchtxt==null) continue; tablebrow.button(btn -> { btn.top().left(); From a28366ee805e6a80e49759d709687896a6a87e05 Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Sun, 9 Aug 2020 15:55:31 +0200 Subject: [PATCH 30/32] Update bundle_uk_UA.properties --- core/assets/bundles/bundle_uk_UA.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index a0ccc6b90d..f92e60318b 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -58,7 +58,7 @@ mod.featured.title = Переглядач модифікацій mod.featured.dialog.title = Переглядач модифікацій mods.browser.selected = Обрана модифікація mods.browser.add = Установити модифікацію -mods.github.open = Відкрити сторінку на Github +mods.github.open = Відкрити в Github stat.wave = Хвиль відбито:[accent] {0} stat.enemiesDestroyed = Противників знищено:[accent] {0} From 2d7a5e637db9ffd2c4ab4098cf07458a3064a56c Mon Sep 17 00:00:00 2001 From: QmelZ <59574967+QmelZ@users.noreply.github.com> Date: Mon, 10 Aug 2020 00:02:03 +0300 Subject: [PATCH 31/32] Update bundle_tr.properties --- core/assets/bundles/bundle_tr.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 461f09b534..c5a1827889 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -36,6 +36,12 @@ be.ignore = Hayır be.noupdates = Yeni güncelleme bulunamadı. be.check = Güncellemeleri kontrol et +mod.featured.title = Mod Tarayıcısı +mod.featured.dialog.title = Mod Tarayıcısı +mods.browser.selected = Seçilen Mod +mods.browser.add = Modu İndir +mods.github.open = Modun GitHub Sayfasını Aç + schematic = Şema schematic.add = Şemayı Kaydet... schematics = Şemalar From aeeabcb38fad8f151a22ac462dd2138f2febd40d Mon Sep 17 00:00:00 2001 From: ThePythonGuy <45978337+ThePythonGuy3@users.noreply.github.com> Date: Mon, 10 Aug 2020 12:35:43 +0200 Subject: [PATCH 32/32] Update bundle_pl.properties --- core/assets/bundles/bundle_pl.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index d4c14e22f5..400072a6aa 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -36,6 +36,12 @@ be.ignore = Zignoruj be.noupdates = Nie znaleziono aktualizacji. be.check = Sprawdź aktualizacje +mod.featured.title = Wyszukiwarka Modów +mod.featured.dialog.title = Wyszukiwarka Modów +mods.browser.selected = Wybrany Mod +mods.browser.add = Zainstaluj Moda +mods.github.open = Otwórz w GitHub'ie + schematic = Schemat schematic.add = Zapisz schemat... schematics = Schematy @@ -98,6 +104,7 @@ committingchanges = Zatwierdzanie Zmian done = Gotowe feature.unsupported = Twoje urządzenie nie wspiera tej funkcji. + mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry GitHub lub Discord. mods.alpha = [scarlet](Alpha) mods = Mody