From 2a41453bc840ed510f903bb7a8f48588d0582fd8 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 3 Mar 2018 11:31:17 -0500 Subject: [PATCH] Crash fixes --- core/assets/version.properties | 6 +++--- core/src/io/anuke/mindustry/core/ThreadHandler.java | 2 +- core/src/io/anuke/mindustry/core/UI.java | 2 ++ core/src/io/anuke/mindustry/core/World.java | 2 +- core/src/io/anuke/mindustry/entities/effect/TeslaOrb.java | 2 +- .../mindustry/world/blocks/types/distribution/Sorter.java | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/core/assets/version.properties b/core/assets/version.properties index 592935ec0e..2d5378a8ff 100644 --- a/core/assets/version.properties +++ b/core/assets/version.properties @@ -1,7 +1,7 @@ #Autogenerated file. Do not modify. -#Sat Mar 03 01:13:15 EST 2018 +#Sat Mar 03 11:31:02 EST 2018 version=release -androidBuildCode=328 +androidBuildCode=330 name=Mindustry code=3.4 -build=29 +build=custom build diff --git a/core/src/io/anuke/mindustry/core/ThreadHandler.java b/core/src/io/anuke/mindustry/core/ThreadHandler.java index 0cac92e1c4..683443be57 100644 --- a/core/src/io/anuke/mindustry/core/ThreadHandler.java +++ b/core/src/io/anuke/mindustry/core/ThreadHandler.java @@ -27,7 +27,7 @@ public class ThreadHandler { public ThreadHandler(ThreadProvider impl){ this.impl = impl; - Timers.setDeltaProvider(() ->{ + Timers.setDeltaProvider(() -> { float result = impl.isOnThread() ? delta : Gdx.graphics.getDeltaTime()*60f; return Math.min(Float.isNaN(result) ? 1f : result, 12f); }); diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index 895ae30792..cdf21a0d6b 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -124,6 +124,8 @@ public class UI extends SceneModule{ @Override public synchronized void update(){ if(Vars.debug && !Vars.showUI) return; + + if(Graphics.drawing()) Graphics.end(); scene.act(); scene.draw(); diff --git a/core/src/io/anuke/mindustry/core/World.java b/core/src/io/anuke/mindustry/core/World.java index 4fa80afb26..3a2d930d1b 100644 --- a/core/src/io/anuke/mindustry/core/World.java +++ b/core/src/io/anuke/mindustry/core/World.java @@ -240,7 +240,7 @@ public class World extends Module{ if(!tile.block().isMultiblock() && !tile.isLinked()){ tile.setBlock(Blocks.air); }else{ - Tile target = tile.isLinked() ? tile.getLinked() : tile; + Tile target = tile.target(); Array removals = target.getLinkedTiles(); for(Tile toremove : removals){ //note that setting a new block automatically unlinks it diff --git a/core/src/io/anuke/mindustry/entities/effect/TeslaOrb.java b/core/src/io/anuke/mindustry/entities/effect/TeslaOrb.java index 3d5d29faf3..eb35433236 100644 --- a/core/src/io/anuke/mindustry/entities/effect/TeslaOrb.java +++ b/core/src/io/anuke/mindustry/entities/effect/TeslaOrb.java @@ -47,7 +47,7 @@ public class TeslaOrb extends Entity{ Array enemies = Entities.getNearby(enemyGroup, curx, cury, range*2f); for(SolidEntity entity : enemies){ - if(entity.distanceTo(curx, cury) < range && !hit.contains((Enemy)entity)){ + if(entity != null && entity.distanceTo(curx, cury) < range && !hit.contains((Enemy)entity)){ hit.add((Enemy)entity); points.add(new Vector2(entity.x + Mathf.range(shake), entity.y + Mathf.range(shake))); damageEnemy((Enemy)entity); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java index c30d6074d1..00b23ca7bd 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java @@ -70,9 +70,9 @@ public class Sorter extends Block{ }else{ Tile a = dest.getNearby(Mathf.mod(dir - 1, 4)); Tile b = dest.getNearby(Mathf.mod(dir + 1, 4)); - boolean ac = !(a.block().instantTransfer && source.block().instantTransfer) && + boolean ac = a != null && !(a.block().instantTransfer && source.block().instantTransfer) && a.block().acceptItem(item, a, dest); - boolean bc = !(b.block().instantTransfer && source.block().instantTransfer) && + boolean bc = b != null && !(b.block().instantTransfer && source.block().instantTransfer) && b.block().acceptItem(item, b, dest); if(ac && !bc){