From c22e16d7b201a4f25eec2576f4dcc3c9635f0ca1 Mon Sep 17 00:00:00 2001 From: Atomic-Laboratory <146392884+Atomic-Laboratory@users.noreply.github.com> Date: Sat, 6 Apr 2024 21:31:08 -0400 Subject: [PATCH 1/4] Server Favourite Button I'm trying to add a feature while barely knowing what I'm doing... --- core/src/mindustry/ui/dialogs/JoinDialog.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 3c3fd58ba4..3ca05b6c56 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -462,10 +462,21 @@ public class JoinDialog extends BaseDialog{ head.image().height(3f).growX().color(col); //button for showing/hiding servers - ImageButton[] image = {null}; - image[0] = head.button(hidden ? Icon.eyeOffSmall : Icon.eyeSmall, Styles.grayi, () -> { + ImageButton[] image = {null, null}; + image[0] = head.button(Icon.star, new ImageButton.ImageButtonStyle(){{ + imageUpColor = group.favorite() ? Pal.accent : Color.lightGray; + imageDownColor = Color.white; + }}, () -> { + group.setFavorite(!group.favorite()); + image[0].getStyle().imageUpColor = group.favorite() ? Pal.accent : Pal.lightishGray; + }).size(40f).get(); + image[0].getStyle().imageUpColor = group.favorite() ? Pal.accent : Pal.lightishGray; + image[0].addListener(new Tooltip(t -> t.background(Styles.black6).margin(4).label(() -> !group.hidden() ? "@server.shown" : "@server.hidden"))); + + //button for showing/hiding servers + image[1] = head.button(hidden ? Icon.eyeOffSmall : Icon.eyeSmall, Styles.grayi, () -> { group.setHidden(!group.hidden()); - image[0].getStyle().imageUp = group.hidden() ? Icon.eyeOffSmall : Icon.eyeSmall; + image[1].getStyle().imageUp = group.hidden() ? Icon.eyeOffSmall : Icon.eyeSmall; if(group.hidden() && !showHidden){ groupTable[0].remove(); } From 87b154209f3af0948c7cf80955fd3a72f507ab9d Mon Sep 17 00:00:00 2001 From: atomic <146392884+Atomic-Laboratory@users.noreply.github.com> Date: Sat, 6 Apr 2024 21:44:47 -0400 Subject: [PATCH 2/4] things I forgot to commit --- core/src/mindustry/net/ServerGroup.java | 8 ++++++++ core/src/mindustry/ui/dialogs/JoinDialog.java | 2 ++ 2 files changed, 10 insertions(+) diff --git a/core/src/mindustry/net/ServerGroup.java b/core/src/mindustry/net/ServerGroup.java index 694058f050..d8d480f935 100644 --- a/core/src/mindustry/net/ServerGroup.java +++ b/core/src/mindustry/net/ServerGroup.java @@ -24,10 +24,18 @@ public class ServerGroup{ return Core.settings.getBool(key() + "-hidden", false); } + public boolean favorite(){ + return Core.settings.getBool(key() + "-favorite", false); + } + public void setHidden(boolean hidden){ Core.settings.put(key() + "-hidden", hidden); } + public void setFavorite(boolean favorite){ + Core.settings.put(key() + "-favorite", favorite); + } + String key(){ return "server-" + (name.isEmpty() ? addresses.length == 0 ? "" : addresses[0] : name); } diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 3ca05b6c56..b7f8b6055e 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -407,6 +407,8 @@ public class JoinDialog extends BaseDialog{ if(group.prioritized){ addHeader(groupTable, group, hidden, false); + } else if (group.favorite()) { + addHeader(groupTable, group, hidden, true); } //table containing all groups for(String address : group.addresses){ From 96a82260f47f3abf87fd407dbc624cb30b0e36af Mon Sep 17 00:00:00 2001 From: atomic <146392884+Atomic-Laboratory@users.noreply.github.com> Date: Sat, 6 Apr 2024 21:59:47 -0400 Subject: [PATCH 3/4] oops --- core/src/mindustry/ui/dialogs/JoinDialog.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index b7f8b6055e..b29ee2213d 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -405,10 +405,11 @@ public class JoinDialog extends BaseDialog{ Table[] groupTable = {null, null}; + boolean favorite = group.favorite(); if(group.prioritized){ - addHeader(groupTable, group, hidden, false); - } else if (group.favorite()) { - addHeader(groupTable, group, hidden, true); + addHeader(groupTable, group, hidden, favorite, false); + } else if (favorite) { + addHeader(groupTable, group, hidden, true, true);//weird behaviour if false? } //table containing all groups for(String address : group.addresses){ @@ -433,9 +434,9 @@ public class JoinDialog extends BaseDialog{ || (res.modeName != null && res.modeName.toLowerCase().contains(serverSearch)))) return; if(groupTable[0] == null){ - addHeader(groupTable, group, hidden, true); + addHeader(groupTable, group, hidden, favorite, true); }else if(!groupTable[0].visible){ - addHeader(groupTable, group, hidden, true); + addHeader(groupTable, group, hidden, favorite, true); } addCommunityHost(res, groupTable[1]); @@ -447,7 +448,7 @@ public class JoinDialog extends BaseDialog{ } } - void addHeader(Table[] groupTable, ServerGroup group, boolean hidden, boolean doInit){ // outlined separately + void addHeader(Table[] groupTable, ServerGroup group, boolean hidden, boolean favorite, boolean doInit){ // outlined separately if(groupTable[0] == null){ global.table(t -> groupTable[0] = t).fillX().left().row(); } @@ -466,14 +467,13 @@ public class JoinDialog extends BaseDialog{ //button for showing/hiding servers ImageButton[] image = {null, null}; image[0] = head.button(Icon.star, new ImageButton.ImageButtonStyle(){{ - imageUpColor = group.favorite() ? Pal.accent : Color.lightGray; + imageUpColor = favorite ? Pal.accent : Color.lightGray; imageDownColor = Color.white; }}, () -> { group.setFavorite(!group.favorite()); image[0].getStyle().imageUpColor = group.favorite() ? Pal.accent : Pal.lightishGray; }).size(40f).get(); - image[0].getStyle().imageUpColor = group.favorite() ? Pal.accent : Pal.lightishGray; - image[0].addListener(new Tooltip(t -> t.background(Styles.black6).margin(4).label(() -> !group.hidden() ? "@server.shown" : "@server.hidden"))); + image[0].getStyle().imageUpColor = favorite ? Pal.accent : Pal.lightishGray; //button for showing/hiding servers image[1] = head.button(hidden ? Icon.eyeOffSmall : Icon.eyeSmall, Styles.grayi, () -> { @@ -483,7 +483,7 @@ public class JoinDialog extends BaseDialog{ groupTable[0].remove(); } }).size(40f).get(); - image[0].addListener(new Tooltip(t -> t.background(Styles.black6).margin(4).label(() -> !group.hidden() ? "@server.shown" : "@server.hidden"))); + image[1].addListener(new Tooltip(t -> t.background(Styles.black6).margin(4).label(() -> !group.hidden() ? "@server.shown" : "@server.hidden"))); }).width(targetWidth() * columns()).padBottom(-2).row(); groupTable[1] = groupTable[0].row().table().top().left().grow().get(); From 70f187d6c4b44a5d769d2cff783a5648050fc0d8 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 10 Feb 2025 16:24:20 -0500 Subject: [PATCH 4/4] Update core/src/mindustry/ui/dialogs/JoinDialog.java --- core/src/mindustry/ui/dialogs/JoinDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index b29ee2213d..06acce07de 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -408,7 +408,7 @@ public class JoinDialog extends BaseDialog{ boolean favorite = group.favorite(); if(group.prioritized){ addHeader(groupTable, group, hidden, favorite, false); - } else if (favorite) { + }else if (favorite){ addHeader(groupTable, group, hidden, true, true);//weird behaviour if false? } //table containing all groups