Upgrades now draw extra energy
This commit is contained in:
		| @@ -7,6 +7,9 @@ | |||||||
| - Fixed losing autoselection in Grid when clicking on slot with autoselection mode | - Fixed losing autoselection in Grid when clicking on slot with autoselection mode | ||||||
| - Added a max crafting quantity per request cap (hardcoded to 100) | - Added a max crafting quantity per request cap (hardcoded to 100) | ||||||
|  |  | ||||||
|  | **Features** | ||||||
|  | - Upgrades now draw extra energy | ||||||
|  |  | ||||||
| ### 0.6.1 | ### 0.6.1 | ||||||
| **Bugfixes** | **Bugfixes** | ||||||
| - Fixed NPE on world load | - Fixed NPE on world load | ||||||
|   | |||||||
| @@ -209,10 +209,6 @@ public class RefinedStorageUtils { | |||||||
|         return getSpeed(inventory, 9, 2, 0); |         return getSpeed(inventory, 9, 2, 0); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public static int getSpeed(InventorySimple inventory, int start) { |  | ||||||
|         return getSpeed(inventory, 9, 2, start); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public static int getSpeed(InventorySimple inventory, int speed, int speedIncrease) { |     public static int getSpeed(InventorySimple inventory, int speed, int speedIncrease) { | ||||||
|         return getSpeed(inventory, speed, speedIncrease, 0); |         return getSpeed(inventory, speed, speedIncrease, 0); | ||||||
|     } |     } | ||||||
| @@ -247,6 +243,22 @@ public class RefinedStorageUtils { | |||||||
|         return upgrades; |         return upgrades; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public static int getUpgradeEnergyUsage(InventorySimple inventory) { | ||||||
|  |         return getUpgradeEnergyUsage(inventory, 0); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public static int getUpgradeEnergyUsage(InventorySimple inventory, int start) { | ||||||
|  |         int usage = 0; | ||||||
|  |  | ||||||
|  |         for (int i = start; i < inventory.getSizeInventory(); ++i) { | ||||||
|  |             if (inventory.getStackInSlot(i) != null) { | ||||||
|  |                 usage += ItemUpgrade.getEnergyUsage(inventory.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]; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -25,4 +25,17 @@ public class ItemUpgrade extends ItemBase { | |||||||
|             list.add(new ItemStack(item, 1, i)); |             list.add(new ItemStack(item, 1, i)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public static int getEnergyUsage(int type) { | ||||||
|  |         switch (type) { | ||||||
|  |             case TYPE_RANGE: | ||||||
|  |                 return 8; | ||||||
|  |             case TYPE_SPEED: | ||||||
|  |                 return 2; | ||||||
|  |             case TYPE_CRAFTING: | ||||||
|  |                 return 5; | ||||||
|  |             default: | ||||||
|  |                 return 0; | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ public class TileConstructor extends TileMachine implements ICompareConfig { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return 1; |         return 1 + RefinedStorageUtils.getUpgradeEnergyUsage(upgradesInventory); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -32,15 +32,12 @@ public class TileDestructor extends TileMachine implements ICompareConfig, IMode | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return 1; |         return 1 + RefinedStorageUtils.getUpgradeEnergyUsage(upgradesInventory); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void updateMachine() { |     public void updateMachine() { | ||||||
|         // We check if the controller isn't null here because |         if (ticks % RefinedStorageUtils.getSpeed(upgradesInventory, BASE_SPEED, 4) == 0) { | ||||||
|         // when a destructor faces a storage network block and removes it |  | ||||||
|         // it will essentially remove itself from the network without knowing. |  | ||||||
|         if (controller != null && ticks % RefinedStorageUtils.getSpeed(upgradesInventory, BASE_SPEED, 4) == 0) { |  | ||||||
|             BlockPos front = pos.offset(getDirection()); |             BlockPos front = pos.offset(getDirection()); | ||||||
|  |  | ||||||
|             IBlockState frontBlockState = worldObj.getBlockState(front); |             IBlockState frontBlockState = worldObj.getBlockState(front); | ||||||
| @@ -54,6 +51,9 @@ public class TileDestructor extends TileMachine implements ICompareConfig, IMode | |||||||
|                     worldObj.setBlockToAir(front); |                     worldObj.setBlockToAir(front); | ||||||
|  |  | ||||||
|                     for (ItemStack drop : drops) { |                     for (ItemStack drop : drops) { | ||||||
|  |                         // We check if the controller isn't null here because | ||||||
|  |                         // when a destructor faces a storage network block and removes it | ||||||
|  |                         // it will essentially remove this block from the network without knowing. | ||||||
|                         if (controller != null && !controller.push(drop)) { |                         if (controller != null && !controller.push(drop)) { | ||||||
|                             RefinedStorageUtils.dropStack(worldObj, drop, front.getX(), front.getY(), front.getZ()); |                             RefinedStorageUtils.dropStack(worldObj, drop, front.getX(), front.getY(), front.getZ()); | ||||||
|                         } |                         } | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ public class TileExporter extends TileMachine implements ICompareConfig { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return 2; |         return 2 + RefinedStorageUtils.getUpgradeEnergyUsage(upgradesInventory); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return 2; |         return 2 + RefinedStorageUtils.getUpgradeEnergyUsage(upgradesInventory); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ public class TileInterface extends TileMachine implements ICompareConfig, ISided | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return 4; |         return 4 + RefinedStorageUtils.getUpgradeEnergyUsage(upgradesInventory); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -8,16 +8,16 @@ import net.minecraft.nbt.NBTTagCompound; | |||||||
| import net.minecraft.util.text.ITextComponent; | import net.minecraft.util.text.ITextComponent; | ||||||
| import refinedstorage.RefinedStorageUtils; | import refinedstorage.RefinedStorageUtils; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
|  | import refinedstorage.item.ItemUpgrade; | ||||||
|  |  | ||||||
| public class TileWirelessTransmitter extends TileMachine implements IInventory { | public class TileWirelessTransmitter extends TileMachine implements IInventory { | ||||||
|     public static final int RANGE_PER_UPGRADE = 8; |     public static final int RANGE_PER_UPGRADE = 8; | ||||||
|     public static final int RF_PER_UPGRADE = 8; |  | ||||||
|  |  | ||||||
|     private InventorySimple inventory = new InventorySimple("upgrades", 4, this); |     private InventorySimple inventory = new InventorySimple("upgrades", 4, this); | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return 8 + (getUpgrades() * RF_PER_UPGRADE); |         return 8 + RefinedStorageUtils.getUpgradeEnergyUsage(inventory); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -39,19 +39,7 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public int getRange() { |     public int getRange() { | ||||||
|         return 16 + (getUpgrades() * RANGE_PER_UPGRADE); |         return 16 + (RefinedStorageUtils.getUpgradeCount(inventory, ItemUpgrade.TYPE_RANGE) * RANGE_PER_UPGRADE); | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private int getUpgrades() { |  | ||||||
|         int upgrades = 0; |  | ||||||
|  |  | ||||||
|         for (int i = 0; i < inventory.getSizeInventory(); ++i) { |  | ||||||
|             if (inventory.getStackInSlot(i) != null) { |  | ||||||
|                 upgrades++; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return upgrades; |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ import net.minecraft.world.World; | |||||||
| import refinedstorage.RefinedStorageUtils; | import refinedstorage.RefinedStorageUtils; | ||||||
| import refinedstorage.container.ContainerCrafter; | import refinedstorage.container.ContainerCrafter; | ||||||
| import refinedstorage.inventory.InventorySimple; | import refinedstorage.inventory.InventorySimple; | ||||||
|  | import refinedstorage.item.ItemUpgrade; | ||||||
| import refinedstorage.tile.TileMachine; | import refinedstorage.tile.TileMachine; | ||||||
| import refinedstorage.tile.autocrafting.task.ICraftingTask; | import refinedstorage.tile.autocrafting.task.ICraftingTask; | ||||||
|  |  | ||||||
| @@ -20,7 +21,7 @@ public class TileCrafter extends TileMachine implements IInventory { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public int getEnergyUsage() { |     public int getEnergyUsage() { | ||||||
|         return 2; |         return 2 + RefinedStorageUtils.getUpgradeEnergyUsage(inventory, PATTERN_SLOTS); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -58,19 +59,7 @@ public class TileCrafter extends TileMachine implements IInventory { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public int getSpeed() { |     public int getSpeed() { | ||||||
|         return 20 - (getUpgrades() * 4); |         return 20 - (RefinedStorageUtils.getUpgradeCount(inventory, ItemUpgrade.TYPE_SPEED, PATTERN_SLOTS) * 4); | ||||||
|     } |  | ||||||
|  |  | ||||||
|     private int getUpgrades() { |  | ||||||
|         int upgrades = 0; |  | ||||||
|  |  | ||||||
|         for (int i = PATTERN_SLOTS; i < PATTERN_SLOTS + 4; ++i) { |  | ||||||
|             if (inventory.getStackInSlot(i) != null) { |  | ||||||
|                 upgrades++; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return upgrades; |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Raoul Van den Berge
					Raoul Van den Berge