Testing mp3 sounds + hiding servers
This commit is contained in:
@@ -41,7 +41,7 @@ public class LoopControl{
|
||||
data.soundID = -1;
|
||||
return;
|
||||
}
|
||||
sound.setPan(data.soundID, pan, data.curVolume);
|
||||
sound.set(data.soundID, pan, data.curVolume);
|
||||
}
|
||||
|
||||
data.volume = 0f;
|
||||
|
||||
@@ -37,7 +37,7 @@ public class SoundLoop{
|
||||
}
|
||||
}
|
||||
|
||||
sound.setPan(id, sound.calcPan(x, y), sound.calcVolume(x, y) * volume * baseVolume);
|
||||
sound.set(id, sound.calcPan(x, y), sound.calcVolume(x, y) * volume * baseVolume);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@ public class ModLoadingSound implements Sound{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPan(int soundId, float pan, float volume){
|
||||
sound.setPan(soundId, pan, volume);
|
||||
public void set(int soundId, float pan, float volume){
|
||||
sound.set(soundId, pan, volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package mindustry.net;
|
||||
|
||||
import arc.*;
|
||||
|
||||
public class ServerGroup{
|
||||
public String name;
|
||||
public String[] addresses;
|
||||
@@ -11,4 +13,16 @@ public class ServerGroup{
|
||||
|
||||
public ServerGroup(){
|
||||
}
|
||||
|
||||
public boolean hidden(){
|
||||
return Core.settings.getBool(key() + "-hidden", false);
|
||||
}
|
||||
|
||||
public void setHidden(boolean hidden){
|
||||
Core.settings.put(key() + "-hidden", hidden);
|
||||
}
|
||||
|
||||
String key(){
|
||||
return "server-" + (name.isEmpty() ? addresses.length == 0 ? "" : addresses[0] : name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ public class Styles{
|
||||
public static Drawable black, black9, black8, black6, black3, black5, none, flatDown, flatOver;
|
||||
public static ButtonStyle defaultb, waveb;
|
||||
public static TextButtonStyle defaultt, squaret, nodet, cleart, discordt, infot, clearPartialt, clearTogglet, clearToggleMenut, togglet, transt, fullTogglet, logict;
|
||||
public static ImageButtonStyle defaulti, nodei, righti, emptyi, emptytogglei, selecti, logici, geni, colori, cleari, clearFulli, clearPartiali, clearPartial2i, clearTogglei, clearTransi, clearToggleTransi, clearTogglePartiali;
|
||||
public static ImageButtonStyle defaulti, nodei, righti, emptyi, emptytogglei, selecti, logici, geni, colori, accenti, cleari, clearFulli, clearPartiali, clearPartial2i, clearTogglei, clearTransi, clearToggleTransi, clearTogglePartiali;
|
||||
public static ScrollPaneStyle defaultPane, horizontalPane, smallPane;
|
||||
public static KeybindDialogStyle defaultKeybindDialog;
|
||||
public static SliderStyle defaultSlider, vSlider;
|
||||
@@ -213,6 +213,11 @@ public class Styles{
|
||||
//imageDownColor = Pal.accent;
|
||||
imageUpColor = Color.white;
|
||||
}};
|
||||
accenti = new ImageButtonStyle(){{
|
||||
//imageDownColor = Pal.accent;
|
||||
imageUpColor = Color.lightGray;
|
||||
imageDownColor = Color.white;
|
||||
}};
|
||||
cleari = new ImageButtonStyle(){{
|
||||
down = flatOver;
|
||||
up = black;
|
||||
|
||||
@@ -31,6 +31,7 @@ public class JoinDialog extends BaseDialog{
|
||||
Table hosts = new Table();
|
||||
int totalHosts;
|
||||
int refreshes;
|
||||
boolean showHidden;
|
||||
|
||||
public JoinDialog(){
|
||||
super("@joingame");
|
||||
@@ -252,9 +253,9 @@ public class JoinDialog extends BaseDialog{
|
||||
|
||||
hosts.clear();
|
||||
|
||||
section("@servers.local", local);
|
||||
section("@servers.remote", remote);
|
||||
section("@servers.global", global);
|
||||
section("@servers.local", local, false);
|
||||
section("@servers.remote", remote, false);
|
||||
section("@servers.global", global, true);
|
||||
|
||||
ScrollPane pane = new ScrollPane(hosts);
|
||||
pane.setFadeScrollBars(false);
|
||||
@@ -302,12 +303,21 @@ public class JoinDialog extends BaseDialog{
|
||||
});
|
||||
}
|
||||
|
||||
void section(String label, Table servers){
|
||||
void section(String label, Table servers, boolean eye){
|
||||
Collapser coll = new Collapser(servers, Core.settings.getBool("collapsed-" + label, false));
|
||||
coll.setDuration(0.1f);
|
||||
|
||||
hosts.table(name -> {
|
||||
name.add(label).pad(10).growX().left().color(Pal.accent);
|
||||
|
||||
if(eye){
|
||||
name.button(Icon.eyeSmall, Styles.emptyi, () -> {
|
||||
showHidden = !showHidden;
|
||||
refreshGlobal();
|
||||
}).update(i -> i.getStyle().imageUp = (showHidden ? Icon.eyeSmall : Icon.eyeOffSmall))
|
||||
.size(40f).right().padRight(3).tooltip("@servers.showhidden");
|
||||
}
|
||||
|
||||
name.button(Icon.downOpen, Styles.emptyi, () -> {
|
||||
coll.toggle(false);
|
||||
Core.settings.put("collapsed-" + label, coll.isCollapsed());
|
||||
@@ -335,15 +345,41 @@ public class JoinDialog extends BaseDialog{
|
||||
global.clear();
|
||||
global.background(null);
|
||||
for(ServerGroup group : defaultServers){
|
||||
boolean hidden = group.hidden();
|
||||
if(hidden && !showHidden){
|
||||
continue;
|
||||
}
|
||||
|
||||
//table containing all groups
|
||||
global.table(g -> {
|
||||
//TODO groups
|
||||
for(String address : group.addresses){
|
||||
String resaddress = address.contains(":") ? address.split(":")[0] : address;
|
||||
int resport = address.contains(":") ? Strings.parseInt(address.split(":")[1]) : port;
|
||||
net.pingHost(resaddress, resport, res -> {
|
||||
if(refreshes != cur) return;
|
||||
res.port = resport;
|
||||
|
||||
//add header
|
||||
if(g.getChildren().isEmpty()){
|
||||
g.table(head -> {
|
||||
if(!group.name.isEmpty()){
|
||||
head.add(group.name).color(Color.lightGray).padRight(4);
|
||||
}
|
||||
head.image().height(3f).growX().color(Color.lightGray);
|
||||
|
||||
//button for showing/hiding servers
|
||||
ImageButton[] image = {null};
|
||||
image[0] = head.button(hidden ? Icon.eyeOffSmall : Icon.eyeSmall, Styles.accenti, () -> {
|
||||
group.setHidden(!group.hidden());
|
||||
image[0].getStyle().imageUp = group.hidden() ? Icon.eyeOffSmall : Icon.eyeSmall;
|
||||
if(group.hidden() && !showHidden){
|
||||
g.remove();
|
||||
}
|
||||
}).size(40f).get();
|
||||
image[0].addListener(new Tooltip(t -> t.background(Styles.black6).margin(4).label(() -> !group.hidden() ? "@server.shown" : "@server.hidden")));
|
||||
}).width(targetWidth()).padBottom(5).row();
|
||||
}
|
||||
|
||||
addGlobalHost(res, g);
|
||||
|
||||
g.margin(5f);
|
||||
@@ -442,6 +478,7 @@ public class JoinDialog extends BaseDialog{
|
||||
//get servers
|
||||
Core.net.httpGet(becontrol.active() ? serverJsonBeURL : serverJsonV6URL, result -> {
|
||||
try{
|
||||
|
||||
Jval val = Jval.read(result.getResultAsString());
|
||||
Core.app.post(() -> {
|
||||
try{
|
||||
@@ -449,10 +486,10 @@ public class JoinDialog extends BaseDialog{
|
||||
val.asArray().each(child -> {
|
||||
String name = child.getString("name", "");
|
||||
String[] addresses;
|
||||
if(child.has("addresses")){
|
||||
addresses = child.get("addresses").asArray().map(Jval::asString).toArray(String.class);
|
||||
if(child.has("addresses") || (child.has("address") && child.get("address").isArray())){
|
||||
addresses = (child.has("addresses") ? child.get("addresses") : child.get("address")).asArray().map(Jval::asString).toArray(String.class);
|
||||
}else{
|
||||
addresses = new String[]{child.getString("addresses", "<invalid>")};
|
||||
addresses = new String[]{child.getString("address", "<invalid>")};
|
||||
}
|
||||
defaultServers.add(new ServerGroup(name, addresses));
|
||||
});
|
||||
@@ -462,7 +499,7 @@ public class JoinDialog extends BaseDialog{
|
||||
}
|
||||
});
|
||||
}catch(Throwable e){
|
||||
Log.err("Failed to fetch community servers.");
|
||||
Log.err("Failed to fetch communitycommunity servers.");
|
||||
}
|
||||
}, t -> {});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user