From 53b812dde48376f431ac3067e7b1dfb3dbf07504 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 27 Jul 2017 13:27:11 -0400 Subject: [PATCH] Added more zoom levels --- android/AndroidManifest.xml | 4 +- android/assets/ui/uiskin.json | 7 ++-- build.gradle | 2 +- core/build.gradle | 9 ++--- core/src/io/anuke/mindustry/Control.java | 8 ++++ core/src/io/anuke/mindustry/UI.java | 38 +++++++++++-------- core/src/io/anuke/mindustry/World.java | 1 + .../io/anuke/mindustry/ui/LevelDialog.java | 12 +++++- desktop/build.gradle | 2 +- 9 files changed, 54 insertions(+), 29 deletions(-) diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index bba27b9e8f..724ebd0c63 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="3" + android:versionName="1.02" > diff --git a/android/assets/ui/uiskin.json b/android/assets/ui/uiskin.json index 0308800aa4..5d62cc089b 100644 --- a/android/assets/ui/uiskin.json +++ b/android/assets/ui/uiskin.json @@ -1,9 +1,9 @@ { com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { - file: prose.fnt, - markupEnabled: true, - scale: 0.5 + file: prose.fnt, + markupEnabled: true, + scale: 0.5 } }, com.badlogic.gdx.graphics.Color: { @@ -21,6 +21,7 @@ com.badlogic.gdx.graphics.Color: { }, io.anuke.ucore.scene.Skin$TintedDrawable: { dialogDim: {name: white, color: {r: 0, g: 0, b: 0, a: 0.45} } + loadDim: {name: white, color: {r: 0, g: 0, b: 0, a: 0.7} } }, io.anuke.ucore.scene.ui.Button$ButtonStyle: { default: {down: button-down, up: button }, diff --git a/build.gradle b/build.gradle index 00148f35de..75edefa436 100644 --- a/build.gradle +++ b/build.gradle @@ -78,7 +78,7 @@ project(":core") { dependencies { //compile fileTree(dir: '../core/lib', include: '*.jar') - //compile 'com.github.Anuken:ucore:b58e4bd' + compile 'com.github.Anuken:ucore:88b945b' compile "com.badlogicgames.gdx:gdx:$gdxVersion" compile "com.badlogicgames.gdx:gdx-ai:1.8.1" } diff --git a/core/build.gradle b/core/build.gradle index 13c049ad61..6740168669 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,11 +1,10 @@ apply plugin: "java" - sourceCompatibility = 1.8 [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' - -sourceSets.main.java.srcDirs = [ "src/" ] - - +sourceSets.main.java.srcDirs = ["src/"] eclipse.project { name = appName + "-core" } +dependencies { + compile files('lib/ucore.jar') +} \ No newline at end of file diff --git a/core/src/io/anuke/mindustry/Control.java b/core/src/io/anuke/mindustry/Control.java index 180833a7a9..13071f5051 100644 --- a/core/src/io/anuke/mindustry/Control.java +++ b/core/src/io/anuke/mindustry/Control.java @@ -85,6 +85,14 @@ public class Control extends RendererModule{ player = new Player(); } + public void setCameraScale(int scale){ + this.cameraScale = scale; + resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); + setCamera(player.x, player.y); + Draw.getSurface("pixel").setScale(cameraScale); + Draw.getSurface("shadow").setScale(cameraScale); + } + public void reset(){ weapons.clear(); Renderer.clearTiles(); diff --git a/core/src/io/anuke/mindustry/UI.java b/core/src/io/anuke/mindustry/UI.java index 4e67aa9b67..5b0712fb19 100644 --- a/core/src/io/anuke/mindustry/UI.java +++ b/core/src/io/anuke/mindustry/UI.java @@ -35,14 +35,13 @@ import io.anuke.ucore.scene.ui.layout.*; import io.anuke.ucore.util.Timers; public class UI extends SceneModule{ - Table itemtable, weapontable, tools; + Table itemtable, weapontable, tools, loadingtable; SettingsDialog prefs; KeybindDialog keys; Dialog about, menu, restart, tutorial, levels, upgrades; Tooltip tooltip; VisibilityProvider play = () -> !GameState.is(State.menu); - VisibilityProvider nplay = () -> GameState.is(State.menu); public UI() { @@ -368,23 +367,17 @@ public class UI extends SceneModule{ aleft(); abottom(); int base = baseCameraScale; + int min = base-zoomScale*2; + int max = base+zoomScale; new button("+", ()->{ - if(control.cameraScale < base){ - control.cameraScale = base; - control.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); - control.setCamera(player.x, player.y); - Draw.getSurface("pixel").setScale(control.cameraScale); - Draw.getSurface("shadow").setScale(control.cameraScale); + if(control.cameraScale < max){ + control.setCameraScale(control.cameraScale+zoomScale); } }).size(Unit.dp.inPixels(40)); new button("-", ()->{ - if(control.cameraScale > base-zoomScale){ - control.cameraScale = base-zoomScale; - control.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); - control.setCamera(player.x, player.y); - Draw.getSurface("pixel").setScale(control.cameraScale); - Draw.getSurface("shadow").setScale(control.cameraScale); + if(control.cameraScale > min){ + control.setCameraScale(control.cameraScale-zoomScale); } }).size(Unit.dp.inPixels(40)); @@ -453,6 +446,14 @@ public class UI extends SceneModule{ }}; }}.end(); + loadingtable = new table("loadDim"){{ + new table("button"){{ + new label("[yellow]Loading...").scale(1).pad(10); + }}.end(); + }}.end().get(); + + loadingtable.setVisible(false); + tools = new Table(); tools.addIButton("icon-cancel", Unit.dp.inPixels(42), ()->{ player.recipe = null; @@ -466,7 +467,6 @@ public class UI extends SceneModule{ AndroidInput.place(); }); - scene.add(tools); tools.setVisible(()->{ @@ -515,6 +515,14 @@ public class UI extends SceneModule{ } } + public void showLoading(){ + loadingtable.setVisible(true); + } + + public void hideLoading(){ + loadingtable.setVisible(false); + } + public void showPrefs(){ prefs.show(); } diff --git a/core/src/io/anuke/mindustry/World.java b/core/src/io/anuke/mindustry/World.java index fb49061fc1..97202efd8b 100644 --- a/core/src/io/anuke/mindustry/World.java +++ b/core/src/io/anuke/mindustry/World.java @@ -87,6 +87,7 @@ public class World{ } public static void loadMap(int id){ + spawnpoints.clear(); int size = mapPixmaps[id].getWidth(); diff --git a/core/src/io/anuke/mindustry/ui/LevelDialog.java b/core/src/io/anuke/mindustry/ui/LevelDialog.java index 0e04c577ce..55dc9604d7 100644 --- a/core/src/io/anuke/mindustry/ui/LevelDialog.java +++ b/core/src/io/anuke/mindustry/ui/LevelDialog.java @@ -9,6 +9,7 @@ import io.anuke.mindustry.World; import io.anuke.ucore.core.Settings; import io.anuke.ucore.scene.ui.*; import io.anuke.ucore.scene.ui.layout.Unit; +import io.anuke.ucore.util.Timers; public class LevelDialog extends Dialog{ Label[] scores = new Label[maps.length]; @@ -28,8 +29,15 @@ public class LevelDialog extends Dialog{ addCloseButton(); getButtonTable().addButton("Play", ()->{ hide(); - World.loadMap(selectedMap); - Vars.control.play(); + Vars.ui.showLoading(); + Timers.run(16, ()->{ + World.loadMap(selectedMap); + Vars.control.play(); + }); + + Timers.run(18, ()->{ + Vars.ui.hideLoading(); + }); }); ButtonGroup mapgroup = new ButtonGroup<>(); diff --git a/desktop/build.gradle b/desktop/build.gradle index 18189a0f6e..6372fb3d8c 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -4,7 +4,7 @@ sourceCompatibility = 1.8 sourceSets.main.java.srcDirs = [ "src/" ] project.ext.mainClassName = "io.anuke.mindustry.desktop.DesktopLauncher" -project.ext.assetsDir = new File("../core/assets"); +project.ext.assetsDir = new File("../android/assets"); task run(dependsOn: classes, type: JavaExec) { main = project.mainClassName