diff --git a/README.MD b/README.MD
index 2fbb1348c3..5e872f782a 100644
--- a/README.MD
+++ b/README.MD
@@ -1,10 +1,9 @@
-# Mindustry
-
+
### Create resources, move 'em around, fuel your turrets, and blast the bad guys away with your ship!
-This game is a pixelated sandbox tower defense game made using [LibGDX](https://libgdx.badlogicgames.com/) originally for the [GDL Metal Monstrosity Jam](https://itch.io/jam/gdl---metal-monstrosity-jam). Ever since it won the Jam, it has been in active development, with a beta 3.0 version now released for Desktop platforms.
+A pixelated sandbox tower defense game made using [LibGDX](https://libgdx.badlogicgames.com/) originally for the [GDL Metal Monstrosity Jam](https://itch.io/jam/gdl---metal-monstrosity-jam). Ever since it won the Jam, it has been in active development, with a beta 3.0 version now released for Desktop platforms.
-You can play the game on these platforms:
+# Downloads:
diff --git a/TODO.md b/TODO.md
index 3de4bef063..0aee70a123 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1,11 +1,54 @@
-### Important
-1. Add an improved conveyor belt drawing (creation/design) system
-2. Add localization support, storing game text in JSON files instead of within code. This is in response to a couple of translation requests from Omicron Translation Group on the Itch.io page. I [l5474] *might* be able to do it... eventually.
-3. Fix some AI going to the wall, as mentioned in #5
-4. Add configurable autosave feature
-### Optional/Low Priority
-1. Make minimap ~~or aux. tile loader for whole-map view~~
-2. Add in more teleporter colors maybe, and make a new teleporter color picker ui/tooltip. Very low priority
-3. Maybe make enemies manually spawnable in Sandbox Mode
-4. Maybe assign a key to make Mecha move faster
+### 3.0 Release
+- New tutorial with the power blocks.
+- New SFX for specific blocks, especially turrets
+- Block drawing layers. Refactor/remove `Block#drawOver()`, add `Layer` enum. Should fix 'glitchy' lasers and conveyor clipping.
+- Balance nuclear reactor, improve effectiveness. Currently underpowered.
+- Make generation frame independant.
+- Investigate issue #5 (enemies stuck in blocks)
+- Faster mech movement, possibly with a "boost" key
+- Balance enemy difficulty
+
+### 3.x Planned
+- New save system: toggleable autosave, named slots, less clunky save UI
+- Teleporter UI changes, more colors (?)
+- New building tools: selection-delete, hold to place blocks in a line, one-tap delete mode (mobile). New 'tool' menu (desktop).
+- Refactor `Renderer`, remove code for rendering platform-specific placement and move to 2 different classes
+- New map format system. Each new version is a different class, convert between different versions.
+- Underground conduits
+- Minimap
+- More indicators for when the core is damaged and/or under attack
+
+
+### 4.0 Planned
+- Multiplayer framework, possibly implementation
+- New look to blocks, make them less 'blocky'
+
+### Misc
+- Localization support. Change all in-game strings to localized strings. Check compatibility with GWT and Android libraries.
+
+### Possible Additions
+- Mech body upgrades
+- Uranium extractor / uranium->iron converter
+- Laser enemies
+- Flying enemies that move in formation and spawn from different locations
+- Fusion reactor
+- Point defense turrets that take down projectiles
+- Turrets fueled by lava
+- Gas transporation and use
+- Better enemy effects and looks
+- Homing missile enemies and turrets
+- Reflective shield blocks
+- Tech tree with bonuses to production or turrets
+- Spawn points changed into enemy bases with hostile turrets
+- Unit production
+
+### Optmiziation
+- Look into uses for `IntMap`
+- Spread updating over multiple frames for large groups of specific tile entities (?)
+- Optimize enemy + bullet code and check quadtree leaf parameters
+- Check for unnecessary use of `Timers#get()`
+- Optimize generator laser distribution, especially finding targets
+- Optimize UI
+- Check memory usage and GC, profile
+
diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml
index dd4fe7f27e..2fa7952442 100644
--- a/android/AndroidManifest.xml
+++ b/android/AndroidManifest.xml
@@ -1,8 +1,8 @@
+ android:versionCode="20"
+ android:versionName="3.04b" >
diff --git a/core/src/io/anuke/mindustry/ai/Pathfind.java b/core/src/io/anuke/mindustry/ai/Pathfind.java
index 54b580f459..76d27d05ec 100644
--- a/core/src/io/anuke/mindustry/ai/Pathfind.java
+++ b/core/src/io/anuke/mindustry/ai/Pathfind.java
@@ -15,7 +15,7 @@ import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Tmp;
public class Pathfind{
- private static final long ms = 1000000;
+ private static final long ms = 1000000 * 3;
MHueristic heuristic = new MHueristic();
PassTileGraph graph = new PassTileGraph();
@@ -100,7 +100,7 @@ public class Pathfind{
public void update(){
for(SpawnPoint point : Vars.control.getSpawnPoints()){
if(!point.request.pathFound){
- if(point.finder.search(point.request, ms * 2)){
+ if(point.finder.search(point.request, ms)){
smoother.smoothPath(point.path);
point.pathTiles = point.path.nodes.toArray(Tile.class);
point.tempTiles = point.path.nodes.toArray(Tile.class);
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 ce29b5b283..62d14d2e85 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
@@ -5,9 +5,7 @@ import static io.anuke.mindustry.Vars.tilesize;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import java.util.AbstractList;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.IntArray;
@@ -201,7 +199,7 @@ public class Conveyor extends Block{
}
};
- Collections.sort(wrapper, Conveyor::compareItems);
+ Collections.sort(wrapper, new Comparator(){public int compare(Object a, Object b){ return compareItems((Integer)a, (Integer)b); }});
}
private static int compareItems(int a, int b){