diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a5bd363b..a3815cc01 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Refined Storage Changelog +### 0.9 +**Features** +- Added fluid storage +- Usage of Wireless Grid is now configurable + ### 0.8.19 **Bugfixes** - Fixed item duplication bug with External Storage diff --git a/src/main/java/refinedstorage/RefinedStorage.java b/src/main/java/refinedstorage/RefinedStorage.java index 2baebdd51..e9c70edce 100755 --- a/src/main/java/refinedstorage/RefinedStorage.java +++ b/src/main/java/refinedstorage/RefinedStorage.java @@ -81,6 +81,11 @@ public final class RefinedStorage { public int wirelessTransmitterBaseRange; public int wirelessTransmitterRangePerUpgrade; + public boolean wirelessGridUsesEnergy; + public int wirelessGridOpenUsage; + public int wirelessGridExtractUsage; + public int wirelessGridInsertUsage; + public int rangeUpgradeUsage; public int speedUpgradeUsage; public int craftingUpgradeUsage; @@ -128,6 +133,11 @@ public final class RefinedStorage { wirelessTransmitterBaseRange = config.getInt("range", "wirelessTransmitter", 16, 0, Integer.MAX_VALUE, "The base range of the Wireless Transmitter"); wirelessTransmitterRangePerUpgrade = config.getInt("rangePerUpgrade", "wirelessTransmitter", 8, 0, Integer.MAX_VALUE, "The additional range per Range Upgrade in the Wireless Transmitter"); + wirelessGridUsesEnergy = config.getBoolean("usesEnergy", "wirelessGrid", true, "Whether the Wireless Grid uses energy"); + wirelessGridOpenUsage = config.getInt("open", "wirelessGrid", 30, 0, Integer.MAX_VALUE, "The energy used by the Wireless Grid to open"); + wirelessGridInsertUsage = config.getInt("insert", "wirelessGrid", 3, 0, Integer.MAX_VALUE, "The energy used by the Wireless Grid to insert items"); + wirelessGridExtractUsage = config.getInt("extract", "wirelessGrid", 3, 0, Integer.MAX_VALUE, "The energy used by the Wireless Grid to extract items"); + rangeUpgradeUsage = config.getInt("range", "upgrades", 8, 0, Integer.MAX_VALUE, "The additional energy used per Range Upgrade"); speedUpgradeUsage = config.getInt("speed", "upgrades", 2, 0, Integer.MAX_VALUE, "The additional energy used per Speed Upgrade"); craftingUpgradeUsage = config.getInt("crafting", "upgrades", 5, 0, Integer.MAX_VALUE, "The additional energy used per Crafting Upgrade"); diff --git a/src/main/java/refinedstorage/api/network/grid/IItemGridHandler.java b/src/main/java/refinedstorage/api/network/grid/IItemGridHandler.java index a2a59327a..c9a5db79d 100755 --- a/src/main/java/refinedstorage/api/network/grid/IItemGridHandler.java +++ b/src/main/java/refinedstorage/api/network/grid/IItemGridHandler.java @@ -25,19 +25,20 @@ public interface IItemGridHandler { /** * Called when a player tries to insert an item to the grid. * - * @param stack The item we're trying to insert + * @param player The player that is attempting the insert + * @param stack The item we're trying to insert * @return The remainder, or null if there is no remainder */ @Nullable - ItemStack onInsert(ItemStack stack); + ItemStack onInsert(EntityPlayerMP player, ItemStack stack); /** * Called when a player is trying to insert an item that it is holding in their hand in the GUI. * - * @param single If we are only inserting 1 item * @param player The player that is attempting the insert + * @param single If we are only inserting 1 item */ - void onInsertHeldItem(boolean single, EntityPlayerMP player); + void onInsertHeldItem(EntityPlayerMP player, boolean single); /** * Called when a player requested crafting for an item. diff --git a/src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java b/src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java index b203abe1d..15f3d1d97 100755 --- a/src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java +++ b/src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java @@ -2,6 +2,7 @@ package refinedstorage.apiimpl.network; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; import net.minecraft.util.EnumHand; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; @@ -14,10 +15,6 @@ import java.util.Iterator; import java.util.List; public class WirelessGridHandler implements IWirelessGridHandler { - public static final int USAGE_OPEN = 30; - public static final int USAGE_EXTRACT = 3; - public static final int USAGE_INSERT = 3; - private INetworkMaster network; private List consumers = new ArrayList<>(); @@ -55,13 +52,19 @@ public class WirelessGridHandler implements IWirelessGridHandler { return false; } - consumers.add(new WirelessGridConsumer(player, player.getHeldItem(hand))); + ItemStack stack = player.getHeldItem(hand); + + if (RefinedStorage.INSTANCE.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE && RefinedStorageItems.WIRELESS_GRID.getEnergyStored(stack) <= RefinedStorage.INSTANCE.wirelessGridOpenUsage) { + return true; + } + + consumers.add(new WirelessGridConsumer(player, stack)); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, player.worldObj, hand.ordinal(), 0, 0); network.sendItemStorageToClient((EntityPlayerMP) player); - drainEnergy(player, USAGE_OPEN); + drainEnergy(player, RefinedStorage.INSTANCE.wirelessGridOpenUsage); return true; } @@ -79,7 +82,7 @@ public class WirelessGridHandler implements IWirelessGridHandler { public void drainEnergy(EntityPlayer player, int energy) { IWirelessGridConsumer consumer = getConsumer(player); - if (consumer != null) { + if (consumer != null && RefinedStorage.INSTANCE.wirelessGridUsesEnergy) { ItemWirelessGrid item = RefinedStorageItems.WIRELESS_GRID; if (consumer.getStack().getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE) { diff --git a/src/main/java/refinedstorage/apiimpl/network/grid/ItemGridHandler.java b/src/main/java/refinedstorage/apiimpl/network/grid/ItemGridHandler.java index 8a43432ef..282f7f2a5 100755 --- a/src/main/java/refinedstorage/apiimpl/network/grid/ItemGridHandler.java +++ b/src/main/java/refinedstorage/apiimpl/network/grid/ItemGridHandler.java @@ -3,13 +3,13 @@ package refinedstorage.apiimpl.network.grid; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.InventoryHelper; import net.minecraft.item.ItemStack; +import refinedstorage.RefinedStorage; import refinedstorage.api.autocrafting.ICraftingPattern; import refinedstorage.api.autocrafting.ICraftingTask; import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.NetworkUtils; import refinedstorage.api.network.grid.IItemGridHandler; import refinedstorage.api.storage.CompareUtils; -import refinedstorage.apiimpl.network.WirelessGridHandler; public class ItemGridHandler implements IItemGridHandler { public static final int MAX_CRAFTING_PER_REQUEST = 500; @@ -75,17 +75,21 @@ public class ItemGridHandler implements IItemGridHandler { player.updateHeldItem(); } - network.getWirelessGridHandler().drainEnergy(player, WirelessGridHandler.USAGE_EXTRACT); + network.getWirelessGridHandler().drainEnergy(player, RefinedStorage.INSTANCE.wirelessGridExtractUsage); } } @Override - public ItemStack onInsert(ItemStack stack) { - return network.insertItem(stack, stack.stackSize, false); + public ItemStack onInsert(EntityPlayerMP player, ItemStack stack) { + ItemStack remainder = network.insertItem(stack, stack.stackSize, false); + + network.getWirelessGridHandler().drainEnergy(player, RefinedStorage.INSTANCE.wirelessGridInsertUsage); + + return remainder; } @Override - public void onInsertHeldItem(boolean single, EntityPlayerMP player) { + public void onInsertHeldItem(EntityPlayerMP player, boolean single) { if (player.inventory.getItemStack() == null) { return; } @@ -109,7 +113,7 @@ public class ItemGridHandler implements IItemGridHandler { player.updateHeldItem(); - network.getWirelessGridHandler().drainEnergy(player, WirelessGridHandler.USAGE_INSERT); + network.getWirelessGridHandler().drainEnergy(player, RefinedStorage.INSTANCE.wirelessGridInsertUsage); } @Override diff --git a/src/main/java/refinedstorage/container/ContainerGrid.java b/src/main/java/refinedstorage/container/ContainerGrid.java index 353ee34c3..9f366c112 100755 --- a/src/main/java/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/refinedstorage/container/ContainerGrid.java @@ -1,6 +1,7 @@ package refinedstorage.container; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraftforge.items.SlotItemHandler; @@ -108,7 +109,7 @@ public class ContainerGrid extends ContainerBase { ((TileGrid) grid).onCraftedShift(this, player); } else if (slot != patternResultSlot && !(slot instanceof SlotSpecimenLegacy)) { if (grid.getType() != EnumGridType.FLUID && grid.getItemHandler() != null) { - slot.putStack(grid.getItemHandler().onInsert(slot.getStack())); + slot.putStack(grid.getItemHandler().onInsert((EntityPlayerMP) player, slot.getStack())); } else if (grid.getType() == EnumGridType.FLUID && grid.getFluidHandler() != null) { slot.putStack(grid.getFluidHandler().onInsert(slot.getStack())); } diff --git a/src/main/java/refinedstorage/network/MessageGridItemInsertHeld.java b/src/main/java/refinedstorage/network/MessageGridItemInsertHeld.java index 8aee35947..0e3265ee0 100755 --- a/src/main/java/refinedstorage/network/MessageGridItemInsertHeld.java +++ b/src/main/java/refinedstorage/network/MessageGridItemInsertHeld.java @@ -35,7 +35,7 @@ public class MessageGridItemInsertHeld extends MessageHandlerPlayerToServer