diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index 5b61bcb907..3c291a14a3 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -98,7 +98,7 @@ public class MobileInput extends InputHandler implements GestureListener{ }else{ Building tile = world.buildWorld(x, y); - if((tile != null && player.team() != tile.team && (tile.team != Team.derelict || state.rules.coreCapture)) || (tile != null && player.unit().type.canHeal && tile.team == player.team() && tile.damaged())){ + if((tile != null && (player.team() != tile.team && (tile.team != Team.derelict || state.rules.coreCapture)) && player.unit().type.canAttack) || (tile != null && player.unit().type.canHeal && tile.team == player.team() && tile.damaged())){ player.unit().mineTile = null; target = tile; } @@ -1078,7 +1078,7 @@ public class MobileInput extends InputHandler implements GestureListener{ //this may be a bad idea, aiming for a point far in front could work better, test it out unit.aim(Core.input.mouseWorldX(), Core.input.mouseWorldY()); }else{ - Vec2 intercept = Predict.intercept(unit, target, bulletSpeed); + Vec2 intercept = player.unit().type.weapons.contains(w -> w.predictTarget) ? Predict.intercept(unit, target, bulletSpeed) : Tmp.v1.set(target); player.mouseX = intercept.x; player.mouseY = intercept.y; diff --git a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java index a2bceb9977..37f489f8d9 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java @@ -48,12 +48,12 @@ public class PayloadConveyor extends Block{ public void drawPlace(int x, int y, int rotation, boolean valid){ super.drawPlace(x, y, rotation, valid); - int ntrns = 1 + size/2; + int ntrns = size; for(int i = 0; i < 4; i++){ - Building other = world.build(x + Geometry.d4x[i] * ntrns, y + Geometry.d4y[i] * ntrns); - if(other != null && other.block.outputsPayload && other.block.size == size){ - Drawf.selected(other.tileX(), other.tileY(), other.block, other.team.color); + Tile tile = world.tile(x + Geometry.d4x[i] * ntrns, y + Geometry.d4y[i] * ntrns); + if(tile != null && tile.build != null && tile.isCenter() && tile.build.block.outputsPayload && tile.build.block.size == size && (i == rotation || tile.block().rotate && i == (tile.build.rotation + 2) % 4)){ + Drawf.selected(tile.x, tile.y, tile.block(), tile.build.team.color); } } }