Input fixes

This commit is contained in:
Anuken
2019-10-12 12:52:50 -04:00
parent bd3463c824
commit d7ca2a33c8
9 changed files with 54 additions and 26 deletions

View File

@@ -277,7 +277,7 @@ public interface BuilderTrait extends Entity, TeamTrait{
public boolean initialized; public boolean initialized;
//animation variables //animation variables
public float animScale; public float animScale = 0f;
public float animInvalid; public float animInvalid;
/** This creates a build request. */ /** This creates a build request. */

View File

@@ -433,6 +433,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
for(BuildRequest request : buildQueue()){ for(BuildRequest request : buildQueue()){
if(request.progress > 0.01f || (buildRequest() == request && request.initialized && (dst(request.x * tilesize, request.y * tilesize) <= placeDistance || state.isEditor()))) continue; if(request.progress > 0.01f || (buildRequest() == request && request.initialized && (dst(request.x * tilesize, request.y * tilesize) <= placeDistance || state.isEditor()))) continue;
request.animScale = 1f;
if(request.breaking){ if(request.breaking){
control.input.drawBreaking(request); control.input.drawBreaking(request);
}else{ }else{

View File

@@ -235,7 +235,7 @@ public class DesktopInput extends InputHandler{
lastLineY = cursorY; lastLineY = cursorY;
mode = placing; mode = placing;
updateLine(selectX, selectY); updateLine(selectX, selectY);
}else if(req != null && !req.breaking && mode == none){ }else if(req != null && !req.breaking && mode == none && !req.initialized){
sreq = req; sreq = req;
}else if(req != null && req.breaking){ }else if(req != null && req.breaking){
deleting = true; deleting = true;

View File

@@ -330,6 +330,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
/** Draws a placement icon for a specific block. */ /** Draws a placement icon for a specific block. */
protected void drawRequest(int x, int y, Block block, int rotation){ protected void drawRequest(int x, int y, Block block, int rotation){
brequest.set(x, y, rotation, block); brequest.set(x, y, rotation, block);
brequest.animScale = 1f;
block.drawRequest(brequest, allRequests(), validPlace(x, y, block, rotation)); block.drawRequest(brequest, allRequests(), validPlace(x, y, block, rotation));
} }
@@ -393,7 +394,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
lineRequests.clear(); lineRequests.clear();
iterateLine(x1, y1, x2, y2, l -> { iterateLine(x1, y1, x2, y2, l -> {
rotation = l.rotation; rotation = l.rotation;
lineRequests.add(new BuildRequest(l.x, l.y, l.rotation, block)); BuildRequest req = new BuildRequest(l.x, l.y, l.rotation, block);
req.animScale = 1f;
lineRequests.add(req);
}); });
} }
@@ -445,12 +448,13 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
} }
} }
/*
//clear when the player taps on something else //clear when the player taps on something else
if(!consumed && !mobile && player.isBuilding() && block == null){ if(!consumed && !mobile && player.isBuilding() && block == null){
//player.clearBuilding(); //player.clearBuilding();
block = null; block = null;
return true; return true;
} }*/
if(!showedInventory){ if(!showedInventory){
frag.inv.hide(); frag.inv.hide();

View File

@@ -208,7 +208,7 @@ public class MobileInput extends InputHandler implements GestureListener{
} }
//move all current requests to removal array so they fade out //move all current requests to removal array so they fade out
removals.addAll(selectRequests); removals.addAll(selectRequests.find(r -> !r.breaking));
selectRequests.clear(); selectRequests.clear();
selecting = false; selecting = false;
}).visible(() -> !selectRequests.isEmpty()).name("confirmplace"); }).visible(() -> !selectRequests.isEmpty()).name("confirmplace");
@@ -217,9 +217,10 @@ public class MobileInput extends InputHandler implements GestureListener{
@Override @Override
public void buildUI(Group group){ public void buildUI(Group group){
group.fill(t -> { group.fill(t -> {
t.bottom().left().visible(() -> (player.isBuilding() || block != null || mode == breaking) && !state.is(State.menu)); t.bottom().left().visible(() -> (player.isBuilding() || block != null || mode == breaking || !selectRequests.isEmpty()) && !state.is(State.menu));
t.addImageTextButton("$cancel", Icon.cancelSmall, () -> { t.addImageTextButton("$cancel", Icon.cancelSmall, () -> {
player.clearBuilding(); player.clearBuilding();
selectRequests.clear();
mode = none; mode = none;
block = null; block = null;
}).width(155f); }).width(155f);
@@ -244,6 +245,11 @@ public class MobileInput extends InputHandler implements GestureListener{
request.animScale = Mathf.lerpDelta(request.animScale, 0f, 0.2f); request.animScale = Mathf.lerpDelta(request.animScale, 0f, 0.2f);
request.animInvalid = Mathf.lerpDelta(request.animInvalid, 0f, 0.2f); request.animInvalid = Mathf.lerpDelta(request.animInvalid, 0f, 0.2f);
if(request.breaking){
drawSelected(request.x, request.y, tile.block(), Pal.remove);
}else{
request.block.drawRequest(request, allRequests(), true);
}
//TODO //TODO
//drawRequest(request); //drawRequest(request);
} }
@@ -328,8 +334,11 @@ public class MobileInput extends InputHandler implements GestureListener{
@Override @Override
protected void drawRequest(BuildRequest request){ protected void drawRequest(BuildRequest request){
if(request.tile() == null) return;
brequest.animScale = request.animScale = Mathf.lerpDelta(request.animScale, 1f, 0.1f);
if(request.breaking){ if(request.breaking){
drawSelected(request.x, request.y, request.block, Pal.remove); drawSelected(request.x, request.y, request.tile().block(), Pal.remove);
}else{ }else{
drawRequest(request.x, request.y, request.block, request.rotation); drawRequest(request.x, request.y, request.block, request.rotation);
drawSelected(request.x, request.y, request.block, Pal.accent); drawSelected(request.x, request.y, request.block, Pal.accent);

View File

@@ -676,7 +676,10 @@ public class Block extends BlockStorage{
} }
public void drawRequestRegion(BuildRequest req, Eachable<BuildRequest> list){ public void drawRequestRegion(BuildRequest req, Eachable<BuildRequest> list){
Draw.rect(icon(Cicon.full), req.drawx(), req.drawy(), !rotate ? 0 : req.rotation * 90); TextureRegion reg = icon(Cicon.full);
Draw.rect(icon(Cicon.full), req.drawx(), req.drawy(),
reg.getWidth() * req.animScale * Draw.scl, reg.getHeight() * req.animScale * Draw.scl,
!rotate ? 0 : req.rotation * 90);
} }
@Override @Override

View File

@@ -1,24 +1,19 @@
package io.anuke.mindustry.world.blocks.power; package io.anuke.mindustry.world.blocks.power;
import io.anuke.arc.Core; import io.anuke.arc.*;
import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.*;
import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.g2d.*;
import io.anuke.arc.graphics.g2d.TextureRegion; import io.anuke.arc.math.*;
import io.anuke.arc.math.Mathf; import io.anuke.arc.util.*;
import io.anuke.arc.util.Time; import io.anuke.mindustry.content.*;
import io.anuke.mindustry.content.Fx; import io.anuke.mindustry.entities.*;
import io.anuke.mindustry.entities.Effects; import io.anuke.mindustry.entities.type.*;
import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.type.*;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.*;
import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.consumers.*;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.*;
import io.anuke.mindustry.world.consumers.ConsumeItemFilter;
import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter;
import io.anuke.mindustry.world.meta.BlockStat;
import io.anuke.mindustry.world.meta.StatUnit;
import static io.anuke.mindustry.Vars.content; import static io.anuke.mindustry.Vars.*;
import static io.anuke.mindustry.Vars.tilesize;
/** /**
* Power generation block which can use items, liquids or both as input sources for power production. * Power generation block which can use items, liquids or both as input sources for power production.
@@ -53,6 +48,10 @@ public class ItemLiquidGenerator extends PowerGenerator{
} }
} }
public ItemLiquidGenerator(String name){
super(name);
}
@Override @Override
public void load(){ public void load(){
super.load(); super.load();

View File

@@ -9,6 +9,10 @@ public class SingleTypeGenerator extends ItemLiquidGenerator{
super(hasItems, hasLiquids, name); super(hasItems, hasLiquids, name);
} }
public SingleTypeGenerator(String name){
super(name);
}
@Override @Override
protected float getItemEfficiency(Item item){ protected float getItemEfficiency(Item item){
return 1f; return 1f;

View File

@@ -83,6 +83,14 @@ public class DesktopLauncher extends ClientLauncher{
} }
if(useSteam){ if(useSteam){
//delete leftover dlls
FileHandle file = new FileHandle(".");
for(FileHandle other : file.parent().list()){
if(other.name().contains("steam") && (other.extension().equals("dll") || other.extension().equals("so") || other.extension().equals("dylib"))){
other.delete();
}
}
if(showConsole){ if(showConsole){
StringBuilder base = new StringBuilder(); StringBuilder base = new StringBuilder();
Log.setLogger(new LogHandler(){ Log.setLogger(new LogHandler(){