Entangloporters work perfectly!
This commit is contained in:
parent
f8f8dfa737
commit
668643e663
9 changed files with 97 additions and 241 deletions
|
@ -66,7 +66,7 @@ public final class Tier
|
|||
ADVANCED(8000000, 3200),
|
||||
ELITE(32000000, 12800),
|
||||
ULTIMATE(128000000, 51200),
|
||||
CREATIVE(Integer.MAX_VALUE, Integer.MAX_VALUE);
|
||||
CREATIVE(Double.MAX_VALUE, Double.MAX_VALUE);
|
||||
|
||||
public double maxEnergy;
|
||||
private double baseMaxEnergy;
|
||||
|
|
|
@ -18,14 +18,17 @@ public class InventoryFrequency extends Frequency
|
|||
public static final double MAX_ENERGY = 1000000;
|
||||
|
||||
public double storedEnergy;
|
||||
public FluidTank storedFluid = new FluidTank(1000);
|
||||
public GasTank storedGas = new GasTank(1000);
|
||||
public FluidTank storedFluid;
|
||||
public GasTank storedGas;
|
||||
public ItemStack storedItem;
|
||||
public double temperature;
|
||||
|
||||
public InventoryFrequency(String n, String o)
|
||||
{
|
||||
super(n, o);
|
||||
|
||||
storedFluid = new FluidTank(1000);
|
||||
storedGas = new GasTank(1000);
|
||||
}
|
||||
|
||||
public InventoryFrequency(NBTTagCompound nbtTags)
|
||||
|
@ -45,12 +48,12 @@ public class InventoryFrequency extends Frequency
|
|||
|
||||
nbtTags.setDouble("storedEnergy", storedEnergy);
|
||||
|
||||
if(storedFluid != null)
|
||||
if(storedFluid.getFluid() != null)
|
||||
{
|
||||
nbtTags.setTag("storedFluid", storedFluid.writeToNBT(new NBTTagCompound()));
|
||||
}
|
||||
|
||||
if(storedGas != null)
|
||||
if(storedGas.getGas() != null)
|
||||
{
|
||||
nbtTags.setTag("storedGas", storedGas.write(new NBTTagCompound()));
|
||||
}
|
||||
|
@ -68,6 +71,9 @@ public class InventoryFrequency extends Frequency
|
|||
{
|
||||
super.read(nbtTags);
|
||||
|
||||
storedFluid = new FluidTank(1000);
|
||||
storedGas = new GasTank(1000);
|
||||
|
||||
storedEnergy = nbtTags.getDouble("storedEnergy");
|
||||
|
||||
if(nbtTags.hasKey("storedFluid"))
|
||||
|
@ -123,6 +129,9 @@ public class InventoryFrequency extends Frequency
|
|||
{
|
||||
super.read(dataStream);
|
||||
|
||||
storedFluid = new FluidTank(1000);
|
||||
storedGas = new GasTank(1000);
|
||||
|
||||
storedEnergy = dataStream.readDouble();
|
||||
|
||||
if(dataStream.readBoolean())
|
||||
|
|
|
@ -1,130 +0,0 @@
|
|||
package mekanism.common.content.entangloporter;
|
||||
|
||||
import mekanism.api.energy.IStrictEnergyStorage;
|
||||
import mekanism.api.gas.Gas;
|
||||
import mekanism.api.gas.GasStack;
|
||||
import mekanism.api.gas.GasTank;
|
||||
import mekanism.api.gas.IGasHandler;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTank;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
|
||||
public class SharedInventory implements IStrictEnergyStorage, IFluidHandler, IGasHandler
|
||||
{
|
||||
public String name;
|
||||
|
||||
public double storedEnergy;
|
||||
public double MAX_ENERGY = 1000;
|
||||
public FluidTank storedFluid;
|
||||
public GasTank storedGas;
|
||||
public ItemStack storedItem;
|
||||
|
||||
public SharedInventory(String freq)
|
||||
{
|
||||
name = freq;
|
||||
|
||||
storedEnergy = 0;
|
||||
storedFluid = new FluidTank(1000);
|
||||
storedGas = new GasTank(1000);
|
||||
storedItem = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
|
||||
{
|
||||
return storedFluid.fill(resource, doFill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain)
|
||||
{
|
||||
if(resource.isFluidEqual(storedFluid.getFluid()))
|
||||
{
|
||||
return storedFluid.drain(resource.amount, doDrain);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
|
||||
{
|
||||
return storedFluid.drain(maxDrain, doDrain);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canFill(ForgeDirection from, Fluid fluid)
|
||||
{
|
||||
return storedFluid.getFluid() == null || fluid == storedFluid.getFluid().getFluid();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canDrain(ForgeDirection from, Fluid fluid)
|
||||
{
|
||||
return storedFluid.getFluid() == null || fluid == storedFluid.getFluid().getFluid();
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidTankInfo[] getTankInfo(ForgeDirection from)
|
||||
{
|
||||
return new FluidTankInfo[]{new FluidTankInfo(storedFluid)};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer)
|
||||
{
|
||||
return storedGas.receive(stack, doTransfer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int receiveGas(ForgeDirection side, GasStack stack)
|
||||
{
|
||||
return receiveGas(side, stack, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer)
|
||||
{
|
||||
return storedGas.draw(amount, doTransfer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GasStack drawGas(ForgeDirection side, int amount)
|
||||
{
|
||||
return drawGas(side, amount, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canReceiveGas(ForgeDirection side, Gas type)
|
||||
{
|
||||
return storedGas.getGasType() == null || type == storedGas.getGasType();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canDrawGas(ForgeDirection side, Gas type)
|
||||
{
|
||||
return storedGas.getGasType() == null || type == storedGas.getGasType();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy()
|
||||
{
|
||||
return storedEnergy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy)
|
||||
{
|
||||
storedEnergy = Math.max(0, Math.min(energy, MAX_ENERGY));
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxEnergy()
|
||||
{
|
||||
return MAX_ENERGY;
|
||||
}
|
||||
}
|
|
@ -1,66 +0,0 @@
|
|||
package mekanism.common.content.entangloporter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
|
||||
import mekanism.api.gas.GasRegistry;
|
||||
import mekanism.api.gas.GasStack;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
public class SharedInventoryManager
|
||||
{
|
||||
public static HashMap<String, SharedInventory> inventories = new HashMap<String, SharedInventory>();
|
||||
|
||||
public static SharedInventory getInventory(String frequency)
|
||||
{
|
||||
if(frequency.length() <= 0)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
SharedInventory inv = inventories.get(frequency);
|
||||
|
||||
if(inv == null)
|
||||
{
|
||||
inv = new SharedInventory(frequency);
|
||||
|
||||
inventories.put(frequency, inv);
|
||||
}
|
||||
|
||||
if(frequency.startsWith("creative."))
|
||||
{
|
||||
Iterator<String> creativeFreqs = Arrays.asList(frequency.substring(9).split("\\.")).iterator();
|
||||
while(creativeFreqs.hasNext())
|
||||
{
|
||||
String type = creativeFreqs.next();
|
||||
if(type.equals("energy"))
|
||||
{
|
||||
inv.MAX_ENERGY = Integer.MAX_VALUE;
|
||||
inv.setEnergy(Integer.MAX_VALUE);
|
||||
}
|
||||
else if(type.equals("fluid") && creativeFreqs.hasNext())
|
||||
{
|
||||
String fluidType = creativeFreqs.next();
|
||||
if(FluidRegistry.isFluidRegistered(fluidType))
|
||||
{
|
||||
inv.storedFluid.setCapacity(Integer.MAX_VALUE);
|
||||
inv.storedFluid.setFluid(new FluidStack(FluidRegistry.getFluid(fluidType), Integer.MAX_VALUE));
|
||||
}
|
||||
}
|
||||
else if(type.equals("gas") && creativeFreqs.hasNext())
|
||||
{
|
||||
String gasType = creativeFreqs.next();
|
||||
if(GasRegistry.containsGas(gasType))
|
||||
{
|
||||
inv.storedGas.setMaxGas(Integer.MAX_VALUE);
|
||||
inv.storedGas.setGas(new GasStack(GasRegistry.getGas(gasType), Integer.MAX_VALUE));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return inv;
|
||||
}
|
||||
}
|
|
@ -214,7 +214,7 @@ public class ItemBlockEnergyCube extends ItemBlock implements IEnergizedItem, IE
|
|||
@Override
|
||||
public void setEnergy(ItemStack itemStack, double amount)
|
||||
{
|
||||
if(getEnergyCubeTier(itemStack) == EnergyCubeTier.CREATIVE && amount != Integer.MAX_VALUE)
|
||||
if(getEnergyCubeTier(itemStack) == EnergyCubeTier.CREATIVE && amount != Double.MAX_VALUE)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -238,7 +238,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements ICo
|
|||
@Override
|
||||
public void setEnergy(double energy)
|
||||
{
|
||||
if(tier == EnergyCubeTier.CREATIVE && energy != Integer.MAX_VALUE)
|
||||
if(tier == EnergyCubeTier.CREATIVE && energy != Double.MAX_VALUE)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import java.util.EnumSet;
|
|||
import java.util.List;
|
||||
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.IHeatTransfer;
|
||||
import mekanism.api.gas.Gas;
|
||||
import mekanism.api.gas.GasStack;
|
||||
|
@ -15,7 +14,6 @@ import mekanism.api.gas.IGasHandler;
|
|||
import mekanism.api.transmitters.TransmissionType;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.SideData;
|
||||
import mekanism.common.SideData.IOState;
|
||||
import mekanism.common.base.IEjector;
|
||||
import mekanism.common.base.ISideConfiguration;
|
||||
|
@ -28,6 +26,7 @@ import mekanism.common.tile.component.TileComponentConfig;
|
|||
import mekanism.common.tile.component.TileComponentEjector;
|
||||
import mekanism.common.util.CableUtils;
|
||||
import mekanism.common.util.HeatUtils;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.PipeUtils;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
@ -77,10 +76,14 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
|
||||
inventory = new ItemStack[0];
|
||||
|
||||
configComponent.getOutputs(TransmissionType.ITEM).get(2).availableSlots = new int[] {0};
|
||||
configComponent.getOutputs(TransmissionType.FLUID).get(2).availableSlots = new int[] {0};
|
||||
configComponent.getOutputs(TransmissionType.GAS).get(2).availableSlots = new int[] {1};
|
||||
|
||||
ejectorComponent = new TileComponentEjector(this);
|
||||
ejectorComponent.setOutputData(TransmissionType.ITEM, new SideData("dummy", EnumColor.GREY, new int[] {0}));
|
||||
ejectorComponent.setOutputData(TransmissionType.FLUID, new SideData("dummy", EnumColor.GREY, new int[] {0}));
|
||||
ejectorComponent.setOutputData(TransmissionType.GAS, new SideData("dummy", EnumColor.GREY, new int[] {1}));
|
||||
ejectorComponent.setOutputData(TransmissionType.ITEM, configComponent.getOutputs(TransmissionType.ITEM).get(2));
|
||||
ejectorComponent.setOutputData(TransmissionType.FLUID, configComponent.getOutputs(TransmissionType.FLUID).get(2));
|
||||
ejectorComponent.setOutputData(TransmissionType.GAS, configComponent.getOutputs(TransmissionType.GAS).get(2));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -102,25 +105,42 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
lastEnvironmentLoss = loss[1];
|
||||
|
||||
FrequencyManager manager = getManager(frequency);
|
||||
Frequency lastFreq = frequency;
|
||||
|
||||
if(manager != null)
|
||||
{
|
||||
if(frequency != null && !frequency.valid)
|
||||
{
|
||||
frequency = (InventoryFrequency)manager.validateFrequency(owner, Coord4D.get(this), frequency);
|
||||
markDirty();
|
||||
}
|
||||
|
||||
if(frequency != null)
|
||||
{
|
||||
frequency = (InventoryFrequency)manager.update(owner, Coord4D.get(this), frequency);
|
||||
|
||||
if(frequency == null)
|
||||
{
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
frequency = null;
|
||||
|
||||
if(lastFreq != null)
|
||||
{
|
||||
markDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean hasFrequency()
|
||||
{
|
||||
return frequency != null && frequency.valid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidate()
|
||||
{
|
||||
|
@ -176,7 +196,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
return;
|
||||
}
|
||||
|
||||
FrequencyManager manager = getManager(new Frequency(name, null).setPublic(publicFreq));
|
||||
FrequencyManager manager = getManager(new InventoryFrequency(name, null).setPublic(publicFreq));
|
||||
manager.deactivate(Coord4D.get(this));
|
||||
|
||||
for(Frequency freq : manager.getFrequencies())
|
||||
|
@ -253,7 +273,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
String freq = PacketHandler.readString(dataStream);
|
||||
boolean isPublic = dataStream.readBoolean();
|
||||
|
||||
FrequencyManager manager = getManager(new Frequency(freq, null).setPublic(isPublic));
|
||||
FrequencyManager manager = getManager(new InventoryFrequency(freq, null).setPublic(isPublic));
|
||||
|
||||
if(manager != null)
|
||||
{
|
||||
|
@ -292,14 +312,14 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
|
||||
for(int i = 0; i < amount; i++)
|
||||
{
|
||||
publicCache.add(new Frequency(dataStream));
|
||||
publicCache.add(new InventoryFrequency(dataStream));
|
||||
}
|
||||
|
||||
amount = dataStream.readInt();
|
||||
|
||||
for(int i = 0; i < amount; i++)
|
||||
{
|
||||
privateCache.add(new Frequency(dataStream));
|
||||
privateCache.add(new InventoryFrequency(dataStream));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -336,7 +356,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
freq.write(data);
|
||||
}
|
||||
|
||||
FrequencyManager manager = getManager(new Frequency(null, null).setPublic(false));
|
||||
FrequencyManager manager = getManager(new InventoryFrequency(null, null).setPublic(false));
|
||||
|
||||
if(manager != null)
|
||||
{
|
||||
|
@ -357,31 +377,31 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public EnumSet<ForgeDirection> getOutputtingSides()
|
||||
{
|
||||
return frequency == null ? nothing : configComponent.getSidesForData(TransmissionType.ENERGY, facing, 2);
|
||||
return !hasFrequency() ? nothing : configComponent.getSidesForData(TransmissionType.ENERGY, facing, 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumSet<ForgeDirection> getConsumingSides()
|
||||
{
|
||||
return frequency == null ? nothing : configComponent.getSidesForData(TransmissionType.ENERGY, facing, 1);
|
||||
return !hasFrequency() ? nothing : configComponent.getSidesForData(TransmissionType.ENERGY, facing, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxOutput()
|
||||
{
|
||||
return frequency == null ? 0 : InventoryFrequency.MAX_ENERGY;
|
||||
return !hasFrequency() ? 0 : InventoryFrequency.MAX_ENERGY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEnergy()
|
||||
{
|
||||
return frequency == null ? 0 : frequency.storedEnergy;
|
||||
return !hasFrequency() ? 0 : frequency.storedEnergy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergy(double energy)
|
||||
{
|
||||
if(frequency != null)
|
||||
if(hasFrequency())
|
||||
{
|
||||
frequency.storedEnergy = Math.min(InventoryFrequency.MAX_ENERGY, energy);
|
||||
}
|
||||
|
@ -390,19 +410,19 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public double getMaxEnergy()
|
||||
{
|
||||
return frequency == null ? 0 : frequency.MAX_ENERGY;
|
||||
return !hasFrequency() ? 0 : frequency.MAX_ENERGY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
|
||||
{
|
||||
return frequency == null ? 0 : frequency.storedFluid.fill(resource, doFill);
|
||||
return !hasFrequency() ? 0 : frequency.storedFluid.fill(resource, doFill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain)
|
||||
{
|
||||
if(frequency != null && resource.isFluidEqual(frequency.storedFluid.getFluid()))
|
||||
if(hasFrequency() && resource.isFluidEqual(frequency.storedFluid.getFluid()))
|
||||
{
|
||||
return frequency.storedFluid.drain(resource.amount, doDrain);
|
||||
}
|
||||
|
@ -413,7 +433,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
|
||||
{
|
||||
if(frequency != null)
|
||||
if(hasFrequency())
|
||||
{
|
||||
return frequency.storedFluid.drain(maxDrain, doDrain);
|
||||
}
|
||||
|
@ -424,7 +444,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public boolean canFill(ForgeDirection from, Fluid fluid)
|
||||
{
|
||||
if(frequency != null && configComponent.getOutput(TransmissionType.FLUID, from.ordinal(), facing).ioState == IOState.INPUT)
|
||||
if(hasFrequency() && configComponent.getOutput(TransmissionType.FLUID, from.ordinal(), facing).ioState == IOState.INPUT)
|
||||
{
|
||||
return frequency.storedFluid.getFluid() == null || fluid == frequency.storedFluid.getFluid().getFluid();
|
||||
}
|
||||
|
@ -435,7 +455,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public boolean canDrain(ForgeDirection from, Fluid fluid)
|
||||
{
|
||||
if(frequency != null && configComponent.getOutput(TransmissionType.FLUID, from.ordinal(), facing).ioState == IOState.OUTPUT)
|
||||
if(hasFrequency() && configComponent.getOutput(TransmissionType.FLUID, from.ordinal(), facing).ioState == IOState.OUTPUT)
|
||||
{
|
||||
return frequency.storedFluid.getFluid() == null || fluid == frequency.storedFluid.getFluid().getFluid();
|
||||
}
|
||||
|
@ -446,7 +466,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public FluidTankInfo[] getTankInfo(ForgeDirection from)
|
||||
{
|
||||
if(frequency != null)
|
||||
if(hasFrequency())
|
||||
{
|
||||
if(configComponent.getOutput(TransmissionType.FLUID, from.ordinal(), facing).ioState != IOState.OFF)
|
||||
{
|
||||
|
@ -460,7 +480,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer)
|
||||
{
|
||||
return frequency == null ? 0 : frequency.storedGas.receive(stack, doTransfer);
|
||||
return !hasFrequency() ? 0 : frequency.storedGas.receive(stack, doTransfer);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -472,7 +492,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer)
|
||||
{
|
||||
return frequency == null ? null : frequency.storedGas.draw(amount, doTransfer);
|
||||
return !hasFrequency() ? null : frequency.storedGas.draw(amount, doTransfer);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -484,7 +504,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public boolean canReceiveGas(ForgeDirection side, Gas type)
|
||||
{
|
||||
if(frequency != null && configComponent.getOutput(TransmissionType.GAS, side.ordinal(), facing).ioState == IOState.INPUT)
|
||||
if(hasFrequency() && configComponent.getOutput(TransmissionType.GAS, side.ordinal(), facing).ioState == IOState.INPUT)
|
||||
{
|
||||
return frequency.storedGas.getGasType() == null || type == frequency.storedGas.getGasType();
|
||||
}
|
||||
|
@ -495,7 +515,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public boolean canDrawGas(ForgeDirection side, Gas type)
|
||||
{
|
||||
if(frequency != null && configComponent.getOutput(TransmissionType.GAS, side.ordinal(), facing).ioState == IOState.OUTPUT)
|
||||
if(hasFrequency() && configComponent.getOutput(TransmissionType.GAS, side.ordinal(), facing).ioState == IOState.OUTPUT)
|
||||
{
|
||||
return frequency.storedGas.getGasType() == null || type == frequency.storedGas.getGasType();
|
||||
}
|
||||
|
@ -518,13 +538,13 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public ItemStack getStackInSlot(int slotID)
|
||||
{
|
||||
return frequency != null && slotID == 0 ? frequency.storedItem : null;
|
||||
return hasFrequency() && slotID == 0 ? frequency.storedItem : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInventorySlotContents(int slotID, ItemStack itemstack)
|
||||
{
|
||||
if(frequency != null && slotID == 0)
|
||||
if(hasFrequency() && slotID == 0)
|
||||
{
|
||||
frequency.storedItem = itemstack;
|
||||
|
||||
|
@ -538,7 +558,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public double getTemp()
|
||||
{
|
||||
return frequency != null ? frequency.temperature : 0;
|
||||
return hasFrequency() ? frequency.temperature : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -568,20 +588,20 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
@Override
|
||||
public double applyTemperatureChange()
|
||||
{
|
||||
if(frequency != null)
|
||||
if(hasFrequency())
|
||||
{
|
||||
frequency.temperature += heatToAbsorb;
|
||||
}
|
||||
|
||||
heatToAbsorb = 0;
|
||||
|
||||
return frequency != null ? frequency.temperature : 0;
|
||||
return hasFrequency() ? frequency.temperature : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnectHeat(ForgeDirection side)
|
||||
{
|
||||
return frequency != null && configComponent.getOutput(TransmissionType.HEAT, side.ordinal(), facing).ioState != IOState.OFF;
|
||||
return hasFrequency() && configComponent.getOutput(TransmissionType.HEAT, side.ordinal(), facing).ioState != IOState.OFF;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -589,7 +609,7 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
{
|
||||
TileEntity adj = Coord4D.get(this).getFromSide(side).getTileEntity(worldObj);
|
||||
|
||||
if(configComponent.getOutput(TransmissionType.HEAT, side.ordinal(), facing).ioState == IOState.INPUT)
|
||||
if(hasFrequency() && configComponent.getOutput(TransmissionType.HEAT, side.ordinal(), facing).ioState == IOState.INPUT)
|
||||
{
|
||||
if(adj instanceof IHeatTransfer)
|
||||
{
|
||||
|
@ -600,10 +620,33 @@ public class TileEntityQuantumEntangloporter extends TileEntityElectricBlock imp
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInsertItem(int slotID, ItemStack itemstack, int side)
|
||||
{
|
||||
return hasFrequency() && configComponent.getOutput(TransmissionType.ITEM, side, facing).ioState == IOState.INPUT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int side)
|
||||
{
|
||||
if(hasFrequency() && configComponent.getOutput(TransmissionType.ITEM, side, facing).ioState != IOState.OFF)
|
||||
{
|
||||
return new int[] {0};
|
||||
}
|
||||
|
||||
return InventoryUtils.EMPTY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int slotID, ItemStack itemstack, int side)
|
||||
{
|
||||
return hasFrequency() && configComponent.getOutput(TransmissionType.ITEM, side, facing).ioState == IOState.OUTPUT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] getTanks()
|
||||
{
|
||||
if(frequency == null)
|
||||
if(!hasFrequency())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -179,12 +179,12 @@ public class TileComponentEjector implements ITileComponent, IEjector
|
|||
{
|
||||
int slotID = sideData.get(TransmissionType.ITEM).availableSlots[index];
|
||||
|
||||
if(tileEntity.inventory[slotID] == null)
|
||||
if(tileEntity.getStackInSlot(slotID) == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
ItemStack stack = tileEntity.inventory[slotID];
|
||||
ItemStack stack = tileEntity.getStackInSlot(slotID);
|
||||
List<ForgeDirection> outputs = getTrackedOutputs(TransmissionType.ITEM, index, outputSides);
|
||||
|
||||
for(ForgeDirection side : outputs)
|
||||
|
@ -217,7 +217,7 @@ public class TileComponentEjector implements ITileComponent, IEjector
|
|||
}
|
||||
}
|
||||
|
||||
tileEntity.inventory[slotID] = stack;
|
||||
tileEntity.setInventorySlotContents(slotID, stack);
|
||||
tileEntity.markDirty();
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ public final class PipeUtils
|
|||
{
|
||||
TileEntity acceptor = Coord4D.get(tileEntity).getFromSide(orientation).getTileEntity(tileEntity.getWorldObj());
|
||||
|
||||
if(acceptor instanceof IFluidHandler && !(acceptor instanceof ITransmitterTile))
|
||||
if(acceptor instanceof IFluidHandler)
|
||||
{
|
||||
acceptors[orientation.ordinal()] = (IFluidHandler)acceptor;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue