diff --git a/core/src/io/anuke/mindustry/game/EventType.java b/core/src/io/anuke/mindustry/game/EventType.java index f631019729..4459e6860c 100644 --- a/core/src/io/anuke/mindustry/game/EventType.java +++ b/core/src/io/anuke/mindustry/game/EventType.java @@ -139,9 +139,19 @@ public class EventType{ } - /** Called when a player withdraws items from a block. Tutorial only.*/ + /** Called when the player withdraws items from a block. */ public static class WithdrawEvent{ + public final Tile tile; + public final Player player; + public final Item item; + public final int amount; + public WithdrawEvent(Tile tile, Player player, Item item, int amount){ + this.tile = tile; + this.player = player; + this.item = item; + this.amount = amount; + } } /** Called when a player deposits items to a block.*/ diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java index 1ea3623790..8dc34edd01 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java @@ -42,6 +42,7 @@ public class BlockInventoryFragment extends Fragment{ int removed = tile.block().removeStack(tile, item, amount); player.addItem(item, removed); + Events.fire(new WithdrawEvent(tile, player, item, amount)); for(int j = 0; j < Mathf.clamp(removed / 3, 1, 8); j++){ Time.run(j * 3f, () -> Call.transferItemEffect(item, tile.drawx(), tile.drawy(), player)); } @@ -100,7 +101,7 @@ public class BlockInventoryFragment extends Fragment{ holding = false; holdTime = 0f; - Events.fire(new WithdrawEvent()); + if(net.client()) Events.fire(new WithdrawEvent(tile, player, lastItem, amount)); } } @@ -153,7 +154,7 @@ public class BlockInventoryFragment extends Fragment{ lastItem = item; holding = true; holdTime = 0f; - Events.fire(new WithdrawEvent()); + if(net.client()) Events.fire(new WithdrawEvent(tile, player, item, amount)); } return true; }