Move static upgrade helpers in a class with state
This commit is contained in:
		| @@ -21,7 +21,6 @@ import org.apache.commons.lang3.ArrayUtils; | |||||||
| import refinedstorage.api.autocrafting.ICraftingPattern; | import refinedstorage.api.autocrafting.ICraftingPattern; | ||||||
| import refinedstorage.api.network.INetworkMaster; | import refinedstorage.api.network.INetworkMaster; | ||||||
| import refinedstorage.api.storage.CompareFlags; | import refinedstorage.api.storage.CompareFlags; | ||||||
| import refinedstorage.item.ItemUpgrade; |  | ||||||
|  |  | ||||||
| import java.util.HashSet; | import java.util.HashSet; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| @@ -176,48 +175,6 @@ public final class RefinedStorageUtils { | |||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public static int getSpeed(IItemHandler handler) { |  | ||||||
|         return getSpeed(handler, 9, 2); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public static int getSpeed(IItemHandler handler, int speed, int speedIncrease) { |  | ||||||
|         for (int i = 0; i < handler.getSlots(); ++i) { |  | ||||||
|             if (handler.getStackInSlot(i) != null && handler.getStackInSlot(i).getMetadata() == ItemUpgrade.TYPE_SPEED) { |  | ||||||
|                 speed -= speedIncrease; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return speed; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public static boolean hasUpgrade(IItemHandler handler, int type) { |  | ||||||
|         return getUpgradeCount(handler, type) > 0; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public static int getUpgradeCount(IItemHandler handler, int type) { |  | ||||||
|         int upgrades = 0; |  | ||||||
|  |  | ||||||
|         for (int i = 0; i < handler.getSlots(); ++i) { |  | ||||||
|             if (handler.getStackInSlot(i) != null && handler.getStackInSlot(i).getMetadata() == type) { |  | ||||||
|                 upgrades++; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return upgrades; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public static int getUpgradeEnergyUsage(IItemHandler handler) { |  | ||||||
|         int usage = 0; |  | ||||||
|  |  | ||||||
|         for (int i = 0; i < handler.getSlots(); ++i) { |  | ||||||
|             if (handler.getStackInSlot(i) != null) { |  | ||||||
|                 usage += ItemUpgrade.getEnergyUsage(handler.getStackInSlot(i).getMetadata()); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return usage; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public static void writeBooleanArray(NBTTagCompound tag, String name, boolean[] array) { |     public static void writeBooleanArray(NBTTagCompound tag, String name, boolean[] array) { | ||||||
|         int[] intArray = new int[array.length]; |         int[] intArray = new int[array.length]; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -6,7 +6,8 @@ import net.minecraftforge.items.ItemStackHandler; | |||||||
|  |  | ||||||
| public class BasicItemHandler extends ItemStackHandler { | public class BasicItemHandler extends ItemStackHandler { | ||||||
|     private TileEntity tile; |     private TileEntity tile; | ||||||
|     private IItemValidator[] validators; |  | ||||||
|  |     protected IItemValidator[] validators; | ||||||
|  |  | ||||||
|     public BasicItemHandler(int size, TileEntity tile, IItemValidator... validators) { |     public BasicItemHandler(int size, TileEntity tile, IItemValidator... validators) { | ||||||
|         super(size); |         super(size); | ||||||
|   | |||||||
							
								
								
									
										57
									
								
								src/main/java/refinedstorage/inventory/UpgradeItemHandler.java
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										57
									
								
								src/main/java/refinedstorage/inventory/UpgradeItemHandler.java
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,57 @@ | |||||||
|  | package refinedstorage.inventory; | ||||||
|  |  | ||||||
|  | import net.minecraft.tileentity.TileEntity; | ||||||
|  | import refinedstorage.RefinedStorageItems; | ||||||
|  | import refinedstorage.item.ItemUpgrade; | ||||||
|  |  | ||||||
|  | public class UpgradeItemHandler extends BasicItemHandler { | ||||||
|  |     public UpgradeItemHandler(int size, TileEntity tile, int... supportedUpgrades) { | ||||||
|  |         super(size, tile, new IItemValidator[supportedUpgrades.length]); | ||||||
|  |  | ||||||
|  |         for (int i = 0; i < supportedUpgrades.length; ++i) { | ||||||
|  |             this.validators[i] = new BasicItemValidator(RefinedStorageItems.UPGRADE, supportedUpgrades[i]); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getSpeed() { | ||||||
|  |         return getSpeed(9, 2); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getSpeed(int speed, int speedIncrease) { | ||||||
|  |         for (int i = 0; i < getSlots(); ++i) { | ||||||
|  |             if (getStackInSlot(i) != null && getStackInSlot(i).getItemDamage() == ItemUpgrade.TYPE_SPEED) { | ||||||
|  |                 speed -= speedIncrease; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return speed; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public boolean hasUpgrade(int type) { | ||||||
|  |         return getUpgradeCount(type) > 0; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getUpgradeCount(int type) { | ||||||
|  |         int upgrades = 0; | ||||||
|  |  | ||||||
|  |         for (int i = 0; i < getSlots(); ++i) { | ||||||
|  |             if (getStackInSlot(i) != null && getStackInSlot(i).getItemDamage() == type) { | ||||||
|  |                 upgrades++; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return upgrades; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getEnergyUsage() { | ||||||
|  |         int usage = 0; | ||||||
|  |  | ||||||
|  |         for (int i = 0; i < getSlots(); ++i) { | ||||||
|  |             if (getStackInSlot(i) != null) { | ||||||
|  |                 usage += ItemUpgrade.getEnergyUsage(getStackInSlot(i).getItemDamage()); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return usage; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -13,13 +13,12 @@ import net.minecraftforge.common.capabilities.Capability; | |||||||
| import net.minecraftforge.items.CapabilityItemHandler; | import net.minecraftforge.items.CapabilityItemHandler; | ||||||
| import net.minecraftforge.items.IItemHandler; | import net.minecraftforge.items.IItemHandler; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.RefinedStorageItems; |  | ||||||
| import refinedstorage.RefinedStorageUtils; | import refinedstorage.RefinedStorageUtils; | ||||||
| import refinedstorage.apiimpl.autocrafting.CraftingTaskScheduler; | import refinedstorage.apiimpl.autocrafting.CraftingTaskScheduler; | ||||||
| import refinedstorage.container.ContainerConstructor; | import refinedstorage.container.ContainerConstructor; | ||||||
| import refinedstorage.container.slot.SlotSpecimen; | import refinedstorage.container.slot.SlotSpecimen; | ||||||
| import refinedstorage.inventory.BasicItemHandler; | import refinedstorage.inventory.BasicItemHandler; | ||||||
| import refinedstorage.inventory.BasicItemValidator; | import refinedstorage.inventory.UpgradeItemHandler; | ||||||
| import refinedstorage.item.ItemUpgrade; | import refinedstorage.item.ItemUpgrade; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
|  |  | ||||||
| @@ -36,12 +35,7 @@ public class TileConstructor extends TileNode implements ICompareConfig { | |||||||
|             block = SlotSpecimen.getBlockState(worldObj, pos.offset(getDirection()), getStackInSlot(0)); |             block = SlotSpecimen.getBlockState(worldObj, pos.offset(getDirection()), getStackInSlot(0)); | ||||||
|         } |         } | ||||||
|     }; |     }; | ||||||
|     private BasicItemHandler upgrades = new BasicItemHandler( |     private UpgradeItemHandler upgrades = new UpgradeItemHandler(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING); | ||||||
|         4, |  | ||||||
|         this, |  | ||||||
|         new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED), |  | ||||||
|         new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_CRAFTING) |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|     private int compare = 0; |     private int compare = 0; | ||||||
|     private IBlockState block; |     private IBlockState block; | ||||||
| @@ -50,12 +44,12 @@ public class TileConstructor extends TileNode implements ICompareConfig { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return RefinedStorage.INSTANCE.constructorUsage + RefinedStorageUtils.getUpgradeEnergyUsage(upgrades); |         return RefinedStorage.INSTANCE.constructorUsage + upgrades.getEnergyUsage(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void updateNode() { |     public void updateNode() { | ||||||
|         if (block != null && ticks % RefinedStorageUtils.getSpeed(upgrades, BASE_SPEED, 4) == 0) { |         if (block != null && ticks % upgrades.getSpeed(BASE_SPEED, 4) == 0) { | ||||||
|             BlockPos front = pos.offset(getDirection()); |             BlockPos front = pos.offset(getDirection()); | ||||||
|  |  | ||||||
|             if (worldObj.isAirBlock(front) && block.getBlock().canPlaceBlockAt(worldObj, front)) { |             if (worldObj.isAirBlock(front) && block.getBlock().canPlaceBlockAt(worldObj, front)) { | ||||||
| @@ -67,7 +61,7 @@ public class TileConstructor extends TileNode implements ICompareConfig { | |||||||
|                     // From ItemBlock.onItemUse |                     // From ItemBlock.onItemUse | ||||||
|                     SoundType blockSound = block.getBlock().getSoundType(); |                     SoundType blockSound = block.getBlock().getSoundType(); | ||||||
|                     worldObj.playSound(null, front, blockSound.getPlaceSound(), SoundCategory.BLOCKS, (blockSound.getVolume() + 1.0F) / 2.0F, blockSound.getPitch() * 0.8F); |                     worldObj.playSound(null, front, blockSound.getPlaceSound(), SoundCategory.BLOCKS, (blockSound.getVolume() + 1.0F) / 2.0F, blockSound.getPitch() * 0.8F); | ||||||
|                 } else if (RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_CRAFTING)) { |                 } else if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { | ||||||
|                     ItemStack craft = filter.getStackInSlot(0); |                     ItemStack craft = filter.getStackInSlot(0); | ||||||
|  |  | ||||||
|                     if (scheduler.canSchedule(compare, craft)) { |                     if (scheduler.canSchedule(compare, craft)) { | ||||||
|   | |||||||
| @@ -16,8 +16,8 @@ import refinedstorage.api.autocrafting.ICraftingTask; | |||||||
| import refinedstorage.api.network.INetworkMaster; | import refinedstorage.api.network.INetworkMaster; | ||||||
| import refinedstorage.container.ContainerCrafter; | import refinedstorage.container.ContainerCrafter; | ||||||
| import refinedstorage.inventory.BasicItemHandler; | import refinedstorage.inventory.BasicItemHandler; | ||||||
| import refinedstorage.inventory.BasicItemValidator; |  | ||||||
| import refinedstorage.inventory.IItemValidator; | import refinedstorage.inventory.IItemValidator; | ||||||
|  | import refinedstorage.inventory.UpgradeItemHandler; | ||||||
| import refinedstorage.item.ItemPattern; | import refinedstorage.item.ItemPattern; | ||||||
| import refinedstorage.item.ItemUpgrade; | import refinedstorage.item.ItemUpgrade; | ||||||
|  |  | ||||||
| @@ -38,11 +38,11 @@ public class TileCrafter extends TileNode implements ICraftingPatternContainer { | |||||||
|         } |         } | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED)); |     private UpgradeItemHandler upgrades = new UpgradeItemHandler(4, this, ItemUpgrade.TYPE_SPEED); | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         int usage = RefinedStorage.INSTANCE.crafterUsage + RefinedStorageUtils.getUpgradeEnergyUsage(upgrades); |         int usage = RefinedStorage.INSTANCE.crafterUsage + upgrades.getEnergyUsage(); | ||||||
|  |  | ||||||
|         for (int i = 0; i < patterns.getSlots(); ++i) { |         for (int i = 0; i < patterns.getSlots(); ++i) { | ||||||
|             if (patterns.getStackInSlot(i) != null) { |             if (patterns.getStackInSlot(i) != null) { | ||||||
| @@ -95,7 +95,7 @@ public class TileCrafter extends TileNode implements ICraftingPatternContainer { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getSpeed() { |     public int getSpeed() { | ||||||
|         return 20 - (RefinedStorageUtils.getUpgradeCount(upgrades, ItemUpgrade.TYPE_SPEED) * 4); |         return 20 - (upgrades.getUpgradeCount(ItemUpgrade.TYPE_SPEED) * 4); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -13,11 +13,10 @@ import net.minecraftforge.common.capabilities.Capability; | |||||||
| import net.minecraftforge.items.CapabilityItemHandler; | import net.minecraftforge.items.CapabilityItemHandler; | ||||||
| import net.minecraftforge.items.IItemHandler; | import net.minecraftforge.items.IItemHandler; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.RefinedStorageItems; |  | ||||||
| import refinedstorage.RefinedStorageUtils; | import refinedstorage.RefinedStorageUtils; | ||||||
| import refinedstorage.container.ContainerDestructor; | import refinedstorage.container.ContainerDestructor; | ||||||
| import refinedstorage.inventory.BasicItemHandler; | import refinedstorage.inventory.BasicItemHandler; | ||||||
| import refinedstorage.inventory.BasicItemValidator; | import refinedstorage.inventory.UpgradeItemHandler; | ||||||
| import refinedstorage.item.ItemUpgrade; | import refinedstorage.item.ItemUpgrade; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
| import refinedstorage.tile.config.IModeConfig; | import refinedstorage.tile.config.IModeConfig; | ||||||
| @@ -33,23 +32,19 @@ public class TileDestructor extends TileNode implements ICompareConfig, IModeCon | |||||||
|     private static final int BASE_SPEED = 20; |     private static final int BASE_SPEED = 20; | ||||||
|  |  | ||||||
|     private BasicItemHandler filters = new BasicItemHandler(9, this); |     private BasicItemHandler filters = new BasicItemHandler(9, this); | ||||||
|     private BasicItemHandler upgrades = new BasicItemHandler( |     private UpgradeItemHandler upgrades = new UpgradeItemHandler(4, this, ItemUpgrade.TYPE_SPEED); | ||||||
|         4, |  | ||||||
|         this, |  | ||||||
|         new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED) |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|     private int compare = 0; |     private int compare = 0; | ||||||
|     private int mode = ModeConstants.WHITELIST; |     private int mode = ModeConstants.WHITELIST; | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return RefinedStorage.INSTANCE.destructorUsage + RefinedStorageUtils.getUpgradeEnergyUsage(upgrades); |         return RefinedStorage.INSTANCE.destructorUsage + upgrades.getEnergyUsage(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void updateNode() { |     public void updateNode() { | ||||||
|         if (ticks % RefinedStorageUtils.getSpeed(upgrades, BASE_SPEED, 4) == 0) { |         if (ticks % upgrades.getSpeed(BASE_SPEED, 4) == 0) { | ||||||
|             BlockPos front = pos.offset(getDirection()); |             BlockPos front = pos.offset(getDirection()); | ||||||
|  |  | ||||||
|             IBlockState frontBlockState = worldObj.getBlockState(front); |             IBlockState frontBlockState = worldObj.getBlockState(front); | ||||||
|   | |||||||
| @@ -10,12 +10,11 @@ import net.minecraftforge.items.CapabilityItemHandler; | |||||||
| import net.minecraftforge.items.IItemHandler; | import net.minecraftforge.items.IItemHandler; | ||||||
| import net.minecraftforge.items.ItemHandlerHelper; | import net.minecraftforge.items.ItemHandlerHelper; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.RefinedStorageItems; |  | ||||||
| import refinedstorage.RefinedStorageUtils; | import refinedstorage.RefinedStorageUtils; | ||||||
| import refinedstorage.apiimpl.autocrafting.CraftingTaskScheduler; | import refinedstorage.apiimpl.autocrafting.CraftingTaskScheduler; | ||||||
| import refinedstorage.container.ContainerExporter; | import refinedstorage.container.ContainerExporter; | ||||||
| import refinedstorage.inventory.BasicItemHandler; | import refinedstorage.inventory.BasicItemHandler; | ||||||
| import refinedstorage.inventory.BasicItemValidator; | import refinedstorage.inventory.UpgradeItemHandler; | ||||||
| import refinedstorage.item.ItemUpgrade; | import refinedstorage.item.ItemUpgrade; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
|  |  | ||||||
| @@ -23,13 +22,7 @@ public class TileExporter extends TileNode implements ICompareConfig { | |||||||
|     private static final String NBT_COMPARE = "Compare"; |     private static final String NBT_COMPARE = "Compare"; | ||||||
|  |  | ||||||
|     private BasicItemHandler filters = new BasicItemHandler(9, this); |     private BasicItemHandler filters = new BasicItemHandler(9, this); | ||||||
|     private BasicItemHandler upgrades = new BasicItemHandler( |     private UpgradeItemHandler upgrades = new UpgradeItemHandler(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING, ItemUpgrade.TYPE_STACK); | ||||||
|         4, |  | ||||||
|         this, |  | ||||||
|         new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED), |  | ||||||
|         new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_CRAFTING), |  | ||||||
|         new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_STACK) |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|     private int compare = 0; |     private int compare = 0; | ||||||
|  |  | ||||||
| @@ -37,16 +30,16 @@ public class TileExporter extends TileNode implements ICompareConfig { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return RefinedStorage.INSTANCE.exporterUsage + RefinedStorageUtils.getUpgradeEnergyUsage(upgrades); |         return RefinedStorage.INSTANCE.exporterUsage + upgrades.getEnergyUsage(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void updateNode() { |     public void updateNode() { | ||||||
|         IItemHandler handler = RefinedStorageUtils.getItemHandler(getFacingTile(), getDirection().getOpposite()); |         IItemHandler handler = RefinedStorageUtils.getItemHandler(getFacingTile(), getDirection().getOpposite()); | ||||||
|  |  | ||||||
|         int size = RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_STACK) ? 64 : 1; |         int size = upgrades.hasUpgrade(ItemUpgrade.TYPE_STACK) ? 64 : 1; | ||||||
|  |  | ||||||
|         if (handler != null && ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) { |         if (handler != null && ticks % upgrades.getSpeed() == 0) { | ||||||
|             for (int i = 0; i < filters.getSlots(); ++i) { |             for (int i = 0; i < filters.getSlots(); ++i) { | ||||||
|                 ItemStack slot = filters.getStackInSlot(i); |                 ItemStack slot = filters.getStackInSlot(i); | ||||||
|  |  | ||||||
| @@ -61,7 +54,7 @@ public class TileExporter extends TileNode implements ICompareConfig { | |||||||
|                         if (remainder != null) { |                         if (remainder != null) { | ||||||
|                             network.insertItem(remainder, remainder.stackSize, false); |                             network.insertItem(remainder, remainder.stackSize, false); | ||||||
|                         } |                         } | ||||||
|                     } else if (RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_CRAFTING)) { |                     } else if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { | ||||||
|                         if (scheduler.canSchedule(compare, slot)) { |                         if (scheduler.canSchedule(compare, slot)) { | ||||||
|                             scheduler.schedule(network, compare, slot); |                             scheduler.schedule(network, compare, slot); | ||||||
|                         } |                         } | ||||||
|   | |||||||
| @@ -9,11 +9,10 @@ import net.minecraftforge.common.capabilities.Capability; | |||||||
| import net.minecraftforge.items.CapabilityItemHandler; | import net.minecraftforge.items.CapabilityItemHandler; | ||||||
| import net.minecraftforge.items.IItemHandler; | import net.minecraftforge.items.IItemHandler; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.RefinedStorageItems; |  | ||||||
| import refinedstorage.RefinedStorageUtils; | import refinedstorage.RefinedStorageUtils; | ||||||
| import refinedstorage.container.ContainerImporter; | import refinedstorage.container.ContainerImporter; | ||||||
| import refinedstorage.inventory.BasicItemHandler; | import refinedstorage.inventory.BasicItemHandler; | ||||||
| import refinedstorage.inventory.BasicItemValidator; | import refinedstorage.inventory.UpgradeItemHandler; | ||||||
| import refinedstorage.item.ItemUpgrade; | import refinedstorage.item.ItemUpgrade; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
| import refinedstorage.tile.config.IModeConfig; | import refinedstorage.tile.config.IModeConfig; | ||||||
| @@ -25,12 +24,7 @@ public class TileImporter extends TileNode implements ICompareConfig, IModeConfi | |||||||
|     private static final String NBT_MODE = "Mode"; |     private static final String NBT_MODE = "Mode"; | ||||||
|  |  | ||||||
|     private BasicItemHandler filters = new BasicItemHandler(9, this); |     private BasicItemHandler filters = new BasicItemHandler(9, this); | ||||||
|     private BasicItemHandler upgrades = new BasicItemHandler( |     private UpgradeItemHandler upgrades = new UpgradeItemHandler(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK); | ||||||
|         4, |  | ||||||
|         this, |  | ||||||
|         new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED), |  | ||||||
|         new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_STACK) |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|     private int compare = 0; |     private int compare = 0; | ||||||
|     private int mode = ModeConstants.WHITELIST; |     private int mode = ModeConstants.WHITELIST; | ||||||
| @@ -39,7 +33,7 @@ public class TileImporter extends TileNode implements ICompareConfig, IModeConfi | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return RefinedStorage.INSTANCE.importerUsage + RefinedStorageUtils.getUpgradeEnergyUsage(upgrades); |         return RefinedStorage.INSTANCE.importerUsage + upgrades.getEnergyUsage(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -59,8 +53,8 @@ public class TileImporter extends TileNode implements ICompareConfig, IModeConfi | |||||||
|  |  | ||||||
|             if (stack == null || !ModeFilter.respectsMode(filters, this, compare, stack)) { |             if (stack == null || !ModeFilter.respectsMode(filters, this, compare, stack)) { | ||||||
|                 currentSlot++; |                 currentSlot++; | ||||||
|             } else if (ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) { |             } else if (ticks % upgrades.getSpeed() == 0) { | ||||||
|                 int quantity = RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_STACK) ? 64 : 1; |                 int quantity = upgrades.hasUpgrade(ItemUpgrade.TYPE_STACK) ? 64 : 1; | ||||||
|  |  | ||||||
|                 ItemStack result = handler.extractItem(currentSlot, quantity, true); |                 ItemStack result = handler.extractItem(currentSlot, quantity, true); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,11 +10,10 @@ import net.minecraftforge.items.CapabilityItemHandler; | |||||||
| import net.minecraftforge.items.IItemHandler; | import net.minecraftforge.items.IItemHandler; | ||||||
| import net.minecraftforge.items.wrapper.CombinedInvWrapper; | import net.minecraftforge.items.wrapper.CombinedInvWrapper; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.RefinedStorageItems; |  | ||||||
| import refinedstorage.RefinedStorageUtils; | import refinedstorage.RefinedStorageUtils; | ||||||
| import refinedstorage.container.ContainerInterface; | import refinedstorage.container.ContainerInterface; | ||||||
| import refinedstorage.inventory.BasicItemHandler; | import refinedstorage.inventory.BasicItemHandler; | ||||||
| import refinedstorage.inventory.BasicItemValidator; | import refinedstorage.inventory.UpgradeItemHandler; | ||||||
| import refinedstorage.item.ItemUpgrade; | import refinedstorage.item.ItemUpgrade; | ||||||
| import refinedstorage.tile.config.ICompareConfig; | import refinedstorage.tile.config.ICompareConfig; | ||||||
|  |  | ||||||
| @@ -24,12 +23,7 @@ public class TileInterface extends TileNode implements ICompareConfig { | |||||||
|     private BasicItemHandler importItems = new BasicItemHandler(9, this); |     private BasicItemHandler importItems = new BasicItemHandler(9, this); | ||||||
|     private BasicItemHandler exportSpecimenItems = new BasicItemHandler(9, this); |     private BasicItemHandler exportSpecimenItems = new BasicItemHandler(9, this); | ||||||
|     private BasicItemHandler exportItems = new BasicItemHandler(9, this); |     private BasicItemHandler exportItems = new BasicItemHandler(9, this); | ||||||
|     private BasicItemHandler upgrades = new BasicItemHandler( |     private UpgradeItemHandler upgrades = new UpgradeItemHandler(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK); | ||||||
|         4, |  | ||||||
|         this, |  | ||||||
|         new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED), |  | ||||||
|         new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_STACK) |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|     private int compare = 0; |     private int compare = 0; | ||||||
|  |  | ||||||
| @@ -37,7 +31,7 @@ public class TileInterface extends TileNode implements ICompareConfig { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return RefinedStorage.INSTANCE.interfaceUsage + RefinedStorageUtils.getUpgradeEnergyUsage(upgrades); |         return RefinedStorage.INSTANCE.interfaceUsage + upgrades.getEnergyUsage(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -50,8 +44,8 @@ public class TileInterface extends TileNode implements ICompareConfig { | |||||||
|  |  | ||||||
|         if (slot == null) { |         if (slot == null) { | ||||||
|             currentSlot++; |             currentSlot++; | ||||||
|         } else if (ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) { |         } else if (ticks % upgrades.getSpeed() == 0) { | ||||||
|             int size = Math.min(slot.stackSize, RefinedStorageUtils.hasUpgrade(upgrades, ItemUpgrade.TYPE_STACK) ? 64 : 1); |             int size = Math.min(slot.stackSize, upgrades.hasUpgrade(ItemUpgrade.TYPE_STACK) ? 64 : 1); | ||||||
|  |  | ||||||
|             ItemStack remainder = network.insertItem(slot, size, false); |             ItemStack remainder = network.insertItem(slot, size, false); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,15 +9,14 @@ import net.minecraftforge.items.CapabilityItemHandler; | |||||||
| import net.minecraftforge.items.IItemHandler; | import net.minecraftforge.items.IItemHandler; | ||||||
| import net.minecraftforge.items.wrapper.CombinedInvWrapper; | import net.minecraftforge.items.wrapper.CombinedInvWrapper; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.RefinedStorageItems; |  | ||||||
| import refinedstorage.RefinedStorageUtils; | import refinedstorage.RefinedStorageUtils; | ||||||
| import refinedstorage.api.RefinedStorageAPI; | import refinedstorage.api.RefinedStorageAPI; | ||||||
| import refinedstorage.api.network.INetworkMaster; | import refinedstorage.api.network.INetworkMaster; | ||||||
| import refinedstorage.api.solderer.ISoldererRecipe; | import refinedstorage.api.solderer.ISoldererRecipe; | ||||||
| import refinedstorage.container.ContainerSolderer; | import refinedstorage.container.ContainerSolderer; | ||||||
| import refinedstorage.inventory.BasicItemHandler; | import refinedstorage.inventory.BasicItemHandler; | ||||||
| import refinedstorage.inventory.BasicItemValidator; |  | ||||||
| import refinedstorage.inventory.SoldererItemHandler; | import refinedstorage.inventory.SoldererItemHandler; | ||||||
|  | import refinedstorage.inventory.UpgradeItemHandler; | ||||||
| import refinedstorage.item.ItemUpgrade; | import refinedstorage.item.ItemUpgrade; | ||||||
|  |  | ||||||
| public class TileSolderer extends TileNode { | public class TileSolderer extends TileNode { | ||||||
| @@ -25,7 +24,7 @@ public class TileSolderer extends TileNode { | |||||||
|     private static final String NBT_PROGRESS = "Progress"; |     private static final String NBT_PROGRESS = "Progress"; | ||||||
|  |  | ||||||
|     private BasicItemHandler items = new BasicItemHandler(4, this); |     private BasicItemHandler items = new BasicItemHandler(4, this); | ||||||
|     private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED)); |     private UpgradeItemHandler upgrades = new UpgradeItemHandler(4, this, ItemUpgrade.TYPE_SPEED); | ||||||
|     private SoldererItemHandler[] itemsFacade = new SoldererItemHandler[EnumFacing.values().length]; |     private SoldererItemHandler[] itemsFacade = new SoldererItemHandler[EnumFacing.values().length]; | ||||||
|  |  | ||||||
|     private ISoldererRecipe recipe; |     private ISoldererRecipe recipe; | ||||||
| @@ -36,7 +35,7 @@ public class TileSolderer extends TileNode { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return RefinedStorage.INSTANCE.soldererUsage + RefinedStorageUtils.getUpgradeEnergyUsage(upgrades); |         return RefinedStorage.INSTANCE.soldererUsage + upgrades.getEnergyUsage(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -61,7 +60,7 @@ public class TileSolderer extends TileNode { | |||||||
|                     markDirty(); |                     markDirty(); | ||||||
|                 } |                 } | ||||||
|             } else if (working) { |             } else if (working) { | ||||||
|                 progress += 1 + RefinedStorageUtils.getUpgradeCount(upgrades, ItemUpgrade.TYPE_SPEED); |                 progress += 1 + upgrades.getUpgradeCount(ItemUpgrade.TYPE_SPEED); | ||||||
|  |  | ||||||
|                 if (progress >= recipe.getDuration()) { |                 if (progress >= recipe.getDuration()) { | ||||||
|                     if (items.getStackInSlot(3) != null) { |                     if (items.getStackInSlot(3) != null) { | ||||||
|   | |||||||
| @@ -8,20 +8,19 @@ import net.minecraftforge.common.capabilities.Capability; | |||||||
| import net.minecraftforge.items.CapabilityItemHandler; | import net.minecraftforge.items.CapabilityItemHandler; | ||||||
| import net.minecraftforge.items.IItemHandler; | import net.minecraftforge.items.IItemHandler; | ||||||
| import refinedstorage.RefinedStorage; | import refinedstorage.RefinedStorage; | ||||||
| import refinedstorage.RefinedStorageItems; |  | ||||||
| import refinedstorage.RefinedStorageUtils; | import refinedstorage.RefinedStorageUtils; | ||||||
| import refinedstorage.api.network.IWirelessTransmitter; | import refinedstorage.api.network.IWirelessTransmitter; | ||||||
| import refinedstorage.container.ContainerWirelessTransmitter; | import refinedstorage.container.ContainerWirelessTransmitter; | ||||||
| import refinedstorage.inventory.BasicItemHandler; | import refinedstorage.inventory.BasicItemHandler; | ||||||
| import refinedstorage.inventory.BasicItemValidator; | import refinedstorage.inventory.UpgradeItemHandler; | ||||||
| import refinedstorage.item.ItemUpgrade; | import refinedstorage.item.ItemUpgrade; | ||||||
|  |  | ||||||
| public class TileWirelessTransmitter extends TileNode implements IWirelessTransmitter { | public class TileWirelessTransmitter extends TileNode implements IWirelessTransmitter { | ||||||
|     private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_RANGE)); |     private UpgradeItemHandler upgrades = new UpgradeItemHandler(4, this, ItemUpgrade.TYPE_RANGE); | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return RefinedStorage.INSTANCE.wirelessTransmitterUsage + RefinedStorageUtils.getUpgradeEnergyUsage(upgrades); |         return RefinedStorage.INSTANCE.wirelessTransmitterUsage + upgrades.getEnergyUsage(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -46,7 +45,7 @@ public class TileWirelessTransmitter extends TileNode implements IWirelessTransm | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getRange() { |     public int getRange() { | ||||||
|         return RefinedStorage.INSTANCE.wirelessTransmitterBaseRange + (RefinedStorageUtils.getUpgradeCount(upgrades, ItemUpgrade.TYPE_RANGE) * RefinedStorage.INSTANCE.wirelessTransmitterRangePerUpgrade); |         return RefinedStorage.INSTANCE.wirelessTransmitterBaseRange + (upgrades.getUpgradeCount(ItemUpgrade.TYPE_RANGE) * RefinedStorage.INSTANCE.wirelessTransmitterRangePerUpgrade); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Raoul Van den Berge
					Raoul Van den Berge