From 60216b45f9fe95766b9d3a7297626d66cd884b64 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 22 Dec 2017 18:10:34 -0500 Subject: [PATCH] UI refactoring, new save dialog --- android/AndroidManifest.xml | 4 +- build.gradle | 11 ++- core/src/Mindustry.gwt.xml | 2 +- core/src/io/anuke/mindustry/core/Control.java | 3 +- .../src/io/anuke/mindustry/core/Renderer.java | 16 +++- .../src/io/anuke/mindustry/core/Tutorial.java | 4 +- core/src/io/anuke/mindustry/core/UI.java | 41 ++++------ .../mindustry/mapeditor/MapEditorDialog.java | 5 +- .../mapeditor/MapGenerateDialog.java | 2 +- .../mindustry/mapeditor/MapLoadDialog.java | 2 +- .../io/anuke/mindustry/mapeditor/MapView.java | 2 +- .../io/anuke/mindustry/ui/FileChooser.java | 4 +- .../io/anuke/mindustry/ui/LevelDialog.java | 2 +- .../src/io/anuke/mindustry/ui/LoadDialog.java | 4 +- .../mindustry/ui/MindustryKeybindDialog.java | 4 +- .../mindustry/ui/MindustrySettingsDialog.java | 81 ++++++++++++++++--- .../src/io/anuke/mindustry/ui/SaveDialog.java | 3 +- .../io/anuke/mindustry/ui/UpgradeDialog.java | 6 +- .../ui/fragments/BlocksFragment.java | 8 +- .../mindustry/ui/fragments/HudFragment.java | 2 +- .../mindustry/ui/fragments/MenuFragment.java | 2 +- .../ui/fragments/WeaponFragment.java | 2 +- .../types/defense/ShieldedWallBlock.java | 5 +- .../blocks/types/production/Generator.java | 3 + html/build.gradle | 2 + .../io/anuke/mindustry/GdxDefinition.gwt.xml | 1 + 26 files changed, 144 insertions(+), 77 deletions(-) diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 862e2c41ba..45329bae8d 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="44" + android:versionName="3.2b3" > diff --git a/build.gradle b/build.gradle index 0e154f3b2d..f9dea9ae64 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ allprojects { appName = "Mindustry" gdxVersion = '1.9.8' aiVersion = '1.8.1' - uCoreVersion = '4434f35'; + uCoreVersion = 'd239170bc0'; } repositories { @@ -36,11 +36,11 @@ allprojects { project(":desktop") { apply plugin: "java" - dependencies { compile project(":core") compile "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion" compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" + compile "com.badlogicgames.gdx:gdx-controllers-lwjgl3:$gdxVersion" } } @@ -51,11 +51,14 @@ project(":html") { dependencies { compile project(":core") - compile fileTree(dir: '../core/lib', include: '*.jar') compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion" compile "com.badlogicgames.gdx:gdx:$gdxVersion:sources" compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources" compile "com.badlogicgames.gdx:gdx-ai:$aiVersion:sources" + + compile "com.badlogicgames.gdx:gdx-controllers:$gdxVersion:sources" + compile "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion" + compile "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion:sources" } } @@ -73,6 +76,7 @@ project(":android") { natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64" compile "com.badlogicgames.gdx:gdx-ai:$aiVersion" + compile "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion" } } @@ -90,6 +94,7 @@ project(":core") { } compile "com.badlogicgames.gdx:gdx:$gdxVersion" compile "com.badlogicgames.gdx:gdx-ai:$aiVersion" + compile "com.badlogicgames.gdx:gdx-controllers:$gdxVersion" } } diff --git a/core/src/Mindustry.gwt.xml b/core/src/Mindustry.gwt.xml index 8dc411d673..bb7603f2f8 100644 --- a/core/src/Mindustry.gwt.xml +++ b/core/src/Mindustry.gwt.xml @@ -2,6 +2,6 @@ - + \ No newline at end of file diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index a0f152891b..4b26bcd418 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -7,6 +7,7 @@ import java.util.Arrays; import com.badlogic.gdx.Application.ApplicationType; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; +import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.reflect.ClassReflection; @@ -423,7 +424,7 @@ public class Control extends Module{ @Override public void init(){ - Musics.shuffleAll(); + Timers.run(1f, Musics::shuffleAll); Entities.initPhysics(); diff --git a/core/src/io/anuke/mindustry/core/Renderer.java b/core/src/io/anuke/mindustry/core/Renderer.java index 440b86c3df..2873ce4ba2 100644 --- a/core/src/io/anuke/mindustry/core/Renderer.java +++ b/core/src/io/anuke/mindustry/core/Renderer.java @@ -10,6 +10,7 @@ import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.glutils.FrameBuffer; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.FloatArray; import io.anuke.mindustry.Vars; @@ -27,6 +28,7 @@ import io.anuke.ucore.core.*; import io.anuke.ucore.entities.DestructibleEntity; import io.anuke.ucore.entities.EffectEntity; import io.anuke.ucore.entities.Entities; +import io.anuke.ucore.function.Callable; import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.graphics.Surface; import io.anuke.ucore.modules.RendererModule; @@ -43,6 +45,7 @@ public class Renderer extends RendererModule{ private int targetscale = baseCameraScale; private FloatArray shieldHits = new FloatArray(); + private Array shieldDraws = new Array<>(); private BlockRenderer blocks = new BlockRenderer(); public Renderer() { @@ -251,7 +254,6 @@ public class Renderer extends RendererModule{ void drawEnemyMarkers(){ Graphics.surface(indicatorSurface); Draw.color(Color.RED); - //Draw.alpha(0.6f); for(Enemy enemy : control.enemyGroup.all()){ if(Tmp.r1.setSize(camera.viewportWidth, camera.viewportHeight).setCenter(camera.position.x, camera.position.y).overlaps(enemy.hitbox.getRect(enemy.x, enemy.y))){ @@ -269,11 +271,14 @@ public class Renderer extends RendererModule{ } void drawShield(){ - if(control.shieldGroup.amount() == 0) return; + if(control.shieldGroup.amount() == 0 && shieldDraws.size == 0) return; Graphics.surface(Vars.renderer.shieldSurface, false); Draw.color(Color.ROYAL); Entities.draw(control.shieldGroup); + for(Callable c : shieldDraws){ + c.run(); + } Draw.reset(); Graphics.surface(); @@ -315,6 +320,7 @@ public class Renderer extends RendererModule{ Graphics.beginCam(); Draw.color(); + shieldDraws.clear(); } public BlockRenderer getBlocks() { @@ -325,6 +331,10 @@ public class Renderer extends RendererModule{ shieldHits.addAll(x, y, 0f); } + public void addShield(Callable call){ + shieldDraws.add(call); + } + void drawOverlay(){ //draw tutorial placement point @@ -394,7 +404,7 @@ public class Renderer extends RendererModule{ } } - if(!Vars.debug || Vars.showUI){ + if((!Vars.debug || Vars.showUI) && Settings.getBool("healthbars")){ //draw entity health bars for(Enemy entity : control.enemyGroup.all()){ diff --git a/core/src/io/anuke/mindustry/core/Tutorial.java b/core/src/io/anuke/mindustry/core/Tutorial.java index 01dbdbaeeb..314df42489 100644 --- a/core/src/io/anuke/mindustry/core/Tutorial.java +++ b/core/src/io/anuke/mindustry/core/Tutorial.java @@ -61,8 +61,8 @@ public class Tutorial{ }}.end(); - prev.pad(16); - next.pad(16); + prev.margin(16); + next.margin(16); prev.setDisabled(()->!canMove(false) || !stage.canBack); next.setDisabled(()->!stage.canForward); diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index 35324a4c96..2e0784104b 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -167,7 +167,7 @@ public class UI extends SceneModule{ settingserror = new Dialog("Warning", "dialog"); settingserror.content().add("[crimson]Failed to access local storage.\nSettings will not be saved."); - settingserror.content().pad(10f); + settingserror.content().margin(10f); settingserror.getButtonTable().addButton("OK", ()->{ settingserror.hide(); }).size(80f, 55f).pad(4); @@ -181,7 +181,7 @@ public class UI extends SceneModule{ gameerror.buttons().addButton("OK", gameerror::hide).size(200f, 50); discord = new Dialog("Discord", "dialog"); - discord.content().pad(12f); + discord.content().margin(12f); discord.content().add("Join the mindustry discord!\n[orange]" + Vars.discordURL); discord.buttons().defaults().size(200f, 50); discord.buttons().addButton("Open link", () -> Mindustry.platforms.openLink(Vars.discordURL)); @@ -197,20 +197,20 @@ public class UI extends SceneModule{ prefs.setStyle(Core.skin.get("dialog", WindowStyle.class)); menu = new MenuDialog(); + + prefs.sound.volumePrefs(); - prefs.sliderPref("difficulty", "Difficulty", 1, 0, 2, i -> i == 0 ? "Easy" : i == 1 ? "Normal" : "Hard"); - - prefs.screenshakePref(); - prefs.volumePrefs(); - - prefs.checkPref("fps", "Show FPS", false); - prefs.checkPref("vsync", "VSync", true, b -> Gdx.graphics.setVSync(b)); - //prefs.checkPref("noshadows", "Disable shadows", false); - //prefs.checkPref("drawblocks", "Draw Blocks", true); - prefs.checkPref("smoothcam", "Smooth Camera", true); - prefs.checkPref("indicators", "Enemy Indicators", true); - prefs.checkPref("effects", "Display Effects", true); - prefs.checkPref("pixelate", "Pixelate Screen", true, b->{ + prefs.game.sliderPref("difficulty", "Difficulty", 1, 0, 2, i -> i == 0 ? "Easy" : i == 1 ? "Normal" : "Hard"); + prefs.game.screenshakePref(); + prefs.game.checkPref("smoothcam", "Smooth Camera", true); + prefs.game.checkPref("indicators", "Enemy Indicators", true); + prefs.game.checkPref("effects", "Display Effects", true); + + prefs.graphics.checkPref("fps", "Show FPS", false); + prefs.graphics.checkPref("vsync", "VSync", true, b -> Gdx.graphics.setVSync(b)); + prefs.graphics.checkPref("lasers", "Show Power Lasers", true); + prefs.graphics.checkPref("healthbars", "Show Entity Health bars", true); + prefs.graphics.checkPref("pixelate", "Pixelate Screen", true, b->{ if(b){ Vars.renderer.pixelSurface.setScale(Core.cameraScale); Vars.renderer.shadowSurface.setScale(Core.cameraScale); @@ -241,13 +241,6 @@ public class UI extends SceneModule{ menu.hide(); } }); - - if(!android){ - prefs.content().row(); - prefs.content().addButton("Controls", () -> { - keys.show(scene); - }).size(300f, 50f).pad(5f); - } keys = new MindustryKeybindDialog(); @@ -358,7 +351,7 @@ public class UI extends SceneModule{ public void showError(String text){ new Dialog("[crimson]An error has occured", "dialog"){{ - content().pad(15); + content().margin(15); content().add(text); getButtonTable().addButton("OK", this::hide).size(90, 50).pad(4); }}.show(); @@ -366,7 +359,7 @@ public class UI extends SceneModule{ public void showErrorClose(String text){ new Dialog("[crimson]A critical error has occured", "dialog"){{ - content().pad(15); + content().margin(15); content().add(text); getButtonTable().addButton("Exit", Gdx.app::exit).size(90, 50).pad(4); }}.show(); diff --git a/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java b/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java index af218c58f0..5fc4680ff8 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java @@ -2,7 +2,6 @@ package io.anuke.mindustry.mapeditor; import java.util.Arrays; -import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Pixmap; @@ -126,7 +125,7 @@ public class MapEditorDialog extends Dialog{ setFillParent(true); clearChildren(); - pad(0); + margin(0); build.begin(this); build(); build.end(); @@ -224,7 +223,7 @@ public class MapEditorDialog extends Dialog{ new table(){{ Table tools = new Table("button"); tools.top(); - tools.padTop(0).padBottom(6); + tools.marginTop(0).marginBottom(6); ButtonGroup group = new ButtonGroup<>(); int i = 1; diff --git a/core/src/io/anuke/mindustry/mapeditor/MapGenerateDialog.java b/core/src/io/anuke/mindustry/mapeditor/MapGenerateDialog.java index e6c5c05b92..7644b3d858 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapGenerateDialog.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapGenerateDialog.java @@ -47,7 +47,7 @@ public class MapGenerateDialog extends FloatingDialog{ image.setScaling(Scaling.fit); Table preft = new Table(); preft.left(); - preft.pad(4f).padRight(25f); + preft.margin(4f).marginRight(25f); for(GenPref pref : editor.getFilter().getPrefs().values()){ CheckBox box = new CheckBox(pref.name); diff --git a/core/src/io/anuke/mindustry/mapeditor/MapLoadDialog.java b/core/src/io/anuke/mindustry/mapeditor/MapLoadDialog.java index f59ccba48f..41bfb92ec1 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapLoadDialog.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapLoadDialog.java @@ -45,7 +45,7 @@ public class MapLoadDialog extends FloatingDialog{ Table table = new Table(); table.defaults().size(200f, 90f).pad(4f); - table.pad(10f); + table.margin(10f); ScrollPane pane = new ScrollPane(table, "horizontal"); pane.setFadeScrollBars(false); diff --git a/core/src/io/anuke/mindustry/mapeditor/MapView.java b/core/src/io/anuke/mindustry/mapeditor/MapView.java index 1fe2cfd6ac..36381f223e 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapView.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapView.java @@ -292,7 +292,7 @@ public class MapView extends Element implements GestureListener{ public boolean zoom(float initialDistance, float distance){ if(!active()) return false; float nzoom = distance - initialDistance; - zoom += nzoom / 5000f / Unit.dp.scl(1f) * zoom; + zoom += nzoom / 10000f / Unit.dp.scl(1f) * zoom; clampZoom(); return false; } diff --git a/core/src/io/anuke/mindustry/ui/FileChooser.java b/core/src/io/anuke/mindustry/ui/FileChooser.java index 8caecc0631..286637b07f 100644 --- a/core/src/io/anuke/mindustry/ui/FileChooser.java +++ b/core/src/io/anuke/mindustry/ui/FileChooser.java @@ -51,7 +51,7 @@ public class FileChooser extends FloatingDialog{ private void setupWidgets(){ getCell(content()).maxWidth(Gdx.graphics.getWidth()/Unit.dp.scl(2f)); - content().pad(-10); + content().margin(-10); Table content = new Table(); @@ -139,7 +139,7 @@ public class FileChooser extends FloatingDialog{ content.add(icontable).expandX().fillX(); content.row(); - //content.add(navigation).colspan(3).left().padBottom(10f).expandX().fillX().height(40f); + //content.add(navigation).colspan(3).left().marginBottom(10f).expandX().fillX().height(40f); //content.row(); content.center().add(pane).width(Gdx.graphics.getWidth()/Unit.dp.scl(2)).colspan(3).grow(); diff --git a/core/src/io/anuke/mindustry/ui/LevelDialog.java b/core/src/io/anuke/mindustry/ui/LevelDialog.java index baa39b180a..6fbbdf34bb 100644 --- a/core/src/io/anuke/mindustry/ui/LevelDialog.java +++ b/core/src/io/anuke/mindustry/ui/LevelDialog.java @@ -117,7 +117,7 @@ public class LevelDialog extends FloatingDialog{ maps.add(stack).width(170).top().pad(4f); - maps.padRight(26); + maps.marginRight(26); i ++; } diff --git a/core/src/io/anuke/mindustry/ui/LoadDialog.java b/core/src/io/anuke/mindustry/ui/LoadDialog.java index 06aa4d6c26..c90e5070ef 100644 --- a/core/src/io/anuke/mindustry/ui/LoadDialog.java +++ b/core/src/io/anuke/mindustry/ui/LoadDialog.java @@ -42,12 +42,12 @@ public class LoadDialog extends FloatingDialog{ pane = new ScrollPane(slots); pane.setFadeScrollBars(false); - slots.padRight(24); + slots.marginRight(24); for(int i = 0; i < Vars.saveSlots; i++){ TextButton button = new TextButton("[accent]Slot " + (i + 1)); - button.pad(12); + button.margin(12); button.getLabelCell().top().left().growX(); button.row(); diff --git a/core/src/io/anuke/mindustry/ui/MindustryKeybindDialog.java b/core/src/io/anuke/mindustry/ui/MindustryKeybindDialog.java index 273b967613..3e25ec66e5 100644 --- a/core/src/io/anuke/mindustry/ui/MindustryKeybindDialog.java +++ b/core/src/io/anuke/mindustry/ui/MindustryKeybindDialog.java @@ -21,9 +21,7 @@ public class MindustryKeybindDialog extends KeybindDialog{ @Override public void addCloseButton(){ - buttons().addImageTextButton("Back", "icon-arrow-left", 30f, ()->{ - hide(); - }).size(230f, 64f); + buttons().addImageTextButton("Back", "icon-arrow-left", 30f, this::hide).size(230f, 64f); keyDown(key->{ if(key == Keys.ESCAPE || key == Keys.BACK) diff --git a/core/src/io/anuke/mindustry/ui/MindustrySettingsDialog.java b/core/src/io/anuke/mindustry/ui/MindustrySettingsDialog.java index cf941b2467..372ab0748f 100644 --- a/core/src/io/anuke/mindustry/ui/MindustrySettingsDialog.java +++ b/core/src/io/anuke/mindustry/ui/MindustrySettingsDialog.java @@ -4,11 +4,23 @@ import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.graphics.Colors; import com.badlogic.gdx.utils.Align; -import io.anuke.ucore.scene.ui.Image; -import io.anuke.ucore.scene.ui.ScrollPane; -import io.anuke.ucore.scene.ui.SettingsDialog; +import com.badlogic.gdx.utils.Array; +import io.anuke.mindustry.Vars; +import io.anuke.ucore.UCore; +import io.anuke.ucore.scene.builders.table; +import io.anuke.ucore.scene.ui.*; +import io.anuke.ucore.scene.ui.layout.Stack; +import io.anuke.ucore.scene.ui.layout.Table; +import io.anuke.ucore.util.Mathf; public class MindustrySettingsDialog extends SettingsDialog{ + public SettingsTable graphics; + public SettingsTable game; + public SettingsTable sound; + + private Table prefs; + private Table menu; + private boolean built = false; public MindustrySettingsDialog(){ setFillParent(true); @@ -16,24 +28,71 @@ public class MindustrySettingsDialog extends SettingsDialog{ getTitleTable().row(); getTitleTable().add(new Image("white")) .growX().height(3f).pad(4f).get().setColor(Colors.get("accent")); - + + content().clearChildren(); content().remove(); buttons().remove(); - - ScrollPane pane = new ScrollPane(content(), "clear"); + + menu = new Table(); + + game = new SettingsTable(); + graphics = new SettingsTable(); + sound = new SettingsTable(); + + prefs = new Table(); + prefs.top(); + prefs.margin(14f); + + menu.defaults().size(300f, 60f).pad(3f); + menu.addButton("Game", () -> visible(0)); + menu.row(); + menu.addButton("Graphics", () -> visible(1)); + menu.row(); + menu.addButton("Sound", () -> visible(2)); + + if(!Vars.android) { + menu.row(); + menu.addButton("Controls", () -> Vars.ui.showControls()); + } + + prefs.clearChildren(); + prefs.add(menu); + + ScrollPane pane = new ScrollPane(prefs, "clear"); pane.setFadeScrollBars(false); - + row(); - add(pane).expand().fill(); + add(pane).grow().top(); row(); add(buttons()).fillX(); + + hidden(this::back); + + shown(() -> { + if(built) return; + built = true; + + Mathf.each(table -> { + table.row(); + table.addImageTextButton("Back", "icon-arrow-left", 10*3, this::back).size(240f, 60f).colspan(2).padTop(15f); + }, game, graphics, sound); + }); + } + + private void back(){ + prefs.clearChildren(); + prefs.add(menu); + } + + private void visible(int index){ + prefs.clearChildren(); + Table table = Mathf.select(index, game, graphics, sound); + prefs.add(table); } @Override public void addCloseButton(){ - buttons().addImageTextButton("Back", "icon-arrow-left", 30f, ()->{ - hide(); - }).size(230f, 64f); + buttons().addImageTextButton("Menu", "icon-arrow-left", 30f, this::hide).size(230f, 64f); keyDown(key->{ if(key == Keys.ESCAPE || key == Keys.BACK) diff --git a/core/src/io/anuke/mindustry/ui/SaveDialog.java b/core/src/io/anuke/mindustry/ui/SaveDialog.java index 99872b80ec..486d367bb1 100644 --- a/core/src/io/anuke/mindustry/ui/SaveDialog.java +++ b/core/src/io/anuke/mindustry/ui/SaveDialog.java @@ -1,6 +1,5 @@ package io.anuke.mindustry.ui; -import com.badlogic.gdx.Gdx; import com.badlogic.gdx.utils.reflect.ClassReflection; import io.anuke.mindustry.Vars; @@ -24,7 +23,7 @@ public class SaveDialog extends LoadDialog{ save(slot); }){ { - content().pad(16); + content().margin(16); for(Cell cell : getButtonTable().getCells()) cell.size(110, 45).pad(4); } diff --git a/core/src/io/anuke/mindustry/ui/UpgradeDialog.java b/core/src/io/anuke/mindustry/ui/UpgradeDialog.java index 954b172932..fdaac77827 100644 --- a/core/src/io/anuke/mindustry/ui/UpgradeDialog.java +++ b/core/src/io/anuke/mindustry/ui/UpgradeDialog.java @@ -38,7 +38,7 @@ public class UpgradeDialog extends FloatingDialog{ }); Table weptab = new Table(); - weptab.pad(20); + weptab.margin(20); int i = 0; for(Weapon weapon : Weapon.values()){ @@ -48,7 +48,7 @@ public class UpgradeDialog extends FloatingDialog{ button.add(img).size(8*5); button.getCells().reverse(); button.row(); - button.pad(14); + button.margin(14); button.getLabelCell().left(); button.pack(); @@ -109,7 +109,7 @@ public class UpgradeDialog extends FloatingDialog{ if(control.hasWeapon(weapon)){ tiptable.add("[LIME]Purchased!").padTop(6).left(); } - tiptable.pad(14f); + tiptable.margin(14f); }; run.listen(); diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java index 351d4d5067..adacd97a40 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java @@ -76,7 +76,7 @@ public class BlocksFragment implements Fragment{ row(); } - table.pad(4); + table.margin(4); table.top().left(); int i = 0; @@ -124,8 +124,8 @@ public class BlocksFragment implements Fragment{ add(stack).colspan(Section.values().length); margin(10f); - get().padLeft(0f); - get().padRight(0f); + get().marginLeft(0f); + get().marginRight(0f); end(); }}.right().bottom().uniformX(); @@ -142,7 +142,7 @@ public class BlocksFragment implements Fragment{ desctable.defaults().left(); desctable.left(); - desctable.pad(12); + desctable.margin(12); Table header = new Table(); diff --git a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java index 53f77e43a1..b07977f2ad 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java @@ -173,7 +173,7 @@ public class HudFragment implements Fragment{ .minWidth(140).left(); margin(12f); - get().padLeft(6); + get().marginLeft(6); }}.left().end(); playButton(uheight); diff --git a/core/src/io/anuke/mindustry/ui/fragments/MenuFragment.java b/core/src/io/anuke/mindustry/ui/fragments/MenuFragment.java index 57c27f3ea4..f1633310ee 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/MenuFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/MenuFragment.java @@ -45,7 +45,7 @@ public class MenuFragment implements Fragment{ if(!gwt){ add(new MenuButton("text-exit", group, Gdx.app::exit)); } - get().pad(16); + get().margin(16); }}.end(); visible(()->GameState.is(State.menu)); diff --git a/core/src/io/anuke/mindustry/ui/fragments/WeaponFragment.java b/core/src/io/anuke/mindustry/ui/fragments/WeaponFragment.java index cf8f881991..a65bfbaa93 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/WeaponFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/WeaponFragment.java @@ -57,7 +57,7 @@ public class WeaponFragment implements Fragment{ tiptable.row(); tiptable.row(); tiptable.add("[GRAY]" + description).left(); - tiptable.pad(14f); + tiptable.margin(14f); Tooltip tip = new Tooltip(tiptable); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldedWallBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldedWallBlock.java index 034f2aaa84..48492fb719 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldedWallBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldedWallBlock.java @@ -48,10 +48,7 @@ public class ShieldedWallBlock extends PowerBlock{ ShieldedWallEntity entity = tile.entity(); if(entity.power > powerToDamage){ - Graphics.surface(Vars.renderer.shieldSurface, false); - Draw.color(Color.ROYAL); - Draw.rect("blank", tile.worldx(), tile.worldy(), Vars.tilesize, Vars.tilesize); - Graphics.surface(); + Vars.renderer.addShield(() -> Draw.rect("blank", tile.worldx(), tile.worldy(), Vars.tilesize, Vars.tilesize)); } Draw.color(hitColor); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Generator.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Generator.java index bba867ad4b..20a3b742db 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Generator.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Generator.java @@ -15,6 +15,7 @@ import io.anuke.mindustry.world.blocks.types.PowerAcceptor; import io.anuke.mindustry.world.blocks.types.PowerBlock; import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Effects; +import io.anuke.ucore.core.Settings; import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.util.*; @@ -127,6 +128,8 @@ public class Generator extends PowerBlock{ @Override public void drawLayer(Tile tile){ + if(!Settings.getBool("lasers")) return; + PowerEntity entity = tile.entity(); for(int i = 0; i < laserDirections; i++){ diff --git a/html/build.gradle b/html/build.gradle index 3a32143f0a..d84ca56e4c 100644 --- a/html/build.gradle +++ b/html/build.gradle @@ -56,6 +56,8 @@ draftWar { task addSource{ doLast{ sourceSets.main.compileClasspath += files(project(':core').sourceSets.main.allJava.srcDirs) + //this WILL fail if uCore is not a module + sourceSets.main.compileClasspath += files(project(':uCore').sourceSets.main.allJava.srcDirs) } } diff --git a/html/src/io/anuke/mindustry/GdxDefinition.gwt.xml b/html/src/io/anuke/mindustry/GdxDefinition.gwt.xml index 9d3c59ebcc..f29f12e49e 100644 --- a/html/src/io/anuke/mindustry/GdxDefinition.gwt.xml +++ b/html/src/io/anuke/mindustry/GdxDefinition.gwt.xml @@ -3,6 +3,7 @@ +