diff --git a/annotations/src/main/java/io/anuke/annotations/AssetsAnnotationProcessor.java b/annotations/src/main/java/io/anuke/annotations/AssetsAnnotationProcessor.java index 31b213d8ba..0eb1ce32d4 100644 --- a/annotations/src/main/java/io/anuke/annotations/AssetsAnnotationProcessor.java +++ b/annotations/src/main/java/io/anuke/annotations/AssetsAnnotationProcessor.java @@ -37,6 +37,7 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{ path = Paths.get(Utils.filer.createResource(StandardLocation.CLASS_OUTPUT, "no", "no") .toUri().toURL().toString().substring(System.getProperty("os.name").contains("Windows") ? 6 : "file:".length())) .getParent().getParent().getParent().getParent().getParent().getParent().toString(); + path = path.replace("%20", " "); processSounds("Sounds", path + "/assets/sounds", "io.anuke.arc.audio.Sound"); processSounds("Musics", path + "/assets/music", "io.anuke.arc.audio.Music"); diff --git a/core/src/io/anuke/mindustry/input/InputHandler.java b/core/src/io/anuke/mindustry/input/InputHandler.java index 8679f18fd2..cc05d462ea 100644 --- a/core/src/io/anuke/mindustry/input/InputHandler.java +++ b/core/src/io/anuke/mindustry/input/InputHandler.java @@ -211,7 +211,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ if(request.breaking){ drawBreaking(request.x, request.y); }else{ - drawSelected(request.x, request.y, request.block, Pal.remove); + drawSelected(request.x, request.y, request.tile().block(), Pal.remove); } } @@ -288,6 +288,14 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } } + /* + for(BuildRequest req : selectRequests){ + if(req.breaking) continue; + if(req.bounds(Tmp.r2).overlaps(Tmp.r1)){ + drawBreaking(req); + } + }*/ + for(BrokenBlock req : state.teams.get(player.getTeam()).brokenBlocks){ Block block = content.block(req.block); if(block.bounds(req.x, req.y, Tmp.r2).overlaps(Tmp.r1)){ @@ -342,16 +350,21 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ int wx = x1 + x * Mathf.sign(x2 - x1); int wy = y1 + y * Mathf.sign(y2 - y1); + Tile tile = world.ltile(wx, wy); + + if(tile == null) continue; + if(!flush){ tryBreakBlock(wx, wy); - }else{ - selectRequests.add(new BuildRequest(wx, wy)); + }else if(validBreak(tile.x, tile.y) && !selectRequests.contains(r -> r.tile() != null && r.tile().link() == tile)){ + selectRequests.add(new BuildRequest(tile.x, tile.y)); } } } //remove build requests Tmp.r1.set(result.x * tilesize, result.y * tilesize, (result.x2 - result.x) * tilesize, (result.y2 - result.y) * tilesize); + Iterator it = player.buildQueue().iterator(); while(it.hasNext()){ BuildRequest req = it.next(); @@ -360,6 +373,15 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } } + /* + it = selectRequests.iterator(); + while(it.hasNext()){ + BuildRequest req = it.next(); + if(!req.breaking && req.bounds(Tmp.r2).overlaps(Tmp.r1)){ + it.remove(); + } + }*/ + //remove blocks to rebuild Iterator broken = state.teams.get(player.getTeam()).brokenBlocks.iterator(); while(broken.hasNext()){ diff --git a/core/src/io/anuke/mindustry/input/MobileInput.java b/core/src/io/anuke/mindustry/input/MobileInput.java index 63a4e0f618..ec906e45d1 100644 --- a/core/src/io/anuke/mindustry/input/MobileInput.java +++ b/core/src/io/anuke/mindustry/input/MobileInput.java @@ -270,7 +270,8 @@ public class MobileInput extends InputHandler implements GestureListener{ if(request.block.rotate) drawArrow(request.block, tile.x, tile.y, request.rotation); } - Draw.mixcol(Tmp.c1, 1f); + //Draw.mixcol(Tmp.c1, 1f); + Draw.reset(); drawRequest(request); //draw last placed request @@ -327,8 +328,10 @@ public class MobileInput extends InputHandler implements GestureListener{ @Override protected void drawRequest(BuildRequest request){ - drawRequest(request.x, request.y, request.block, request.rotation); - if(!request.breaking){ + if(request.breaking){ + drawSelected(request.x, request.y, request.block, Pal.remove); + }else{ + drawRequest(request.x, request.y, request.block, request.rotation); drawSelected(request.x, request.y, request.block, Pal.accent); } } @@ -456,12 +459,16 @@ public class MobileInput extends InputHandler implements GestureListener{ @Override public void update(){ - if(state.is(State.menu) || player.isDead()){ + if(state.is(State.menu) ){ selectRequests.clear(); removals.clear(); mode = none; } + if(player.isDead()){ + mode = none; + } + //zoom things if(Math.abs(Core.input.axisTap(Binding.zoom)) > 0 && (Core.input.keyDown(Binding.zoom_hold))){ renderer.scaleCamera(Core.input.axisTap(Binding.zoom)); @@ -487,8 +494,6 @@ public class MobileInput extends InputHandler implements GestureListener{ if(mode == none){ selecting = false; lineMode = false; - removals.addAll(selectRequests); - selectRequests.clear(); } if(lineMode && mode == placing && block == null){ diff --git a/core/src/io/anuke/mindustry/mod/Mods.java b/core/src/io/anuke/mindustry/mod/Mods.java index 27223a7f84..181887e65e 100644 --- a/core/src/io/anuke/mindustry/mod/Mods.java +++ b/core/src/io/anuke/mindustry/mod/Mods.java @@ -47,8 +47,7 @@ public class Mods implements Loadable{ } /** @return the loaded mod found by class, or null if not found. */ - public @Nullable - LoadedMod getMod(Class type){ + public @Nullable LoadedMod getMod(Class type){ return loaded.find(l -> l.mod.getClass() == type); }