From 33d012f9bbd62778452aa7b6ef9f1d7284f6425a Mon Sep 17 00:00:00 2001 From: Iniquit <45113412+Iniquit@users.noreply.github.com> Date: Sat, 31 May 2025 01:22:06 -0400 Subject: [PATCH 1/2] Display payload capacity in the HUD (#10862) --- core/src/mindustry/ui/fragments/HudFragment.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index c604cf2b32..cac1defa52 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -838,8 +838,12 @@ public class HudFragment{ t.add(new SideBar(() -> player.dead() ? 0f : player.unit().healthf(), () -> true, true)).width(bw).growY().padRight(pad); t.image(() -> player.icon()).scaling(Scaling.bounded).grow().maxWidth(54f); - t.add(new SideBar(() -> player.dead() ? 0f : player.displayAmmo() ? player.unit().ammof() : player.unit().healthf(), () -> !player.displayAmmo(), false)).width(bw).growY().padLeft(pad).update(b -> { - b.color.set(player.displayAmmo() ? player.dead() || player.unit() instanceof BlockUnitc ? Pal.ammo : player.unit().type.ammoType.color() : Pal.health); + + Boolp playerHasPayloads = () -> player.unit() instanceof Payloadc pay && !pay.payloads().isEmpty(); + Floatp playerPayloadCapacityUsed = () -> player.unit() instanceof Payloadc pay ? pay.payloadUsed() / player.unit().type().payloadCapacity : 0f; + + t.add(new SideBar(() -> player.dead() ? 0f : player.displayAmmo() ? player.unit().ammof() : playerHasPayloads.get() ? playerPayloadCapacityUsed.get() : player.unit().healthf(), () -> !(player.displayAmmo() || playerHasPayloads.get()), false)).width(bw).growY().padLeft(pad).update(b -> { + b.color.set(player.displayAmmo() ? player.dead() || player.unit() instanceof BlockUnitc ? Pal.ammo : player.unit().type.ammoType.color() : playerHasPayloads.get() ? Pal.items : Pal.health); }); t.getChildren().get(1).toFront(); From 9419f85642d7270d10a2130e96e4f68341bf35b5 Mon Sep 17 00:00:00 2001 From: Iniquit <45113412+Iniquit@users.noreply.github.com> Date: Sat, 31 May 2025 10:18:14 -0400 Subject: [PATCH 2/2] Allow holding the cargo pickup & dropoff key (#10859) Allow holding down the cargo pickup & cargo drop keys to repeatedly pick up or drop off payloads. This takes effect after a short delay so that tapping to pick up or drop off individual payloads is still reliable. --- core/assets/contributors | 1 + core/src/mindustry/input/DesktopInput.java | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/core/assets/contributors b/core/assets/contributors index c8b2ef69de..f5b70d3741 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -181,3 +181,4 @@ IchMagSchokolade MonoChronos RushieWashie ITY +Iniquit diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 877b2c4cf3..21d7026b81 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -56,6 +56,11 @@ public class DesktopInput extends InputHandler{ /** Time of most recent control group selection */ public long lastCtrlGroupSelectMillis; + /** Time of most recent payload pickup/drop key press*/ + public long lastPayloadKeyTapMillis; + /** Time of most recent payload pickup/drop key hold*/ + public long lastPayloadKeyHoldMillis; + private float buildPlanMouseOffsetX, buildPlanMouseOffsetY; private boolean changedCursor; @@ -970,10 +975,26 @@ public class DesktopInput extends InputHandler{ if(unit instanceof Payloadc){ if(Core.input.keyTap(Binding.pickupCargo)){ tryPickupPayload(); + lastPayloadKeyTapMillis = Time.millis(); + } + + if(Core.input.keyDown(Binding.pickupCargo) + && Time.timeSinceMillis(lastPayloadKeyHoldMillis) > 20 + && Time.timeSinceMillis(lastPayloadKeyTapMillis) > 200){ + tryPickupPayload(); + lastPayloadKeyHoldMillis = Time.millis(); } if(Core.input.keyTap(Binding.dropCargo)){ tryDropPayload(); + lastPayloadKeyTapMillis = Time.millis(); + } + + if(Core.input.keyDown(Binding.dropCargo) + && Time.timeSinceMillis(lastPayloadKeyHoldMillis) > 20 + && Time.timeSinceMillis(lastPayloadKeyTapMillis) > 200){ + tryDropPayload(); + lastPayloadKeyHoldMillis = Time.millis(); } } }