diff --git a/core/assets/maps/craters.msav b/core/assets/maps/craters.msav index 25102a3944..14f91c18ca 100644 Binary files a/core/assets/maps/craters.msav and b/core/assets/maps/craters.msav differ diff --git a/core/assets/sprites/logotext.png b/core/assets/sprites/logotext.png new file mode 100644 index 0000000000..64976a6c47 Binary files /dev/null and b/core/assets/sprites/logotext.png differ diff --git a/core/src/io/anuke/mindustry/Mindustry.java b/core/src/io/anuke/mindustry/Mindustry.java index 9c7fb77c49..152cf6fcec 100644 --- a/core/src/io/anuke/mindustry/Mindustry.java +++ b/core/src/io/anuke/mindustry/Mindustry.java @@ -1,6 +1,10 @@ package io.anuke.mindustry; import io.anuke.arc.*; +import io.anuke.arc.graphics.Color; +import io.anuke.arc.graphics.Texture; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.arc.graphics.g2d.SpriteBatch; import io.anuke.arc.math.Mathf; import io.anuke.arc.util.Log; import io.anuke.arc.util.Time; @@ -8,6 +12,7 @@ import io.anuke.mindustry.core.*; import io.anuke.mindustry.game.EventType.GameLoadEvent; import io.anuke.mindustry.io.BundleLoader; +import static io.anuke.arc.Core.batch; import static io.anuke.mindustry.Vars.*; public class Mindustry extends ApplicationCore{ @@ -21,27 +26,38 @@ public class Mindustry extends ApplicationCore{ Time.mark(); - Vars.init(); - Log.setUseColors(false); - BundleLoader.load(); - content.load(); - content.loadColors(); + batch = new SpriteBatch(); - add(logic = new Logic()); - add(world = new World()); - add(control = new Control()); - add(renderer = new Renderer()); - add(ui = new UI()); - add(netServer = new NetServer()); - add(netClient = new NetClient()); + Core.app.post(() -> Core.app.post(() -> { + drawLoading(); + Core.app.post(() -> Core.app.post(() -> { + Vars.init(); + Log.setUseColors(false); + BundleLoader.load(); + content.load(); + content.loadColors(); + + add(logic = new Logic()); + add(world = new World()); + add(control = new Control()); + add(renderer = new Renderer()); + add(ui = new UI()); + add(netServer = new NetServer()); + add(netClient = new NetClient()); + + for(ApplicationListener listener : modules){ + listener.init(); + } + + Log.info("Time to load [total]: {0}", Time.elapsed()); + Events.fire(new GameLoadEvent()); + })); + })); } @Override public void init(){ - super.init(); - - Log.info("Time to load [total]: {0}", Time.elapsed()); - Events.fire(new GameLoadEvent()); + setup(); } @Override @@ -65,4 +81,15 @@ public class Mindustry extends ApplicationCore{ } } + void drawLoading(){ + Core.graphics.clear(Color.BLACK); + Draw.proj().setOrtho(0, 0, Core.graphics.getWidth(), Core.graphics.getHeight()); + + Texture icon = new Texture("sprites/logotext.png"); + Draw.rect(Draw.wrap(icon), Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f); + Draw.flush(); + + icon.dispose(); + } + } diff --git a/core/src/io/anuke/mindustry/core/Renderer.java b/core/src/io/anuke/mindustry/core/Renderer.java index a6a5aa1363..b57bd2fa48 100644 --- a/core/src/io/anuke/mindustry/core/Renderer.java +++ b/core/src/io/anuke/mindustry/core/Renderer.java @@ -42,7 +42,6 @@ public class Renderer implements ApplicationListener{ private float shakeIntensity, shaketime; public Renderer(){ - batch = new SpriteBatch(4096); camera = new Camera(); Lines.setCircleVertices(20); Shaders.init(); diff --git a/core/src/io/anuke/mindustry/game/Rules.java b/core/src/io/anuke/mindustry/game/Rules.java index c32a63a659..3954fa6241 100644 --- a/core/src/io/anuke/mindustry/game/Rules.java +++ b/core/src/io/anuke/mindustry/game/Rules.java @@ -40,7 +40,7 @@ public class Rules{ /** No-build zone around enemy core radius. */ public float enemyCoreBuildRadius = 400f; /** Radius around enemy wave drop zones.*/ - public float dropZoneRadius = 380f; + public float dropZoneRadius = 300f; /** Player respawn time in ticks. */ public float respawnTime = 60 * 4; /** Time between waves in ticks. */