From b43c54221366af687244696cd98727e3fe5e6f37 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 29 Sep 2018 20:49:19 -0400 Subject: [PATCH] Auto-target configuration --- core/assets/bundles/bundle.properties | 1 + .../io/anuke/mindustry/content/Liquids.java | 1 + .../io/anuke/mindustry/entities/Player.java | 4 +- .../anuke/mindustry/input/DesktopInput.java | 43 +++++++++---------- .../ui/dialogs/SettingsMenuDialog.java | 3 ++ core/src/io/anuke/mindustry/world/Tile.java | 2 +- 6 files changed, 30 insertions(+), 24 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index c9a2ede296..5f76ec1477 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -347,6 +347,7 @@ text.category.liquids=Liquids text.category.items=Items text.category.crafting=Crafting text.category.shooting=Shooting +setting.autotarget.name=Auto-Target setting.fpscap.name=Max FPS setting.fpscap.none=None setting.fpscap.text={0} FPS diff --git a/core/src/io/anuke/mindustry/content/Liquids.java b/core/src/io/anuke/mindustry/content/Liquids.java index 5c25ed2535..f2e8ec6c0f 100644 --- a/core/src/io/anuke/mindustry/content/Liquids.java +++ b/core/src/io/anuke/mindustry/content/Liquids.java @@ -38,6 +38,7 @@ public class Liquids implements ContentList{ viscosity = 0.7f; flammability = 0.6f; explosiveness = 0.6f; + heatCapacity = 0.7f; tier = 1; effect = StatusEffects.tarred; } diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index 117aa891cc..e1d29a9fb0 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -664,7 +664,9 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra if(target == null){ isShooting = false; - target = Units.getClosestTarget(team, x, y, getWeapon().getAmmo().getRange()); + if(Settings.getBool("autotarget")){ + target = Units.getClosestTarget(team, x, y, getWeapon().getAmmo().getRange()); + } }else if(target.isValid()){ //rotate toward and shoot the target if(mech.turnCursor){ diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index f60a7e7cb9..7dca9e433d 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -210,33 +210,32 @@ public class DesktopInput extends InputHandler{ player.setMineTile(null); } - if(!ui.hasMouse()){ - if(Inputs.keyTap(section, "select")){ - if(isPlacing()){ - selectX = cursor.x; - selectY = cursor.y; - mode = placing; - }else{ - //only begin shooting if there's no cursor event - if (!tileTapped(cursor) && !tryTapPlayer(Graphics.mouseWorld().x, Graphics.mouseWorld().y) && player.getPlaceQueue().size == 0 && !droppingItem && - !tryBeginMine(cursor) && player.getMineTile() == null) { - player.isShooting = true; - } - } - }else if(Inputs.keyTap(section, "deselect") && (recipe != null || mode != none || player.isBuilding())){ - if(recipe == null){ - player.clearBuilding(); - } - - recipe = null; - mode = none; - }else if(Inputs.keyTap(section, "break")){ + if(Inputs.keyTap(section, "select") && !ui.hasMouse()){ + if(isPlacing()){ selectX = cursor.x; selectY = cursor.y; - mode = breaking; + mode = placing; + }else{ + //only begin shooting if there's no cursor event + if (!tileTapped(cursor) && !tryTapPlayer(Graphics.mouseWorld().x, Graphics.mouseWorld().y) && player.getPlaceQueue().size == 0 && !droppingItem && + !tryBeginMine(cursor) && player.getMineTile() == null) { + player.isShooting = true; + } } + }else if(Inputs.keyTap(section, "deselect") && (recipe != null || mode != none || player.isBuilding())){ + if(recipe == null){ + player.clearBuilding(); + } + + recipe = null; + mode = none; + }else if(Inputs.keyTap(section, "break") && !ui.hasMouse()){ + selectX = cursor.x; + selectY = cursor.y; + mode = breaking; } + if(Inputs.keyRelease(section, "break") || Inputs.keyRelease(section, "select")){ if(mode == placing){ //touch up while placing, place everything in selection diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java index b24de852f4..1dad214006 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -136,6 +136,9 @@ public class SettingsMenuDialog extends SettingsDialog{ game.screenshakePref(); //game.checkPref("smoothcam", true); game.checkPref("effects", true); + if(mobile){ + game.checkPref("autotarget", true); + } //game.sliderPref("sensitivity", 100, 10, 300, i -> i + "%"); game.sliderPref("saveinterval", 60, 10, 5 * 120, i -> Bundles.format("setting.seconds", i)); game.pref(new Setting(){ diff --git a/core/src/io/anuke/mindustry/world/Tile.java b/core/src/io/anuke/mindustry/world/Tile.java index 974830a98d..42e984e58c 100644 --- a/core/src/io/anuke/mindustry/world/Tile.java +++ b/core/src/io/anuke/mindustry/world/Tile.java @@ -43,7 +43,7 @@ public class Tile implements PosTrait, TargetTrait{ private byte team; /** Tile elevation. -1 means slope.*/ private byte elevation; - /** Visibility status: 3 states, but saved as a single bit. 0 = unexplored, 1 = visited, 2 = currently visible (saved as 1)*/ + /** Fog visibility status: 3 states, but saved as a single bit. 0 = unexplored, 1 = visited, 2 = currently visible (saved as 1)*/ private byte visibility; public Tile(int x, int y){