From 52efdac61458347b964db27b28248c439f0bc26a Mon Sep 17 00:00:00 2001 From: "Aidan C. Brady" Date: Wed, 23 Jul 2014 10:17:03 -0400 Subject: [PATCH] Eliminated the deprecated "getSpeedMultiplier()" and "getEnergyMultiplier()" methods --- .../mekanism/common/IUpgradeManagement.java | 44 ---------- .../java/mekanism/common/IUpgradeTile.java | 2 +- src/main/java/mekanism/common/Upgrade.java | 4 +- .../mekanism/common/block/BlockMachine.java | 3 +- .../common/item/ItemBlockMachine.java | 88 +------------------ .../common/recipe/MekanismRecipe.java | 28 +++--- .../common/tile/TileEntityBasicMachine.java | 34 ------- .../tile/TileEntityChemicalCrystallizer.java | 33 ------- .../TileEntityChemicalDissolutionChamber.java | 33 ------- .../tile/TileEntityChemicalOxidizer.java | 33 ------- .../common/tile/TileEntityDigitalMiner.java | 33 ------- .../common/tile/TileEntityFactory.java | 43 ++------- .../tile/TileEntityMetallurgicInfuser.java | 33 ------- .../mekanism/common/util/MekanismUtils.java | 21 +++-- 14 files changed, 42 insertions(+), 390 deletions(-) delete mode 100644 src/main/java/mekanism/common/IUpgradeManagement.java diff --git a/src/main/java/mekanism/common/IUpgradeManagement.java b/src/main/java/mekanism/common/IUpgradeManagement.java deleted file mode 100644 index afe50ecd2..000000000 --- a/src/main/java/mekanism/common/IUpgradeManagement.java +++ /dev/null @@ -1,44 +0,0 @@ -package mekanism.common; - -/** - * Implement this if your block or item can store Mekanism-based upgrades. - * @author AidanBrady - * - */ -public interface IUpgradeManagement -{ - /** - * Gets the energy multiplier from an item or block. - * @param data - ItemStack parameter if getting from an item - * @return energy multiplier - */ - public int getEnergyMultiplier(Object... data); - - /** - * Sets the energy multiplier of an item or block. - * @param multiplier - new multiplier - * @param data - ItemStack parameter if getting from an item - */ - public void setEnergyMultiplier(int multiplier, Object... data); - - /** - * Gets the speed multiplier from an item or block. - * @param data - ItemStack parameter if getting from an item - * @return speed multiplier - */ - public int getSpeedMultiplier(Object... data); - - /** - * Sets the speed multiplier of an item or block. - * @param multiplier - new multiplier - * @param data - ItemStack parameter if getting from an item - */ - public void setSpeedMultiplier(int multiplier, Object... data); - - /** - * Whether or not this item or block supports upgrades. - * @param data - ItemStack parameter if getting from an item - * @return if the item or block supports upgrades - */ - public boolean supportsUpgrades(Object... data); -} diff --git a/src/main/java/mekanism/common/IUpgradeTile.java b/src/main/java/mekanism/common/IUpgradeTile.java index 98e1d3cb5..b7df6bf01 100644 --- a/src/main/java/mekanism/common/IUpgradeTile.java +++ b/src/main/java/mekanism/common/IUpgradeTile.java @@ -2,7 +2,7 @@ package mekanism.common; import mekanism.common.tile.component.TileComponentUpgrade; -public interface IUpgradeTile extends IUpgradeManagement +public interface IUpgradeTile { public TileComponentUpgrade getComponent(); } diff --git a/src/main/java/mekanism/common/Upgrade.java b/src/main/java/mekanism/common/Upgrade.java index 9ff6f88c1..881fb5693 100644 --- a/src/main/java/mekanism/common/Upgrade.java +++ b/src/main/java/mekanism/common/Upgrade.java @@ -45,7 +45,7 @@ public enum Upgrade public EnumColor getColor() { return color; - } + } public boolean canMultiply() { @@ -69,7 +69,7 @@ public enum Upgrade { Map upgrades = new HashMap(); - if(nbtTags.hasKey("upgrades")) + if(nbtTags != null && nbtTags.hasKey("upgrades")) { NBTTagList list = nbtTags.getTagList("upgrades", NBT.TAG_COMPOUND); diff --git a/src/main/java/mekanism/common/block/BlockMachine.java b/src/main/java/mekanism/common/block/BlockMachine.java index df400d9ae..ae62106cf 100644 --- a/src/main/java/mekanism/common/block/BlockMachine.java +++ b/src/main/java/mekanism/common/block/BlockMachine.java @@ -16,7 +16,6 @@ import mekanism.common.IRedstoneControl; import mekanism.common.ISpecialBounds; import mekanism.common.ISustainedInventory; import mekanism.common.ISustainedTank; -import mekanism.common.IUpgradeManagement; import mekanism.common.IUpgradeTile; import mekanism.common.ItemAttacher; import mekanism.common.Mekanism; @@ -1013,7 +1012,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer itemStack.setTagCompound(new NBTTagCompound()); } - if(((IUpgradeManagement)itemStack.getItem()).supportsUpgrades(itemStack)) + if(tileEntity instanceof IUpgradeTile) { ((IUpgradeTile)tileEntity).getComponent().write(itemStack.stackTagCompound); } diff --git a/src/main/java/mekanism/common/item/ItemBlockMachine.java b/src/main/java/mekanism/common/item/ItemBlockMachine.java index 6f9da9f79..81e13b300 100644 --- a/src/main/java/mekanism/common/item/ItemBlockMachine.java +++ b/src/main/java/mekanism/common/item/ItemBlockMachine.java @@ -21,7 +21,6 @@ import mekanism.common.IRedstoneControl; import mekanism.common.IRedstoneControl.RedstoneControl; import mekanism.common.ISustainedInventory; import mekanism.common.ISustainedTank; -import mekanism.common.IUpgradeManagement; import mekanism.common.IUpgradeTile; import mekanism.common.Mekanism; import mekanism.common.Upgrade; @@ -112,7 +111,7 @@ import cpw.mods.fml.relauncher.SideOnly; @Interface(iface = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHAPI|energy"), @Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = "IC2API") }) -public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpecialElectricItem, IUpgradeManagement, IFactory, ISustainedInventory, ISustainedTank, IElectricChest, IEnergyContainerItem, IFluidContainerItem +public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpecialElectricItem, IFactory, ISustainedInventory, ISustainedTank, IElectricChest, IEnergyContainerItem, IFluidContainerItem { public Block metaBlock; @@ -189,7 +188,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec list.add(EnumColor.AQUA + MekanismUtils.localize("tooltip.inventory") + ": " + EnumColor.GREY + LangUtils.transYesNo(getInventory(itemstack) != null && getInventory(itemstack).tagCount() != 0)); } - if(supportsUpgrades(itemstack) && itemstack.stackTagCompound != null && itemstack.stackTagCompound.hasKey("upgrades")) + if(type.supportsUpgrades && itemstack.stackTagCompound != null && itemstack.stackTagCompound.hasKey("upgrades")) { Map upgrades = Upgrade.buildMap(itemstack.stackTagCompound); @@ -498,87 +497,6 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec return false; } - @Override - public int getEnergyMultiplier(Object... data) - { - if(data[0] instanceof ItemStack) - { - ItemStack itemStack = (ItemStack)data[0]; - - if(itemStack.stackTagCompound == null) - { - return 0; - } - - return itemStack.stackTagCompound.getInteger("energyMultiplier"); - } - - return 0; - } - - @Override - public void setEnergyMultiplier(int multiplier, Object... data) - { - if(data[0] instanceof ItemStack) - { - ItemStack itemStack = (ItemStack)data[0]; - - if(itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - itemStack.stackTagCompound.setInteger("energyMultiplier", multiplier); - } - } - - @Override - public int getSpeedMultiplier(Object... data) - { - if(data[0] instanceof ItemStack) - { - ItemStack itemStack = (ItemStack)data[0]; - - if(itemStack.stackTagCompound == null) - { - return 0; - } - - return itemStack.stackTagCompound.getInteger("speedMultiplier"); - } - - return 0; - } - - @Override - public void setSpeedMultiplier(int multiplier, Object... data) - { - if(data[0] instanceof ItemStack) - { - ItemStack itemStack = (ItemStack)data[0]; - - if(itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - itemStack.stackTagCompound.setInteger("speedMultiplier", multiplier); - } - } - - @Override - public boolean supportsUpgrades(Object... data) - { - if(data[0] instanceof ItemStack) - { - MachineType type = MachineType.get((ItemStack)data[0]); - - return type.supportsUpgrades; - } - - return false; - } - public boolean tryPlaceContainedLiquid(World world, ItemStack itemstack, int x, int y, int z) { if(getFluidStack(itemstack) == null || !getFluidStack(itemstack).getFluid().canBePlacedInWorld()) @@ -993,7 +911,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec @Override public double getMaxEnergy(ItemStack itemStack) { - return MekanismUtils.getMaxEnergy(itemStack, this, MachineType.get(Block.getBlockFromItem(itemStack.getItem()), itemStack.getItemDamage()).baseEnergy); + return MekanismUtils.getMaxEnergy(itemStack, MachineType.get(Block.getBlockFromItem(itemStack.getItem()), itemStack.getItemDamage()).baseEnergy); } @Override diff --git a/src/main/java/mekanism/common/recipe/MekanismRecipe.java b/src/main/java/mekanism/common/recipe/MekanismRecipe.java index 93f265090..d380572d6 100644 --- a/src/main/java/mekanism/common/recipe/MekanismRecipe.java +++ b/src/main/java/mekanism/common/recipe/MekanismRecipe.java @@ -2,19 +2,21 @@ package mekanism.common.recipe; import java.util.ArrayList; import java.util.HashMap; +import java.util.Map; import mekanism.api.energy.IEnergizedItem; import mekanism.api.gas.GasStack; import mekanism.api.gas.IGasItem; import mekanism.common.IEnergyCube; import mekanism.common.IFactory; -import mekanism.common.IUpgradeManagement; +import mekanism.common.Upgrade; import mekanism.common.block.BlockMachine.MachineType; import net.minecraft.block.Block; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; @@ -201,27 +203,31 @@ public class MekanismRecipe implements IRecipe } } - if(toReturn.getItem() instanceof IUpgradeManagement && ((IUpgradeManagement)toReturn.getItem()).supportsUpgrades(toReturn)) + if(MachineType.get(toReturn).supportsUpgrades) { - int speedUpgrades = 0; - int energyUpgrades = 0; + Map upgrades = new HashMap(); for(int i = 0; i < 9; i++) { ItemStack itemstack = inv.getStackInSlot(i); - if(itemstack != null) + if(itemstack != null && MachineType.get(itemstack).supportsUpgrades) { - if(itemstack.getItem() instanceof IUpgradeManagement && ((IUpgradeManagement)itemstack.getItem()).supportsUpgrades(toReturn)) + Map stackMap = Upgrade.buildMap(itemstack.stackTagCompound); + + for(Map.Entry entry : stackMap.entrySet()) { - speedUpgrades = Math.min(8, speedUpgrades + ((IUpgradeManagement)itemstack.getItem()).getSpeedMultiplier(itemstack)); - energyUpgrades = Math.min(8, energyUpgrades + ((IUpgradeManagement)itemstack.getItem()).getEnergyMultiplier(itemstack)); + upgrades.put(entry.getKey(), Math.min(entry.getKey().getMax(), upgrades.get(entry.getKey()) + entry.getValue())); } } } - - ((IUpgradeManagement)toReturn.getItem()).setSpeedMultiplier(speedUpgrades, toReturn); - ((IUpgradeManagement)toReturn.getItem()).setEnergyMultiplier(energyUpgrades, toReturn); + + if(toReturn.stackTagCompound == null) + { + toReturn.setTagCompound(new NBTTagCompound()); + } + + Upgrade.saveMap(upgrades, toReturn.stackTagCompound); } return toReturn; diff --git a/src/main/java/mekanism/common/tile/TileEntityBasicMachine.java b/src/main/java/mekanism/common/tile/TileEntityBasicMachine.java index 29425c09e..9e9065ce7 100644 --- a/src/main/java/mekanism/common/tile/TileEntityBasicMachine.java +++ b/src/main/java/mekanism/common/tile/TileEntityBasicMachine.java @@ -5,7 +5,6 @@ import io.netty.buffer.ByteBuf; import java.util.ArrayList; import mekanism.api.Coord4D; -import mekanism.client.gui.GuiProgress.ProgressBar; import mekanism.client.sound.IHasSound; import mekanism.common.IActiveState; import mekanism.common.IEjector; @@ -15,7 +14,6 @@ import mekanism.common.IRedstoneControl; import mekanism.common.IUpgradeTile; import mekanism.common.Mekanism; import mekanism.common.SideData; -import mekanism.common.Upgrade; import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.tile.component.TileComponentEjector; import mekanism.common.tile.component.TileComponentUpgrade; @@ -291,38 +289,6 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp return facing; } - @Override - public int getEnergyMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.ENERGY); - } - - @Override - public void setEnergyMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.ENERGY, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public int getSpeedMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.SPEED); - } - - @Override - public void setSpeedMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.SPEED, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public boolean supportsUpgrades(Object... data) - { - return true; - } - @Override public String getSoundPath() { diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java b/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java index 54193b1be..881e1e310 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalCrystallizer.java @@ -22,7 +22,6 @@ import mekanism.common.IRedstoneControl; import mekanism.common.IUpgradeTile; import mekanism.common.Mekanism; import mekanism.common.SideData; -import mekanism.common.Upgrade; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.recipe.RecipeHandler; @@ -502,38 +501,6 @@ public class TileEntityChemicalCrystallizer extends TileEntityElectricBlock impl { return ejectorComponent; } - - @Override - public int getEnergyMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.ENERGY); - } - - @Override - public void setEnergyMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.ENERGY, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public int getSpeedMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.SPEED); - } - - @Override - public void setSpeedMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.SPEED, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public boolean supportsUpgrades(Object... data) - { - return true; - } @Override public TileComponentUpgrade getComponent() diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalDissolutionChamber.java b/src/main/java/mekanism/common/tile/TileEntityChemicalDissolutionChamber.java index 2c44e3174..ab527b20f 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalDissolutionChamber.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalDissolutionChamber.java @@ -18,7 +18,6 @@ import mekanism.common.IActiveState; import mekanism.common.IRedstoneControl; import mekanism.common.IUpgradeTile; import mekanism.common.Mekanism; -import mekanism.common.Upgrade; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.recipe.RecipeHandler; @@ -434,38 +433,6 @@ public class TileEntityChemicalDissolutionChamber extends TileEntityElectricBloc { return false; } - - @Override - public int getEnergyMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.ENERGY); - } - - @Override - public void setEnergyMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.ENERGY, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public int getSpeedMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.SPEED); - } - - @Override - public void setSpeedMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.SPEED, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public boolean supportsUpgrades(Object... data) - { - return true; - } @Override public TileComponentUpgrade getComponent() diff --git a/src/main/java/mekanism/common/tile/TileEntityChemicalOxidizer.java b/src/main/java/mekanism/common/tile/TileEntityChemicalOxidizer.java index 9b890312b..3b693f1f8 100644 --- a/src/main/java/mekanism/common/tile/TileEntityChemicalOxidizer.java +++ b/src/main/java/mekanism/common/tile/TileEntityChemicalOxidizer.java @@ -17,7 +17,6 @@ import mekanism.common.IActiveState; import mekanism.common.IRedstoneControl; import mekanism.common.IUpgradeTile; import mekanism.common.Mekanism; -import mekanism.common.Upgrade; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.recipe.RecipeHandler; @@ -361,38 +360,6 @@ public class TileEntityChemicalOxidizer extends TileEntityElectricBlock implemen return 1; } - @Override - public int getEnergyMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.ENERGY); - } - - @Override - public void setEnergyMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.ENERGY, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public int getSpeedMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.SPEED); - } - - @Override - public void setSpeedMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.SPEED, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public boolean supportsUpgrades(Object... data) - { - return true; - } - @Override public TileComponentUpgrade getComponent() { diff --git a/src/main/java/mekanism/common/tile/TileEntityDigitalMiner.java b/src/main/java/mekanism/common/tile/TileEntityDigitalMiner.java index d670215dc..104873cfd 100644 --- a/src/main/java/mekanism/common/tile/TileEntityDigitalMiner.java +++ b/src/main/java/mekanism/common/tile/TileEntityDigitalMiner.java @@ -19,7 +19,6 @@ import mekanism.common.ILogisticalTransporter; import mekanism.common.IRedstoneControl; import mekanism.common.IUpgradeTile; import mekanism.common.Mekanism; -import mekanism.common.Upgrade; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.inventory.container.ContainerFilter; import mekanism.common.inventory.container.ContainerNull; @@ -965,38 +964,6 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I return upgradeComponent; } - @Override - public int getEnergyMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.ENERGY); - } - - @Override - public void setEnergyMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.ENERGY, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public int getSpeedMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.SPEED); - } - - @Override - public void setSpeedMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.SPEED, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public boolean supportsUpgrades(Object... data) - { - return true; - } - @Override public void setActive(boolean active) { diff --git a/src/main/java/mekanism/common/tile/TileEntityFactory.java b/src/main/java/mekanism/common/tile/TileEntityFactory.java index c73c7abde..f3075029e 100644 --- a/src/main/java/mekanism/common/tile/TileEntityFactory.java +++ b/src/main/java/mekanism/common/tile/TileEntityFactory.java @@ -20,11 +20,9 @@ import mekanism.common.IEjector; import mekanism.common.IFactory.RecipeType; import mekanism.common.IInvConfiguration; import mekanism.common.IRedstoneControl; -import mekanism.common.IUpgradeManagement; import mekanism.common.IUpgradeTile; import mekanism.common.Mekanism; import mekanism.common.SideData; -import mekanism.common.Upgrade; import mekanism.common.Tier.FactoryTier; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.network.PacketTileEntity.TileEntityMessage; @@ -189,10 +187,13 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip recipeTicks = 0; ItemStack returnStack = getMachineStack(); - IUpgradeManagement mgmt = (IUpgradeManagement)inventory[2].getItem(); - ((IUpgradeManagement)returnStack.getItem()).setEnergyMultiplier(mgmt.getEnergyMultiplier(inventory[2]), returnStack); - ((IUpgradeManagement)returnStack.getItem()).setSpeedMultiplier(mgmt.getSpeedMultiplier(inventory[2]), returnStack); + if(returnStack.stackTagCompound == null) + { + returnStack.setTagCompound(new NBTTagCompound()); + } + + upgradeComponent.write(returnStack.stackTagCompound); inventory[2] = null; inventory[3] = returnStack; @@ -823,38 +824,6 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip return facing; } - @Override - public int getEnergyMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.ENERGY); - } - - @Override - public void setEnergyMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.ENERGY, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public int getSpeedMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.SPEED); - } - - @Override - public void setSpeedMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.SPEED, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public boolean supportsUpgrades(Object... data) - { - return true; - } - @Override public String getSoundPath() { diff --git a/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java b/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java index f127fe9b9..db16f53c9 100644 --- a/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java +++ b/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java @@ -20,7 +20,6 @@ import mekanism.common.IUpgradeTile; import mekanism.common.Mekanism; import mekanism.common.PacketHandler; import mekanism.common.SideData; -import mekanism.common.Upgrade; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.recipe.RecipeHandler; @@ -545,38 +544,6 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem return facing; } - @Override - public int getEnergyMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.ENERGY); - } - - @Override - public void setEnergyMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.ENERGY, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public int getSpeedMultiplier(Object... data) - { - return upgradeComponent.getUpgrades(Upgrade.SPEED); - } - - @Override - public void setSpeedMultiplier(int multiplier, Object... data) - { - upgradeComponent.setUpgrades(Upgrade.SPEED, multiplier); - MekanismUtils.saveChunk(this); - } - - @Override - public boolean supportsUpgrades(Object... data) - { - return true; - } - @Override public String getSoundPath() { diff --git a/src/main/java/mekanism/common/util/MekanismUtils.java b/src/main/java/mekanism/common/util/MekanismUtils.java index fc0d821f4..cf10a9b34 100644 --- a/src/main/java/mekanism/common/util/MekanismUtils.java +++ b/src/main/java/mekanism/common/util/MekanismUtils.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; +import java.util.Map; import mekanism.api.Chunk3D; import mekanism.api.Coord4D; @@ -26,12 +27,13 @@ import mekanism.common.IInvConfiguration; import mekanism.common.IModule; import mekanism.common.IRedstoneControl; import mekanism.common.IRedstoneControl.RedstoneControl; -import mekanism.common.IUpgradeManagement; +import mekanism.common.IUpgradeTile; import mekanism.common.Mekanism; import mekanism.common.OreDictCache; import mekanism.common.Teleporter; import mekanism.common.Tier.EnergyCubeTier; import mekanism.common.Tier.FactoryTier; +import mekanism.common.Upgrade; import mekanism.common.Version; import mekanism.common.inventory.container.ContainerElectricChest; import mekanism.common.item.ItemBlockEnergyCube; @@ -603,9 +605,9 @@ public final class MekanismUtils * @param def - the original, default ticks required * @return max operating ticks */ - public static int getTicks(IUpgradeManagement mgmt, int def) + public static int getTicks(IUpgradeTile mgmt, int def) { - return (int)(def * Math.pow(Mekanism.maxUpgradeMultiplier, -mgmt.getSpeedMultiplier()/8.0)); + return (int)(def * Math.pow(Mekanism.maxUpgradeMultiplier, -mgmt.getComponent().getUpgrades(Upgrade.SPEED)/8.0)); } /** @@ -615,9 +617,9 @@ public final class MekanismUtils * @param def - the original, default energy required * @return max energy per tick */ - public static double getEnergyPerTick(IUpgradeManagement mgmt, double def) + public static double getEnergyPerTick(IUpgradeTile mgmt, double def) { - return def * Math.pow(Mekanism.maxUpgradeMultiplier, (2*mgmt.getSpeedMultiplier()-mgmt.getEnergyMultiplier())/8.0); + return def * Math.pow(Mekanism.maxUpgradeMultiplier, (2*mgmt.getComponent().getUpgrades(Upgrade.SPEED)-mgmt.getComponent().getUpgrades(Upgrade.ENERGY))/8.0); } /** @@ -626,9 +628,9 @@ public final class MekanismUtils * @param def - original, default max energy * @return max energy */ - public static double getMaxEnergy(IUpgradeManagement mgmt, double def) + public static double getMaxEnergy(IUpgradeTile mgmt, double def) { - return def * Math.pow(Mekanism.maxUpgradeMultiplier, mgmt.getEnergyMultiplier()/8.0); + return def * Math.pow(Mekanism.maxUpgradeMultiplier, mgmt.getComponent().getUpgrades(Upgrade.ENERGY)/8.0); } /** @@ -637,9 +639,10 @@ public final class MekanismUtils * @param def - original, default max energy * @return max energy */ - public static double getMaxEnergy(ItemStack itemStack, IUpgradeManagement mgmt, double def) + public static double getMaxEnergy(ItemStack itemStack, double def) { - return def * Math.pow(Mekanism.maxUpgradeMultiplier, mgmt.getEnergyMultiplier(itemStack)/8.0); + Map upgrades = Upgrade.buildMap(itemStack.stackTagCompound); + return def * Math.pow(Mekanism.maxUpgradeMultiplier, upgrades.get(Upgrade.ENERGY)/8.0); } /**