diff --git a/core/assets/version.properties b/core/assets/version.properties index 7ff1162d00..60ca26ce8a 100644 --- a/core/assets/version.properties +++ b/core/assets/version.properties @@ -1,5 +1,5 @@ #Autogenerated file. Do not modify. -#Fri Feb 16 11:30:06 EST 2018 +#Sat Feb 17 11:08:49 EST 2018 version=beta androidBuildCode=234 name=Mindustry diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index 4ece57cb8a..1e6d7cb362 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -50,6 +50,7 @@ public class Control extends Module{ private InputProxy proxy; private float controlx, controly; private boolean controlling; + private Throwable error; public Control(){ saves = new Saves(); @@ -195,6 +196,10 @@ public class Control extends Module{ }); } + public void setError(Throwable error){ + this.error = error; + } + public UpgradeInventory upgrades() { return upgrades; } @@ -273,6 +278,10 @@ public class Control extends Module{ @Override public void update(){ + if(error != null){ + throw new RuntimeException(error); + } + if(Gdx.input != proxy){ Gdx.input = proxy; } diff --git a/core/src/io/anuke/mindustry/core/ThreadHandler.java b/core/src/io/anuke/mindustry/core/ThreadHandler.java index 7f731e0c9c..b4f08fc703 100644 --- a/core/src/io/anuke/mindustry/core/ThreadHandler.java +++ b/core/src/io/anuke/mindustry/core/ThreadHandler.java @@ -10,6 +10,7 @@ import io.anuke.ucore.entities.EntityGroup; import io.anuke.ucore.entities.EntityGroup.ArrayContainer; import io.anuke.ucore.util.Log; +import static io.anuke.mindustry.Vars.control; import static io.anuke.mindustry.Vars.logic; public class ThreadHandler { @@ -119,10 +120,8 @@ public class ThreadHandler { } } catch (InterruptedException ex) { Log.info("Stopping logic thread."); - } catch (Exception ex) { - Timers.run(0f, () -> { - throw new RuntimeException(ex); - }); + } catch (Throwable ex) { + control.setError(ex); } } diff --git a/core/src/io/anuke/mindustry/input/InputHandler.java b/core/src/io/anuke/mindustry/input/InputHandler.java index 104c9672d1..d22a8b46c0 100644 --- a/core/src/io/anuke/mindustry/input/InputHandler.java +++ b/core/src/io/anuke/mindustry/input/InputHandler.java @@ -99,6 +99,7 @@ public abstract class InputHandler extends InputAdapter{ rect.setCenter(offset.x + x * tilesize, offset.y + y * tilesize); for(SolidEntity e : Entities.getNearby(enemyGroup, x * tilesize, y * tilesize, tilesize * 2f)){ + if(e == null) continue; //not sure why this happens? Rectangle rect = e.hitbox.getRect(e.x, e.y); if(this.rect.overlaps(rect)){ diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java index b412551773..1e29e2aa15 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java @@ -143,6 +143,7 @@ public class Conveyor extends Block{ @Override public boolean acceptItem(Item item, Tile tile, Tile source){ + if(tile.entity == null) return false; int direction = source == null ? 0 : Math.abs(source.relativeTo(tile.x, tile.y) - tile.getRotation()); float minitem = tile.entity().minitem; return (((direction == 0) && minitem > 0.05f) || diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java index 432e81fe01..6e857ac4df 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java @@ -142,7 +142,7 @@ public class Teleporter extends PowerBlock{ @Override public boolean acceptItem(Item item, Tile tile, Tile source){ PowerEntity entity = tile.entity(); - return entity.power >= powerPerItem && findLinks(tile, item).size > 0; + return !(source.block() instanceof Teleporter) && entity.power >= powerPerItem && findLinks(tile, item).size > 0; } @Override diff --git a/run-server b/run-server new file mode 100755 index 0000000000..803b323731 --- /dev/null +++ b/run-server @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +./gradlew server:dist +java -jar server/build/libs/server-release.jar