Eliminated the deprecated "getSpeedMultiplier()" and "getEnergyMultiplier()" methods

This commit is contained in:
Aidan C. Brady 2014-07-23 10:17:03 -04:00
parent 523ec21467
commit 52efdac614
14 changed files with 42 additions and 390 deletions

View file

@ -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);
}

View file

@ -2,7 +2,7 @@ package mekanism.common;
import mekanism.common.tile.component.TileComponentUpgrade; import mekanism.common.tile.component.TileComponentUpgrade;
public interface IUpgradeTile extends IUpgradeManagement public interface IUpgradeTile
{ {
public TileComponentUpgrade getComponent(); public TileComponentUpgrade getComponent();
} }

View file

@ -45,7 +45,7 @@ public enum Upgrade
public EnumColor getColor() public EnumColor getColor()
{ {
return color; return color;
} }
public boolean canMultiply() public boolean canMultiply()
{ {
@ -69,7 +69,7 @@ public enum Upgrade
{ {
Map<Upgrade, Integer> upgrades = new HashMap<Upgrade, Integer>(); Map<Upgrade, Integer> upgrades = new HashMap<Upgrade, Integer>();
if(nbtTags.hasKey("upgrades")) if(nbtTags != null && nbtTags.hasKey("upgrades"))
{ {
NBTTagList list = nbtTags.getTagList("upgrades", NBT.TAG_COMPOUND); NBTTagList list = nbtTags.getTagList("upgrades", NBT.TAG_COMPOUND);

View file

@ -16,7 +16,6 @@ import mekanism.common.IRedstoneControl;
import mekanism.common.ISpecialBounds; import mekanism.common.ISpecialBounds;
import mekanism.common.ISustainedInventory; import mekanism.common.ISustainedInventory;
import mekanism.common.ISustainedTank; import mekanism.common.ISustainedTank;
import mekanism.common.IUpgradeManagement;
import mekanism.common.IUpgradeTile; import mekanism.common.IUpgradeTile;
import mekanism.common.ItemAttacher; import mekanism.common.ItemAttacher;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
@ -1013,7 +1012,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
itemStack.setTagCompound(new NBTTagCompound()); itemStack.setTagCompound(new NBTTagCompound());
} }
if(((IUpgradeManagement)itemStack.getItem()).supportsUpgrades(itemStack)) if(tileEntity instanceof IUpgradeTile)
{ {
((IUpgradeTile)tileEntity).getComponent().write(itemStack.stackTagCompound); ((IUpgradeTile)tileEntity).getComponent().write(itemStack.stackTagCompound);
} }

View file

@ -21,7 +21,6 @@ import mekanism.common.IRedstoneControl;
import mekanism.common.IRedstoneControl.RedstoneControl; import mekanism.common.IRedstoneControl.RedstoneControl;
import mekanism.common.ISustainedInventory; import mekanism.common.ISustainedInventory;
import mekanism.common.ISustainedTank; import mekanism.common.ISustainedTank;
import mekanism.common.IUpgradeManagement;
import mekanism.common.IUpgradeTile; import mekanism.common.IUpgradeTile;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.Upgrade; 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 = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHAPI|energy"),
@Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = "IC2API") @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; 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)); 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<Upgrade, Integer> upgrades = Upgrade.buildMap(itemstack.stackTagCompound); Map<Upgrade, Integer> upgrades = Upgrade.buildMap(itemstack.stackTagCompound);
@ -498,87 +497,6 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
return false; 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) public boolean tryPlaceContainedLiquid(World world, ItemStack itemstack, int x, int y, int z)
{ {
if(getFluidStack(itemstack) == null || !getFluidStack(itemstack).getFluid().canBePlacedInWorld()) if(getFluidStack(itemstack) == null || !getFluidStack(itemstack).getFluid().canBePlacedInWorld())
@ -993,7 +911,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
@Override @Override
public double getMaxEnergy(ItemStack itemStack) 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 @Override

View file

@ -2,19 +2,21 @@ package mekanism.common.recipe;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map;
import mekanism.api.energy.IEnergizedItem; import mekanism.api.energy.IEnergizedItem;
import mekanism.api.gas.GasStack; import mekanism.api.gas.GasStack;
import mekanism.api.gas.IGasItem; import mekanism.api.gas.IGasItem;
import mekanism.common.IEnergyCube; import mekanism.common.IEnergyCube;
import mekanism.common.IFactory; import mekanism.common.IFactory;
import mekanism.common.IUpgradeManagement; import mekanism.common.Upgrade;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.inventory.InventoryCrafting; import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary; 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; Map<Upgrade, Integer> upgrades = new HashMap<Upgrade, Integer>();
int energyUpgrades = 0;
for(int i = 0; i < 9; i++) for(int i = 0; i < 9; i++)
{ {
ItemStack itemstack = inv.getStackInSlot(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<Upgrade, Integer> stackMap = Upgrade.buildMap(itemstack.stackTagCompound);
for(Map.Entry<Upgrade, Integer> entry : stackMap.entrySet())
{ {
speedUpgrades = Math.min(8, speedUpgrades + ((IUpgradeManagement)itemstack.getItem()).getSpeedMultiplier(itemstack)); upgrades.put(entry.getKey(), Math.min(entry.getKey().getMax(), upgrades.get(entry.getKey()) + entry.getValue()));
energyUpgrades = Math.min(8, energyUpgrades + ((IUpgradeManagement)itemstack.getItem()).getEnergyMultiplier(itemstack));
} }
} }
} }
((IUpgradeManagement)toReturn.getItem()).setSpeedMultiplier(speedUpgrades, toReturn); if(toReturn.stackTagCompound == null)
((IUpgradeManagement)toReturn.getItem()).setEnergyMultiplier(energyUpgrades, toReturn); {
toReturn.setTagCompound(new NBTTagCompound());
}
Upgrade.saveMap(upgrades, toReturn.stackTagCompound);
} }
return toReturn; return toReturn;

View file

@ -5,7 +5,6 @@ import io.netty.buffer.ByteBuf;
import java.util.ArrayList; import java.util.ArrayList;
import mekanism.api.Coord4D; import mekanism.api.Coord4D;
import mekanism.client.gui.GuiProgress.ProgressBar;
import mekanism.client.sound.IHasSound; import mekanism.client.sound.IHasSound;
import mekanism.common.IActiveState; import mekanism.common.IActiveState;
import mekanism.common.IEjector; import mekanism.common.IEjector;
@ -15,7 +14,6 @@ import mekanism.common.IRedstoneControl;
import mekanism.common.IUpgradeTile; import mekanism.common.IUpgradeTile;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.SideData; import mekanism.common.SideData;
import mekanism.common.Upgrade;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.tile.component.TileComponentEjector; import mekanism.common.tile.component.TileComponentEjector;
import mekanism.common.tile.component.TileComponentUpgrade; import mekanism.common.tile.component.TileComponentUpgrade;
@ -291,38 +289,6 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
return facing; 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 @Override
public String getSoundPath() public String getSoundPath()
{ {

View file

@ -22,7 +22,6 @@ import mekanism.common.IRedstoneControl;
import mekanism.common.IUpgradeTile; import mekanism.common.IUpgradeTile;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.SideData; import mekanism.common.SideData;
import mekanism.common.Upgrade;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.RecipeHandler;
@ -502,38 +501,6 @@ public class TileEntityChemicalCrystallizer extends TileEntityElectricBlock impl
{ {
return ejectorComponent; 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 @Override
public TileComponentUpgrade getComponent() public TileComponentUpgrade getComponent()

View file

@ -18,7 +18,6 @@ import mekanism.common.IActiveState;
import mekanism.common.IRedstoneControl; import mekanism.common.IRedstoneControl;
import mekanism.common.IUpgradeTile; import mekanism.common.IUpgradeTile;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.Upgrade;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.RecipeHandler;
@ -434,38 +433,6 @@ public class TileEntityChemicalDissolutionChamber extends TileEntityElectricBloc
{ {
return false; 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 @Override
public TileComponentUpgrade getComponent() public TileComponentUpgrade getComponent()

View file

@ -17,7 +17,6 @@ import mekanism.common.IActiveState;
import mekanism.common.IRedstoneControl; import mekanism.common.IRedstoneControl;
import mekanism.common.IUpgradeTile; import mekanism.common.IUpgradeTile;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.Upgrade;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.RecipeHandler;
@ -361,38 +360,6 @@ public class TileEntityChemicalOxidizer extends TileEntityElectricBlock implemen
return 1; 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 @Override
public TileComponentUpgrade getComponent() public TileComponentUpgrade getComponent()
{ {

View file

@ -19,7 +19,6 @@ import mekanism.common.ILogisticalTransporter;
import mekanism.common.IRedstoneControl; import mekanism.common.IRedstoneControl;
import mekanism.common.IUpgradeTile; import mekanism.common.IUpgradeTile;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.Upgrade;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.inventory.container.ContainerFilter; import mekanism.common.inventory.container.ContainerFilter;
import mekanism.common.inventory.container.ContainerNull; import mekanism.common.inventory.container.ContainerNull;
@ -965,38 +964,6 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
return upgradeComponent; 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 @Override
public void setActive(boolean active) public void setActive(boolean active)
{ {

View file

@ -20,11 +20,9 @@ import mekanism.common.IEjector;
import mekanism.common.IFactory.RecipeType; import mekanism.common.IFactory.RecipeType;
import mekanism.common.IInvConfiguration; import mekanism.common.IInvConfiguration;
import mekanism.common.IRedstoneControl; import mekanism.common.IRedstoneControl;
import mekanism.common.IUpgradeManagement;
import mekanism.common.IUpgradeTile; import mekanism.common.IUpgradeTile;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.SideData; import mekanism.common.SideData;
import mekanism.common.Upgrade;
import mekanism.common.Tier.FactoryTier; import mekanism.common.Tier.FactoryTier;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
@ -189,10 +187,13 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
recipeTicks = 0; recipeTicks = 0;
ItemStack returnStack = getMachineStack(); ItemStack returnStack = getMachineStack();
IUpgradeManagement mgmt = (IUpgradeManagement)inventory[2].getItem();
((IUpgradeManagement)returnStack.getItem()).setEnergyMultiplier(mgmt.getEnergyMultiplier(inventory[2]), returnStack); if(returnStack.stackTagCompound == null)
((IUpgradeManagement)returnStack.getItem()).setSpeedMultiplier(mgmt.getSpeedMultiplier(inventory[2]), returnStack); {
returnStack.setTagCompound(new NBTTagCompound());
}
upgradeComponent.write(returnStack.stackTagCompound);
inventory[2] = null; inventory[2] = null;
inventory[3] = returnStack; inventory[3] = returnStack;
@ -823,38 +824,6 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
return facing; 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 @Override
public String getSoundPath() public String getSoundPath()
{ {

View file

@ -20,7 +20,6 @@ import mekanism.common.IUpgradeTile;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.PacketHandler; import mekanism.common.PacketHandler;
import mekanism.common.SideData; import mekanism.common.SideData;
import mekanism.common.Upgrade;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.RecipeHandler;
@ -545,38 +544,6 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
return facing; 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 @Override
public String getSoundPath() public String getSoundPath()
{ {

View file

@ -11,6 +11,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map;
import mekanism.api.Chunk3D; import mekanism.api.Chunk3D;
import mekanism.api.Coord4D; import mekanism.api.Coord4D;
@ -26,12 +27,13 @@ import mekanism.common.IInvConfiguration;
import mekanism.common.IModule; import mekanism.common.IModule;
import mekanism.common.IRedstoneControl; import mekanism.common.IRedstoneControl;
import mekanism.common.IRedstoneControl.RedstoneControl; import mekanism.common.IRedstoneControl.RedstoneControl;
import mekanism.common.IUpgradeManagement; import mekanism.common.IUpgradeTile;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.OreDictCache; import mekanism.common.OreDictCache;
import mekanism.common.Teleporter; import mekanism.common.Teleporter;
import mekanism.common.Tier.EnergyCubeTier; import mekanism.common.Tier.EnergyCubeTier;
import mekanism.common.Tier.FactoryTier; import mekanism.common.Tier.FactoryTier;
import mekanism.common.Upgrade;
import mekanism.common.Version; import mekanism.common.Version;
import mekanism.common.inventory.container.ContainerElectricChest; import mekanism.common.inventory.container.ContainerElectricChest;
import mekanism.common.item.ItemBlockEnergyCube; import mekanism.common.item.ItemBlockEnergyCube;
@ -603,9 +605,9 @@ public final class MekanismUtils
* @param def - the original, default ticks required * @param def - the original, default ticks required
* @return max operating ticks * @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 * @param def - the original, default energy required
* @return max energy per tick * @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 * @param def - original, default max energy
* @return 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 * @param def - original, default max energy
* @return 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<Upgrade, Integer> upgrades = Upgrade.buildMap(itemStack.stackTagCompound);
return def * Math.pow(Mekanism.maxUpgradeMultiplier, upgrades.get(Upgrade.ENERGY)/8.0);
} }
/** /**