diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 2d06ddcd16..7a7524f8c3 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -49,7 +49,7 @@ public class UnitType extends UnlockableContent{ public boolean destructibleWreck = true; public float groundLayer = Layer.groundUnit; public float sway = 1f; - public int payloadCapacity = 1; + public float payloadCapacity = 1; public int commandLimit = 24; public float visualElevation = -1f; public boolean allowLegStep = false; diff --git a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java index 73ecb3ffe9..08079ba7a7 100644 --- a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java @@ -45,9 +45,11 @@ public class BlockInventoryFragment extends Fragment{ @Remote(called = Loc.server, targets = Loc.both, forward = true) public static void requestItem(Player player, Building tile, Item item, int amount){ if(player == null || tile == null || !tile.interactable(player.team())) return; - amount = Mathf.clamp(amount, 0, player.unit().itemCapacity()); + amount = Math.min(player.unit().maxAccepted(item), amount); int fa = amount; + if(amount == 0) return; + if(net.server() && (!Units.canInteract(player, tile) || !netServer.admins.allowAction(player, ActionType.withdrawItem, tile.tile(), action -> { action.item = item;