diff --git a/CHANGELOG.md b/CHANGELOG.md index c70f01700..ecb9fe7b2 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Refined Storage Changelog +### 1.5.13 +- Fixed Wireless Fluid Grid not using up energy (raoulvdberge) + ### 1.5.12 - The Network Transmitter now uses 1 FE/t per block instead of 4 FE/t (raoulvdberge) - Added additional API for grids (raoulvdberge) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/item/INetworkItem.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/item/INetworkItem.java index fd21dc1f0..b5fa00456 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/network/item/INetworkItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/item/INetworkItem.java @@ -26,4 +26,6 @@ public interface INetworkItem { * @return true if the network item can be opened, false otherwise */ boolean onOpen(INetwork network, EntityPlayer player, World controllerWorld, EnumHand hand); + + void onAction(NetworkItemAction action); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/item/NetworkItemAction.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/item/NetworkItemAction.java new file mode 100644 index 000000000..ac9e3f2e2 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/item/NetworkItemAction.java @@ -0,0 +1,10 @@ +package com.raoulvdberge.refinedstorage.api.network.item; + +public enum NetworkItemAction { + ITEM_INSERTED, + ITEM_EXTRACTED, + FLUID_INSERTED, + FLUID_EXTRACTED, + CRAFTING_TASK_CANCELLED, + CRAFTING_TASK_ALL_CANCELLED +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java index b27f0ad08..9aed443c2 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java @@ -2,6 +2,8 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler; +import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; +import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction; import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.util.StackUtils; @@ -63,6 +65,12 @@ public class FluidGridHandler implements IFluidGridHandler { player.inventory.setItemStack(fluidHandler.getContainer()); player.updateHeldItem(); } + + INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); + + if (networkItem != null) { + networkItem.onAction(NetworkItemAction.FLUID_EXTRACTED); + } } } } @@ -81,6 +89,12 @@ public class FluidGridHandler implements IFluidGridHandler { network.insertFluid(result.getValue(), result.getValue().amount, false); + INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); + + if (networkItem != null) { + networkItem.onAction(NetworkItemAction.FLUID_INSERTED); + } + return result.getLeft(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java index fbaf08153..7b1859eab 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java @@ -7,12 +7,11 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; +import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction; import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.api.util.IStackList; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask; -import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessCraftingMonitor; -import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessGrid; import com.raoulvdberge.refinedstorage.network.MessageGridCraftingPreviewResponse; import com.raoulvdberge.refinedstorage.network.MessageGridCraftingStartResponse; import com.raoulvdberge.refinedstorage.util.StackUtils; @@ -94,8 +93,8 @@ public class ItemGridHandler implements IItemGridHandler { INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); - if (networkItem != null && networkItem instanceof NetworkItemWirelessGrid) { - ((NetworkItemWirelessGrid) networkItem).drainEnergy(((NetworkItemWirelessGrid) networkItem).getExtractUsage()); + if (networkItem != null) { + networkItem.onAction(NetworkItemAction.ITEM_EXTRACTED); } } } @@ -110,8 +109,8 @@ public class ItemGridHandler implements IItemGridHandler { INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); - if (networkItem != null && networkItem instanceof NetworkItemWirelessGrid) { - ((NetworkItemWirelessGrid) networkItem).drainEnergy(((NetworkItemWirelessGrid) networkItem).getInsertUsage()); + if (networkItem != null) { + networkItem.onAction(NetworkItemAction.ITEM_INSERTED); } return remainder; @@ -144,8 +143,8 @@ public class ItemGridHandler implements IItemGridHandler { INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); - if (networkItem != null && networkItem instanceof NetworkItemWirelessGrid) { - ((NetworkItemWirelessGrid) networkItem).drainEnergy(((NetworkItemWirelessGrid) networkItem).getInsertUsage()); + if (networkItem != null) { + networkItem.onAction(NetworkItemAction.ITEM_INSERTED); } } @@ -226,8 +225,8 @@ public class ItemGridHandler implements IItemGridHandler { INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); - if (networkItem != null && networkItem instanceof NetworkItemWirelessCraftingMonitor) { - ((NetworkItemWirelessCraftingMonitor) networkItem).drainEnergy(id == -1 ? RS.INSTANCE.config.wirelessCraftingMonitorCancelAllUsage : RS.INSTANCE.config.wirelessCraftingMonitorCancelUsage); + if (networkItem != null) { + networkItem.onAction(id == -1 ? NetworkItemAction.CRAFTING_TASK_ALL_CANCELLED : NetworkItemAction.CRAFTING_TASK_CANCELLED); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessCraftingMonitor.java index ff038cf23..61338b6de 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessCraftingMonitor.java @@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; +import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction; import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor; import com.raoulvdberge.refinedstorage.util.WorldUtils; @@ -53,7 +54,19 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem { return true; } - public void drainEnergy(int energy) { + @Override + public void onAction(NetworkItemAction action) { + switch (action) { + case CRAFTING_TASK_CANCELLED: + drainEnergy(RS.INSTANCE.config.wirelessCraftingMonitorCancelUsage); + break; + case CRAFTING_TASK_ALL_CANCELLED: + drainEnergy(RS.INSTANCE.config.wirelessCraftingMonitorCancelAllUsage); + break; + } + } + + private void drainEnergy(int energy) { if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE) { IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java index 4049ce48b..e48000b1d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java @@ -4,6 +4,7 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; +import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction; import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid; @@ -54,7 +55,19 @@ public class NetworkItemWirelessFluidGrid implements INetworkItem { return true; } - public void drainEnergy(int energy) { + @Override + public void onAction(NetworkItemAction action) { + switch (action) { + case FLUID_INSERTED: + drainEnergy(RS.INSTANCE.config.wirelessFluidGridInsertUsage); + break; + case FLUID_EXTRACTED: + drainEnergy(RS.INSTANCE.config.wirelessFluidGridExtractUsage); + break; + } + } + + private void drainEnergy(int energy) { if (RS.INSTANCE.config.wirelessFluidGridUsesEnergy && stack.getItemDamage() != ItemWirelessFluidGrid.TYPE_CREATIVE) { IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java index 17449afaf..ede436983 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java @@ -4,6 +4,7 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; +import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction; import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid; @@ -18,9 +19,9 @@ import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; public class NetworkItemWirelessGrid implements INetworkItem { - protected INetworkItemHandler handler; + private INetworkItemHandler handler; private EntityPlayer player; - protected ItemStack stack; + private ItemStack stack; public NetworkItemWirelessGrid(INetworkItemHandler handler, EntityPlayer player, ItemStack stack) { this.handler = handler; @@ -54,7 +55,19 @@ public class NetworkItemWirelessGrid implements INetworkItem { return true; } - public void drainEnergy(int energy) { + @Override + public void onAction(NetworkItemAction action) { + switch (action) { + case ITEM_INSERTED: + drainEnergy(RS.INSTANCE.config.wirelessGridInsertUsage); + break; + case ITEM_EXTRACTED: + drainEnergy(RS.INSTANCE.config.wirelessGridExtractUsage); + break; + } + } + + private void drainEnergy(int energy) { if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE) { IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null); @@ -67,12 +80,4 @@ public class NetworkItemWirelessGrid implements INetworkItem { } } } - - public int getInsertUsage() { - return RS.INSTANCE.config.wirelessGridInsertUsage; - } - - public int getExtractUsage() { - return RS.INSTANCE.config.wirelessGridExtractUsage; - } } \ No newline at end of file