Mobile input fixes

This commit is contained in:
Anuken 2019-10-10 22:13:45 -04:00
parent 80a4e67ddf
commit 204332a76a
4 changed files with 38 additions and 11 deletions

View file

@ -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");

View file

@ -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<BuildRequest> 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<BrokenBlock> broken = state.teams.get(player.getTeam()).brokenBlocks.iterator();
while(broken.hasNext()){

View file

@ -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){

View file

@ -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<? extends Mod> type){
public @Nullable LoadedMod getMod(Class<? extends Mod> type){
return loaded.find(l -> l.mod.getClass() == type);
}