Gave Chemical Oxidizer and PRC upgrade systems, fixed Chemical Oxidizer and Electrolytic Separator NEI modules

This commit is contained in:
Aidan C. Brady 2014-07-10 22:28:04 -04:00
parent 7198704363
commit 65a8633441
29 changed files with 317 additions and 104 deletions

View file

@ -38,7 +38,7 @@ public class GuiAdvancedElectricMachine extends GuiMekanism
@Override
public List<String> getInfo()
{
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity.getSpeedMultiplier(), tileEntity.getEnergyMultiplier(), tileEntity.ENERGY_PER_TICK));
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity, tileEntity.ENERGY_PER_TICK));
return ListUtils.asList("Using: " + multiplier + "/t", "Needed: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()-tileEntity.getEnergy()));
}
}, this, tileEntity.guiLocation));

View file

@ -36,7 +36,7 @@ public class GuiChanceMachine extends GuiMekanism
@Override
public List<String> getInfo()
{
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity.getSpeedMultiplier(), tileEntity.getEnergyMultiplier(), tileEntity.ENERGY_PER_TICK));
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity, tileEntity.ENERGY_PER_TICK));
return ListUtils.asList("Using: " + multiplier + "/t", "Needed: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()-tileEntity.getEnergy()));
}
}, this, tileEntity.guiLocation));

View file

@ -32,11 +32,12 @@ public class GuiChemicalOxidizer extends GuiMekanism
tileEntity = tentity;
guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png")));
guiElements.add(new GuiUpgradeManagement(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png")));
guiElements.add(new GuiEnergyInfo(new IInfoHandler() {
@Override
public List<String> getInfo()
{
String multiplier = MekanismUtils.getEnergyDisplay(tileEntity.ENERGY_USAGE);
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity, tileEntity.ENERGY_USAGE));
return ListUtils.asList("Using: " + multiplier + "/t", "Needed: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()-tileEntity.getEnergy()));
}
}, this, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png")));

View file

@ -36,7 +36,7 @@ public class GuiElectricMachine extends GuiMekanism
@Override
public List<String> getInfo()
{
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity.getSpeedMultiplier(), tileEntity.getEnergyMultiplier(), tileEntity.ENERGY_PER_TICK));
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity, tileEntity.ENERGY_PER_TICK));
return ListUtils.asList("Using: " + multiplier + "/t", "Needed: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()-tileEntity.getEnergy()));
}
}, this, tileEntity.guiLocation));

View file

@ -82,7 +82,7 @@ public class GuiElectrolyticSeparator extends GuiMekanism
{
return tileEntity.isActive ? 1 : 0;
}
}, ProgressBar.BI, this, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalDissolutionChamber.png"), 78, 29));
}, ProgressBar.BI, this, MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"), 78, 29));
}
@Override

View file

@ -39,7 +39,7 @@ public class GuiFactory extends GuiMekanism
@Override
public List<String> getInfo()
{
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity.getSpeedMultiplier(), tileEntity.getEnergyMultiplier(), tileEntity.ENERGY_PER_TICK));
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity, tileEntity.ENERGY_PER_TICK));
return ListUtils.asList("Using: " + multiplier + "/t", "Needed: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()-tileEntity.getEnergy()));
}
}, this, tileEntity.tier.guiLocation));

View file

@ -55,7 +55,7 @@ public class GuiFluidGauge extends GuiGauge<Fluid>
return dummyType.getLocalizedName();
}
return infoHandler.getTank().getFluid() != null ? infoHandler.getTank().getFluid().getFluid().getLocalizedName() + ": " + infoHandler.getTank().getFluidAmount() + "mB" : MekanismUtils.localize("gui.empty");
return infoHandler.getTank().getFluid() != null ? infoHandler.getTank().getFluid().getFluid().getLocalizedName(infoHandler.getTank().getFluid()) + ": " + infoHandler.getTank().getFluidAmount() + "mB" : MekanismUtils.localize("gui.empty");
}
public static interface IFluidInfoHandler

View file

@ -42,7 +42,7 @@ public class GuiMetallurgicInfuser extends GuiMekanism
@Override
public List<String> getInfo()
{
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity.getSpeedMultiplier(), tileEntity.getEnergyMultiplier(), tileEntity.ENERGY_PER_TICK));
String multiplier = MekanismUtils.getEnergyDisplay(MekanismUtils.getEnergyPerTick(tileEntity, tileEntity.ENERGY_PER_TICK));
return ListUtils.asList("Using: " + multiplier + "/t", "Needed: " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()-tileEntity.getEnergy()));
}
}, this, MekanismUtils.getResource(ResourceType.GUI, "GuiMetallurgicInfuser.png")));

View file

@ -30,7 +30,8 @@ public class GuiPRC extends GuiMekanism
tileEntity = tentity;
guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png")));
guiElements.add(new GuiConfigurationTab(this, tileEntity, tileEntity.guiLocation));
guiElements.add(new GuiConfigurationTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png")));
guiElements.add(new GuiUpgradeManagement(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png")));
guiElements.add(new GuiFluidGauge(new IFluidInfoHandler() {
@Override
public FluidTank getTank()

View file

@ -12,9 +12,20 @@ import java.util.Set;
import mekanism.api.gas.GasStack;
import mekanism.client.gui.GuiChemicalOxidizer;
import mekanism.client.gui.GuiElement;
import mekanism.client.gui.GuiGasGauge;
import mekanism.client.gui.GuiGauge;
import mekanism.client.gui.GuiProgress;
import mekanism.client.gui.GuiProgress.IProgressInfoHandler;
import mekanism.client.gui.GuiProgress.ProgressBar;
import mekanism.client.gui.GuiSlot;
import mekanism.client.gui.GuiSlot.SlotOverlay;
import mekanism.client.gui.GuiSlot.SlotType;
import mekanism.client.nei.ElectrolyticSeparatorRecipeHandler.CachedIORecipe;
import mekanism.common.ObfuscatedNames;
import mekanism.common.recipe.RecipeHandler.Recipe;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.item.ItemStack;
@ -30,9 +41,30 @@ import codechicken.nei.recipe.TemplateRecipeHandler;
public class ChemicalOxidizerRecipeHandler extends BaseRecipeHandler
{
private int ticksPassed;
public GuiGasGauge gasOutput;
public static int xOffset = 5;
public static int yOffset = 12;
@Override
public void addGuiElements()
{
guiElements.add(gasOutput = GuiGasGauge.getDummy(GuiGauge.Type.STANDARD, this, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png"), 133, 13));
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png"), 154, 4).with(SlotOverlay.POWER));
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png"), 25, 35));
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png"), 154, 24).with(SlotOverlay.PLUS));
guiElements.add(new GuiProgress(new IProgressInfoHandler()
{
@Override
public double getProgress()
{
return ticksPassed >= 20 ? (ticksPassed - 20) % 20 / 20.0F : 0.0F;
}
}, ProgressBar.LARGE_RIGHT, this, MekanismUtils.getResource(ResourceType.GUI, "GuiChemicalOxidizer.png"), 62, 39));
}
@Override
public String getRecipeName()
@ -74,19 +106,22 @@ public class ChemicalOxidizerRecipeHandler extends BaseRecipeHandler
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
changeTexture(getGuiTexture());
drawTexturedModalRect(0, 0, xOffset, yOffset, 147, 62);
for(GuiElement e : guiElements)
{
e.renderBackground(0, 0, -xOffset, -yOffset);
}
}
@Override
public void drawExtras(int i)
{
GasStack gas = ((CachedIORecipe)arecipes.get(i)).outputStack;
CachedIORecipe recipe = (CachedIORecipe)arecipes.get(i);
float f = ticksPassed % 20 / 20.0F;
drawProgressBar(64-xOffset, 40-yOffset, 176, 63, 48, 8, f, 0);
if(gas != null)
if(recipe.outputStack != null)
{
displayGauge(58, 134-xOffset, 14-yOffset, 176, 4, 58, null, gas);
gasOutput.setDummyType(recipe.outputStack.getGas());
gasOutput.renderScale(0, 0, -xOffset, -yOffset);
}
}
@ -133,11 +168,12 @@ public class ChemicalOxidizerRecipeHandler extends BaseRecipeHandler
public List<String> handleTooltip(GuiRecipe gui, List<String> currenttip, int recipe)
{
Point point = GuiDraw.getMousePosition();
Point offset = gui.getRecipePosition(recipe);
int xAxis = point.x-(Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiLeft);
int yAxis = point.y-(Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiTop);
int xAxis = point.x-(Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiLeft)-offset.x;
int yAxis = point.y-(Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiTop)-offset.y;
if(xAxis >= 134 && xAxis <= 150 && yAxis >= 14+4 && yAxis <= 72+4)
if(xAxis >= 134-5 && xAxis <= 150-5 && yAxis >= 14-11 && yAxis <= 72-11)
{
currenttip.add(((CachedIORecipe)arecipes.get(recipe)).outputStack.getGas().getLocalizedName());
}
@ -149,11 +185,12 @@ public class ChemicalOxidizerRecipeHandler extends BaseRecipeHandler
public boolean keyTyped(GuiRecipe gui, char keyChar, int keyCode, int recipe)
{
Point point = GuiDraw.getMousePosition();
Point offset = gui.getRecipePosition(recipe);
int xAxis = point.x-(Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiLeft);
int yAxis = point.y-(Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiTop);
int xAxis = point.x-(Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiLeft)-offset.x;
int yAxis = point.y-(Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiTop)-offset.y;
if(xAxis >= 134 && xAxis <= 150 && yAxis >= 14+4 && yAxis <= 72+4)
if(xAxis >= 134-5 && xAxis <= 150-5 && yAxis >= 14-11 && yAxis <= 72-11)
{
GasStack stack = ((CachedIORecipe)arecipes.get(recipe)).outputStack;
@ -180,11 +217,12 @@ public class ChemicalOxidizerRecipeHandler extends BaseRecipeHandler
public boolean mouseClicked(GuiRecipe gui, int button, int recipe)
{
Point point = GuiDraw.getMousePosition();
Point offset = gui.getRecipePosition(recipe);
int xAxis = point.x - (Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiLeft);
int yAxis = point.y - (Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiTop);
int xAxis = point.x - (Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiLeft)-offset.x;
int yAxis = point.y - (Integer)MekanismUtils.getPrivateValue(gui, GuiContainer.class, ObfuscatedNames.GuiContainer_guiTop)-offset.y;
if(xAxis >= 134 && xAxis <= 150 && yAxis >= 14+4 && yAxis <= 72+4)
if(xAxis >= 134-5 && xAxis <= 150-5 && yAxis >= 14-11 && yAxis <= 72-11)
{
GasStack stack = ((CachedIORecipe)arecipes.get(recipe)).outputStack;
@ -225,12 +263,6 @@ public class ChemicalOxidizerRecipeHandler extends BaseRecipeHandler
}
}
@Override
public void addGuiElements()
{
}
public class CachedIORecipe extends TemplateRecipeHandler.CachedRecipe
{
public PositionedStack inputStack;

View file

@ -13,9 +13,22 @@ import java.util.Set;
import mekanism.api.ChemicalPair;
import mekanism.api.gas.GasStack;
import mekanism.client.gui.GuiElectrolyticSeparator;
import mekanism.client.gui.GuiElement;
import mekanism.client.gui.GuiFluidGauge;
import mekanism.client.gui.GuiGasGauge;
import mekanism.client.gui.GuiGauge;
import mekanism.client.gui.GuiPowerBar;
import mekanism.client.gui.GuiPowerBar.IPowerInfoHandler;
import mekanism.client.gui.GuiProgress;
import mekanism.client.gui.GuiProgress.IProgressInfoHandler;
import mekanism.client.gui.GuiProgress.ProgressBar;
import mekanism.client.gui.GuiSlot;
import mekanism.client.gui.GuiSlot.SlotOverlay;
import mekanism.client.gui.GuiSlot.SlotType;
import mekanism.common.ObfuscatedNames;
import mekanism.common.recipe.RecipeHandler.Recipe;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraftforge.fluids.FluidStack;
@ -30,9 +43,42 @@ import codechicken.nei.recipe.TemplateRecipeHandler;
public class ElectrolyticSeparatorRecipeHandler extends BaseRecipeHandler
{
private int ticksPassed;
public GuiFluidGauge fluidInput;
public GuiGasGauge leftGas;
public GuiGasGauge rightGas;
public static int xOffset = 5;
public static int yOffset = 9;
@Override
public void addGuiElements()
{
guiElements.add(fluidInput = GuiFluidGauge.getDummy(GuiGauge.Type.STANDARD, this, MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"), 5, 10));
guiElements.add(leftGas = GuiGasGauge.getDummy(GuiGauge.Type.SMALL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"), 58, 18));
guiElements.add(rightGas = GuiGasGauge.getDummy(GuiGauge.Type.SMALL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"), 100, 18));
guiElements.add(new GuiPowerBar(this, new IPowerInfoHandler() {
@Override
public double getLevel()
{
return ticksPassed <= 20 ? ticksPassed / 20.0F : 1.0F;
}
}, MekanismUtils.getResource(ResourceType.GUI, stripTexture()), 164, 15));
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"), 25, 34));
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"), 58, 51));
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"), 100, 51));
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"), 142, 34).with(SlotOverlay.POWER));
guiElements.add(new GuiProgress(new IProgressInfoHandler()
{
@Override
public double getProgress()
{
return 1;
}
}, ProgressBar.BI, this, MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"), 78, 29));
}
@Override
public String getRecipeName()
@ -74,6 +120,11 @@ public class ElectrolyticSeparatorRecipeHandler extends BaseRecipeHandler
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
changeTexture(getGuiTexture());
drawTexturedModalRect(-1, 0, 4, yOffset, 167, 62);
for(GuiElement e : guiElements)
{
e.renderBackground(0, 0, -xOffset, -yOffset);
}
}
@Override
@ -81,22 +132,24 @@ public class ElectrolyticSeparatorRecipeHandler extends BaseRecipeHandler
{
CachedIORecipe recipe = (CachedIORecipe)arecipes.get(i);
float f = ticksPassed <= 20 ? ticksPassed / 20.0F : 1.0F;
drawProgressBar(165-xOffset, 17-yOffset, 176, 0, 4, 52, f, 3);
if(recipe.fluidInput != null)
{
displayGauge(58, 6-xOffset, 11-yOffset, 176, 68, 58, recipe.fluidInput, null);
fluidInput.setDummyType(recipe.fluidInput.getFluid());
fluidInput.renderScale(0, 0, -xOffset, -yOffset);
}
if(recipe.outputPair.leftGas != null)
{
displayGauge(28, 59-xOffset, 19-yOffset, 176, 68, 28, null, recipe.outputPair.leftGas);
leftGas.setDummyType(recipe.outputPair.leftGas.getGas());
leftGas.renderScale(0, 0, -xOffset, -yOffset);
}
if(recipe.outputPair.rightGas != null)
{
displayGauge(28, 101-xOffset, 19-yOffset, 176, 68, 28, null, recipe.outputPair.rightGas);
rightGas.setDummyType(recipe.outputPair.rightGas.getGas());
rightGas.renderScale(0, 0, -xOffset, -yOffset);
}
}
@ -311,12 +364,6 @@ public class ElectrolyticSeparatorRecipeHandler extends BaseRecipeHandler
return 1;
}
@Override
public void addGuiElements()
{
}
public class CachedIORecipe extends TemplateRecipeHandler.CachedRecipe
{
public FluidStack fluidInput;

View file

@ -82,6 +82,8 @@ public class MekanismRenderer
GasRegistry.getGas("liquidOsmium").setIcon(event.map.registerIcon("mekanism:LiquidOsmium"));
GasRegistry.getGas("liquidStone").setIcon(event.map.registerIcon("mekanism:LiquidStone"));
GasRegistry.getGas("ethene").setIcon(event.map.registerIcon("mekanism:Ethene"));
GasRegistry.getGas("brine").setIcon(event.map.registerIcon("mekanism:LiquidBrine"));
GasRegistry.getGas("sodium").setIcon(event.map.registerIcon("mekanism:LiquidSodium"));
for(Gas gas : GasRegistry.getRegisteredGasses())
{

View file

@ -1272,7 +1272,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
CHARGEPAD(Mekanism.MachineBlock, 14, "Chargepad", -1, 10000, TileEntityChargepad.class, true, true, false),
LOGISTICAL_SORTER(Mekanism.MachineBlock, 15, "LogisticalSorter", -1, 0, TileEntityLogisticalSorter.class, false, true, false),
ROTARY_CONDENSENTRATOR(Mekanism.MachineBlock2, 0, "RotaryCondensentrator", 7, 20000, TileEntityRotaryCondensentrator.class, true, true, false),
CHEMICAL_OXIDIZER(Mekanism.MachineBlock2, 1, "ChemicalOxidizer", 29, 20000, TileEntityChemicalOxidizer.class, true, true, false),
CHEMICAL_OXIDIZER(Mekanism.MachineBlock2, 1, "ChemicalOxidizer", 29, 20000, TileEntityChemicalOxidizer.class, true, true, true),
CHEMICAL_INFUSER(Mekanism.MachineBlock2, 2, "ChemicalInfuser", 30, 20000, TileEntityChemicalInfuser.class, true, true, false),
CHEMICAL_INJECTION_CHAMBER(Mekanism.MachineBlock2, 3, "ChemicalInjectionChamber", 31, Mekanism.chemicalInjectionChamberUsage*400, TileEntityChemicalInjectionChamber.class, true, false, true),
ELECTROLYTIC_SEPARATOR(Mekanism.MachineBlock2, 4, "ElectrolyticSeparator", 32, 400000, TileEntityElectrolyticSeparator.class, true, true, false),

View file

@ -2,6 +2,7 @@ package mekanism.common.inventory.container;
import mekanism.api.gas.IGasItem;
import mekanism.common.inventory.slot.SlotEnergy.SlotDischarge;
import mekanism.common.inventory.slot.SlotMachineUpgrade;
import mekanism.common.inventory.slot.SlotStorageTank;
import mekanism.common.recipe.RecipeHandler;
import mekanism.common.recipe.RecipeHandler.Recipe;
@ -23,6 +24,7 @@ public class ContainerChemicalOxidizer extends Container
addSlotToContainer(new Slot(tentity, 0, 26, 36));
addSlotToContainer(new SlotDischarge(tentity, 1, 155, 5));
addSlotToContainer(new SlotStorageTank(tentity, 2, 155, 25));
addSlotToContainer(new SlotMachineUpgrade(tentity, 3, 180, 11));
int slotX;

View file

@ -989,7 +989,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
@Override
public double getMaxEnergy(ItemStack itemStack)
{
return MekanismUtils.getMaxEnergy(getEnergyMultiplier(itemStack), MachineType.get(Block.getBlockFromItem(itemStack.getItem()), itemStack.getItemDamage()).baseEnergy);
return MekanismUtils.getMaxEnergy(itemStack, this, MachineType.get(Block.getBlockFromItem(itemStack.getItem()), itemStack.getItemDamage()).baseEnergy);
}
@Override

View file

@ -96,13 +96,13 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
boolean changed = false;
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK) && gasTank.getStored() >= SECONDARY_ENERGY_PER_TICK)
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK) && gasTank.getStored() >= SECONDARY_ENERGY_PER_TICK)
{
setActive(true);
operatingTicks++;
if(operatingTicks >= MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
if(operatingTicks >= MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
operate();
@ -110,7 +110,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
}
gasTank.draw(SECONDARY_ENERGY_PER_TICK, true);
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK);
}
else {
if(prevEnergy >= getEnergy())
@ -382,9 +382,9 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
case 5:
return new Object[] {canOperate()};
case 6:
return new Object[] {MekanismUtils.getMaxEnergy(getEnergyMultiplier(), getMaxEnergy())};
return new Object[] {MekanismUtils.getMaxEnergy(this, getMaxEnergy())};
case 7:
return new Object[] {(MekanismUtils.getMaxEnergy(getEnergyMultiplier(), getMaxEnergy())-getEnergy())};
return new Object[] {(MekanismUtils.getMaxEnergy(this, getMaxEnergy())-getEnergy())};
default:
Mekanism.logger.error("Attempted to call unknown method with computer ID " + computer.getID());
return new Object[] {"Unknown command."};

View file

@ -211,7 +211,7 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
*/
public int getScaledProgress(int i)
{
return operatingTicks*i / MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED);
return operatingTicks*i / MekanismUtils.getTicks(this, TICKS_REQUIRED);
}
/**
@ -220,13 +220,13 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
*/
public double getScaledProgress()
{
return ((double)operatingTicks) / ((double)MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED));
return ((double)operatingTicks) / ((double)MekanismUtils.getTicks(this, TICKS_REQUIRED));
}
@Override
public double getMaxEnergy()
{
return MekanismUtils.getMaxEnergy(getEnergyMultiplier(), MAX_ELECTRICITY);
return MekanismUtils.getMaxEnergy(this, MAX_ELECTRICITY);
}
@Override

View file

@ -49,21 +49,21 @@ public abstract class TileEntityChanceMachine extends TileEntityBasicMachine
{
ChargeUtils.discharge(1, this);
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK))
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK))
{
setActive(true);
if((operatingTicks+1) < MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
if((operatingTicks+1) < MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
operatingTicks++;
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK);
}
else if((operatingTicks+1) >= MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
else if((operatingTicks+1) >= MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
operate();
operatingTicks = 0;
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK);
}
}
else {

View file

@ -15,11 +15,13 @@ import mekanism.api.gas.ITubeConnection;
import mekanism.client.sound.IHasSound;
import mekanism.common.IActiveState;
import mekanism.common.IRedstoneControl;
import mekanism.common.IUpgradeTile;
import mekanism.common.Mekanism;
import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.recipe.RecipeHandler;
import mekanism.common.recipe.RecipeHandler.Recipe;
import mekanism.common.tile.component.TileComponentUpgrade;
import mekanism.common.util.ChargeUtils;
import mekanism.common.util.InventoryUtils;
import mekanism.common.util.MekanismUtils;
@ -28,7 +30,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityChemicalOxidizer extends TileEntityElectricBlock implements IActiveState, ITubeConnection, IRedstoneControl, IHasSound
public class TileEntityChemicalOxidizer extends TileEntityElectricBlock implements IActiveState, ITubeConnection, IRedstoneControl, IHasSound, IUpgradeTile
{
public GasTank gasTank = new GasTank(MAX_GAS);
@ -51,11 +53,13 @@ public class TileEntityChemicalOxidizer extends TileEntityElectricBlock implemen
public final double ENERGY_USAGE = Mekanism.rotaryCondensentratorUsage;
public RedstoneControl controlType = RedstoneControl.DISABLED;
public TileComponentUpgrade upgradeComponent = new TileComponentUpgrade(this, 3);
public TileEntityChemicalOxidizer()
{
super("ChemicalOxidizer", MachineType.CHEMICAL_OXIDIZER.baseEnergy);
inventory = new ItemStack[3];
inventory = new ItemStack[4];
}
@Override
@ -96,12 +100,12 @@ public class TileEntityChemicalOxidizer extends TileEntityElectricBlock implemen
gasTank.draw(GasTransmission.addGas(inventory[2], gasTank.getGas()), true);
}
if(canOperate() && getEnergy() >= ENERGY_USAGE && MekanismUtils.canFunction(this))
if(canOperate() && getEnergy() >= MekanismUtils.getEnergyPerTick(this, ENERGY_USAGE) && MekanismUtils.canFunction(this))
{
setActive(true);
setEnergy(getEnergy() - ENERGY_USAGE);
setEnergy(getEnergy() - MekanismUtils.getEnergyPerTick(this, ENERGY_USAGE));
if(operatingTicks < TICKS_REQUIRED)
if(operatingTicks < MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
operatingTicks++;
}
@ -192,12 +196,12 @@ public class TileEntityChemicalOxidizer extends TileEntityElectricBlock implemen
public int getScaledProgress(int i)
{
return operatingTicks*i / TICKS_REQUIRED;
return operatingTicks*i / MekanismUtils.getTicks(this, TICKS_REQUIRED);
}
public double getScaledProgress()
{
return ((double)operatingTicks) / ((double)TICKS_REQUIRED);
return ((double)operatingTicks) / ((double)MekanismUtils.getTicks(this, TICKS_REQUIRED));
}
public boolean canOperate()
@ -286,6 +290,12 @@ public class TileEntityChemicalOxidizer extends TileEntityElectricBlock implemen
{
return i != 0 && i != 1;
}
@Override
public double getMaxEnergy()
{
return MekanismUtils.getMaxEnergy(this, MAX_ELECTRICITY);
}
public int getScaledGasLevel(int i)
{
@ -354,4 +364,42 @@ public class TileEntityChemicalOxidizer extends TileEntityElectricBlock implemen
{
return 1;
}
@Override
public int getEnergyMultiplier(Object... data)
{
return upgradeComponent.energyMultiplier;
}
@Override
public void setEnergyMultiplier(int multiplier, Object... data)
{
upgradeComponent.energyMultiplier = multiplier;
MekanismUtils.saveChunk(this);
}
@Override
public int getSpeedMultiplier(Object... data)
{
return upgradeComponent.speedMultiplier;
}
@Override
public void setSpeedMultiplier(int multiplier, Object... data)
{
upgradeComponent.speedMultiplier = multiplier;
MekanismUtils.saveChunk(this);
}
@Override
public boolean supportsUpgrades(Object... data)
{
return true;
}
@Override
public TileComponentUpgrade getComponent()
{
return upgradeComponent;
}
}

View file

@ -273,7 +273,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
public double getPerTick()
{
double ret = MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_USAGE);
double ret = MekanismUtils.getEnergyPerTick(this, ENERGY_USAGE);
if(silkTouch)
{
@ -291,7 +291,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
public int getDelay()
{
return MekanismUtils.getTicks(getSpeedMultiplier(), 80);
return MekanismUtils.getTicks(this, 80);
}
public void setReplace(Coord4D obj)
@ -902,7 +902,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
@Override
public double getMaxEnergy()
{
return MekanismUtils.getMaxEnergy(getEnergyMultiplier(), MAX_ELECTRICITY);
return MekanismUtils.getMaxEnergy(this, MAX_ELECTRICITY);
}
@Override

View file

@ -206,13 +206,55 @@ public class TileEntityDynamicTank extends TileEntityContainerBlock implements I
{
if(structure.inventory[0].getItem() instanceof IFluidContainerItem)
{
if(structure.editMode == ContainerEditMode.FILL)
if(structure.editMode == ContainerEditMode.FILL && structure.fluidStored != null)
{
//TODO
int prev = structure.fluidStored.amount;
structure.fluidStored.amount -= FluidContainerUtils.insertFluid(structure.fluidStored, structure.inventory[0]);
if(prev == structure.fluidStored.amount || structure.fluidStored.amount == 0)
{
if(structure.inventory[1] == null)
{
structure.inventory[1] = structure.inventory[0].copy();
structure.inventory[0] = null;
markDirty();
}
}
if(structure.fluidStored.amount == 0)
{
structure.fluidStored = null;
}
}
else if(structure.editMode == ContainerEditMode.EMPTY)
{
//TODO
if(structure.fluidStored != null)
{
FluidStack received = FluidContainerUtils.extractFluid(max-structure.fluidStored.amount, structure.inventory[0], structure.fluidStored.getFluid());
if(received != null)
{
structure.fluidStored.amount += received.amount;
}
}
else {
structure.fluidStored = FluidContainerUtils.extractFluid(max, structure.inventory[0], null);
}
int newStored = structure.fluidStored != null ? structure.fluidStored.amount : 0;
if(((IFluidContainerItem)structure.inventory[0].getItem()).getFluid(structure.inventory[0]) == null || newStored == max)
{
if(structure.inventory[1] == null)
{
structure.inventory[1] = structure.inventory[0].copy();
structure.inventory[0] = null;
markDirty();
}
}
}
}
else if(FluidContainerRegistry.isEmptyContainer(structure.inventory[0]) && (structure.editMode == ContainerEditMode.BOTH || structure.editMode == ContainerEditMode.FILL))
@ -547,4 +589,10 @@ public class TileEntityDynamicTank extends TileEntityContainerBlock implements I
structure.editMode = mode;
}
@Override
public boolean handleInventory()
{
return false;
}
}

View file

@ -57,21 +57,21 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
{
ChargeUtils.discharge(1, this);
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK))
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK))
{
setActive(true);
if((operatingTicks+1) < MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
if((operatingTicks+1) < MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
operatingTicks++;
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK);
}
else if((operatingTicks+1) >= MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
else if((operatingTicks+1) >= MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
operate();
operatingTicks = 0;
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK);
}
}
else {

View file

@ -215,21 +215,21 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
for(int process = 0; process < tier.processes; process++)
{
if(MekanismUtils.canFunction(this) && canOperate(getInputSlot(process), getOutputSlot(process)) && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK) && gasTank.getStored() >= getSecondaryEnergyPerTick())
if(MekanismUtils.canFunction(this) && canOperate(getInputSlot(process), getOutputSlot(process)) && getEnergy() >= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK) && gasTank.getStored() >= getSecondaryEnergyPerTick())
{
if((progress[process]+1) < MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
if((progress[process]+1) < MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
progress[process]++;
gasTank.draw(getSecondaryEnergyPerTick(), true);
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK);
}
else if((progress[process]+1) >= MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
else if((progress[process]+1) >= MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
operate(getInputSlot(process), getOutputSlot(process));
progress[process] = 0;
gasTank.draw(getSecondaryEnergyPerTick(), true);
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK);
}
}
@ -253,7 +253,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
}
}
if(MekanismUtils.canFunction(this) && hasOperation && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK) && gasTank.getStored() >= getSecondaryEnergyPerTick())
if(MekanismUtils.canFunction(this) && hasOperation && getEnergy() >= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK) && gasTank.getStored() >= getSecondaryEnergyPerTick())
{
setActive(true);
}
@ -479,7 +479,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
public int getScaledProgress(int i, int process)
{
return progress[process]*i / MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED);
return progress[process]*i / MekanismUtils.getTicks(this, TICKS_REQUIRED);
}
public int getScaledGasLevel(int i)
@ -770,7 +770,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
@Override
public double getMaxEnergy()
{
return MekanismUtils.getMaxEnergy(getEnergyMultiplier(), MAX_ELECTRICITY);
return MekanismUtils.getMaxEnergy(this, MAX_ELECTRICITY);
}
@Override

View file

@ -156,21 +156,21 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
}
}
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK))
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK))
{
setActive(true);
if((operatingTicks+1) < MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
if((operatingTicks+1) < MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
operatingTicks++;
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
setEnergy(getEnergy() - MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK));
}
else if((operatingTicks+1) >= MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
else if((operatingTicks+1) >= MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
operate();
operatingTicks = 0;
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
setEnergy(getEnergy() - MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK));
}
}
else {
@ -320,12 +320,12 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
public int getScaledProgress(int i)
{
return operatingTicks*i / MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED);
return operatingTicks*i / MekanismUtils.getTicks(this, TICKS_REQUIRED);
}
public double getScaledProgress()
{
return ((double)operatingTicks) / ((double)MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED));
return ((double)operatingTicks) / ((double)MekanismUtils.getTicks(this, TICKS_REQUIRED));
}
@Override
@ -503,7 +503,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
@Override
public double getMaxEnergy()
{
return MekanismUtils.getMaxEnergy(getEnergyMultiplier(), MAX_ELECTRICITY);
return MekanismUtils.getMaxEnergy(this, MAX_ELECTRICITY);
}
@Override

View file

@ -38,7 +38,6 @@ import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import cpw.mods.fml.common.Optional.Method;
import dan200.computercraft.api.lua.ILuaContext;
import dan200.computercraft.api.peripheral.IComputerAccess;
@ -76,23 +75,23 @@ public class TileEntityPRC extends TileEntityBasicMachine implements IFluidHandl
{
ChargeUtils.discharge(1, this);
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK))
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK))
{
PressurizedRecipe recipe = getRecipe();
TICKS_REQUIRED = recipe.ticks;
setActive(true);
if((operatingTicks+1) < MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
if((operatingTicks+1) < MekanismUtils.getTicks(this, TICKS_REQUIRED))
{
operatingTicks++;
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK);
}
else if((operatingTicks+1) >= MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED) && electricityStored >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK + recipe.extraEnergy))
else if((operatingTicks+1) >= MekanismUtils.getTicks(this, TICKS_REQUIRED) && electricityStored >= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK + recipe.extraEnergy))
{
operate();
operatingTicks = 0;
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK + recipe.extraEnergy);
electricityStored -= MekanismUtils.getEnergyPerTick(this, ENERGY_PER_TICK + recipe.extraEnergy);
}
}
else {
@ -203,6 +202,12 @@ public class TileEntityPRC extends TileEntityBasicMachine implements IFluidHandl
return true;
}
@Override
public double getMaxEnergy()
{
return MekanismUtils.getMaxEnergy(this, MAX_ELECTRICITY);
}
public PressurizedRecipe getRecipe()
{

View file

@ -14,6 +14,11 @@ public final class FluidContainerUtils
}
public static FluidStack extractFluid(FluidTank tileTank, ItemStack container, Fluid fluid)
{
return extractFluid(tileTank.getCapacity()-tileTank.getFluidAmount(), container, fluid);
}
public static FluidStack extractFluid(int needed, ItemStack container, Fluid fluid)
{
IFluidContainerItem item = (IFluidContainerItem)container.getItem();
@ -27,19 +32,24 @@ public final class FluidContainerUtils
return null;
}
return item.drain(container, tileTank.getCapacity()-tileTank.getFluidAmount(), true);
return item.drain(container, needed, true);
}
public static int insertFluid(FluidTank tileTank, ItemStack container)
{
return insertFluid(tileTank.getFluid(), container);
}
public static int insertFluid(FluidStack fluid, ItemStack container)
{
IFluidContainerItem item = (IFluidContainerItem)container.getItem();
if(tileTank.getFluid() == null)
if(fluid == null)
{
return 0;
}
return item.fill(container, tileTank.getFluid(), true);
return item.fill(container, fluid, true);
}
public static enum ContainerEditMode

View file

@ -26,6 +26,7 @@ import mekanism.common.IInvConfiguration;
import mekanism.common.IModule;
import mekanism.common.IRedstoneControl;
import mekanism.common.IRedstoneControl.RedstoneControl;
import mekanism.common.IUpgradeManagement;
import mekanism.common.Mekanism;
import mekanism.common.OreDictCache;
import mekanism.common.Teleporter;
@ -602,9 +603,9 @@ public final class MekanismUtils
* @param def - the original, default ticks required
* @return max operating ticks
*/
public static int getTicks(int speedUpgrade, int def)
public static int getTicks(IUpgradeManagement mgmt, int def)
{
return (int)(def * Math.pow(Mekanism.maxUpgradeMultiplier, -speedUpgrade/8.0));
return (int)(def * Math.pow(Mekanism.maxUpgradeMultiplier, -mgmt.getSpeedMultiplier()/8.0));
}
/**
@ -614,9 +615,9 @@ public final class MekanismUtils
* @param def - the original, default energy required
* @return max energy per tick
*/
public static double getEnergyPerTick(int speedUpgrade, int energyUpgrade, double def)
public static double getEnergyPerTick(IUpgradeManagement mgmt, double def)
{
return def * Math.pow(Mekanism.maxUpgradeMultiplier, (2*speedUpgrade-energyUpgrade)/8.0);
return def * Math.pow(Mekanism.maxUpgradeMultiplier, (2*mgmt.getSpeedMultiplier()-mgmt.getEnergyMultiplier())/8.0);
}
/**
@ -625,9 +626,20 @@ public final class MekanismUtils
* @param def - original, default max energy
* @return max energy
*/
public static double getMaxEnergy(int energyUpgrade, double def)
public static double getMaxEnergy(IUpgradeManagement mgmt, double def)
{
return def * Math.pow(Mekanism.maxUpgradeMultiplier, energyUpgrade/8.0);
return def * Math.pow(Mekanism.maxUpgradeMultiplier, mgmt.getEnergyMultiplier()/8.0);
}
/**
* Gets the maximum energy for a machine's item form via it's upgrades.
* @param energyUpgrade - number of energy upgrades
* @param def - original, default max energy
* @return max energy
*/
public static double getMaxEnergy(ItemStack itemStack, IUpgradeManagement mgmt, double def)
{
return def * Math.pow(Mekanism.maxUpgradeMultiplier, mgmt.getEnergyMultiplier(itemStack)/8.0);
}
/**

Binary file not shown.

After

(image error) Size: 9.6 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 2
}
}