Merge
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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{
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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{
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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{
|
||||
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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{
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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.*;
|
||||
|
||||
|
||||
@@ -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.*;
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
|
||||
@@ -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{
|
||||
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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(){
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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(){
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user