Finish base code for gas-based advanced machinery
This commit is contained in:
parent
4fb335b7d3
commit
da6c0a2c90
11 changed files with 120 additions and 152 deletions
|
@ -64,7 +64,7 @@ public class GuiAdvancedElectricMachine extends GuiMekanism
|
||||||
|
|
||||||
int displayInt;
|
int displayInt;
|
||||||
|
|
||||||
displayInt = tileEntity.getScaledSecondaryEnergyLevel(12);
|
displayInt = tileEntity.getScaledGasLevel(12);
|
||||||
drawTexturedModalRect(guiWidth + 61, guiHeight + 37 + 12 - displayInt, 176, 7 + 12 - displayInt, 5, displayInt);
|
drawTexturedModalRect(guiWidth + 61, guiHeight + 37 + 12 - displayInt, 176, 7 + 12 - displayInt, 5, displayInt);
|
||||||
|
|
||||||
displayInt = tileEntity.getScaledProgress(24);
|
displayInt = tileEntity.getScaledProgress(24);
|
||||||
|
|
|
@ -60,7 +60,7 @@ public class GuiFactory extends GuiMekanism
|
||||||
|
|
||||||
if(xAxis >= 8 && xAxis <= 168 && yAxis >= 78 && yAxis <= 83)
|
if(xAxis >= 8 && xAxis <= 168 && yAxis >= 78 && yAxis <= 83)
|
||||||
{
|
{
|
||||||
drawCreativeTabHoveringText(MekanismUtils.localize("gui.factory.secondaryEnergy") + ": " + tileEntity.secondaryEnergyStored, xAxis, yAxis);
|
drawCreativeTabHoveringText(MekanismUtils.localize("gui.factory.secondaryEnergy") + ": " + tileEntity.gasTank.getStored(), xAxis, yAxis);
|
||||||
}
|
}
|
||||||
|
|
||||||
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||||
|
@ -131,7 +131,7 @@ public class GuiFactory extends GuiMekanism
|
||||||
recipeFuelY += 15;
|
recipeFuelY += 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
displayInt = tileEntity.getScaledSecondaryEnergy(160);
|
displayInt = tileEntity.getScaledGasLevel(160);
|
||||||
drawTexturedModalRect(guiWidth + 8, guiHeight + 78, 0, recipeFuelY, displayInt, 5);
|
drawTexturedModalRect(guiWidth + 8, guiHeight + 78, 0, recipeFuelY, displayInt, 5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package mekanism.common;
|
package mekanism.common;
|
||||||
|
|
||||||
|
import mekanism.api.gas.GasStack;
|
||||||
import mekanism.common.block.BlockMachine.MachineType;
|
import mekanism.common.block.BlockMachine.MachineType;
|
||||||
import mekanism.common.recipe.RecipeHandler;
|
import mekanism.common.recipe.RecipeHandler;
|
||||||
import mekanism.common.recipe.RecipeHandler.Recipe;
|
import mekanism.common.recipe.RecipeHandler.Recipe;
|
||||||
|
@ -43,6 +44,7 @@ public interface IFactory
|
||||||
private String sound;
|
private String sound;
|
||||||
private ItemStack stack;
|
private ItemStack stack;
|
||||||
private boolean usesFuel;
|
private boolean usesFuel;
|
||||||
|
private TileEntityAdvancedElectricMachine cacheTile;
|
||||||
|
|
||||||
public ItemStack getCopiedOutput(ItemStack input, boolean stackDecrease)
|
public ItemStack getCopiedOutput(ItemStack input, boolean stackDecrease)
|
||||||
{
|
{
|
||||||
|
@ -93,32 +95,37 @@ public interface IFactory
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getFuelTicks(ItemStack itemstack)
|
public GasStack getItemGas(ItemStack itemstack)
|
||||||
{
|
{
|
||||||
if(usesFuel)
|
if(usesFuel)
|
||||||
{
|
{
|
||||||
MachineType type = MachineType.get(getStack().itemID, getStack().getItemDamage());
|
return getTile().getItemGas(itemstack);
|
||||||
TileEntityAdvancedElectricMachine machine = (TileEntityAdvancedElectricMachine)type.create();
|
|
||||||
|
|
||||||
return machine.getFuelTicks(itemstack);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSecondaryEnergyPerTick()
|
public int getSecondaryEnergyPerTick()
|
||||||
{
|
{
|
||||||
if(usesFuel)
|
if(usesFuel)
|
||||||
{
|
{
|
||||||
MachineType type = MachineType.get(getStack().itemID, getStack().getItemDamage());
|
return getTile().SECONDARY_ENERGY_PER_TICK;
|
||||||
TileEntityAdvancedElectricMachine machine = (TileEntityAdvancedElectricMachine)type.create();
|
|
||||||
|
|
||||||
return machine.SECONDARY_ENERGY_PER_TICK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TileEntityAdvancedElectricMachine getTile()
|
||||||
|
{
|
||||||
|
if(cacheTile == null)
|
||||||
|
{
|
||||||
|
MachineType type = MachineType.get(getStack().itemID, getStack().getItemDamage());
|
||||||
|
cacheTile = (TileEntityAdvancedElectricMachine)type.create();
|
||||||
|
}
|
||||||
|
|
||||||
|
return cacheTile;
|
||||||
|
}
|
||||||
|
|
||||||
public int getMaxSecondaryEnergy()
|
public int getMaxSecondaryEnergy()
|
||||||
{
|
{
|
||||||
return 200;
|
return 200;
|
||||||
|
|
|
@ -97,7 +97,7 @@ public class ContainerAdvancedElectricMachine extends Container
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(tileEntity.getFuelTicks(slotStack) > 0)
|
else if(tileEntity.getItemGas(slotStack) != null)
|
||||||
{
|
{
|
||||||
if(slotID != 1)
|
if(slotID != 1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -163,7 +163,7 @@ public class ContainerFactory extends Container
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(RecipeType.values()[tileEntity.recipeType].getFuelTicks(slotStack) > 0)
|
else if(RecipeType.values()[tileEntity.recipeType].getItemGas(slotStack) != null)
|
||||||
{
|
{
|
||||||
if(slotID > tileEntity.inventory.length-1)
|
if(slotID > tileEntity.inventory.length-1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,8 +3,11 @@ package mekanism.common.tile;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import mekanism.api.EnumColor;
|
import mekanism.api.EnumColor;
|
||||||
|
import mekanism.api.gas.Gas;
|
||||||
import mekanism.api.gas.GasStack;
|
import mekanism.api.gas.GasStack;
|
||||||
import mekanism.api.gas.GasTank;
|
import mekanism.api.gas.GasTank;
|
||||||
|
import mekanism.api.gas.IGasHandler;
|
||||||
|
import mekanism.api.gas.ITubeConnection;
|
||||||
import mekanism.common.Mekanism;
|
import mekanism.common.Mekanism;
|
||||||
import mekanism.common.SideData;
|
import mekanism.common.SideData;
|
||||||
import mekanism.common.recipe.RecipeHandler;
|
import mekanism.common.recipe.RecipeHandler;
|
||||||
|
@ -16,22 +19,19 @@ import mekanism.common.util.MekanismUtils;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
|
||||||
import dan200.computer.api.IComputerAccess;
|
import dan200.computer.api.IComputerAccess;
|
||||||
import dan200.computer.api.ILuaContext;
|
import dan200.computer.api.ILuaContext;
|
||||||
|
|
||||||
public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicMachine
|
public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicMachine implements IGasHandler, ITubeConnection
|
||||||
{
|
{
|
||||||
/** How much secondary energy (fuel) this machine uses per tick. */
|
/** How much secondary energy (fuel) this machine uses per tick. */
|
||||||
public int SECONDARY_ENERGY_PER_TICK;
|
public int SECONDARY_ENERGY_PER_TICK;
|
||||||
|
|
||||||
/** Maximum amount of secondary energy (fuel) this machine can hold. */
|
public int MAX_SECONDARY_ENERGY = 200;
|
||||||
public int MAX_SECONDARY_ENERGY;
|
|
||||||
|
|
||||||
/** How much secondary energy (fuel) is stored in this machine. */
|
|
||||||
public int secondaryEnergyStored = 0;
|
|
||||||
|
|
||||||
public GasTank gasTank;
|
public GasTank gasTank;
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
* @param maxEnergy - maximum amount of energy this machine can hold.
|
* @param maxEnergy - maximum amount of energy this machine can hold.
|
||||||
* @param maxSecondaryEnergy - maximum amount of secondary energy (fuel) this machine can hold.
|
* @param maxSecondaryEnergy - maximum amount of secondary energy (fuel) this machine can hold.
|
||||||
*/
|
*/
|
||||||
public TileEntityAdvancedElectricMachine(String soundPath, String name, ResourceLocation location, double perTick, int secondaryPerTick, int ticksRequired, double maxEnergy, int maxSecondaryEnergy)
|
public TileEntityAdvancedElectricMachine(String soundPath, String name, ResourceLocation location, double perTick, int secondaryPerTick, int ticksRequired, double maxEnergy)
|
||||||
{
|
{
|
||||||
super(soundPath, name, location, perTick, ticksRequired, maxEnergy);
|
super(soundPath, name, location, perTick, ticksRequired, maxEnergy);
|
||||||
|
|
||||||
|
@ -62,12 +62,11 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
|
|
||||||
sideConfig = new byte[] {2, 1, 0, 4, 5, 3};
|
sideConfig = new byte[] {2, 1, 0, 4, 5, 3};
|
||||||
|
|
||||||
gasTank = new GasTank(maxSecondaryEnergy);
|
gasTank = new GasTank(MAX_SECONDARY_ENERGY);
|
||||||
|
|
||||||
inventory = new ItemStack[5];
|
inventory = new ItemStack[5];
|
||||||
|
|
||||||
SECONDARY_ENERGY_PER_TICK = secondaryPerTick;
|
SECONDARY_ENERGY_PER_TICK = secondaryPerTick;
|
||||||
MAX_SECONDARY_ENERGY = maxSecondaryEnergy;
|
|
||||||
|
|
||||||
upgradeComponent = new TileComponentUpgrade(this, 4);
|
upgradeComponent = new TileComponentUpgrade(this, 4);
|
||||||
ejectorComponent = new TileComponentEjector(this, sideOutputs.get(3));
|
ejectorComponent = new TileComponentEjector(this, sideOutputs.get(3));
|
||||||
|
@ -78,7 +77,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
* @param itemstack - itemstack to check with
|
* @param itemstack - itemstack to check with
|
||||||
* @return fuel ticks
|
* @return fuel ticks
|
||||||
*/
|
*/
|
||||||
public abstract int getFuelTicks(ItemStack itemstack);
|
public abstract GasStack getItemGas(ItemStack itemstack);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate()
|
public void onUpdate()
|
||||||
|
@ -91,13 +90,13 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
|
|
||||||
handleSecondaryFuel();
|
handleSecondaryFuel();
|
||||||
|
|
||||||
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK) && secondaryEnergyStored >= SECONDARY_ENERGY_PER_TICK)
|
if(canOperate() && MekanismUtils.canFunction(this) && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK) && gasTank.getStored() >= SECONDARY_ENERGY_PER_TICK)
|
||||||
{
|
{
|
||||||
setActive(true);
|
setActive(true);
|
||||||
|
|
||||||
operatingTicks++;
|
operatingTicks++;
|
||||||
|
|
||||||
secondaryEnergyStored -= SECONDARY_ENERGY_PER_TICK;
|
gasTank.draw(SECONDARY_ENERGY_PER_TICK, true);
|
||||||
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
|
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
|
||||||
|
|
||||||
if(operatingTicks >= MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
|
if(operatingTicks >= MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
|
||||||
|
@ -127,19 +126,12 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
{
|
{
|
||||||
if(inventory[1] != null)
|
if(inventory[1] != null)
|
||||||
{
|
{
|
||||||
int fuelTicks = getFuelTicks(inventory[1]);
|
GasStack stack = getItemGas(inventory[1]);
|
||||||
int energyNeeded = MAX_SECONDARY_ENERGY - secondaryEnergyStored;
|
int gasNeeded = gasTank.getNeeded();
|
||||||
|
|
||||||
if(fuelTicks > 0 && fuelTicks <= energyNeeded)
|
if(stack != null && stack.amount <= gasNeeded)
|
||||||
{
|
{
|
||||||
if(fuelTicks <= energyNeeded)
|
gasTank.receive(stack, true);
|
||||||
{
|
|
||||||
setSecondaryEnergy(secondaryEnergyStored + fuelTicks);
|
|
||||||
}
|
|
||||||
else if(fuelTicks > energyNeeded)
|
|
||||||
{
|
|
||||||
setSecondaryEnergy(secondaryEnergyStored + energyNeeded);
|
|
||||||
}
|
|
||||||
|
|
||||||
inventory[1].stackSize--;
|
inventory[1].stackSize--;
|
||||||
|
|
||||||
|
@ -172,7 +164,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
}
|
}
|
||||||
else if(slotID == 1)
|
else if(slotID == 1)
|
||||||
{
|
{
|
||||||
return getFuelTicks(itemstack) > 0;
|
return getItemGas(itemstack) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -233,7 +225,6 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
public void handlePacketData(ByteArrayDataInput dataStream)
|
public void handlePacketData(ByteArrayDataInput dataStream)
|
||||||
{
|
{
|
||||||
super.handlePacketData(dataStream);
|
super.handlePacketData(dataStream);
|
||||||
secondaryEnergyStored = dataStream.readInt();
|
|
||||||
|
|
||||||
if(dataStream.readBoolean())
|
if(dataStream.readBoolean())
|
||||||
{
|
{
|
||||||
|
@ -249,8 +240,6 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
{
|
{
|
||||||
super.getNetworkedData(data);
|
super.getNetworkedData(data);
|
||||||
|
|
||||||
data.add(secondaryEnergyStored);
|
|
||||||
|
|
||||||
if(gasTank.getGas() != null)
|
if(gasTank.getGas() != null)
|
||||||
{
|
{
|
||||||
data.add(true);
|
data.add(true);
|
||||||
|
@ -269,7 +258,6 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
{
|
{
|
||||||
super.readFromNBT(nbtTags);
|
super.readFromNBT(nbtTags);
|
||||||
|
|
||||||
secondaryEnergyStored = nbtTags.getInteger("secondaryEnergyStored");
|
|
||||||
gasTank.read(nbtTags.getCompoundTag("gasTank"));
|
gasTank.read(nbtTags.getCompoundTag("gasTank"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,27 +266,17 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
{
|
{
|
||||||
super.writeToNBT(nbtTags);
|
super.writeToNBT(nbtTags);
|
||||||
|
|
||||||
nbtTags.setInteger("secondaryEnergyStored", secondaryEnergyStored);
|
|
||||||
nbtTags.setCompoundTag("gasTank", gasTank.write(new NBTTagCompound()));
|
nbtTags.setCompoundTag("gasTank", gasTank.write(new NBTTagCompound()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the secondary energy to a new amount
|
|
||||||
* @param energy - amount to store
|
|
||||||
*/
|
|
||||||
public void setSecondaryEnergy(int energy)
|
|
||||||
{
|
|
||||||
secondaryEnergyStored = Math.max(Math.min(energy, MAX_SECONDARY_ENERGY), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the scaled secondary energy level for the GUI.
|
* Gets the scaled secondary energy level for the GUI.
|
||||||
* @param i - multiplier
|
* @param i - multiplier
|
||||||
* @return scaled secondary energy
|
* @return scaled secondary energy
|
||||||
*/
|
*/
|
||||||
public int getScaledSecondaryEnergyLevel(int i)
|
public int getScaledGasLevel(int i)
|
||||||
{
|
{
|
||||||
return secondaryEnergyStored*i / MAX_SECONDARY_ENERGY;
|
return gasTank.getStored()*i / gasTank.getMaxGas();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -316,6 +294,36 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canTubeConnect(ForgeDirection side)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int receiveGas(ForgeDirection side, GasStack stack)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GasStack drawGas(ForgeDirection side, int amount)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canReceiveGas(ForgeDirection side, Gas type)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canDrawGas(ForgeDirection side, Gas type)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String[] getMethodNames()
|
public String[] getMethodNames()
|
||||||
{
|
{
|
||||||
|
@ -330,7 +338,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
|
||||||
case 0:
|
case 0:
|
||||||
return new Object[] {getEnergy()};
|
return new Object[] {getEnergy()};
|
||||||
case 1:
|
case 1:
|
||||||
return new Object[] {secondaryEnergyStored};
|
return new Object[] {gasTank.getStored()};
|
||||||
case 2:
|
case 2:
|
||||||
return new Object[] {operatingTicks};
|
return new Object[] {operatingTicks};
|
||||||
case 3:
|
case 3:
|
||||||
|
|
|
@ -21,7 +21,7 @@ public class TileEntityChemicalInjectionChamber extends TileEntityAdvancedElectr
|
||||||
{
|
{
|
||||||
public TileEntityChemicalInjectionChamber()
|
public TileEntityChemicalInjectionChamber()
|
||||||
{
|
{
|
||||||
super("ChemicalInjectionChamber.ogg", "ChemicalInjectionChamber", new ResourceLocation("mekanism", "gui/GuiChemicalInjectionChamber.png"), Mekanism.chemicalInjectionChamberUsage, 1, 200, MachineType.CHEMICAL_INJECTION_CHAMBER.baseEnergy, 1200);
|
super("ChemicalInjectionChamber.ogg", "ChemicalInjectionChamber", new ResourceLocation("mekanism", "gui/GuiChemicalInjectionChamber.png"), Mekanism.chemicalInjectionChamberUsage, 1, 200, MachineType.CHEMICAL_INJECTION_CHAMBER.baseEnergy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -31,13 +31,13 @@ public class TileEntityChemicalInjectionChamber extends TileEntityAdvancedElectr
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getFuelTicks(ItemStack itemstack)
|
public GasStack getItemGas(ItemStack itemstack)
|
||||||
{
|
{
|
||||||
if(MekanismUtils.getOreDictName(itemstack).contains("dustSulfur")) return 5;
|
if(MekanismUtils.getOreDictName(itemstack).contains("dustSulfur")) return new GasStack(GasRegistry.getGas("sulfuricAcid"), 2);
|
||||||
if(itemstack.itemID == Mekanism.GasTank.blockID && ((IGasItem)itemstack.getItem()).getGas(itemstack) != null &&
|
if(itemstack.itemID == Mekanism.GasTank.blockID && ((IGasItem)itemstack.getItem()).getGas(itemstack) != null &&
|
||||||
((IGasItem)itemstack.getItem()).getGas(itemstack).getGas() == GasRegistry.getGas("sulfuricAcid")) return 1;
|
((IGasItem)itemstack.getItem()).getGas(itemstack).getGas() == GasRegistry.getGas("sulfuricAcid")) return new GasStack(GasRegistry.getGas("sulfuricAcid"), 1);
|
||||||
|
|
||||||
return 0;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -45,9 +45,7 @@ public class TileEntityChemicalInjectionChamber extends TileEntityAdvancedElectr
|
||||||
{
|
{
|
||||||
if(stack.getGas() == GasRegistry.getGas("sulfuricAcid"))
|
if(stack.getGas() == GasRegistry.getGas("sulfuricAcid"))
|
||||||
{
|
{
|
||||||
int toUse = Math.min(MAX_SECONDARY_ENERGY-secondaryEnergyStored, stack.amount);
|
return gasTank.receive(stack, true);
|
||||||
secondaryEnergyStored += toUse;
|
|
||||||
return toUse;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -62,10 +60,10 @@ public class TileEntityChemicalInjectionChamber extends TileEntityAdvancedElectr
|
||||||
@Override
|
@Override
|
||||||
public void handleSecondaryFuel()
|
public void handleSecondaryFuel()
|
||||||
{
|
{
|
||||||
if(inventory[1] != null && secondaryEnergyStored < MAX_SECONDARY_ENERGY && inventory[1].getItem() instanceof IGasItem)
|
if(inventory[1] != null && gasTank.getNeeded() > 0 && inventory[1].getItem() instanceof IGasItem)
|
||||||
{
|
{
|
||||||
GasStack removed = GasTransmission.removeGas(inventory[1], GasRegistry.getGas("sulfuricAcid"), MAX_SECONDARY_ENERGY-secondaryEnergyStored);
|
GasStack removed = GasTransmission.removeGas(inventory[1], GasRegistry.getGas("sulfuricAcid"), gasTank.getNeeded());
|
||||||
setSecondaryEnergy(secondaryEnergyStored + (removed != null ? removed.amount : 0));
|
gasTank.receive(removed, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,16 +75,4 @@ public class TileEntityChemicalInjectionChamber extends TileEntityAdvancedElectr
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public GasStack drawGas(ForgeDirection side, int amount)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canDrawGas(ForgeDirection side, Gas type)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,8 @@ package mekanism.common.tile;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import mekanism.api.gas.GasRegistry;
|
||||||
|
import mekanism.api.gas.GasStack;
|
||||||
import mekanism.common.Mekanism;
|
import mekanism.common.Mekanism;
|
||||||
import mekanism.common.block.BlockMachine.MachineType;
|
import mekanism.common.block.BlockMachine.MachineType;
|
||||||
import mekanism.common.recipe.RecipeHandler.Recipe;
|
import mekanism.common.recipe.RecipeHandler.Recipe;
|
||||||
|
@ -14,7 +16,7 @@ public class TileEntityCombiner extends TileEntityAdvancedElectricMachine
|
||||||
{
|
{
|
||||||
public TileEntityCombiner()
|
public TileEntityCombiner()
|
||||||
{
|
{
|
||||||
super("Combiner.ogg", "Combiner", new ResourceLocation("mekanism", "gui/GuiCombiner.png"), Mekanism.combinerUsage, 1, 200, MachineType.COMBINER.baseEnergy, 200);
|
super("Combiner.ogg", "Combiner", new ResourceLocation("mekanism", "gui/GuiCombiner.png"), Mekanism.combinerUsage, 1, 200, MachineType.COMBINER.baseEnergy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -24,13 +26,13 @@ public class TileEntityCombiner extends TileEntityAdvancedElectricMachine
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getFuelTicks(ItemStack itemstack)
|
public GasStack getItemGas(ItemStack itemstack)
|
||||||
{
|
{
|
||||||
if(itemstack.getItem() instanceof ItemBlock && itemstack.itemID == Block.cobblestone.blockID)
|
if(itemstack.getItem() instanceof ItemBlock && itemstack.itemID == Block.cobblestone.blockID)
|
||||||
{
|
{
|
||||||
return 200;
|
return new GasStack(GasRegistry.getGas("liquidStone"), 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,8 +88,6 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
|
|
||||||
public boolean sorting;
|
public boolean sorting;
|
||||||
|
|
||||||
public int secondaryEnergyStored;
|
|
||||||
|
|
||||||
/** This machine's current RedstoneControl type. */
|
/** This machine's current RedstoneControl type. */
|
||||||
public RedstoneControl controlType = RedstoneControl.DISABLED;
|
public RedstoneControl controlType = RedstoneControl.DISABLED;
|
||||||
|
|
||||||
|
@ -191,8 +189,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
inventory[2] = null;
|
inventory[2] = null;
|
||||||
inventory[3] = getMachineStack();
|
inventory[3] = getMachineStack();
|
||||||
|
|
||||||
recipeType = toSet.ordinal();
|
gasTank.setGas(null);
|
||||||
setSecondaryEnergy(0);
|
|
||||||
|
|
||||||
worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType().blockID);
|
worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType().blockID);
|
||||||
|
|
||||||
|
@ -209,12 +206,12 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
|
|
||||||
for(int process = 0; process < tier.processes; process++)
|
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) && secondaryEnergyStored >= getSecondaryEnergyPerTick())
|
if(MekanismUtils.canFunction(this) && canOperate(getInputSlot(process), getOutputSlot(process)) && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK) && gasTank.getStored() >= getSecondaryEnergyPerTick())
|
||||||
{
|
{
|
||||||
if((progress[process]+1) < MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
|
if((progress[process]+1) < MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
|
||||||
{
|
{
|
||||||
progress[process]++;
|
progress[process]++;
|
||||||
secondaryEnergyStored -= getSecondaryEnergyPerTick();
|
gasTank.draw(getSecondaryEnergyPerTick(), true);
|
||||||
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
|
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
|
||||||
}
|
}
|
||||||
else if((progress[process]+1) >= MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
|
else if((progress[process]+1) >= MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED))
|
||||||
|
@ -222,7 +219,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
operate(getInputSlot(process), getOutputSlot(process));
|
operate(getInputSlot(process), getOutputSlot(process));
|
||||||
|
|
||||||
progress[process] = 0;
|
progress[process] = 0;
|
||||||
secondaryEnergyStored -= getSecondaryEnergyPerTick();
|
gasTank.draw(getSecondaryEnergyPerTick(), true);
|
||||||
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
|
electricityStored -= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -244,7 +241,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(MekanismUtils.canFunction(this) && hasOperation && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK) && secondaryEnergyStored >= getSecondaryEnergyPerTick())
|
if(MekanismUtils.canFunction(this) && hasOperation && getEnergy() >= MekanismUtils.getEnergyPerTick(getSpeedMultiplier(), getEnergyMultiplier(), ENERGY_PER_TICK) && gasTank.getStored() >= getSecondaryEnergyPerTick())
|
||||||
{
|
{
|
||||||
setActive(true);
|
setActive(true);
|
||||||
}
|
}
|
||||||
|
@ -349,14 +346,14 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
|
|
||||||
public void handleSecondaryFuel()
|
public void handleSecondaryFuel()
|
||||||
{
|
{
|
||||||
if(inventory[4] != null && RecipeType.values()[recipeType].usesFuel() && secondaryEnergyStored < getMaxSecondaryEnergy())
|
if(inventory[4] != null && RecipeType.values()[recipeType].usesFuel() && gasTank.getStored() < getMaxSecondaryEnergy())
|
||||||
{
|
{
|
||||||
if(recipeType == RecipeType.PURIFYING.ordinal())
|
if(recipeType == RecipeType.PURIFYING.ordinal())
|
||||||
{
|
{
|
||||||
if(inventory[4].getItem() instanceof IGasItem)
|
if(inventory[4].getItem() instanceof IGasItem)
|
||||||
{
|
{
|
||||||
GasStack removed = GasTransmission.removeGas(inventory[4], GasRegistry.getGas("oxygen"), getMaxSecondaryEnergy()-secondaryEnergyStored);
|
GasStack removed = GasTransmission.removeGas(inventory[4], GasRegistry.getGas("oxygen"), gasTank.getNeeded());
|
||||||
setSecondaryEnergy(secondaryEnergyStored + (removed != null ? removed.amount : 0));
|
gasTank.receive(removed, true);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -365,26 +362,19 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
{
|
{
|
||||||
if(inventory[4].getItem() instanceof IGasItem)
|
if(inventory[4].getItem() instanceof IGasItem)
|
||||||
{
|
{
|
||||||
GasStack removed = GasTransmission.removeGas(inventory[4], GasRegistry.getGas("sulfuricAcid"), getMaxSecondaryEnergy()-secondaryEnergyStored);
|
GasStack removed = GasTransmission.removeGas(inventory[4], GasRegistry.getGas("sulfuricAcid"), gasTank.getNeeded());
|
||||||
setSecondaryEnergy(secondaryEnergyStored + (removed != null ? removed.amount : 0));
|
gasTank.receive(removed, true);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int fuelTicks = RecipeType.values()[recipeType].getFuelTicks(inventory[4]);
|
GasStack stack = RecipeType.values()[recipeType].getItemGas(inventory[4]);
|
||||||
int energyNeeded = getMaxSecondaryEnergy() - secondaryEnergyStored;
|
int gasNeeded = gasTank.getNeeded();
|
||||||
|
|
||||||
if(fuelTicks > 0 && fuelTicks <= energyNeeded)
|
if(stack != null && stack.amount <= gasNeeded)
|
||||||
{
|
{
|
||||||
if(fuelTicks <= energyNeeded)
|
gasTank.receive(stack, true);
|
||||||
{
|
|
||||||
setSecondaryEnergy(secondaryEnergyStored + fuelTicks);
|
|
||||||
}
|
|
||||||
else if(fuelTicks > energyNeeded)
|
|
||||||
{
|
|
||||||
setSecondaryEnergy(secondaryEnergyStored + energyNeeded);
|
|
||||||
}
|
|
||||||
|
|
||||||
inventory[4].stackSize--;
|
inventory[4].stackSize--;
|
||||||
|
|
||||||
|
@ -471,7 +461,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
}
|
}
|
||||||
else if(slotID == 4)
|
else if(slotID == 4)
|
||||||
{
|
{
|
||||||
return RecipeType.values()[recipeType].getFuelTicks(itemstack) > 0;
|
return RecipeType.values()[recipeType].getItemGas(itemstack) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -493,9 +483,9 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
return progress[process]*i / MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED);
|
return progress[process]*i / MekanismUtils.getTicks(getSpeedMultiplier(), TICKS_REQUIRED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getScaledSecondaryEnergy(int i)
|
public int getScaledGasLevel(int i)
|
||||||
{
|
{
|
||||||
return secondaryEnergyStored*i / getMaxSecondaryEnergy();
|
return gasTank.getStored()*i / gasTank.getMaxGas();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getScaledRecipeProgress(int i)
|
public int getScaledRecipeProgress(int i)
|
||||||
|
@ -557,11 +547,6 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
ejectorComponent.onOutput();
|
ejectorComponent.onOutput();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSecondaryEnergy(int energy)
|
|
||||||
{
|
|
||||||
secondaryEnergyStored = Math.max(Math.min(energy, getMaxSecondaryEnergy()), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handlePacketData(ByteArrayDataInput dataStream)
|
public void handlePacketData(ByteArrayDataInput dataStream)
|
||||||
{
|
{
|
||||||
|
@ -583,7 +568,6 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
recipeType = dataStream.readInt();
|
recipeType = dataStream.readInt();
|
||||||
recipeTicks = dataStream.readInt();
|
recipeTicks = dataStream.readInt();
|
||||||
controlType = RedstoneControl.values()[dataStream.readInt()];
|
controlType = RedstoneControl.values()[dataStream.readInt()];
|
||||||
secondaryEnergyStored = dataStream.readInt();
|
|
||||||
sorting = dataStream.readBoolean();
|
sorting = dataStream.readBoolean();
|
||||||
|
|
||||||
for(int i = 0; i < tier.processes; i++)
|
for(int i = 0; i < tier.processes; i++)
|
||||||
|
@ -621,7 +605,6 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
recipeType = nbtTags.getInteger("recipeType");
|
recipeType = nbtTags.getInteger("recipeType");
|
||||||
recipeTicks = nbtTags.getInteger("recipeTicks");
|
recipeTicks = nbtTags.getInteger("recipeTicks");
|
||||||
controlType = RedstoneControl.values()[nbtTags.getInteger("controlType")];
|
controlType = RedstoneControl.values()[nbtTags.getInteger("controlType")];
|
||||||
secondaryEnergyStored = nbtTags.getInteger("secondaryEnergyStored");
|
|
||||||
sorting = nbtTags.getBoolean("sorting");
|
sorting = nbtTags.getBoolean("sorting");
|
||||||
|
|
||||||
for(int i = 0; i < tier.processes; i++)
|
for(int i = 0; i < tier.processes; i++)
|
||||||
|
@ -649,7 +632,6 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
nbtTags.setInteger("recipeType", recipeType);
|
nbtTags.setInteger("recipeType", recipeType);
|
||||||
nbtTags.setInteger("recipeTicks", recipeTicks);
|
nbtTags.setInteger("recipeTicks", recipeTicks);
|
||||||
nbtTags.setInteger("controlType", controlType.ordinal());
|
nbtTags.setInteger("controlType", controlType.ordinal());
|
||||||
nbtTags.setInteger("secondaryEnergyStored", secondaryEnergyStored);
|
|
||||||
nbtTags.setBoolean("sorting", sorting);
|
nbtTags.setBoolean("sorting", sorting);
|
||||||
|
|
||||||
for(int i = 0; i < tier.processes; i++)
|
for(int i = 0; i < tier.processes; i++)
|
||||||
|
@ -676,7 +658,6 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
data.add(recipeType);
|
data.add(recipeType);
|
||||||
data.add(recipeTicks);
|
data.add(recipeTicks);
|
||||||
data.add(controlType.ordinal());
|
data.add(controlType.ordinal());
|
||||||
data.add(secondaryEnergyStored);
|
|
||||||
data.add(sorting);
|
data.add(sorting);
|
||||||
data.add(progress);
|
data.add(progress);
|
||||||
data.add(sideConfig);
|
data.add(sideConfig);
|
||||||
|
@ -924,9 +905,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IPerip
|
||||||
if(recipeType == RecipeType.PURIFYING.ordinal() && stack.getGas() == GasRegistry.getGas("oxygen") ||
|
if(recipeType == RecipeType.PURIFYING.ordinal() && stack.getGas() == GasRegistry.getGas("oxygen") ||
|
||||||
recipeType == RecipeType.INJECTING.ordinal() && stack.getGas() == GasRegistry.getGas("sulfuricAcid"))
|
recipeType == RecipeType.INJECTING.ordinal() && stack.getGas() == GasRegistry.getGas("sulfuricAcid"))
|
||||||
{
|
{
|
||||||
int toUse = Math.min(getMaxSecondaryEnergy()-secondaryEnergyStored, stack.amount);
|
return gasTank.receive(stack, true);
|
||||||
secondaryEnergyStored += toUse;
|
|
||||||
return toUse;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -2,6 +2,8 @@ package mekanism.common.tile;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import mekanism.api.gas.GasRegistry;
|
||||||
|
import mekanism.api.gas.GasStack;
|
||||||
import mekanism.common.Mekanism;
|
import mekanism.common.Mekanism;
|
||||||
import mekanism.common.block.BlockMachine.MachineType;
|
import mekanism.common.block.BlockMachine.MachineType;
|
||||||
import mekanism.common.recipe.RecipeHandler.Recipe;
|
import mekanism.common.recipe.RecipeHandler.Recipe;
|
||||||
|
@ -13,7 +15,7 @@ public class TileEntityOsmiumCompressor extends TileEntityAdvancedElectricMachin
|
||||||
{
|
{
|
||||||
public TileEntityOsmiumCompressor()
|
public TileEntityOsmiumCompressor()
|
||||||
{
|
{
|
||||||
super("Compressor.ogg", "OsmiumCompressor", new ResourceLocation("mekanism", "gui/GuiCompressor.png"), Mekanism.osmiumCompressorUsage, 1, 200, MachineType.OSMIUM_COMPRESSOR.baseEnergy, 200);
|
super("Compressor.ogg", "OsmiumCompressor", new ResourceLocation("mekanism", "gui/GuiCompressor.png"), Mekanism.osmiumCompressorUsage, 1, 200, MachineType.OSMIUM_COMPRESSOR.baseEnergy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -23,7 +25,7 @@ public class TileEntityOsmiumCompressor extends TileEntityAdvancedElectricMachin
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getFuelTicks(ItemStack itemstack)
|
public GasStack getItemGas(ItemStack itemstack)
|
||||||
{
|
{
|
||||||
int amount = 0;
|
int amount = 0;
|
||||||
|
|
||||||
|
@ -31,8 +33,7 @@ public class TileEntityOsmiumCompressor extends TileEntityAdvancedElectricMachin
|
||||||
{
|
{
|
||||||
if(ore.isItemEqual(itemstack))
|
if(ore.isItemEqual(itemstack))
|
||||||
{
|
{
|
||||||
amount = 200;
|
return new GasStack(GasRegistry.getGas("liquidOsmium"), 200);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,11 +41,10 @@ public class TileEntityOsmiumCompressor extends TileEntityAdvancedElectricMachin
|
||||||
{
|
{
|
||||||
if(ore.isItemEqual(itemstack))
|
if(ore.isItemEqual(itemstack))
|
||||||
{
|
{
|
||||||
amount = 1800;
|
return new GasStack(GasRegistry.getGas("liquidOsmium"), 1800);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return amount;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ public class TileEntityPurificationChamber extends TileEntityAdvancedElectricMac
|
||||||
{
|
{
|
||||||
public TileEntityPurificationChamber()
|
public TileEntityPurificationChamber()
|
||||||
{
|
{
|
||||||
super("PurificationChamber.ogg", "PurificationChamber", new ResourceLocation("mekanism", "gui/GuiPurificationChamber.png"), Mekanism.purificationChamberUsage, 1, 200, MachineType.PURIFICATION_CHAMBER.baseEnergy, 1200);
|
super("PurificationChamber.ogg", "PurificationChamber", new ResourceLocation("mekanism", "gui/GuiPurificationChamber.png"), Mekanism.purificationChamberUsage, 1, 200, MachineType.PURIFICATION_CHAMBER.baseEnergy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -31,13 +31,13 @@ public class TileEntityPurificationChamber extends TileEntityAdvancedElectricMac
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getFuelTicks(ItemStack itemstack)
|
public GasStack getItemGas(ItemStack itemstack)
|
||||||
{
|
{
|
||||||
if(itemstack.isItemEqual(new ItemStack(Item.flint))) return 300;
|
if(itemstack.isItemEqual(new ItemStack(Item.flint))) return new GasStack(GasRegistry.getGas("oxygen"), 10);
|
||||||
if(itemstack.itemID == Mekanism.GasTank.blockID && ((IGasItem)itemstack.getItem()).getGas(itemstack) != null &&
|
if(itemstack.itemID == Mekanism.GasTank.blockID && ((IGasItem)itemstack.getItem()).getGas(itemstack) != null &&
|
||||||
((IGasItem)itemstack.getItem()).getGas(itemstack).getGas() == GasRegistry.getGas("oxygen")) return 1;
|
((IGasItem)itemstack.getItem()).getGas(itemstack).getGas() == GasRegistry.getGas("oxygen")) return new GasStack(GasRegistry.getGas("oxygen"), 1);
|
||||||
|
|
||||||
return 0;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -45,9 +45,7 @@ public class TileEntityPurificationChamber extends TileEntityAdvancedElectricMac
|
||||||
{
|
{
|
||||||
if(stack.getGas() == GasRegistry.getGas("oxygen"))
|
if(stack.getGas() == GasRegistry.getGas("oxygen"))
|
||||||
{
|
{
|
||||||
int toUse = Math.min(MAX_SECONDARY_ENERGY-secondaryEnergyStored, stack.amount);
|
return gasTank.receive(stack, true);
|
||||||
secondaryEnergyStored += toUse;
|
|
||||||
return toUse;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -62,10 +60,10 @@ public class TileEntityPurificationChamber extends TileEntityAdvancedElectricMac
|
||||||
@Override
|
@Override
|
||||||
public void handleSecondaryFuel()
|
public void handleSecondaryFuel()
|
||||||
{
|
{
|
||||||
if(inventory[1] != null && secondaryEnergyStored < MAX_SECONDARY_ENERGY && inventory[1].getItem() instanceof IGasItem)
|
if(inventory[1] != null && gasTank.getNeeded() > 0 && inventory[1].getItem() instanceof IGasItem)
|
||||||
{
|
{
|
||||||
GasStack removed = GasTransmission.removeGas(inventory[1], GasRegistry.getGas("oxygen"), MAX_SECONDARY_ENERGY-secondaryEnergyStored);
|
GasStack removed = GasTransmission.removeGas(inventory[1], GasRegistry.getGas("oxygen"), gasTank.getNeeded());
|
||||||
setSecondaryEnergy(secondaryEnergyStored + (removed != null ? removed.amount : 0));
|
gasTank.receive(removed, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,16 +75,4 @@ public class TileEntityPurificationChamber extends TileEntityAdvancedElectricMac
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public GasStack drawGas(ForgeDirection side, int amount)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canDrawGas(ForgeDirection side, Gas type)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue