diff --git a/TODO.md b/TODO.md index 88459d4093..2df818efcd 100644 --- a/TODO.md +++ b/TODO.md @@ -1,23 +1,50 @@ _Keep in mind that this is just a basic outline of planned features, and will be constantly changing!_ -### 3.x Planned -- New save system: toggleable autosave, named slots, less clunky save UI -- [DONE?] Optimize for tablets -- Teleporter UI changes, more colors (?) -- [DONE] New building tools: selection-delete, hold to place blocks in a line, one-tap delete mode (mobile). New 'tool' menu (desktop). -- [DONE] 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 +### Won't Add +_(These are not planned in the near future at all, and have been suggested before **many** times.)_ +- Texture packs +- Online player profiles +- Player mech on Android +- Modding support + +### Already Suggested +_(not necessarily planned!)_ +- "more blocks" "more turrets" "more content" "more X/Y/Z" +- Multiplayer +- Building of units (tanks, drones, _soldiers_, doesn't matter) +- Enemy bases, fighting against AI, capture points +- Co-op of any sort +- Campaign, challenge mode +- Multiple cores +- Movable turrets +- Batteries or storage for anything +- Destroy map indestructible blocks +- Customizable world ore generation + seed +- Steam release +- Research system, tech tree, persistent upgrades, upgrades at all +- Missile enemies/turrets/weapons (both homing and non-homing) +- Better graphics +- Enemies dropping resources +- Final objectives/non-endless mode +- Fusion reactor + +### Balance +- Slow down progression slightly +- Better endgame turrets (?) +- Nerf RTG, buff nuclear reactor +- Faster power + +### Misc. QoL - Minimap -- More indicators for when the core is damaged and/or under attack -- Fix bugs with junction not accepting blocks (low FPS) -- Fix bugs with tunnel merging and/or removing items (low FPS) +- Underground conduits +- More indicators for core damaged/attacked +- Delete saves, export saves, import saves +- Display playtime in saves - Edit descriptions for conveyor tunnels to be more clear about how to use them -- [DONE] Add link to Mindustry discord everywhere -- Balancing to slow down progression -- Map editor -- Delete saves -- Display playtime +- New map format system to display +- Better placement controls, break while placing +- Hide UI elements +- New liquid conduit system ### Major Bugs - Black screen when tabbing out on Android @@ -26,10 +53,6 @@ _Keep in mind that this is just a basic outline of planned features, and will be - Google Payments verify crash - Google Payments IllegalArgument crash -### 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. diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 8665c1d109..f08f30ce57 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="47" + android:versionName="3.2" > diff --git a/core/src/io/anuke/mindustry/core/World.java b/core/src/io/anuke/mindustry/core/World.java index c1d1c5fe20..c9d0567641 100644 --- a/core/src/io/anuke/mindustry/core/World.java +++ b/core/src/io/anuke/mindustry/core/World.java @@ -214,6 +214,9 @@ public class World extends Module{ } void set(int x, int y, Block type, int rot){ + if(!Mathf.inBounds(x, y, tiles)){ + return; + } if(type == ProductionBlocks.stonedrill){ tiles[x][y].setFloor(Blocks.stone); } diff --git a/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java b/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java index 5fc4680ff8..2bfeb27c17 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java @@ -72,7 +72,7 @@ public class MapEditorDialog extends Dialog{ Pixmaps.write(editor.pixmap(), result); }catch (Exception e){ Vars.ui.showError("Error saving image file:\n[orange]" + Strings.parseException(e, false)); - e.printStackTrace(); + if(!Vars.android) e.printStackTrace(); } Vars.ui.hideLoading(); }); diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java index c4d6d2b6c2..2ba1c37d0a 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java @@ -133,6 +133,8 @@ public class BlocksFragment implements Fragment{ get().marginLeft(0f); get().marginRight(0f); + + end(); }}.right().bottom().uniformX(); diff --git a/core/src/io/anuke/mindustry/ui/fragments/PlacementFragment.java b/core/src/io/anuke/mindustry/ui/fragments/PlacementFragment.java index abc0fc0448..162d08c5e6 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/PlacementFragment.java @@ -23,19 +23,6 @@ public class PlacementFragment implements Fragment{ visible(()->player.recipe != null && !GameState.is(State.menu)); abottom(); aleft(); - /* - Image image = new Image("icon-arrow"); - image.update(() -> { - image.setRotation(player.rotation*90); - image.setOrigin(Align.center); - }); - - new table("pane"){{ - visible(() -> player.recipe != null && player.recipe.result.rotate); - add(image).size(40f); - }}.size(54f).end(); - - row();*/ new table(){{ touchable(Touchable.enabled); diff --git a/core/src/io/anuke/mindustry/world/Maps.java b/core/src/io/anuke/mindustry/world/Maps.java index daf4e0129b..d029d1ae07 100644 --- a/core/src/io/anuke/mindustry/world/Maps.java +++ b/core/src/io/anuke/mindustry/world/Maps.java @@ -137,7 +137,7 @@ public class Maps implements Disposable{ } return true; }catch(Exception e){ - e.printStackTrace(); + if(!Vars.android) e.printStackTrace(); Gdx.app.error("Mindustry-Maps", "Failed loading map file: " + file); return false; }