This commit is contained in:
Anuken
2018-12-31 19:03:51 -05:00
453 changed files with 7330 additions and 8572 deletions

View File

@@ -1,13 +1,12 @@
package io.anuke.mindustry.ui;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import io.anuke.arc.graphics.Texture;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.Lines;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.layout.Unit;
public class BorderImage extends Image{
private float thickness = 3f;
@@ -31,8 +30,8 @@ public class BorderImage extends Image{
}
@Override
public void draw(Batch batch, float alpha){
super.draw(batch, alpha);
public void draw(){
super.draw();
float scaleX = getScaleX();
float scaleY = getScaleY();

View File

@@ -1,7 +1,10 @@
package io.anuke.mindustry.ui;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.OrderedMap;
import io.anuke.arc.Core;
import io.anuke.arc.collection.OrderedMap;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Strings;
import io.anuke.mindustry.entities.units.UnitType;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.type.Item;
@@ -13,10 +16,6 @@ import io.anuke.mindustry.world.meta.BlockStat;
import io.anuke.mindustry.world.meta.BlockStats;
import io.anuke.mindustry.world.meta.StatCategory;
import io.anuke.mindustry.world.meta.StatValue;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Strings;
public class ContentDisplay{
@@ -26,7 +25,7 @@ public class ContentDisplay{
table.table(title -> {
int size = 8 * 6;
title.addImage(Draw.region("block-icon-" + block.name)).size(size);
title.addImage(Core.atlas.find("block-icon-" + block.name)).size(size);
title.add("[accent]" + block.formalName).padLeft(5);
});
@@ -88,13 +87,13 @@ public class ContentDisplay{
table.left().defaults().fillX();
table.add(Bundles.format("text.item.explosiveness", (int) (item.explosiveness * 100 * 2f)));
table.add(Core.bundle.format("text.item.explosiveness", (int) (item.explosiveness * 100 * 2f)));
table.row();
table.add(Bundles.format("text.item.flammability", (int) (item.flammability * 100 * 2f)));
table.add(Core.bundle.format("text.item.flammability", (int) (item.flammability * 100 * 2f)));
table.row();
table.add(Bundles.format("text.item.radioactivity", (int) (item.radioactivity * 100 * 2f)));
table.add(Core.bundle.format("text.item.radioactivity", (int) (item.radioactivity * 100 * 2f)));
table.row();
table.add(Bundles.format("text.item.fluxiness", (int) (item.fluxiness * 100 * 2f)));
table.add(Core.bundle.format("text.item.fluxiness", (int) (item.fluxiness * 100 * 2f)));
table.row();
}
@@ -121,15 +120,15 @@ public class ContentDisplay{
table.left().defaults().fillX();
table.add(Bundles.format("text.item.explosiveness", (int) (liquid.explosiveness * 100 * 2f)));
table.add(Core.bundle.format("text.item.explosiveness", (int) (liquid.explosiveness * 100 * 2f)));
table.row();
table.add(Bundles.format("text.item.flammability", (int) (liquid.flammability * 100 * 2f)));
table.add(Core.bundle.format("text.item.flammability", (int) (liquid.flammability * 100 * 2f)));
table.row();
table.add(Bundles.format("text.liquid.heatcapacity", (int) (liquid.heatCapacity * 100)));
table.add(Core.bundle.format("text.liquid.heatcapacity", (int) (liquid.heatCapacity * 100)));
table.row();
table.add(Bundles.format("text.liquid.temperature", (int) (liquid.temperature * 100)));
table.add(Core.bundle.format("text.liquid.temperature", (int) (liquid.temperature * 100)));
table.row();
table.add(Bundles.format("text.liquid.viscosity", (int) (liquid.viscosity * 100)));
table.add(Core.bundle.format("text.liquid.viscosity", (int) (liquid.viscosity * 100)));
table.row();
}
@@ -155,23 +154,23 @@ public class ContentDisplay{
table.left().defaults().fillX();
if(Bundles.has("mech." + mech.name + ".weapon")){
table.add(Bundles.format("text.mech.weapon", Bundles.get("mech." + mech.name + ".weapon")));
if(Core.bundle.has("mech." + mech.name + ".weapon")){
table.add(Core.bundle.format("text.mech.weapon", Core.bundle.get("mech." + mech.name + ".weapon")));
table.row();
}
if(Bundles.has("mech." + mech.name + ".ability")){
table.add(Bundles.format("text.mech.ability", Bundles.get("mech." + mech.name + ".ability")));
if(Core.bundle.has("mech." + mech.name + ".ability")){
table.add(Core.bundle.format("text.mech.ability", Core.bundle.get("mech." + mech.name + ".ability")));
table.row();
}
table.add(Bundles.format("text.mech.armor", mech.armor));
table.add(Core.bundle.format("text.mech.armor", mech.armor));
table.row();
table.add(Bundles.format("text.mech.itemcapacity", mech.itemCapacity));
table.add(Core.bundle.format("text.mech.itemcapacity", mech.itemCapacity));
table.row();
if(mech.drillPower > 0){
table.add(Bundles.format("text.mech.minespeed", (int) (mech.mineSpeed * 10)));
table.add(Core.bundle.format("text.mech.minespeed", (int) (mech.mineSpeed * 10)));
table.row();
table.add(Bundles.format("text.mech.minepower", mech.drillPower));
table.add(Core.bundle.format("text.mech.minepower", mech.drillPower));
table.row();
}
}
@@ -198,9 +197,9 @@ public class ContentDisplay{
table.left().defaults().fillX();
table.add(Bundles.format("text.unit.health", unit.health));
table.add(Core.bundle.format("text.unit.health", unit.health));
table.row();
table.add(Bundles.format("text.unit.speed", Strings.toFixed(unit.speed, 1)));
table.add(Core.bundle.format("text.unit.speed", Strings.toFixed(unit.speed, 1)));
table.row();
table.row();
}

View File

@@ -1,9 +1,7 @@
package io.anuke.mindustry.ui;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.Element;
import io.anuke.arc.graphics.g2d.Fill;
import io.anuke.arc.scene.Element;
public class GridImage extends Element{
private int imageWidth, imageHeight;
@@ -13,9 +11,8 @@ public class GridImage extends Element{
this.imageHeight = h;
}
public void draw(Batch batch, float alpha){
TextureRegion blank = Draw.region("white");
@Override
public void draw(){
float xspace = (getWidth() / imageWidth);
float yspace = (getHeight() / imageHeight);
float s = 1f;
@@ -26,11 +23,11 @@ public class GridImage extends Element{
int jumpy = (int) (Math.max(minspace, yspace) / yspace);
for(int x = 0; x <= imageWidth; x += jumpx){
batch.draw(blank, (int) (getX() + xspace * x - s), getY() - s, 2, getHeight() + (x == imageWidth ? 1 : 0));
Fill.crect((int) (getX() + xspace * x - s), getY() - s, 2, getHeight() + (x == imageWidth ? 1 : 0));
}
for(int y = 0; y <= imageHeight; y += jumpy){
batch.draw(blank, getX() - s, (int) (getY() + y * yspace - s), getWidth(), 2);
Fill.crect(getX() - s, (int) (getY() + y * yspace - s), getWidth(), 2);
}
}

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.ui;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.layout.Stack;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.layout.Stack;
public class ImageStack extends Stack{

View File

@@ -1,6 +1,7 @@
package io.anuke.mindustry.ui;
import io.anuke.ucore.util.Bundles;
import io.anuke.arc.Core;
/**
* A low-garbage way to format bundle strings.
@@ -17,7 +18,7 @@ public class IntFormat{
public CharSequence get(int value){
if(lastValue != value){
builder.setLength(0);
builder.append(Bundles.format(text, value));
builder.append(Core.bundle.format(text, value));
}
lastValue = value;
return builder;

View File

@@ -2,7 +2,7 @@ package io.anuke.mindustry.ui;
import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.ItemStack;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.layout.Table;
/**An item image with text.*/
public class ItemDisplay extends Table{

View File

@@ -1,11 +1,11 @@
package io.anuke.mindustry.ui;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.mindustry.type.ItemStack;
import io.anuke.ucore.function.Supplier;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.layout.Stack;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.function.Supplier;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.layout.Stack;
import io.anuke.arc.scene.ui.layout.Table;
public class ItemImage extends Stack{

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.ui;
import com.badlogic.gdx.graphics.Color;
import io.anuke.ucore.util.Bundles;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color;
public class Links{
private static LinkEntry[] links;
@@ -33,7 +33,7 @@ public class Links{
public LinkEntry(String name, String link, Color color){
this.name = name;
this.color = color;
this.description = Bundles.getNotNull("text.link." + name + ".description");
this.description = Core.bundle.getNotNull("text.link." + name + ".description");
this.link = link;
}
}

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.ui;
import io.anuke.mindustry.type.Liquid;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.layout.Table;
/**An ItemDisplay, but for liquids.*/
public class LiquidDisplay extends Table{

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.ui;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.Align;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.util.Align;
import io.anuke.arc.scene.ui.TextButton;
public class MenuButton extends TextButton{

View File

@@ -1,57 +1,28 @@
package io.anuke.mindustry.ui;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import io.anuke.mindustry.graphics.Shaders;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.Element;
import io.anuke.ucore.scene.event.InputEvent;
import io.anuke.ucore.scene.event.InputListener;
import io.anuke.ucore.scene.ui.layout.Container;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.scene.Element;
import io.anuke.arc.scene.event.InputEvent;
import io.anuke.arc.scene.event.InputListener;
import io.anuke.arc.scene.ui.layout.Container;
import static io.anuke.mindustry.Vars.*;
import static io.anuke.mindustry.Vars.renderer;
public class Minimap extends Container<Element>{
public Minimap(){
super(new Element(){
TextureRegion r = new TextureRegion();
@Override
public void draw(){
if(renderer.minimap.getRegion() == null) return;
Draw.crect(renderer.minimap.getRegion(), x, y, width, height);
Draw.rect(renderer.minimap.getRegion(), x + width/2f, y + height/2f, width, height);
if(renderer.minimap.getTexture() != null){
renderer.minimap.drawEntities(x, y, width, height);
}
if(showFog){
renderer.fog.getTexture().setFilter(TextureFilter.Nearest, TextureFilter.Nearest);
r.setRegion(renderer.minimap.getRegion());
float pad = renderer.fog.getPadding();
float px = r.getU() * world.width() + pad;
float py = r.getV() * world.height() + pad;
float px2 = r.getU2() * world.width() + pad;
float py2 = r.getV2() * world.height() + pad;
r.setTexture(renderer.fog.getTexture());
r.setU(px / (world.width() + pad*2f));
r.setV(1f - py / (world.height() + pad*2f));
r.setU2(px2 / (world.width() + pad*2f));
r.setV2(1f - py2 / (world.height() + pad*2f));
Graphics.shader(Shaders.fog);
Draw.crect(r, x, y, width, height);
Graphics.shader();
renderer.fog.getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);
}
}
});
@@ -61,15 +32,16 @@ public class Minimap extends Container<Element>{
margin(5f);
addListener(new InputListener(){
public boolean scrolled(InputEvent event, float x, float y, int amount){
renderer.minimap.zoomBy(amount);
@Override
public boolean scrolled(InputEvent event, float x, float y, float amountx, float amounty){
renderer.minimap.zoomBy(amounty);
return true;
}
});
update(() -> {
Element e = Core.scene.hit(Graphics.mouse().x, Graphics.mouse().y, true);
Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true);
if(e != null && e.isDescendantOf(this)){
Core.scene.setScrollFocus(this);
}else if(Core.scene.getScrollFocus() == this){

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.ui;
import com.badlogic.gdx.utils.Align;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.arc.util.Align;
import io.anuke.arc.scene.ui.ImageButton;
public class MobileButton extends ImageButton{

View File

@@ -1,22 +1,22 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectSet;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.collection.Array;
import io.anuke.arc.collection.ObjectSet;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.io.Contributors;
import io.anuke.mindustry.io.Contributors.Contributor;
import io.anuke.mindustry.ui.Links;
import io.anuke.mindustry.ui.Links.LinkEntry;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.layout.Cell;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.utils.UIUtils;
import io.anuke.ucore.util.OS;
import io.anuke.ucore.util.Strings;
import io.anuke.arc.Core;
import io.anuke.arc.util.Time;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.layout.Cell;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.utils.UIUtils;
import io.anuke.arc.util.OS;
import io.anuke.arc.util.Strings;
import static io.anuke.mindustry.Vars.ios;
import static io.anuke.mindustry.Vars.ui;
@@ -69,16 +69,16 @@ public class AboutDialog extends FloatingDialog{
}).padLeft(8);
table.addImageButton("icon-link", 14 * 3, () -> {
if(!Gdx.net.openURI(link.link)){
if(!Core.net.openURI(link.link)){
ui.showError("$text.linkfail");
Gdx.app.getClipboard().setContents(link.link);
Core.app.getClipboard().setContents(link.link);
}
}).size(h - 5, h);
in.add(table).size(w, h).padTop(5).row();
}
shown(() -> Timers.run(1f, () -> Core.scene.setScrollFocus(pane)));
shown(() -> Time.run(1f, () -> Core.scene.setScrollFocus(pane)));
content().add(pane).growX();

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.mindustry.net.Administration.PlayerInfo;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.layout.Table;
import static io.anuke.mindustry.Vars.*;

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.mindustry.net.Administration.PlayerInfo;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.layout.Table;
import static io.anuke.mindustry.Vars.*;

View File

@@ -1,16 +1,15 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.utils.Array;
import io.anuke.arc.Core;
import io.anuke.arc.collection.Array;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Log;
import io.anuke.arc.util.OS;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.game.Version;
import io.anuke.mindustry.io.Changelogs;
import io.anuke.mindustry.io.Changelogs.VersionInfo;
import io.anuke.mindustry.game.Version;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Log;
import io.anuke.ucore.util.OS;
import static io.anuke.mindustry.Vars.ios;
@@ -28,10 +27,10 @@ public class ChangelogDialog extends FloatingDialog{
if(!ios && !OS.isMac){
Changelogs.getChangelog(result -> {
versions = result;
Gdx.app.postRunnable(this::setup);
Core.app.post(this::setup);
}, t -> {
Log.err(t);
Gdx.app.postRunnable(this::setup);
Core.app.post(this::setup);
});
}
}
@@ -77,10 +76,10 @@ public class ChangelogDialog extends FloatingDialog{
table.add(in).width(vw).pad(8).row();
}
int lastid = Settings.getInt("lastBuild");
int lastid = Core.settings.getInt("lastBuild");
if(lastid != 0 && versions.peek().build > lastid){
Settings.putInt("lastBuild", versions.peek().build);
Settings.save();
Core.settings.put("lastBuild", versions.peek().build);
Core.settings.save();
show();
}
}

View File

@@ -1,11 +1,11 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.graphics.Color;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.scene.ui.Dialog;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.scene.ui.Dialog;
import io.anuke.arc.scene.ui.ImageButton;
import io.anuke.arc.scene.ui.layout.Table;
import static io.anuke.mindustry.Vars.playerColors;
import static io.anuke.mindustry.Vars.players;
@@ -38,7 +38,7 @@ public class ColorPickDialog extends Dialog{
}
keyDown(key -> {
if(key == Keys.ESCAPE || key == Keys.BACK)
if(key == KeyCode.ESCAPE || key == KeyCode.BACK)
hide();
});

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.mindustry.game.UnlockableContent;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.layout.Table;
public class ContentInfoDialog extends FloatingDialog{

View File

@@ -1,15 +1,16 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.utils.Align;
import io.anuke.arc.Core;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.KeybindDialog;
import io.anuke.arc.util.Align;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.KeybindDialog;
public class ControlsDialog extends KeybindDialog{
public ControlsDialog(){
setDialog();
setStyle(Core.scene.skin.get("dialog", WindowStyle.class));
setFillParent(true);
title().setAlignment(Align.center);
@@ -23,7 +24,7 @@ public class ControlsDialog extends KeybindDialog{
buttons().addImageTextButton("$text.back", "icon-arrow-left", 30f, this::hide).size(230f, 64f);
keyDown(key -> {
if(key == Keys.ESCAPE || key == Keys.BACK)
if(key == KeyCode.ESCAPE || key == KeyCode.BACK)
hide();
});
}

View File

@@ -1,22 +1,20 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.Scaling;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.arc.math.Mathf;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.ButtonGroup;
import io.anuke.arc.scene.ui.ImageButton;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Align;
import io.anuke.arc.util.Scaling;
import io.anuke.mindustry.game.Difficulty;
import io.anuke.mindustry.game.GameMode;
import io.anuke.mindustry.maps.Map;
import io.anuke.mindustry.ui.BorderImage;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.scene.event.Touchable;
import io.anuke.ucore.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.*;
@@ -38,7 +36,7 @@ public class CustomGameDialog extends FloatingDialog{
ScrollPane pane = new ScrollPane(maps);
pane.setFadeScrollBars(false);
int maxwidth = (Gdx.graphics.getHeight() > Gdx.graphics.getHeight() ? 2 : 4);
int maxwidth = (Core.graphics.getHeight() > Core.graphics.getHeight() ? 2 : 4);
Table selmode = new Table();
ButtonGroup<TextButton> group = new ButtonGroup<>();
@@ -77,7 +75,7 @@ public class CustomGameDialog extends FloatingDialog{
sdif.addButton("", () -> {})
.update(t -> {
t.setText(state.difficulty.toString());
t.setTouchable(Touchable.disabled);
t.touchable(Touchable.disabled);
}).width(180f);
sdif.addImageButton("icon-arrow-right", 10 * 3, () -> {
@@ -104,7 +102,7 @@ public class CustomGameDialog extends FloatingDialog{
image.row();
image.add("[accent]" + map.getDisplayName()).pad(3f).growX().wrap().get().setAlignment(Align.center, Align.center);
image.row();
image.label((() -> Bundles.format("text.level.highscore", Settings.getInt("hiscore" + map.name, 0)))).pad(3f);
image.label((() -> Core.bundle.format("text.level.highscore", Core.settings.getInt("hiscore" + map.name, 0)))).pad(3f);
BorderImage border = new BorderImage(map.texture, 3f);
border.setScaling(Scaling.fit);
@@ -135,7 +133,7 @@ public class CustomGameDialog extends FloatingDialog{
}
private void displayGameModeHelp(){
FloatingDialog d = new FloatingDialog(Bundles.get("mode.text.help.title"));
FloatingDialog d = new FloatingDialog(Core.bundle.get("mode.text.help.title"));
d.setFillParent(false);
Table table = new Table();
table.defaults().pad(1f);

View File

@@ -1,9 +1,9 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.ucore.scene.ui.Dialog;
import io.anuke.arc.scene.ui.Dialog;
import static io.anuke.mindustry.Vars.discordURL;
import static io.anuke.mindustry.Vars.ui;
@@ -40,12 +40,12 @@ public class DiscordDialog extends Dialog{
buttons().addButton("$text.back", this::hide);
buttons().addButton("$text.copylink", () -> {
Gdx.app.getClipboard().setContents(discordURL);
Core.app.getClipboard().setContents(discordURL);
});
buttons().addButton("$text.openlink", () -> {
if(!Gdx.net.openURI(discordURL)){
if(!Core.net.openURI(discordURL)){
ui.showError("$text.linkfail");
Gdx.app.getClipboard().setContents(discordURL);
Core.app.getClipboard().setContents(discordURL);
}
});
}

View File

@@ -1,23 +1,22 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.g2d.GlyphLayout;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.Array;
import io.anuke.arc.Core;
import io.anuke.arc.collection.Array;
import io.anuke.arc.files.FileHandle;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.function.Predicate;
import io.anuke.arc.graphics.g2d.GlyphLayout;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.*;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.arc.scene.utils.UIUtils;
import io.anuke.arc.util.Align;
import io.anuke.arc.util.OS;
import io.anuke.arc.util.Time;
import io.anuke.arc.util.pooling.Pools;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.Platform;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.function.Predicate;
import io.anuke.ucore.scene.event.Touchable;
import io.anuke.ucore.scene.ui.*;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.scene.utils.UIUtils;
import io.anuke.ucore.util.OS;
import io.anuke.ucore.util.Pooling;
import java.util.Arrays;
@@ -27,8 +26,8 @@ public class FileChooser extends FloatingDialog{
public static Predicate<FileHandle> jpegFilter = file -> file.extension().equalsIgnoreCase("png") || file.extension().equalsIgnoreCase("jpg") || file.extension().equalsIgnoreCase("jpeg");
public static Predicate<FileHandle> defaultFilter = file -> true;
private Table files;
private FileHandle homeDirectory = Gdx.files.absolute(OS.isMac ? OS.getProperty("user.home") + "/Downloads/" :
Gdx.files.getExternalStoragePath());
private FileHandle homeDirectory = Core.files.absolute(OS.isMac ? OS.getProperty("user.home") + "/Downloads/" :
Core.files.getExternalStoragePath());
private FileHandle directory = homeDirectory;
private ScrollPane pane;
private TextField navigation, filefield;
@@ -74,7 +73,7 @@ public class FileChooser extends FloatingDialog{
cancel.clicked(this::hide);
navigation = new TextField("");
navigation.setTouchable(Touchable.disabled);
navigation.touchable(Touchable.disabled);
files = new Table();
files.marginRight(10);
@@ -82,7 +81,7 @@ public class FileChooser extends FloatingDialog{
pane = new ScrollPane(files){
public float getPrefHeight(){
return Gdx.graphics.getHeight();
return Core.graphics.getHeight();
}
};
pane.setOverscroll(false, false);
@@ -142,7 +141,7 @@ public class FileChooser extends FloatingDialog{
content.add(icontable).expandX().fillX();
content.row();
content.center().add(pane).width(UIUtils.portrait() ? Gdx.graphics.getWidth() / Unit.dp.scl(1) : Gdx.graphics.getWidth() / Unit.dp.scl(2)).colspan(3).grow();
content.center().add(pane).width(UIUtils.portrait() ? Core.graphics.getWidth() / Unit.dp.scl(1) : Core.graphics.getWidth() / Unit.dp.scl(2)).colspan(3).grow();
content.row();
if(!open){
@@ -179,9 +178,9 @@ public class FileChooser extends FloatingDialog{
//if is mac, don't display extra info since you can only ever go to downloads
navigation.setText(OS.isMac ? directory.name() : directory.toString());
GlyphLayout layout = Pooling.obtain(GlyphLayout.class, GlyphLayout::new);
GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new);
layout.setText(Core.font, navigation.getText());
layout.setText(Core.scene.skin.getFont("default-font"), navigation.getText());
if(layout.width < navigation.getWidth()){
navigation.setCursorPosition(0);
@@ -189,7 +188,7 @@ public class FileChooser extends FloatingDialog{
navigation.setCursorPosition(navigation.getText().length());
}
Pooling.free(layout);
Pools.free(layout);
files.clearChildren();
files.top().left();
@@ -264,7 +263,7 @@ public class FileChooser extends FloatingDialog{
@Override
public Dialog show(){
Timers.runTask(2f, () -> {
Time.runTask(2f, () -> {
content().clear();
setupWidgets();
super.show();

View File

@@ -1,16 +1,15 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.utils.Align;
import io.anuke.arc.Core;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.util.Align;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.game.EventType.ResizeEvent;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.scene.ui.Dialog;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.arc.Events;
import io.anuke.arc.scene.ui.Dialog;
import io.anuke.arc.scene.ui.ScrollPane;
import static io.anuke.mindustry.Vars.state;
@@ -43,7 +42,7 @@ public class FloatingDialog extends Dialog{
boolean[] done = {false};
shown(() -> Gdx.app.postRunnable(() ->
shown(() -> Core.app.post(() ->
forEach(child -> {
if(done[0]) return;
@@ -67,8 +66,8 @@ public class FloatingDialog extends Dialog{
buttons().addImageTextButton("$text.back", "icon-arrow-left", 30f, this::hide).size(230f, 64f);
keyDown(key -> {
if(key == Keys.ESCAPE || key == Keys.BACK) {
Gdx.app.postRunnable(this::hide);
if(key == KeyCode.ESCAPE || key == KeyCode.BACK) {
Core.app.post(this::hide);
}
});
}

View File

@@ -1,23 +1,23 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Pixmap.Format;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.async.AsyncExecutor;
import io.anuke.arc.Core;
import io.anuke.arc.Graphics.Cursor.SystemCursor;
import io.anuke.arc.collection.Array;
import io.anuke.arc.collection.GridMap;
import io.anuke.arc.graphics.Pixmap;
import io.anuke.arc.graphics.Pixmap.Format;
import io.anuke.arc.graphics.Texture;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.scene.Element;
import io.anuke.arc.scene.event.InputEvent;
import io.anuke.arc.scene.event.InputListener;
import io.anuke.arc.util.async.AsyncExecutor;
import io.anuke.mindustry.content.Items;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.maps.generation.WorldGenerator.GenResult;
import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.world.ColorMapper;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.Element;
import io.anuke.ucore.scene.event.InputEvent;
import io.anuke.ucore.scene.event.InputListener;
import io.anuke.ucore.scene.utils.Cursors;
import io.anuke.ucore.util.GridMap;
import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.sectorSize;
import static io.anuke.mindustry.Vars.world;
@@ -37,13 +37,13 @@ public class GenViewDialog extends FloatingDialog{
float panX, panY;
float lastX, lastY;
int viewsize = 3;
AsyncExecutor async = new AsyncExecutor(Mathf.sqr(viewsize*2));
AsyncExecutor async = new AsyncExecutor(viewsize*2 * viewsize*2);
{
addListener(new InputListener(){
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){
Cursors.setHand();
public boolean touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){
Core.graphics.cursor(SystemCursor.hand);
lastX = x;
lastY = y;
return true;
@@ -59,8 +59,8 @@ public class GenViewDialog extends FloatingDialog{
}
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button){
Cursors.restoreCursor();
public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){
Core.graphics.restoreCursor();
}
});
}
@@ -89,7 +89,7 @@ public class GenViewDialog extends FloatingDialog{
pixmap.drawPixel(i, sectorSize - 1 - j, ColorMapper.colorFor(result.floor, result.wall, Team.none, result.elevation, (byte)0));
}
}
Gdx.app.postRunnable(() -> map.put(wx, wy, new Texture(pixmap)));
Core.app.post(() -> map.put(wx, wy, new Texture(pixmap)));
return pixmap;
});
@@ -99,7 +99,7 @@ public class GenViewDialog extends FloatingDialog{
float drawX = x + width/2f+ wx * padSectorSize - tx * padSectorSize - panX % padSectorSize;
float drawY = y + height/2f + wy * padSectorSize - ty * padSectorSize - panY % padSectorSize;
Draw.rect(map.get(wx, wy), drawX, drawY, padSectorSize, padSectorSize);
Draw.rect(Draw.wrap(map.get(wx, wy)), drawX + padSectorSize/2f, drawY + padSectorSize/2f, padSectorSize, padSectorSize);
}
}
}

View File

@@ -1,14 +1,13 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.graphics.Color;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.scene.ui.ImageButton;
import io.anuke.arc.util.Strings;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Strings;
import java.io.IOException;
@@ -27,18 +26,18 @@ public class HostDialog extends FloatingDialog{
content().table(t -> {
t.add("$text.name").padRight(10);
t.addField(Settings.getString("name"), text -> {
t.addField(Core.settings.getString("name"), text -> {
player.name = text;
Settings.put("name", text);
Settings.save();
Core.settings.put("name", text);
Core.settings.save();
ui.listfrag.rebuild();
}).grow().pad(8).get().setMaxLength(40);
ImageButton button = t.addImageButton("white", "clear-full", 40, () -> {
new ColorPickDialog().show(color -> {
player.color.set(color);
Settings.putInt("color-0", Color.rgba8888(color));
Settings.save();
Core.settings.put("color-0", Color.rgba8888(color));
Core.settings.save();
});
}).size(54f).get();
button.update(() -> button.getStyle().imageUpColor = player.color);
@@ -49,18 +48,18 @@ public class HostDialog extends FloatingDialog{
content().add().width(65f);
content().addButton("$text.host", () -> {
if(Settings.getString("name").trim().isEmpty()){
if(Core.settings.getString("name").trim().isEmpty()){
ui.showInfo("$text.noname");
return;
}
ui.loadfrag.show("$text.hosting");
Timers.runTask(5f, () -> {
Time.runTask(5f, () -> {
try{
Net.host(Vars.port);
player.isAdmin = true;
}catch(IOException e){
ui.showError(Bundles.format("text.server.error", Strings.parseException(e, false)));
ui.showError(Core.bundle.format("text.server.error", Strings.parseException(e, false)));
}
ui.loadfrag.hide();
hide();

View File

@@ -1,24 +1,23 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.utils.Array;
import io.anuke.annotations.Annotations.Serialize;
import io.anuke.arc.Core;
import io.anuke.arc.collection.Array;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.math.Mathf;
import io.anuke.arc.scene.style.Drawable;
import io.anuke.arc.scene.ui.*;
import io.anuke.arc.scene.ui.layout.Cell;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.utils.UIUtils;
import io.anuke.arc.util.Strings;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.game.Version;
import io.anuke.mindustry.net.Host;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.style.Drawable;
import io.anuke.ucore.scene.ui.*;
import io.anuke.ucore.scene.ui.layout.Cell;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.utils.UIUtils;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Strings;
import static io.anuke.mindustry.Vars.*;
@@ -47,9 +46,9 @@ public class JoinDialog extends FloatingDialog{
add = new FloatingDialog("$text.joingame.title");
add.content().add("$text.joingame.ip").padRight(5f).left();
TextField field = add.content().addField(Settings.getString("ip"), text -> {
Settings.putString("ip", text);
Settings.save();
TextField field = add.content().addField(Core.settings.getString("ip"), text -> {
Core.settings.put("ip", text);
Core.settings.save();
}).size(320f, 54f).get();
Platform.instance.addDialog(field, 100);
@@ -60,19 +59,19 @@ public class JoinDialog extends FloatingDialog{
add.buttons().addButton("$text.ok", () -> {
if(renaming == null){
Server server = new Server();
server.setIP(Settings.getString("ip"));
server.setIP(Core.settings.getString("ip"));
servers.add(server);
saveServers();
setupRemote();
refreshRemote();
}else{
renaming.setIP(Settings.getString("ip"));
renaming.setIP(Core.settings.getString("ip"));
saveServers();
setupRemote();
refreshRemote();
}
add.hide();
}).disabled(b -> Settings.getString("ip").isEmpty() || Net.active());
}).disabled(b -> Core.settings.getString("ip").isEmpty() || Net.active());
add.shown(() -> {
add.getTitleLabel().setText(renaming != null ? "$text.server.edit" : "$text.server.add");
@@ -145,23 +144,23 @@ public class JoinDialog extends FloatingDialog{
void refreshServer(Server server){
server.content.clear();
server.content.label(() -> Bundles.get("text.server.refreshing") + Strings.animated(4, 11, "."));
server.content.label(() -> Core.bundle.get("text.server.refreshing") + Strings.animated(Time.time(), 4, 11, "."));
Net.pingHost(server.ip, server.port, host -> {
String versionString;
if(host.version == -1){
versionString = Bundles.format("text.server.version", Bundles.get("text.server.custombuild"), "");
versionString = Core.bundle.format("text.server.version", Core.bundle.get("text.server.custombuild"), "");
}else if(host.version == 0){
versionString = Bundles.get("text.server.outdated");
versionString = Core.bundle.get("text.server.outdated");
}else if(host.version < Version.build && Version.build != -1){
versionString = Bundles.get("text.server.outdated") + "\n" +
Bundles.format("text.server.version", host.version, "");
versionString = Core.bundle.get("text.server.outdated") + "\n" +
Core.bundle.format("text.server.version", host.version, "");
}else if(host.version > Version.build && Version.build != -1){
versionString = Bundles.get("text.server.outdated.client") + "\n" +
Bundles.format("text.server.version", host.version, "");
versionString = Core.bundle.get("text.server.outdated.client") + "\n" +
Core.bundle.format("text.server.version", host.version, "");
}else{
versionString = Bundles.format("text.server.version", host.version, host.versionType);
versionString = Core.bundle.format("text.server.version", host.version, host.versionType);
}
server.content.clear();
@@ -169,12 +168,12 @@ public class JoinDialog extends FloatingDialog{
server.content.table(t -> {
t.add(versionString).left();
t.row();
t.add("[lightgray]" + Bundles.format("text.server.hostname", host.name)).left();
t.add("[lightgray]" + Core.bundle.format("text.server.hostname", host.name)).left();
t.row();
t.add("[lightgray]" + (host.players != 1 ? Bundles.format("text.players", host.players) :
Bundles.format("text.players.single", host.players))).left();
t.add("[lightgray]" + (host.players != 1 ? Core.bundle.format("text.players", host.players) :
Core.bundle.format("text.players.single", host.players))).left();
t.row();
t.add("[lightgray]" + Bundles.format("text.save.map", host.mapname) + " / " + Bundles.format("text.save.wave", host.wave)).left();
t.add("[lightgray]" + Core.bundle.format("text.save.map", host.mapname) + " / " + Core.bundle.format("text.save.wave", host.wave)).left();
}).expand().left().bottom().padLeft(12f).padBottom(8);
}, e -> {
@@ -204,17 +203,17 @@ public class JoinDialog extends FloatingDialog{
content().clear();
content().table(t -> {
t.add("$text.name").padRight(10);
t.addField(Settings.getString("name"), text -> {
t.addField(Core.settings.getString("name"), text -> {
player.name = text;
Settings.put("name", text);
Settings.save();
Core.settings.put("name", text);
Core.settings.save();
}).grow().pad(8).get().setMaxLength(maxNameLength);
ImageButton button = t.addImageButton("white", "clear-full", 40, () -> {
new ColorPickDialog().show(color -> {
player.color.set(color);
Settings.putInt("color-0", Color.rgba8888(color));
Settings.save();
Core.settings.put("color-0", Color.rgba8888(color));
Core.settings.save();
});
}).size(54f).get();
button.update(() -> button.getStyle().imageUpColor = player.color);
@@ -233,9 +232,9 @@ public class JoinDialog extends FloatingDialog{
pad = 6;
}
Cell<TextButton> cell = ((Table) pane.getParent()).getCell(button);
Cell cell = ((Table) pane.getParent()).getCell(button);
if(!MathUtils.isEqual(cell.getMinWidth(), pw)){
if(!Mathf.isEqual(cell.getMinWidth(), pw)){
cell.width(pw);
cell.padLeft(pad);
pane.getParent().invalidateHierarchy();
@@ -248,7 +247,7 @@ public class JoinDialog extends FloatingDialog{
local.clear();
local.background((Drawable)null);
local.table("button", t -> t.label(() -> "[accent]" + Bundles.get("text.hosts.discovering") + Strings.animated(4, 10f, ".")).pad(10f)).growX();
local.table("button", t -> t.label(() -> "[accent]" + Core.bundle.get("text.hosts.discovering") + Strings.animated(Time.time(), 4, 10f, ".")).pad(10f)).growX();
Net.discoverServers(this::addLocalHost, this::finishLocalHosts);
}
@@ -278,12 +277,12 @@ public class JoinDialog extends FloatingDialog{
.width(w).height(80f).pad(4f).get();
button.left();
button.row();
button.add("[lightgray]" + (host.players != 1 ? Bundles.format("text.players", host.players) :
Bundles.format("text.players.single", host.players))).padBottom(5);
button.add("[lightgray]" + (host.players != 1 ? Core.bundle.format("text.players", host.players) :
Core.bundle.format("text.players.single", host.players))).padBottom(5);
}
void connect(String ip, int port){
if(Settings.getString("name").trim().isEmpty()){
if(Core.settings.getString("name").trim().isEmpty()){
ui.showInfo("$text.noname");
return;
}
@@ -295,7 +294,7 @@ public class JoinDialog extends FloatingDialog{
netClient.disconnectQuietly();
});
Timers.runTask(2f, () -> {
Time.runTask(2f, () -> {
Vars.netClient.beginConnecting();
Net.connect(ip, port, () -> {
hide();
@@ -310,12 +309,12 @@ public class JoinDialog extends FloatingDialog{
@SuppressWarnings("unchecked")
private void loadServers(){
servers = Settings.getObject("server-list", Array.class, Array::new);
servers = Core.settings.getObject("server-list", Array.class, Array::new);
}
private void saveServers(){
Settings.putObject("server-list", servers);
Settings.save();
Core.settings.putObject("server-list", servers);
Core.settings.save();
}
@Serialize

View File

@@ -1,11 +1,11 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Log;
import io.anuke.arc.Core;
import io.anuke.arc.scene.ui.ButtonGroup;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Log;
import java.util.Locale;
@@ -33,8 +33,8 @@ public class LanguageDialog extends FloatingDialog{
TextButton button = new TextButton(loc.getDisplayName(loc), "toggle");
button.clicked(() -> {
if(getLocale().equals(loc)) return;
Settings.putString("locale", loc.toString());
Settings.save();
Core.settings.put("locale", loc.toString());
Core.settings.save();
Log.info("Setting locale: {0}", loc.toString());
ui.showInfo("$text.language.restart");
});
@@ -45,7 +45,7 @@ public class LanguageDialog extends FloatingDialog{
}
public Locale getLocale(){
String loc = Settings.getString("locale");
String loc = Core.settings.getString("locale");
if(loc.equals("default")){
findClosestLocale();
@@ -67,7 +67,7 @@ public class LanguageDialog extends FloatingDialog{
//check exact locale
for(Locale l : locales){
if(l.equals(Locale.getDefault())){
Settings.putString("locale", l.toString());
Core.settings.put("locale", l.toString());
return;
}
}
@@ -75,11 +75,11 @@ public class LanguageDialog extends FloatingDialog{
//find by language
for(Locale l : locales){
if(l.getLanguage().equals(Locale.getDefault().getLanguage())){
Settings.putString("locale", l.toString());
Core.settings.put("locale", l.toString());
return;
}
}
Settings.putString("locale", new Locale("en").toString());
Core.settings.put("locale", new Locale("en").toString());
}
}

View File

@@ -1,21 +1,19 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Array;
import io.anuke.arc.Core;
import io.anuke.arc.files.FileHandle;
import io.anuke.arc.collection.Array;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.io.SaveIO;
import io.anuke.mindustry.game.Saves.SaveSlot;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Log;
import io.anuke.ucore.util.Strings;
import io.anuke.arc.util.Time;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Log;
import io.anuke.arc.util.Strings;
import java.io.IOException;
@@ -35,7 +33,7 @@ public class LoadDialog extends FloatingDialog{
shown(() -> {
setup();
Timers.runTask(2f, () -> Core.scene.setScrollFocus(pane));
Time.runTask(2f, () -> Core.scene.setScrollFocus(pane));
});
addCloseButton();
@@ -51,7 +49,7 @@ public class LoadDialog extends FloatingDialog{
slots.marginRight(24);
Timers.runTask(2f, () -> Core.scene.setScrollFocus(pane));
Time.runTask(2f, () -> Core.scene.setScrollFocus(pane));
Array<SaveSlot> array = control.saves.getSaveSlots();
@@ -88,21 +86,21 @@ public class LoadDialog extends FloatingDialog{
t.addImageButton("icon-save", "empty", 14 * 3, () -> {
if(!ios){
Platform.instance.showFileChooser(Bundles.get("text.save.export"), "Mindustry Save", file -> {
Platform.instance.showFileChooser(Core.bundle.get("text.save.export"), "Mindustry Save", file -> {
try{
slot.exportFile(file);
setup();
}catch(IOException e){
ui.showError(Bundles.format("text.save.export.fail", Strings.parseException(e, false)));
ui.showError(Core.bundle.format("text.save.export.fail", Strings.parseException(e, false)));
}
}, false, saveExtension);
}else{
try{
FileHandle file = Gdx.files.local("save-" + slot.getName() + "." + Vars.saveExtension);
FileHandle file = Core.files.local("save-" + slot.getName() + "." + Vars.saveExtension);
slot.exportFile(file);
Platform.instance.shareFile(file);
}catch(Exception e){
ui.showError(Bundles.format("text.save.export.fail", Strings.parseException(e, false)));
ui.showError(Core.bundle.format("text.save.export.fail", Strings.parseException(e, false)));
}
}
}).size(14 * 3).right();
@@ -114,19 +112,19 @@ public class LoadDialog extends FloatingDialog{
button.defaults().padBottom(3);
button.row();
button.add(Bundles.format("text.save.map", color + (slot.getMap() == null ? "Unknown" : slot.getMap().meta.name())));
button.add(Core.bundle.format("text.save.map", color + (slot.getMap() == null ? "Unknown" : slot.getMap().meta.name())));
button.row();
button.add(Bundles.get("text.level.mode") + " " + color + slot.getMode());
button.add(Core.bundle.get("text.level.mode") + " " + color + slot.getMode());
button.row();
button.add(Bundles.format("text.save.wave", color + slot.getWave()));
button.add(Core.bundle.format("text.save.wave", color + slot.getWave()));
button.row();
button.add(Bundles.format("text.save.difficulty", color + slot.getDifficulty()));
button.add(Core.bundle.format("text.save.difficulty", color + slot.getDifficulty()));
button.row();
button.label(() -> Bundles.format("text.save.autosave", color + Bundles.get(slot.isAutosave() ? "text.on" : "text.off")));
button.label(() -> Core.bundle.format("text.save.autosave", color + Core.bundle.get(slot.isAutosave() ? "text.on" : "text.off")));
button.row();
button.label(() -> Bundles.format("text.save.playtime", color + slot.getPlayTime()));
button.label(() -> Core.bundle.format("text.save.playtime", color + slot.getPlayTime()));
button.row();
button.add(Bundles.format("text.save.date", color + slot.getDate())).colspan(2).padTop(5).right();
button.add(Core.bundle.format("text.save.date", color + slot.getDate())).colspan(2).padTop(5).right();
button.row();
modifyButton(button, slot);
@@ -155,14 +153,14 @@ public class LoadDialog extends FloatingDialog{
if(ios) return;
slots.addImageTextButton("$text.save.import", "icon-add", 14 * 3, () -> {
Platform.instance.showFileChooser(Bundles.get("text.save.import"), "Mindustry Save", file -> {
Platform.instance.showFileChooser(Core.bundle.get("text.save.import"), "Mindustry Save", file -> {
if(SaveIO.isSaveValid(file)){
try{
control.saves.importSave(file);
setup();
}catch(IOException e){
e.printStackTrace();
ui.showError(Bundles.format("text.save.import.fail", Strings.parseException(e, false)));
ui.showError(Core.bundle.format("text.save.import.fail", Strings.parseException(e, false)));
}
}else{
ui.showError("$text.save.import.invalid");
@@ -183,7 +181,7 @@ public class LoadDialog extends FloatingDialog{
Log.err(e);
state.set(State.menu);
logic.reset();
threads.runGraphics(() -> ui.showError("$text.save.corrupted"));
ui.showError("$text.save.corrupted");
}
});
}

View File

@@ -1,11 +1,11 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.utils.Scaling;
import io.anuke.arc.Core;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.layout.Stack;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Scaling;
import io.anuke.mindustry.entities.Player;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.layout.Stack;
import io.anuke.ucore.scene.ui.layout.Table;
import static io.anuke.mindustry.Vars.control;
import static io.anuke.mindustry.Vars.players;
@@ -39,7 +39,7 @@ public class LocalPlayerDialog extends FloatingDialog{
stack.add(new Image("button"));
Image img = new Image(Draw.region("icon-chat"));
Image img = new Image(Core.atlas.find("icon-chat"));
img.setScaling(Scaling.fill);
stack.add(img);

View File

@@ -1,7 +1,16 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.Scaling;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.utils.UIUtils;
import io.anuke.arc.util.Log;
import io.anuke.arc.util.Scaling;
import io.anuke.arc.util.Strings;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.io.MapIO;
@@ -9,15 +18,6 @@ import io.anuke.mindustry.maps.Map;
import io.anuke.mindustry.maps.MapMeta;
import io.anuke.mindustry.maps.MapTileData;
import io.anuke.mindustry.ui.BorderImage;
import io.anuke.ucore.scene.event.Touchable;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.utils.UIUtils;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Log;
import io.anuke.ucore.util.Strings;
import java.io.DataInputStream;
@@ -41,7 +41,7 @@ public class MapsDialog extends FloatingDialog{
String name = meta.tags.get("name", file.nameWithoutExtension());
if(world.maps.getByName(name) != null && !world.maps.getByName(name).custom){
ui.showError(Bundles.format("text.editor.import.exists", name));
ui.showError(Core.bundle.format("text.editor.import.exists", name));
}else if(world.maps.getByName(name) != null){
ui.showConfirm("$text.confirm", "$text.editor.overwrite.confirm", () -> {
world.maps.saveMap(name, data, meta.tags);
@@ -53,7 +53,7 @@ public class MapsDialog extends FloatingDialog{
}
}catch(Exception e){
ui.showError(Bundles.format("text.editor.errorimageload", Strings.parseException(e, false)));
ui.showError(Core.bundle.format("text.editor.errorimageload", Strings.parseException(e, false)));
Log.err(e);
}
}, true, mapExtension);
@@ -158,7 +158,7 @@ public class MapsDialog extends FloatingDialog{
}).fillX().height(54f).marginLeft(10);
table.addImageTextButton("$text.delete", "icon-trash-16", 16 * 2, () -> {
ui.showConfirm("$text.confirm", Bundles.format("text.map.delete", map.name), () -> {
ui.showConfirm("$text.confirm", Core.bundle.format("text.map.delete", map.name), () -> {
world.maps.removeMap(map);
dialog.hide();
setup();

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.arc.Core;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.maps.Sector;
import io.anuke.ucore.util.Bundles;
public class MissionDialog extends FloatingDialog{
@@ -23,7 +23,7 @@ public class MissionDialog extends FloatingDialog{
buttons().addButton("$text.continue", this::hide).size(190f, 64f);
content().add(Bundles.format("text.mission.complete.body", sector.x, sector.y)).pad(10);
content().add(Core.bundle.format("text.mission.complete.body", sector.x, sector.y)).pad(10);
show();
}
}

View File

@@ -1,11 +1,11 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Input.Keys;
import io.anuke.arc.Core;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.scene.style.Drawable;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.scene.style.Drawable;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Bundles;
import static io.anuke.mindustry.Vars.*;
@@ -22,7 +22,7 @@ public class PausedDialog extends FloatingDialog{
shown(this::rebuild);
keyDown(key -> {
if(key == Keys.ESCAPE || key == Keys.BACK) {
if(key == KeyCode.ESCAPE || key == KeyCode.BACK) {
hide();
}
});
@@ -33,7 +33,7 @@ public class PausedDialog extends FloatingDialog{
missionTable.background((Drawable) null);
if(world.getSector() != null){
missionTable.background("underline");
missionTable.add(Bundles.format("text.sector", world.getSector().x + ", " + world.getSector().y));
missionTable.add(Core.bundle.format("text.sector", world.getSector().x + ", " + world.getSector().y));
}
}
@@ -111,7 +111,7 @@ public class PausedDialog extends FloatingDialog{
control.saves.getCurrent().save();
}catch(Throwable e){
e.printStackTrace();
threads.runGraphics(() -> ui.showError("[accent]" + Bundles.get("text.savefail")));
ui.showError("[accent]" + Core.bundle.get("text.savefail"));
}
state.set(State.menu);
});

View File

@@ -1,9 +1,9 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.arc.Core;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.maps.Sector;
import io.anuke.ucore.util.Bundles;
import static io.anuke.mindustry.Vars.*;
@@ -28,7 +28,7 @@ public class RestartDialog extends FloatingDialog{
buttons().margin(10);
if(state.mode.isPvp){
content().add(Bundles.format("text.gameover.pvp",winner.localized())).pad(6);
content().add(Core.bundle.format("text.gameover.pvp",winner.localized())).pad(6);
buttons().addButton("$text.menu", () -> {
hide();
state.set(State.menu);
@@ -39,7 +39,7 @@ public class RestartDialog extends FloatingDialog{
content().add("$text.highscore").pad(6);
content().row();
}
content().add(Bundles.format("text.wave.lasted", state.wave)).pad(12);
content().add(Core.bundle.format("text.wave.lasted", state.wave)).pad(12);
buttons().addButton("$text.menu", () -> {
hide();

View File

@@ -1,10 +1,10 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.arc.Core;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.game.Saves.SaveSlot;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.util.Bundles;
import static io.anuke.mindustry.Vars.*;
@@ -26,7 +26,7 @@ public class SaveDialog extends LoadDialog{
ui.showTextInput("$text.save", "$text.save.newslot", "", text -> {
ui.loadGraphics("$text.saving", () -> {
control.saves.addSave(text);
threads.runGraphics(() -> threads.run(() -> threads.runGraphics(this::setup)));
Core.app.post(() -> Core.app.post(this::setup));
});
})
).fillX().margin(10f).minWidth(300f).height(70f).pad(4f).padRight(-4);
@@ -45,7 +45,7 @@ public class SaveDialog extends LoadDialog{
ui.loadfrag.show("$text.saveload");
Timers.runTask(5f, () -> {
Time.runTask(5f, () -> {
hide();
ui.loadfrag.hide();
try{
@@ -53,7 +53,7 @@ public class SaveDialog extends LoadDialog{
}catch(Throwable e){
e.printStackTrace();
ui.showError("[accent]" + Bundles.get("text.savefail"));
ui.showError("[accent]" + Core.bundle.get("text.savefail"));
}
});
}

View File

@@ -1,27 +1,24 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.GridPoint2;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Align;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.math.geom.Geometry;
import io.anuke.arc.math.geom.Point2;
import io.anuke.arc.math.geom.Vector2;
import io.anuke.arc.scene.Element;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.event.InputEvent;
import io.anuke.arc.scene.event.InputListener;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.layout.Cell;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.arc.util.Align;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.maps.Sector;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.Element;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.event.InputEvent;
import io.anuke.ucore.scene.event.InputListener;
import io.anuke.ucore.scene.event.Touchable;
import io.anuke.ucore.scene.ui.layout.Cell;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.scene.utils.Cursors;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.world;
@@ -54,7 +51,7 @@ public class SectorsDialog extends FloatingDialog{
});
Group container = new Group();
container.setTouchable(Touchable.childrenOnly);
container.touchable(Touchable.childrenOnly);
container.addChild(table);
margin(0);
@@ -84,16 +81,16 @@ public class SectorsDialog extends FloatingDialog{
table.background("button").margin(5);
table.defaults().pad(3);
table.add(Bundles.format("text.sector", sector.x + ", " + sector.y));
table.add(Core.bundle.format("text.sector", sector.x + ", " + sector.y));
table.row();
if(selected.completedMissions < selected.missions.size && !selected.complete){
table.labelWrap(Bundles.format("text.mission", selected.getDominantMission().menuDisplayString())).growX();
table.labelWrap(Core.bundle.format("text.mission", selected.getDominantMission().menuDisplayString())).growX();
table.row();
}
if(selected.hasSave()){
table.labelWrap(Bundles.format("text.sector.time", selected.getSave().getPlayTime())).growX();
table.labelWrap(Core.bundle.format("text.sector.time", selected.getSave().getPlayTime())).growX();
table.row();
}
@@ -118,7 +115,7 @@ public class SectorsDialog extends FloatingDialog{
}).pad(-5).growX().padTop(0);
table.pack();
table.act(Gdx.graphics.getDeltaTime());
table.act(Core.graphics.getDeltaTime());
}
public Sector getSelected(){
@@ -133,7 +130,7 @@ public class SectorsDialog extends FloatingDialog{
SectorView(){
addListener(new InputListener(){
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){
public boolean touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){
if(pointer != 0) return false;
//Cursors.setHand();
lastX = x;
@@ -152,9 +149,9 @@ public class SectorsDialog extends FloatingDialog{
}
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button){
public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){
if(pointer != 0) return;
Cursors.restoreCursor();
//Cursors.restoreCursor();
}
});
@@ -183,7 +180,7 @@ public class SectorsDialog extends FloatingDialog{
@Override
public void draw(){
Draw.alpha(alpha);
Draw.alpha(parentAlpha);
int shownSectorsX = (int)(width/sectorSize);
int shownSectorsY = (int)(height/sectorSize);
@@ -191,7 +188,7 @@ public class SectorsDialog extends FloatingDialog{
int offsetX = (int)(panX / sectorSize);
int offsetY = (int)(panY / sectorSize);
Vector2 mouse = Graphics.mouse();
Vector2 mouse = Core.input.mouse();
for(int x = -shownSectorsX; x <= shownSectorsX; x++){
for(int y = -shownSectorsY; y <= shownSectorsY; y++){
@@ -205,13 +202,13 @@ public class SectorsDialog extends FloatingDialog{
if(sector == null || sector.texture == null){
Draw.reset();
Draw.rect("empty-sector", drawX, drawY, sectorSize, sectorSize);
Draw.rect(("empty-sector"), drawX, drawY, sectorSize, sectorSize);
int i = 0;
for(GridPoint2 point : Geometry.d4){
for(Point2 point : Geometry.d4){
Sector other = world.sectors.get(sectorX + point.x, sectorY + point.y);
if(other != null){
Draw.rect("sector-edge", drawX, drawY, sectorSize, sectorSize, i*90);
Draw.rect(("sector-edge"), drawX, drawY, sectorSize, sectorSize, i*90);
}
i ++;
@@ -220,7 +217,7 @@ public class SectorsDialog extends FloatingDialog{
}
Draw.colorl(!sector.complete ? 0.3f : 1f);
Draw.rect(sector.texture, drawX, drawY, sectorSize, sectorSize);
Draw.rect(Draw.wrap(sector.texture), drawX, drawY, sectorSize, sectorSize);
if(sector.missions.size == 0) continue;
@@ -236,8 +233,8 @@ public class SectorsDialog extends FloatingDialog{
if(sector == selected){
selectColor = Palette.accent;
}else if(Mathf.inRect(mouse.x, mouse.y, drawX - sectorSize / 2f, drawY - sectorSize / 2f,
drawX + sectorSize / 2f, drawY + sectorSize / 2f)){
}else if(mouse.x > drawX - sectorSize / 2f && mouse.y > drawY - sectorSize / 2f
&& mouse.x < drawX + sectorSize / 2f && mouse.y < drawY + sectorSize / 2f){
if(clicked){
selectSector(sector);
}
@@ -253,16 +250,16 @@ public class SectorsDialog extends FloatingDialog{
}
Draw.color(selectColor);
Draw.rect("sector-select", drawX, drawY, sectorSize, sectorSize);
Draw.rect(("sector-select"), drawX, drawY, sectorSize, sectorSize);
Draw.color(backColor);
Draw.alpha(0.75f * backColor.a);
Draw.rect("icon-mission-background", drawX, drawY, Unit.dp.scl(18f * 5), Unit.dp.scl(18f * 5));
Draw.rect(("icon-mission-background"), drawX, drawY, Unit.dp.scl(18f * 5), Unit.dp.scl(18f * 5));
float size = Unit.dp.scl(10f * 5);
Draw.color(iconColor);
Draw.rect(region, drawX, drawY, size, size);
Draw.rect((region), drawX, drawY, size, size);
}
}

View File

@@ -1,30 +1,24 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Align;
import io.anuke.arc.Core;
import io.anuke.arc.collection.ObjectMap;
import io.anuke.arc.files.FileHandle;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.scene.Element;
import io.anuke.arc.scene.event.InputEvent;
import io.anuke.arc.scene.event.InputListener;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.SettingsDialog;
import io.anuke.arc.scene.ui.SettingsDialog.SettingsTable.Setting;
import io.anuke.arc.scene.ui.Slider;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Align;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.scene.Element;
import io.anuke.ucore.scene.event.InputEvent;
import io.anuke.ucore.scene.event.InputListener;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.SettingsDialog;
import io.anuke.ucore.scene.ui.SettingsDialog.SettingsTable.Setting;
import io.anuke.ucore.scene.ui.Slider;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Mathf;
import java.util.HashMap;
import java.util.Map;
import static io.anuke.mindustry.Vars.*;
@@ -38,7 +32,7 @@ public class SettingsMenuDialog extends SettingsDialog{
private boolean wasPaused;
public SettingsMenuDialog(){
setStyle(Core.skin.get("dialog", WindowStyle.class));
setStyle(Core.scene.skin.get("dialog", WindowStyle.class));
hidden(() -> {
if(!state.is(State.menu)){
@@ -98,7 +92,7 @@ public class SettingsMenuDialog extends SettingsDialog{
ScrollPane pane = new ScrollPane(prefs);
pane.addCaptureListener(new InputListener(){
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){
public boolean touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){
Element actor = pane.hit(x, y, true);
if(actor instanceof Slider){
pane.setFlickScroll(false);
@@ -109,7 +103,7 @@ public class SettingsMenuDialog extends SettingsDialog{
}
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button){
public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){
pane.setFlickScroll(true);
super.touchUp(event, x, y, pointer, button);
}
@@ -127,14 +121,15 @@ public class SettingsMenuDialog extends SettingsDialog{
}
void addSettings(){
sound.volumePrefs();
//TODO add when sound works again
//sound.volumePrefs();
game.screenshakePref();
game.checkPref("effects", true);
if(mobile){
game.checkPref("autotarget", true);
}
game.sliderPref("saveinterval", 120, 10, 5 * 120, i -> Bundles.format("setting.seconds", i));
game.sliderPref("saveinterval", 120, 10, 5 * 120, i -> Core.bundle.format("setting.seconds", i));
if(!mobile){
game.checkPref("crashreport", true);
@@ -164,21 +159,21 @@ public class SettingsMenuDialog extends SettingsDialog{
dialog.content().row();
dialog.content().addButton("$text.settings.clearall", () -> {
ui.showConfirm("$text.confirm", "$text.settings.clearall.confirm", () -> {
Map<String, Object> map = new HashMap<>();
for(String value : Settings.prefs().get().keySet()){
ObjectMap<String, Object> map = new ObjectMap<>();
for(String value : Core.settings.keys()){
if(value.contains("usid") || value.contains("uuid")){
map.put(value, Settings.prefs().getString(value));
map.put(value, Core.settings.getString(value));
}
}
Settings.prefs().clear();
Settings.prefs().put(map);
Settings.save();
Core.settings.clear();
Core.settings.putAll(map);
Core.settings.save();
for(FileHandle file : dataDirectory.list()){
file.deleteDirectory();
}
Gdx.app.exit();
Core.app.exit();
});
});
dialog.content().row();
@@ -189,21 +184,21 @@ public class SettingsMenuDialog extends SettingsDialog{
}
});
graphics.sliderPref("fpscap", 125, 5, 125, 5, s -> (s > 120 ? Bundles.get("setting.fpscap.none") : Bundles.format("setting.fpscap.text", s)));
graphics.sliderPref("fpscap", 125, 5, 125, 5, s -> (s > 120 ? Core.bundle.get("setting.fpscap.none") : Core.bundle.format("setting.fpscap.text", s)));
if(!mobile){
graphics.checkPref("vsync", true, b -> Gdx.graphics.setVSync(b));
graphics.checkPref("vsync", true, b -> Core.graphics.setVSync(b));
graphics.checkPref("fullscreen", false, b -> {
if(b){
Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
Core.graphics.setFullscreenMode(Core.graphics.getDisplayMode());
}else{
Gdx.graphics.setWindowedMode(600, 480);
Core.graphics.setWindowedMode(600, 480);
}
});
Gdx.graphics.setVSync(Settings.getBool("vsync"));
if(Settings.getBool("fullscreen")){
Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
Core.graphics.setVSync(Core.settings.getBool("vsync"));
if(Core.settings.getBool("fullscreen")){
Core.graphics.setFullscreenMode(Core.graphics.getDisplayMode());
}
}
@@ -220,7 +215,7 @@ public class SettingsMenuDialog extends SettingsDialog{
private void visible(int index){
prefs.clearChildren();
Table table = Mathf.select(index, game, graphics, sound);
Table table = new Table[]{game, graphics, sound}[index];
prefs.add(table);
}
@@ -229,7 +224,7 @@ public class SettingsMenuDialog extends SettingsDialog{
buttons().addImageTextButton("$text.menu", "icon-arrow-left", 30f, this::hide).size(230f, 64f);
keyDown(key -> {
if(key == Keys.ESCAPE || key == Keys.BACK)
if(key == KeyCode.ESCAPE || key == KeyCode.BACK)
hide();
});
}

View File

@@ -17,15 +17,15 @@ public class TraceDialog extends FloatingDialog{
/*
table.defaults().left();
table.add(Bundles.format("text.trace.playername", player.name));
table.add(Core.bundle.format("text.trace.playername", player.name));
table.row();
table.add(Bundles.format("text.trace.ip", info.ip));
table.add(Core.bundle.format("text.trace.ip", info.ip));
table.row();
table.add(Bundles.format("text.trace.id", info.uuid));
table.add(Core.bundle.format("text.trace.id", info.uuid));
table.row();
table.add(Bundles.format("text.trace.modclient", info.modclient));
table.add(Core.bundle.format("text.trace.modclient", info.modclient));
table.row();
table.add(Bundles.format("text.trace.android", info.android));
table.add(Core.bundle.format("text.trace.android", info.android));
table.row();
table.add().pad(5);
@@ -33,19 +33,19 @@ public class TraceDialog extends FloatingDialog{
//disabled until further notice
/*
table.add(Bundles.format("text.trace.totalblocksbroken", info.totalBlocksBroken));
table.add(Core.bundle.format("text.trace.totalblocksbroken", info.totalBlocksBroken));
table.row();
table.add(Bundles.format("text.trace.structureblocksbroken", info.structureBlocksBroken));
table.add(Core.bundle.format("text.trace.structureblocksbroken", info.structureBlocksBroken));
table.row();
table.add(Bundles.format("text.trace.lastblockbroken", info.lastBlockBroken.formalName));
table.add(Core.bundle.format("text.trace.lastblockbroken", info.lastBlockBroken.formalName));
table.row();
table.add().pad(5);
table.row();
table.add(Bundles.format("text.trace.totalblocksplaced", info.totalBlocksPlaced));
table.add(Core.bundle.format("text.trace.totalblocksplaced", info.totalBlocksPlaced));
table.row();
table.add(Bundles.format("text.trace.lastblockplaced", info.lastBlockPlaced.formalName));
table.add(Core.bundle.format("text.trace.lastblockplaced", info.lastBlockPlaced.formalName));
table.row();
content().add(table);

View File

@@ -1,17 +1,17 @@
package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.utils.Array;
import io.anuke.arc.collection.Array;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.game.Content;
import io.anuke.mindustry.game.UnlockableContent;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.type.ContentType;
import io.anuke.ucore.scene.event.HandCursorListener;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.Tooltip;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.utils.UIUtils;
import io.anuke.arc.scene.event.HandCursorListener;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.Tooltip;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.utils.UIUtils;
import static io.anuke.mindustry.Vars.content;
import static io.anuke.mindustry.Vars.control;

View File

@@ -1,16 +1,13 @@
package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.Fill;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.graphics.Shaders;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.ui.layout.Unit;
import static io.anuke.mindustry.Vars.state;
@@ -18,24 +15,21 @@ public class BackgroundFragment extends Fragment{
@Override
public void build(Group parent){
Core.scene.table().addRect((a, b, w, h) -> {
Draw.colorl(0.1f);
Fill.crect(0, 0, w, h);
Draw.color(Palette.accent);
Graphics.shader(Shaders.menu);
Draw.shader(Shaders.menu);
Fill.crect(0, 0, w, h);
Graphics.shader();
Draw.color();
Draw.shader();
boolean portrait = Gdx.graphics.getWidth() < Gdx.graphics.getHeight();
float logoscl = (int) Unit.dp.scl(7) * (portrait ? 5f / 7f : 1f);
TextureRegion logo = Core.skin.getRegion("logotext");
float logow = logo.getRegionWidth() * logoscl;
float logoh = logo.getRegionHeight() * logoscl;
boolean portrait = Core.graphics.getWidth() < Core.graphics.getHeight();
float logoscl = (int) Unit.dp.scl(1) * (portrait ? 0.5f : 0.75f);
TextureRegion logo = Core.atlas.find("logotext");
float logow = logo.getWidth() * logoscl;
float logoh = logo.getHeight() * logoscl;
Draw.color();
Core.batch.draw(logo, (int) (w / 2 - logow / 2), (int) (h - logoh + 15 - Unit.dp.scl(portrait ? 30f : 0)), logow, logoh);
Draw.rect(logo, (int) (w / 2), (int) (h - 10 - logoh - Unit.dp.scl(portrait ? 30f : 0)) + logoh/2, logow, logoh);
}).visible(() -> state.is(State.menu)).grow();
}
}

View File

@@ -1,20 +1,18 @@
package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.math.Interpolation;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Align;
import io.anuke.arc.Core;
import io.anuke.arc.math.Interpolation;
import io.anuke.arc.math.geom.Vector2;
import io.anuke.arc.scene.Element;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.actions.Actions;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Align;
import io.anuke.mindustry.content.blocks.Blocks;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.input.InputHandler;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.scene.Element;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.actions.Actions;
import io.anuke.ucore.scene.ui.layout.Table;
import static io.anuke.mindustry.Vars.state;
import static io.anuke.mindustry.Vars.tilesize;
@@ -46,7 +44,7 @@ public class BlockConfigFragment extends Fragment{
configTile = tile;
configBlock = tile.block();
table.setVisible(true);
table.visible(true);
table.clear();
tile.block().buildTable(tile, table);
table.pack();
@@ -66,7 +64,7 @@ public class BlockConfigFragment extends Fragment{
}
table.setOrigin(Align.center);
Vector2 pos = Graphics.screen(tile.drawx(), tile.drawy() - tile.block().size * tilesize / 2f - 1);
Vector2 pos = Core.input.mouseScreen(tile.drawx(), tile.drawy() - tile.block().size * tilesize / 2f - 1);
table.setPosition(pos.x, pos.y, Align.top);
if(configTile == null || configTile.block() == Blocks.air || configTile.block() != configBlock){
hideConfig();
@@ -75,7 +73,7 @@ public class BlockConfigFragment extends Fragment{
}
public boolean hasConfigMouse(){
Element e = Core.scene.hit(Gdx.input.getX(), Gdx.graphics.getHeight() - Gdx.input.getY(), true);
Element e = Core.scene.hit(Core.input.mouseX(), Core.graphics.getHeight() - Core.input.mouseY(), true);
return e != null && (e == table || e.isDescendantOf(table));
}

View File

@@ -1,20 +1,19 @@
package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.ObjectSet;
import io.anuke.arc.Core;
import io.anuke.arc.collection.ObjectSet;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.math.geom.Vector2;
import io.anuke.arc.scene.Element;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Align;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.consumers.Consume;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.scene.Element;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.ui.layout.Table;
import static io.anuke.mindustry.Vars.*;
@@ -30,8 +29,8 @@ public class BlockConsumeFragment extends Fragment{
table.setTransform(true);
parent.addChild(new Element(){{update(() -> {
if(!ui.hasMouse()){
Tile tile = world.tileWorld(Graphics.mouseWorld().x, Graphics.mouseWorld().y);
if(!Core.scene.hasMouse()){
Tile tile = world.tileWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y);
if(tile == null) return;
tile = tile.target();
@@ -86,12 +85,12 @@ public class BlockConsumeFragment extends Fragment{
rebuild(block, entity);
}
Vector2 v = Graphics.screen(tile.drawx() - tile.block().size * tilesize / 2f + 0.25f, tile.drawy() + tile.block().size * tilesize / 2f);
Vector2 v = Core.input.mouseScreen(tile.drawx() - tile.block().size * tilesize / 2f + 0.25f, tile.drawy() + tile.block().size * tilesize / 2f);
table.pack();
table.setPosition(v.x, v.y, Align.topRight);
});
table.act(Gdx.graphics.getDeltaTime());
table.act(Core.graphics.getDeltaTime());
}
public void hide(){

View File

@@ -1,11 +1,24 @@
package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.math.Interpolation;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.IntSet;
import io.anuke.annotations.Annotations.Loc;
import io.anuke.annotations.Annotations.Remote;
import io.anuke.arc.Core;
import io.anuke.arc.collection.IntSet;
import io.anuke.arc.function.BooleanProvider;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.math.Interpolation;
import io.anuke.arc.math.Mathf;
import io.anuke.arc.math.geom.Vector2;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.actions.Actions;
import io.anuke.arc.scene.event.HandCursorListener;
import io.anuke.arc.scene.event.InputEvent;
import io.anuke.arc.scene.event.InputListener;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Align;
import io.anuke.arc.util.Strings;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.gen.Call;
@@ -13,18 +26,6 @@ import io.anuke.mindustry.input.InputHandler;
import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.ui.ItemImage;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.function.BooleanProvider;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.actions.Actions;
import io.anuke.ucore.scene.event.HandCursorListener;
import io.anuke.ucore.scene.event.InputEvent;
import io.anuke.ucore.scene.event.InputListener;
import io.anuke.ucore.scene.event.Touchable;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Strings;
import static io.anuke.mindustry.Vars.*;
@@ -50,7 +51,7 @@ public class BlockInventoryFragment extends Fragment{
player.inventory.addItem(item, removed);
for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){
Timers.run(j * 3f, () -> Call.transferItemEffect(item, tile.drawx(), tile.drawy(), player));
Time.run(j * 3f, () -> Call.transferItemEffect(item, tile.drawx(), tile.drawy(), player));
}
}
@@ -75,7 +76,7 @@ public class BlockInventoryFragment extends Fragment{
table.clear();
table.update(null);
}));
table.setTouchable(Touchable.disabled);
table.touchable(Touchable.disabled);
tile = null;
}
@@ -87,13 +88,13 @@ public class BlockInventoryFragment extends Fragment{
table.clearChildren();
table.background("inventory");
table.setTouchable(Touchable.enabled);
table.touchable(Touchable.enabled);
table.update(() -> {
if(state.is(State.menu) || tile == null || tile.entity == null || !tile.block().isAccessible() || tile.entity.items.total() == 0){
hide();
}else{
if(holding && lastItem != null){
holdTime += Timers.delta();
holdTime += Time.delta();
if(holdTime >= holdWithdraw){
int amount = Math.min(tile.entity.items.get(lastItem), player.inventory.itemCapacityUsed(lastItem));
@@ -144,7 +145,7 @@ public class BlockInventoryFragment extends Fragment{
image.addListener(new InputListener(){
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){
public boolean touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){
if(!canPick.get() || !tile.entity.items.has(item)) return false;
int amount = Math.min(1, player.inventory.itemCapacityUsed(item));
Call.requestItem(player, tile, item, amount);
@@ -155,7 +156,7 @@ public class BlockInventoryFragment extends Fragment{
}
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button){
public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){
holding = false;
lastItem = null;
}
@@ -190,7 +191,7 @@ public class BlockInventoryFragment extends Fragment{
}
private void updateTablePosition(){
Vector2 v = Graphics.screen(tile.drawx() + tile.block().size * tilesize / 2f, tile.drawy() + tile.block().size * tilesize / 2f);
Vector2 v = Core.input.mouseScreen(tile.drawx() + tile.block().size * tilesize / 2f, tile.drawy() + tile.block().size * tilesize / 2f);
table.pack();
table.setPosition(v.x, v.y, Align.topLeft);
}

View File

@@ -1,32 +1,32 @@
package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.GlyphLayout;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.Array;
import io.anuke.arc.Core;
import io.anuke.arc.collection.Array;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.BitmapFont;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.Fill;
import io.anuke.arc.graphics.g2d.GlyphLayout;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.math.Mathf;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.ui.Dialog;
import io.anuke.arc.scene.ui.Label;
import io.anuke.arc.scene.ui.Label.LabelStyle;
import io.anuke.arc.scene.ui.TextField;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.arc.util.Align;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.input.Binding;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.ui.Dialog;
import io.anuke.ucore.scene.ui.Label;
import io.anuke.ucore.scene.ui.Label.LabelStyle;
import io.anuke.ucore.scene.ui.TextField;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.util.Mathf;
import static io.anuke.arc.Core.input;
import static io.anuke.arc.Core.scene;
import static io.anuke.mindustry.Vars.*;
import static io.anuke.ucore.core.Core.scene;
import static io.anuke.ucore.core.Core.skin;
public class ChatFragment extends Table{
private final static int messagesShown = 10;
@@ -55,7 +55,7 @@ public class ChatFragment extends Table{
super();
setFillParent(true);
font = Core.skin.getFont("default-font");
font = scene.skin.getFont("default-font");
visible(() -> {
if(!Net.active() && messages.size > 0){
@@ -71,21 +71,21 @@ public class ChatFragment extends Table{
update(() -> {
if(Net.active() && Inputs.keyTap("chat")){
if(Net.active() && input.keyTap(Binding.chat)){
toggle();
}
if(chatOpen){
if(Inputs.keyTap("chat_history_prev") && historyPos < history.size - 1){
if(input.keyTap(Binding.chat_history_prev) && historyPos < history.size - 1){
if(historyPos == 0) history.set(0, chatfield.getText());
historyPos++;
updateChat();
}
if(Inputs.keyTap("chat_history_next") && historyPos > 0){
if(input.keyTap(Binding.chat_history_next) && historyPos > 0){
historyPos--;
updateChat();
}
scrollPos = (int) Mathf.clamp(scrollPos + Inputs.getAxis("chat_scroll"), 0, Math.max(0, messages.size - messagesShown));
scrollPos = (int) Mathf.clamp(scrollPos + input.axis(Binding.chat_scroll), 0, Math.max(0, messages.size - messagesShown));
}
});
@@ -108,10 +108,10 @@ public class ChatFragment extends Table{
fieldlabel.getStyle().font = font;
fieldlabel.setStyle(fieldlabel.getStyle());
chatfield = new TextField("", new TextField.TextFieldStyle(skin.get(TextField.TextFieldStyle.class)));
chatfield = new TextField("", new TextField.TextFieldStyle(scene.skin.get(TextField.TextFieldStyle.class)));
chatfield.setTextFieldFilter((field, c) -> field.getText().length() < Vars.maxTextLength);
chatfield.getStyle().background = null;
chatfield.getStyle().font = skin.getFont("default-font-chat");
chatfield.getStyle().font = scene.skin.getFont("default-font-chat");
chatfield.getStyle().fontColor = Color.WHITE;
chatfield.setStyle(chatfield.getStyle());
@@ -123,21 +123,21 @@ public class ChatFragment extends Table{
dialog.content().defaults().height(65f);
TextField to = dialog.content().addField("", t-> {}).pad(15).width(250f).get();
to.setMaxLength(maxTextLength);
to.keyDown(Keys.ENTER, () -> dialog.content().find("okb").fireClick());
to.keyDown(KeyCode.ENTER, () -> dialog.content().find("okb").fireClick());
dialog.content().addButton("$text.ok", () -> {
chatfield.clearText();
chatfield.appendText(to.getText());
chatfield.change();
dialog.hide();
Gdx.input.setOnscreenKeyboardVisible(false);
Core.input.setOnscreenKeyboardVisible(false);
toggle();
}).width(90f).name("okb");
dialog.show();
Timers.runTask(1f, () -> {
Time.runTask(1f, () -> {
to.setCursorPosition(to.getText().length());
Core.scene.setKeyboardFocus(to);
Gdx.input.setOnscreenKeyboardVisible(true);
Core.input.setOnscreenKeyboardVisible(true);
});
});
}
@@ -153,22 +153,22 @@ public class ChatFragment extends Table{
}
@Override
public void draw(Batch batch, float alpha){
public void draw(){
batch.setColor(shadowColor);
Draw.color(shadowColor);
if(chatOpen){
batch.draw(skin.getRegion("white"), offsetx, chatfield.getY(), chatfield.getWidth() + 15f, chatfield.getHeight() - 1);
Fill.crect(offsetx, chatfield.getY(), chatfield.getWidth() + 15f, chatfield.getHeight() - 1);
}
super.draw(batch, alpha);
super.draw();
float spacing = chatspace;
chatfield.setVisible(chatOpen);
fieldlabel.setVisible(chatOpen);
chatfield.visible(chatOpen);
fieldlabel.visible(chatOpen);
batch.setColor(shadowColor);
Draw.color(shadowColor);
float theight = offsety + spacing + getMarginBottom();
for(int i = scrollPos; i < messages.size && i < messagesShown + scrollPos && (i < fadetime || chatOpen); i++){
@@ -182,19 +182,19 @@ public class ChatFragment extends Table{
if(!chatOpen && fadetime - i < 1f && fadetime - i >= 0f){
font.getCache().setAlphas(fadetime - i);
batch.setColor(0, 0, 0, shadowColor.a * (fadetime - i));
Draw.color(0, 0, 0, shadowColor.a * (fadetime - i));
}
batch.draw(skin.getRegion("white"), offsetx, theight - layout.height - 2, textWidth + Unit.dp.scl(4f), layout.height + textspacing);
batch.setColor(shadowColor);
Fill.crect(offsetx, theight - layout.height - 2, textWidth + Unit.dp.scl(4f), layout.height + textspacing);
Draw.color(shadowColor);
font.getCache().draw(batch);
font.getCache().draw();
}
batch.setColor(Color.WHITE);
Draw.color();
if(fadetime > 0 && !chatOpen)
fadetime -= Timers.delta() / 180f;
fadetime -= Time.delta() / 180f;
}
private void sendMessage(){

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.ui.fragments;
import io.anuke.ucore.scene.Group;
import io.anuke.arc.scene.Group;
public abstract class Fragment{
public abstract void build(Group parent);

View File

@@ -1,38 +1,37 @@
package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Interpolation;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Scaling;
import io.anuke.arc.Core;
import io.anuke.arc.Events;
import io.anuke.arc.collection.Array;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.arc.math.Interpolation;
import io.anuke.arc.math.Mathf;
import io.anuke.arc.scene.Element;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.actions.Actions;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.ImageButton;
import io.anuke.arc.scene.ui.Label;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.scene.ui.layout.Stack;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.arc.util.Align;
import io.anuke.arc.util.Scaling;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.game.EventType.StateChangeEvent;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.input.Binding;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.Packets.AdminAction;
import io.anuke.mindustry.type.Recipe;
import io.anuke.mindustry.ui.IntFormat;
import io.anuke.mindustry.ui.Minimap;
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.core.*;
import io.anuke.ucore.graphics.Hue;
import io.anuke.ucore.scene.Element;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.actions.Actions;
import io.anuke.ucore.scene.event.Touchable;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.Label;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Stack;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.*;
@@ -75,10 +74,10 @@ public class HudFragment extends Fragment{
}
}).update(i -> {
if(Net.active()){
i.getStyle().imageUp = Core.skin.getDrawable("icon-players");
i.getStyle().imageUp = Core.scene.skin.getDrawable("icon-players");
}else{
i.setDisabled(Net.active());
i.getStyle().imageUp = Core.skin.getDrawable(state.is(State.paused) ? "icon-play" : "icon-pause");
i.getStyle().imageUp = Core.scene.skin.getDrawable(state.is(State.paused) ? "icon-play" : "icon-pause");
}
}).get();
@@ -94,9 +93,9 @@ public class HudFragment extends Fragment{
}
}).update(i -> {
if(Net.active() && mobile){
i.getStyle().imageUp = Core.skin.getDrawable("icon-chat");
i.getStyle().imageUp = Core.scene.skin.getDrawable("icon-chat");
}else{
i.getStyle().imageUp = Core.skin.getDrawable("icon-unlocks");
i.getStyle().imageUp = Core.scene.skin.getDrawable("icon-unlocks");
}
}).get();
@@ -109,7 +108,7 @@ public class HudFragment extends Fragment{
}
cont.update(() -> {
if(!Inputs.keyDown("gridMode") && Inputs.keyTap("toggle_menus") && !ui.chatfrag.chatOpen()){
if(!Core.input.keyDown(Binding.gridMode) && Core.input.keyTap(Binding.toggle_menus) && !ui.chatfrag.chatOpen()){
toggleMenus();
}
});
@@ -134,12 +133,12 @@ public class HudFragment extends Fragment{
IntFormat fps = new IntFormat("text.fps");
IntFormat tps = new IntFormat("text.tps");
IntFormat ping = new IntFormat("text.ping");
t.label(() -> fps.get(Gdx.graphics.getFramesPerSecond())).padRight(10);
t.label(() -> fps.get(Core.graphics.getFramesPerSecond())).padRight(10);
t.row();
if(Net.hasClient()){
t.label(() -> ping.get(Net.getPing())).visible(Net::client).colspan(2);
}
}).size(-1).visible(() -> Settings.getBool("fps")).update(t -> t.setTranslation(0, (!waves.isVisible() ? wavetable.getHeight() : Math.min(wavetable.getTranslation().y, wavetable.getHeight())))).get();
}).size(-1).visible(() -> Core.settings.getBool("fps")).update(t -> t.setTranslation(0, (!waves.isVisible() ? wavetable.getHeight() : Math.min(wavetable.getTranslation().y, wavetable.getHeight())))).get();
//make wave box appear below rest of menu
if(mobile){
@@ -148,8 +147,7 @@ public class HudFragment extends Fragment{
});
//minimap
parent.fill(t -> t.top().right().add(new Minimap())
.visible(() -> !state.is(State.menu) && Settings.getBool("minimap")));
//parent.fill(t -> t.top().right().add(new Minimap()).visible(() -> !state.is(State.menu) && Core.settings.getBool("minimap")));
//paused table
parent.fill(t -> {
@@ -193,12 +191,12 @@ public class HudFragment extends Fragment{
coreAttackOpacity = Mathf.lerpDelta(coreAttackOpacity, 0f, 0.1f);
}
coreAttackTime -= Timers.delta();
coreAttackTime -= Time.delta();
return coreAttackOpacity > 0;
});
t.table("button", top -> top.add("$text.coreattack").pad(2)
.update(label -> label.setColor(Hue.mix(Color.ORANGE, Color.SCARLET, Mathf.absin(Timers.time(), 2f, 1f)))));
.update(label -> label.getColor().set(Color.ORANGE).lerp(Color.SCARLET, Mathf.absin(Time.time(), 2f, 1f))));
});
//'saving' indicator
@@ -207,7 +205,7 @@ public class HudFragment extends Fragment{
t.add("$text.saveload");
});
blockfrag.build(Core.scene.getRoot());
blockfrag.build(Core.scene.root);
}
public void showToast(String text){
@@ -345,7 +343,7 @@ public class HudFragment extends Fragment{
Interpolation in = Interpolation.pow3Out;
if(flip != null){
flip.getStyle().imageUp = Core.skin.getDrawable(shown ? "icon-arrow-down" : "icon-arrow-up");
flip.getStyle().imageUp = Core.scene.skin.getDrawable(shown ? "icon-arrow-down" : "icon-arrow-up");
}
if(shown){
@@ -368,7 +366,7 @@ public class HudFragment extends Fragment{
IntFormat enemiesf = new IntFormat("text.wave.enemies");
table.clearChildren();
table.setTouchable(Touchable.enabled);
table.touchable(Touchable.enabled);
table.labelWrap(() ->
world.getSector() == null ?
@@ -378,9 +376,9 @@ public class HudFragment extends Fragment{
enemiesf.get(state.enemies())) :
wavef.get(state.wave) + "\n" +
(!state.mode.disableWaveTimer ?
Bundles.format("text.wave.waiting", (int)(state.wavetime/60)) :
Bundles.get("text.waiting"))) :
Bundles.format("text.mission.display", world.getSector().currentMission().displayString())).growX().pad(8f);
Core.bundle.format("text.wave.waiting", (int)(state.wavetime/60)) :
Core.bundle.get("text.waiting"))) :
Core.bundle.format("text.mission.display", world.getSector().currentMission().displayString())).growX().pad(8f);
table.clicked(() -> {
if(world.getSector() != null && world.getSector().currentMission().hasMessage()){
@@ -403,8 +401,8 @@ public class HudFragment extends Fragment{
boolean vis = state.mode.disableWaveTimer && ((Net.server() || players[0].isAdmin) || !Net.active());
boolean paused = state.is(State.paused) || !vis;
l.getStyle().imageUp = Core.skin.getDrawable(vis ? "icon-play" : "clear");
l.setTouchable(!paused ? Touchable.enabled : Touchable.disabled);
l.getStyle().imageUp = Core.scene.skin.getDrawable(vis ? "icon-play" : "clear");
l.touchable(!paused ? Touchable.enabled : Touchable.disabled);
}).visible(() -> state.mode.disableWaveTimer && ((Net.server() || players[0].isAdmin) || !Net.active()) && unitGroups[Team.red.ordinal()].size() == 0);
}
}

View File

@@ -1,11 +1,11 @@
package io.anuke.mindustry.ui.fragments;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.event.Touchable;
import io.anuke.ucore.scene.ui.Label;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.Label;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.scene.ui.layout.Table;
public class LoadingFragment extends Fragment{
private Table table;
@@ -14,8 +14,8 @@ public class LoadingFragment extends Fragment{
@Override
public void build(Group parent){
parent.fill("loadDim", t -> {
t.setVisible(false);
t.setTouchable(Touchable.enabled);
t.visible(false);
t.touchable(Touchable.enabled);
t.add().height(70f).row();
t.addImage("white").growX().height(3f).pad(4f).growX().get().setColor(Palette.accent);
@@ -31,8 +31,8 @@ public class LoadingFragment extends Fragment{
}
public void setButton(Runnable listener){
button.setVisible(true);
button.getListeners().removeIndex(button.getListeners().size - 1);
button.visible(true);
button.getListeners().removeAt(button.getListeners().size - 1);
button.clicked(listener);
}
@@ -42,12 +42,12 @@ public class LoadingFragment extends Fragment{
public void show(String text){
table.<Label>find("namelabel").setText(text);
table.setVisible(true);
table.visible(true);
table.toFront();
}
public void hide(){
table.setVisible(false);
button.setVisible(false);
table.visible(false);
button.visible(false);
}
}

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.Gdx;
import io.anuke.arc.Core;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.game.EventType.ResizeEvent;
@@ -8,10 +8,10 @@ import io.anuke.mindustry.game.Version;
import io.anuke.mindustry.ui.MenuButton;
import io.anuke.mindustry.ui.MobileButton;
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Strings;
import io.anuke.arc.Events;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Strings;
import static io.anuke.mindustry.Vars.*;
@@ -50,7 +50,7 @@ public class MenuFragment extends Fragment{
private void buildMobile(){
container.clear();
container.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
container.setSize(Core.graphics.getWidth(), Core.graphics.getHeight());
float size = 120f;
float isize = 14f * 4;
@@ -66,7 +66,7 @@ public class MenuFragment extends Fragment{
unlocks = new MobileButton("icon-unlocks", isize, "$text.unlocks", ui.unlocks::show),
donate = new MobileButton("icon-donate", isize, "$text.donate", Platform.instance::openDonations);
if(Gdx.graphics.getWidth() > Gdx.graphics.getHeight()){
if(Core.graphics.getWidth() > Core.graphics.getHeight()){
container.add(play);
container.add(join);
container.add(load);
@@ -134,7 +134,7 @@ public class MenuFragment extends Fragment{
out.row();
out.add(new MenuButton("icon-exit", "$text.quit", Gdx.app::exit)).width(bw).colspan(2);
out.add(new MenuButton("icon-exit", "$text.quit", Core.app::exit)).width(bw).colspan(2);
});
}

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.ui.fragments;
import io.anuke.mindustry.input.InputHandler;
import io.anuke.ucore.scene.Group;
import io.anuke.arc.scene.Group;
/**
* Fragment for displaying overlays such as block inventories. One is created for each input handler.
@@ -12,11 +12,8 @@ public class OverlayFragment extends Fragment{
public final BlockConsumeFragment consume;
private Group group = new Group();
private InputHandler input;
public OverlayFragment(InputHandler input){
this.input = input;
inv = new BlockInventoryFragment(input);
config = new BlockConfigFragment(input);
consume = new BlockConsumeFragment();

View File

@@ -1,13 +1,24 @@
package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.Interpolation;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array;
import io.anuke.arc.Core;
import io.anuke.arc.Events;
import io.anuke.arc.collection.Array;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.math.Interpolation;
import io.anuke.arc.math.geom.Vector2;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.actions.Actions;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.ButtonGroup;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.ImageButton;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.game.EventType.WorldLoadGraphicsEvent;
import io.anuke.mindustry.game.EventType.WorldLoadEvent;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.input.Binding;
import io.anuke.mindustry.input.InputHandler;
import io.anuke.mindustry.type.Category;
import io.anuke.mindustry.type.ItemStack;
@@ -16,18 +27,6 @@ import io.anuke.mindustry.ui.ImageStack;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.OreBlock;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.input.Input;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.actions.Actions;
import io.anuke.ucore.scene.event.Touchable;
import io.anuke.ucore.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Bundles;
import static io.anuke.mindustry.Vars.*;
@@ -42,20 +41,20 @@ public class PlacementFragment extends Fragment{
boolean lastGround;
//TODO make this configurable
final Input[] inputGrid = {
Input.NUM_1, Input.NUM_2, Input.NUM_3, Input.NUM_4,
Input.Q, Input.W, Input.E, Input.R,
Input.A, Input.S, Input.D, Input.F,
Input.Z, Input.X, Input.C, Input.V
final KeyCode[] inputGrid = {
KeyCode.NUM_1, KeyCode.NUM_2, KeyCode.NUM_3, KeyCode.NUM_4,
KeyCode.Q, KeyCode.W, KeyCode.E, KeyCode.R,
KeyCode.A, KeyCode.S, KeyCode.D, KeyCode.F,
KeyCode.Z, KeyCode.X, KeyCode.C, KeyCode.V
}, inputCatGrid = {
Input.NUM_1, Input.NUM_2,
Input.Q, Input.W,
Input.A, Input.S,
Input.Z, Input.X, Input.C, Input.V
KeyCode.NUM_1, KeyCode.NUM_2,
KeyCode.Q, KeyCode.W,
KeyCode.A, KeyCode.S,
KeyCode.Z, KeyCode.X, KeyCode.C, KeyCode.V
};
public PlacementFragment(){
Events.on(WorldLoadGraphicsEvent.class, event -> {
Events.on(WorldLoadEvent.class, event -> {
currentCategory = Category.turret;
Group group = toggler.getParent();
toggler.remove();
@@ -64,19 +63,19 @@ public class PlacementFragment extends Fragment{
}
boolean gridUpdate(InputHandler input){
if(!Inputs.keyDown("gridMode") || ui.chatfrag.chatOpen()) return false;
if(Inputs.keyDown("gridModeShift")){ //select category
if(!Core.input.keyDown(Binding.gridMode) || ui.chatfrag.chatOpen()) return false;
if(Core.input.keyDown(Binding.gridModeShift)){ //select category
int i = 0;
for(Input key : inputCatGrid){
if(Inputs.keyDown(key)){
for(KeyCode key : inputCatGrid){
if(Core.input.keyDown(key)){
input.recipe = Recipe.getByCategory(Category.values()[i]).first();
currentCategory = input.recipe.category;
}
i++;
}
return true;
}else if(Inputs.keyDown("select")){ //mouse eyedropper select
Tile tile = world.tileWorld(Graphics.mouseWorld().x, Graphics.mouseWorld().y);
}else if(Core.input.keyDown(Binding.select)){ //mouse eyedropper select
Tile tile = world.tileWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y);
if(tile != null){
tile = tile.target();
@@ -90,8 +89,8 @@ public class PlacementFragment extends Fragment{
}else{ //select block
int i = 0;
Array<Recipe> recipes = Recipe.getByCategory(currentCategory);
for(Input key : inputGrid){
if(Inputs.keyDown(key))
for(KeyCode key : inputGrid){
if(Core.input.keyDown(key))
input.recipe = (i < recipes.size && control.unlocks.isUnlocked(recipes.get(i))) ? recipes.get(i) : null;
i++;
}
@@ -177,7 +176,7 @@ public class PlacementFragment extends Fragment{
header.left();
header.add(new ImageStack(lastDisplay.getCompactIcon())).size(8 * 4);
header.labelWrap(() ->
!control.unlocks.isUnlocked(Recipe.getByResult(lastDisplay)) ? Bundles.get("text.blocks.unknown") : lastDisplay.formalName)
!control.unlocks.isUnlocked(Recipe.getByResult(lastDisplay)) ? Core.bundle.get("text.blocks.unknown") : lastDisplay.formalName)
.left().width(190f).padLeft(5);
header.add().growX();
if(control.unlocks.isUnlocked(Recipe.getByResult(lastDisplay))){
@@ -217,7 +216,7 @@ public class PlacementFragment extends Fragment{
});
}).colspan(3).fillX().visible(() -> getSelected() != null || tileDisplayBlock() != null).touchable(Touchable.enabled);
frame.row();
frame.addImage("blank").color(Palette.accent).colspan(3).height(3 * 2).growX();
frame.addImage("blank").color(Palette.accent).colspan(3).height(3).growX();
frame.row();
frame.table("pane-2", blocksSelect -> {
blocksSelect.margin(4).marginTop(0);
@@ -254,11 +253,11 @@ public class PlacementFragment extends Fragment{
Block getSelected(){
Block toDisplay = null;
Vector2 v = topTable.stageToLocalCoordinates(Graphics.mouse());
Vector2 v = topTable.stageToLocalCoordinates(Core.input.mouse());
//setup hovering tile
if(!ui.hasMouse() && topTable.hit(v.x, v.y, false) == null){
Tile tile = world.tileWorld(Graphics.mouseWorld().x, Graphics.mouseWorld().y);
if(!Core.scene.hasMouse() && topTable.hit(v.x, v.y, false) == null){
Tile tile = world.tileWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y);
if(tile != null){
hoverTile = tile.target();
}else{

View File

@@ -1,30 +1,28 @@
package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.Batch;
import io.anuke.arc.Core;
import io.anuke.arc.util.Interval;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.NetConnection;
import io.anuke.mindustry.net.Packets.AdminAction;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.event.Touchable;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Timer;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.Lines;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.Image;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.arc.util.Timer;
import static io.anuke.mindustry.Vars.*;
public class PlayerListFragment extends Fragment{
private boolean visible = false;
private Table content = new Table().marginRight(13f).marginLeft(13f);
private Timer timer = new Timer();
private Interval timer = new Interval();
@Override
public void build(Group parent){
@@ -39,14 +37,14 @@ public class PlayerListFragment extends Fragment{
if(visible && timer.get(20)){
rebuild();
content.pack();
content.act(Gdx.graphics.getDeltaTime());
content.act(Core.graphics.getDeltaTime());
//TODO hack
Core.scene.act(0f);
}
});
cont.table("button", pane -> {
pane.label(() -> Bundles.format(playerGroup.size() == 1 ? "text.players.single" : "text.players", playerGroup.size()));
pane.label(() -> Core.bundle.format(playerGroup.size() == 1 ? "text.players.single" : "text.players", playerGroup.size()));
pane.row();
pane.pane(content).grow().get().setScrollingDisabled(true, false);
pane.row();
@@ -83,8 +81,8 @@ public class PlayerListFragment extends Fragment{
Table table = new Table(){
@Override
public void draw(Batch batch, float parentAlpha){
super.draw(batch, parentAlpha);
public void draw(){
super.draw();
Draw.color(Palette.accent);
Draw.alpha(parentAlpha);
Lines.stroke(Unit.dp.scl(3f));