Derelict block click repair

This commit is contained in:
Anuken
2023-10-23 11:18:01 -04:00
parent 471c8728a0
commit 3229c1e7b7
9 changed files with 53 additions and 9 deletions
+6 -2
View File
@@ -447,10 +447,14 @@ public class DesktopInput extends InputHandler{
Tile cursor = tileAt(Core.input.mouseX(), Core.input.mouseY());
if(cursor != null){
if(cursor.build != null){
if(cursor.build != null && cursor.build.interactable(player.team())){
cursorType = cursor.build.getCursor();
}
if(cursor.build != null && cursor.build.team == Team.derelict && Build.validPlace(cursor.block(), player.team(), cursor.build.tileX(), cursor.build.tileY(), cursor.build.rotation)){
cursorType = ui.repairCursor;
}
if((isPlacing() && player.isBuilder()) || !selectPlans.isEmpty()){
cursorType = SystemCursor.hand;
}
@@ -672,7 +676,7 @@ public class DesktopInput extends InputHandler{
commandRect = true;
commandRectX = input.mouseWorldX();
commandRectY = input.mouseWorldY();
}else if(!checkConfigTap() && selected != null){
}else if(!checkConfigTap() && selected != null && !tryRepairDerelict(selected)){
//only begin shooting if there's no cursor event
if(!tryTapPlayer(Core.input.mouseWorld().x, Core.input.mouseWorld().y) && !tileTapped(selected.build) && !player.unit().activelyBuilding() && !droppingItem
&& !(tryStopMine(selected) || (!settings.getBool("doubletapmine") || selected == prevSelected && Time.timeSinceMillis(selectMillis) < 500) && tryBeginMine(selected)) && !Core.scene.hasKeyboard()){
@@ -1641,6 +1641,14 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
return false;
}
boolean tryRepairDerelict(Tile selected){
if(selected != null && selected.build != null && selected.build.block.unlockedNow() && selected.build.team == Team.derelict && Build.validPlace(selected.block(), player.team(), selected.build.tileX(), selected.build.tileY(), selected.build.rotation)){
player.unit().addBuild(new BuildPlan(selected.build.tileX(), selected.build.tileY(), selected.build.rotation, selected.block(), selected.build.config()));
return true;
}
return false;
}
boolean canMine(Tile tile){
return !Core.scene.hasMouse()
&& player.unit().validMine(tile)
+1 -1
View File
@@ -712,7 +712,7 @@ public class MobileInput extends InputHandler implements GestureListener{
buildingTapped = selectedControlBuild();
//prevent mining if placing/breaking blocks
if(!tryStopMine() && !canTapPlayer(worldx, worldy) && !checkConfigTap() && !tileTapped(linked.build) && mode == none && !Core.settings.getBool("doubletapmine")){
if(!tryRepairDerelict(cursor) && !tryStopMine() && !canTapPlayer(worldx, worldy) && !checkConfigTap() && !tileTapped(linked.build) && mode == none && !Core.settings.getBool("doubletapmine")){
tryBeginMine(cursor);
}
}