Make wireless grid usage configurable, fixes #263
This commit is contained in:
@@ -1,5 +1,10 @@
|
|||||||
# Refined Storage Changelog
|
# Refined Storage Changelog
|
||||||
|
|
||||||
|
### 0.9
|
||||||
|
**Features**
|
||||||
|
- Added fluid storage
|
||||||
|
- Usage of Wireless Grid is now configurable
|
||||||
|
|
||||||
### 0.8.19
|
### 0.8.19
|
||||||
**Bugfixes**
|
**Bugfixes**
|
||||||
- Fixed item duplication bug with External Storage
|
- Fixed item duplication bug with External Storage
|
||||||
|
|||||||
@@ -81,6 +81,11 @@ public final class RefinedStorage {
|
|||||||
public int wirelessTransmitterBaseRange;
|
public int wirelessTransmitterBaseRange;
|
||||||
public int wirelessTransmitterRangePerUpgrade;
|
public int wirelessTransmitterRangePerUpgrade;
|
||||||
|
|
||||||
|
public boolean wirelessGridUsesEnergy;
|
||||||
|
public int wirelessGridOpenUsage;
|
||||||
|
public int wirelessGridExtractUsage;
|
||||||
|
public int wirelessGridInsertUsage;
|
||||||
|
|
||||||
public int rangeUpgradeUsage;
|
public int rangeUpgradeUsage;
|
||||||
public int speedUpgradeUsage;
|
public int speedUpgradeUsage;
|
||||||
public int craftingUpgradeUsage;
|
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");
|
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");
|
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");
|
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");
|
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");
|
craftingUpgradeUsage = config.getInt("crafting", "upgrades", 5, 0, Integer.MAX_VALUE, "The additional energy used per Crafting Upgrade");
|
||||||
|
|||||||
@@ -25,19 +25,20 @@ public interface IItemGridHandler {
|
|||||||
/**
|
/**
|
||||||
* Called when a player tries to insert an item to the grid.
|
* 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
|
* @return The remainder, or null if there is no remainder
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@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.
|
* 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 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.
|
* Called when a player requested crafting for an item.
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package refinedstorage.apiimpl.network;
|
|||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.player.EntityPlayerMP;
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.EnumHand;
|
import net.minecraft.util.EnumHand;
|
||||||
import refinedstorage.RefinedStorage;
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.RefinedStorageGui;
|
import refinedstorage.RefinedStorageGui;
|
||||||
@@ -14,10 +15,6 @@ import java.util.Iterator;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class WirelessGridHandler implements IWirelessGridHandler {
|
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 INetworkMaster network;
|
||||||
|
|
||||||
private List<IWirelessGridConsumer> consumers = new ArrayList<>();
|
private List<IWirelessGridConsumer> consumers = new ArrayList<>();
|
||||||
@@ -55,13 +52,19 @@ public class WirelessGridHandler implements IWirelessGridHandler {
|
|||||||
return false;
|
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);
|
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, player.worldObj, hand.ordinal(), 0, 0);
|
||||||
|
|
||||||
network.sendItemStorageToClient((EntityPlayerMP) player);
|
network.sendItemStorageToClient((EntityPlayerMP) player);
|
||||||
|
|
||||||
drainEnergy(player, USAGE_OPEN);
|
drainEnergy(player, RefinedStorage.INSTANCE.wirelessGridOpenUsage);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -79,7 +82,7 @@ public class WirelessGridHandler implements IWirelessGridHandler {
|
|||||||
public void drainEnergy(EntityPlayer player, int energy) {
|
public void drainEnergy(EntityPlayer player, int energy) {
|
||||||
IWirelessGridConsumer consumer = getConsumer(player);
|
IWirelessGridConsumer consumer = getConsumer(player);
|
||||||
|
|
||||||
if (consumer != null) {
|
if (consumer != null && RefinedStorage.INSTANCE.wirelessGridUsesEnergy) {
|
||||||
ItemWirelessGrid item = RefinedStorageItems.WIRELESS_GRID;
|
ItemWirelessGrid item = RefinedStorageItems.WIRELESS_GRID;
|
||||||
|
|
||||||
if (consumer.getStack().getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE) {
|
if (consumer.getStack().getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE) {
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ package refinedstorage.apiimpl.network.grid;
|
|||||||
import net.minecraft.entity.player.EntityPlayerMP;
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
import net.minecraft.inventory.InventoryHelper;
|
import net.minecraft.inventory.InventoryHelper;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.api.autocrafting.ICraftingPattern;
|
import refinedstorage.api.autocrafting.ICraftingPattern;
|
||||||
import refinedstorage.api.autocrafting.ICraftingTask;
|
import refinedstorage.api.autocrafting.ICraftingTask;
|
||||||
import refinedstorage.api.network.INetworkMaster;
|
import refinedstorage.api.network.INetworkMaster;
|
||||||
import refinedstorage.api.network.NetworkUtils;
|
import refinedstorage.api.network.NetworkUtils;
|
||||||
import refinedstorage.api.network.grid.IItemGridHandler;
|
import refinedstorage.api.network.grid.IItemGridHandler;
|
||||||
import refinedstorage.api.storage.CompareUtils;
|
import refinedstorage.api.storage.CompareUtils;
|
||||||
import refinedstorage.apiimpl.network.WirelessGridHandler;
|
|
||||||
|
|
||||||
public class ItemGridHandler implements IItemGridHandler {
|
public class ItemGridHandler implements IItemGridHandler {
|
||||||
public static final int MAX_CRAFTING_PER_REQUEST = 500;
|
public static final int MAX_CRAFTING_PER_REQUEST = 500;
|
||||||
@@ -75,17 +75,21 @@ public class ItemGridHandler implements IItemGridHandler {
|
|||||||
player.updateHeldItem();
|
player.updateHeldItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
network.getWirelessGridHandler().drainEnergy(player, WirelessGridHandler.USAGE_EXTRACT);
|
network.getWirelessGridHandler().drainEnergy(player, RefinedStorage.INSTANCE.wirelessGridExtractUsage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack onInsert(ItemStack stack) {
|
public ItemStack onInsert(EntityPlayerMP player, ItemStack stack) {
|
||||||
return network.insertItem(stack, stack.stackSize, false);
|
ItemStack remainder = network.insertItem(stack, stack.stackSize, false);
|
||||||
|
|
||||||
|
network.getWirelessGridHandler().drainEnergy(player, RefinedStorage.INSTANCE.wirelessGridInsertUsage);
|
||||||
|
|
||||||
|
return remainder;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInsertHeldItem(boolean single, EntityPlayerMP player) {
|
public void onInsertHeldItem(EntityPlayerMP player, boolean single) {
|
||||||
if (player.inventory.getItemStack() == null) {
|
if (player.inventory.getItemStack() == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -109,7 +113,7 @@ public class ItemGridHandler implements IItemGridHandler {
|
|||||||
|
|
||||||
player.updateHeldItem();
|
player.updateHeldItem();
|
||||||
|
|
||||||
network.getWirelessGridHandler().drainEnergy(player, WirelessGridHandler.USAGE_INSERT);
|
network.getWirelessGridHandler().drainEnergy(player, RefinedStorage.INSTANCE.wirelessGridInsertUsage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package refinedstorage.container;
|
package refinedstorage.container;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.items.SlotItemHandler;
|
import net.minecraftforge.items.SlotItemHandler;
|
||||||
@@ -108,7 +109,7 @@ public class ContainerGrid extends ContainerBase {
|
|||||||
((TileGrid) grid).onCraftedShift(this, player);
|
((TileGrid) grid).onCraftedShift(this, player);
|
||||||
} else if (slot != patternResultSlot && !(slot instanceof SlotSpecimenLegacy)) {
|
} else if (slot != patternResultSlot && !(slot instanceof SlotSpecimenLegacy)) {
|
||||||
if (grid.getType() != EnumGridType.FLUID && grid.getItemHandler() != null) {
|
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) {
|
} else if (grid.getType() == EnumGridType.FLUID && grid.getFluidHandler() != null) {
|
||||||
slot.putStack(grid.getFluidHandler().onInsert(slot.getStack()));
|
slot.putStack(grid.getFluidHandler().onInsert(slot.getStack()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class MessageGridItemInsertHeld extends MessageHandlerPlayerToServer<Mess
|
|||||||
IItemGridHandler handler = ((ContainerGrid) container).getGrid().getItemHandler();
|
IItemGridHandler handler = ((ContainerGrid) container).getGrid().getItemHandler();
|
||||||
|
|
||||||
if (handler != null) {
|
if (handler != null) {
|
||||||
handler.onInsertHeldItem(message.single, player);
|
handler.onInsertHeldItem(player, message.single);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user