This commit is contained in:
Anuken
2020-02-09 12:16:12 -05:00
465 changed files with 16568 additions and 16421 deletions

View File

@@ -41,9 +41,9 @@ public class AdminsDialog extends FloatingDialog{
res.addImageButton(Icon.cancel, () -> {
ui.showConfirm("$confirm", "$confirmunadmin", () -> {
netServer.admins.unAdminPlayer(info.id);
playerGroup.all().each(player -> {
if(player != null && player.uuid != null && player.uuid.equals(info.id)){
player.isAdmin = false;
Groups.player.each(player -> {
if(player != null && !player.isLocal() && player.uuid().equals(info.id)){
player.admin(false);
}
});
setup();

View File

@@ -3,6 +3,7 @@ package mindustry.ui.dialogs;
import arc.*;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.scene.style.*;
import arc.scene.ui.*;
import arc.scene.ui.layout.*;
import arc.util.*;
@@ -59,8 +60,9 @@ public class CustomGameDialog extends FloatingDialog{
image.table(t -> {
t.left();
for(Gamemode mode : Gamemode.all){
if(mode.valid(map) && Core.atlas.has("icon-mode-" + mode.name())){
t.addImage(Core.atlas.drawable("icon-mode-" + mode.name())).size(16f).pad(4f);
TextureRegionDrawable icon = Vars.ui.getIcon("mode" + Strings.capitalize(mode.name()) + "Small");
if(mode.valid(map) && Core.atlas.isFound(icon.getRegion())){
t.addImage(icon).size(16f).pad(4f);
}
}
}).left();

View File

@@ -22,7 +22,7 @@ public class GameOverDialog extends FloatingDialog{
public void show(Team winner){
this.winner = winner;
show();
if(winner == player.getTeam()){
if(winner == player.team()){
Events.fire(new WinEvent());
}else{
Events.fire(new LoseEvent());
@@ -62,6 +62,10 @@ public class GameOverDialog extends FloatingDialog{
t.row();
t.add(Core.bundle.format("stat.deconstructed", state.stats.buildingsDeconstructed));
t.row();
if(control.saves.getCurrent() != null){
t.add(Core.bundle.format("stat.playtime", control.saves.getCurrent().getPlayTime()));
t.row();
}
if(world.isZone() && !state.stats.itemsDelivered.isEmpty()){
t.add("$stat.delivered");
t.row();

View File

@@ -24,7 +24,7 @@ public class HostDialog extends FloatingDialog{
cont.table(t -> {
t.add("$name").padRight(10);
t.addField(Core.settings.getString("name"), text -> {
player.name = text;
player.name(text);
Core.settings.put("name", text);
Core.settings.save();
ui.listfrag.rebuild();
@@ -32,12 +32,12 @@ public class HostDialog extends FloatingDialog{
ImageButton button = t.addImageButton(Tex.whiteui, Styles.clearFulli, 40, () -> {
new PaletteDialog().show(color -> {
player.color.set(color);
player.color().set(color);
Core.settings.put("color-0", Color.rgba8888(color));
Core.settings.save();
});
}).size(54f).get();
button.update(() -> button.getStyle().imageUpColor = player.color);
button.update(() -> button.getStyle().imageUpColor = player.color());
}).width(w).height(70f).pad(4).colspan(3);
cont.row();
@@ -67,7 +67,7 @@ public class HostDialog extends FloatingDialog{
Time.runTask(5f, () -> {
try{
net.host(Vars.port);
player.isAdmin = true;
player.admin(true);
if(steam){
Core.app.post(() -> Core.settings.getBoolOnce("steampublic2", () -> {

View File

@@ -95,11 +95,16 @@ public class JoinDialog extends FloatingDialog{
}
});
onResize(this::setup);
onResize(() -> {
setup();
refreshLocal();
refreshRemote();
});
}
void setupRemote(){
remote.clear();
for(Server server : servers){
//why are java lambdas this bad
TextButton[] buttons = {null};
@@ -152,7 +157,7 @@ public class JoinDialog extends FloatingDialog{
inner.addImageButton(Icon.trash, Styles.emptyi, () -> {
ui.showConfirm("$confirm", "$server.delete", () -> {
servers.removeValue(server, true);
servers.remove(server, true);
saveServers();
setupRemote();
refreshRemote();
@@ -243,22 +248,22 @@ public class JoinDialog extends FloatingDialog{
t.add("$name").padRight(10);
if(!steam){
t.addField(Core.settings.getString("name"), text -> {
player.name = text;
player.name(text);
Core.settings.put("name", text);
Core.settings.save();
}).grow().pad(8).get().setMaxLength(maxNameLength);
}else{
t.add(player.name).update(l -> l.setColor(player.color)).grow().pad(8);
t.add(player.name()).update(l -> l.setColor(player.color())).grow().pad(8);
}
ImageButton button = t.addImageButton(Tex.whiteui, Styles.clearFulli, 40, () -> {
new PaletteDialog().show(color -> {
player.color.set(color);
player.color().set(color);
Core.settings.put("color-0", Color.rgba8888(color));
Core.settings.save();
});
}).size(54f).get();
button.update(() -> button.getStyle().imageUpColor = player.color);
button.update(() -> button.getStyle().imageUpColor = player.color());
}).width(w).height(70f).pad(4);
cont.row();
cont.add(pane).width(w + 38).pad(0);
@@ -266,7 +271,7 @@ public class JoinDialog extends FloatingDialog{
cont.addCenteredImageTextButton("$server.add", Icon.add, () -> {
renaming = null;
add.show();
}).marginLeft(6).width(w).height(80f).update(button -> {
}).marginLeft(10).width(w).height(80f).update(button -> {
float pw = w;
float pad = 0f;
if(pane.getChildren().first().getPrefHeight() > pane.getHeight()){
@@ -330,7 +335,7 @@ public class JoinDialog extends FloatingDialog{
}
public void connect(String ip, int port){
if(player.name.trim().isEmpty()){
if(player.name().trim().isEmpty()){
ui.showInfo("$noname");
return;
}
@@ -363,7 +368,7 @@ public class JoinDialog extends FloatingDialog{
}
float targetWidth(){
return Core.graphics.isPortrait() ? 350f : 500f;
return Math.min(Core.graphics.getWidth() / Scl.scl() * 0.9f, 500f);//Core.graphics.isPortrait() ? 350f : 500f;
}
@SuppressWarnings("unchecked")

View File

@@ -87,7 +87,7 @@ public class ModsDialog extends FloatingDialog{
void modError(Throwable error){
ui.loadfrag.hide();
if(Strings.getCauses(error).contains(t -> t.getMessage() != null && (t.getMessage().contains("SSL") || t.getMessage().contains("protocol")))){
if(Strings.getCauses(error).contains(t -> t.getMessage() != null && (t.getMessage().contains("trust anchor") || t.getMessage().contains("SSL") || t.getMessage().contains("protocol")))){
ui.showErrorMessage("$feature.unsupported");
}else{
ui.showException(error);

View File

@@ -29,7 +29,7 @@ public class PaletteDialog extends Dialog{
cons.get(color);
hide();
}).size(48).get();
button.setChecked(player.color.equals(color));
button.setChecked(player.color().equals(color));
button.getStyle().imageUpColor = color;
if(i % 4 == 3){

View File

@@ -1,7 +1,6 @@
package mindustry.ui.dialogs;
import arc.*;
import arc.struct.*;
import arc.files.*;
import arc.graphics.*;
import arc.graphics.Texture.*;
@@ -12,6 +11,7 @@ import arc.scene.ui.*;
import arc.scene.ui.SettingsDialog.SettingsTable.*;
import arc.scene.ui.TextButton.*;
import arc.scene.ui.layout.*;
import arc.struct.*;
import arc.util.*;
import mindustry.core.GameState.*;
import mindustry.core.*;
@@ -144,7 +144,7 @@ public class SettingsMenuDialog extends SettingsDialog{
}
})));
if(!ios){
if(!mobile){
t.row();
t.addImageTextButton("$data.openfolder", Icon.folder, style, () -> Core.app.openFolder(Core.settings.getDataDirectory().absolutePath()));
}
@@ -240,10 +240,17 @@ public class SettingsMenuDialog extends SettingsDialog{
game.checkPref("buildautopause", false);
}
if(steam && !Version.modifier.contains("beta")){
game.checkPref("publichost", false, i -> {
if(steam){
game.sliderPref("playerlimit", 16, 2, 32, i -> {
platform.updateLobby();
return i + "";
});
if(!Version.modifier.contains("beta")){
game.checkPref("publichost", false, i -> {
platform.updateLobby();
});
}
}
game.pref(new Setting(){

View File

@@ -1,6 +1,7 @@
package mindustry.ui.dialogs;
import arc.*;
import arc.scene.ui.layout.Stack;
import arc.struct.*;
import arc.graphics.*;
import arc.graphics.g2d.*;
@@ -25,6 +26,8 @@ import mindustry.ui.Cicon;
import mindustry.ui.layout.*;
import mindustry.ui.layout.TreeLayout.*;
import java.util.*;
import static mindustry.Vars.*;
public class TechTreeDialog extends FloatingDialog{
@@ -110,9 +113,25 @@ public class TechTreeDialog extends FloatingDialog{
}
void treeLayout(){
RadialTreeLayout layout = new RadialTreeLayout();
float spacing = 20f;
LayoutNode node = new LayoutNode(root, null);
layout.layout(node);
LayoutNode[] children = node.children;
LayoutNode[] leftHalf = Arrays.copyOfRange(node.children, 0, Mathf.ceil(node.children.length/2f));
LayoutNode[] rightHalf = Arrays.copyOfRange(node.children, Mathf.ceil(node.children.length/2f), node.children.length);
node.children = leftHalf;
new BranchTreeLayout(){{
gapBetweenLevels = gapBetweenNodes = spacing;
rootLocation = TreeLocation.top;
}}.layout(node);
node.children = rightHalf;
new BranchTreeLayout(){{
gapBetweenLevels = gapBetweenNodes = spacing;
rootLocation = TreeLocation.bottom;
}}.layout(node);
node.children = children;
float minx = 0f, miny = 0f, maxx = 0f, maxy = 0f;
copyInfo(node);
@@ -252,7 +271,7 @@ public class TechTreeDialog extends FloatingDialog{
button.setPosition(node.x + panX + width / 2f, node.y + panY + height / 2f + offset, Align.center);
button.getStyle().up = !locked(node.node) ? Tex.buttonOver : !data.hasItems(node.node.requirements) ? Tex.buttonRed : Tex.button;
((TextureRegionDrawable)button.getStyle().imageUp)
.setRegion(node.visible ? node.node.block.icon(Cicon.medium) : Core.atlas.find("icon-locked"));
.setRegion(node.visible ? node.node.block.icon(Cicon.medium) : Icon.lock.getRegion());
button.getImage().setColor(!locked(node.node) ? Color.white : Color.gray);
});
addChild(button);
@@ -358,7 +377,7 @@ public class TechTreeDialog extends FloatingDialog{
infoTable.row();
if(node.block.description != null){
infoTable.table(t -> t.margin(3f).left().labelWrap(node.block.description).color(Color.lightGray).growX()).fillX();
infoTable.table(t -> t.margin(3f).left().labelWrap(node.block.displayDescription()).color(Color.lightGray).growX()).fillX();
}
addChild(infoTable);
@@ -378,7 +397,12 @@ public class TechTreeDialog extends FloatingDialog{
Lines.stroke(Scl.scl(4f), locked(node.node) || locked(child.node) ? Pal.gray : Pal.accent);
Draw.alpha(parentAlpha);
Lines.line(node.x + offsetX, node.y + offsetY, child.x + offsetX, child.y + offsetY);
if(Mathf.equal(Math.abs(node.y - child.y), Math.abs(node.x - child.x), 1f) && Mathf.dstm(node.x, node.y, child.x, child.y) <= node.width*3){
Lines.line(node.x + offsetX, node.y + offsetY, child.x + offsetX, child.y + offsetY);
}else{
Lines.line(node.x + offsetX, node.y + offsetY, child.x + offsetX, node.y + offsetY);
Lines.line(child.x + offsetX, node.y + offsetY, child.x + offsetX, child.y + offsetY);
}
}
}

View File

@@ -2,7 +2,7 @@ package mindustry.ui.dialogs;
import arc.Core;
import arc.scene.ui.layout.Table;
import mindustry.entities.type.Player;
import mindustry.gen.*;
import mindustry.gen.*;
import mindustry.net.Administration.TraceInfo;
@@ -15,7 +15,7 @@ public class TraceDialog extends FloatingDialog{
setFillParent(false);
}
public void show(Player player, TraceInfo info){
public void show(Playerc player, TraceInfo info){
cont.clear();
Table table = new Table(Tex.clear);
@@ -23,7 +23,7 @@ public class TraceDialog extends FloatingDialog{
table.defaults().pad(1);
table.defaults().left();
table.add(Core.bundle.format("trace.playername", player.name));
table.add(Core.bundle.format("trace.playername", player.name()));
table.row();
table.add(Core.bundle.format("trace.ip", info.ip));
table.row();