From 668643e663b314f84dcd5be653bf0341e6b373aa Mon Sep 17 00:00:00 2001 From: aidancbrady Date: Fri, 4 Mar 2016 21:58:13 -0500 Subject: [PATCH] Entangloporters work perfectly! --- src/main/java/mekanism/common/Tier.java | 2 +- .../entangloporter/InventoryFrequency.java | 17 ++- .../entangloporter/SharedInventory.java | 130 ------------------ .../SharedInventoryManager.java | 66 --------- .../common/item/ItemBlockEnergyCube.java | 2 +- .../common/tile/TileEntityEnergyCube.java | 2 +- .../tile/TileEntityQuantumEntangloporter.java | 111 ++++++++++----- .../tile/component/TileComponentEjector.java | 6 +- .../java/mekanism/common/util/PipeUtils.java | 2 +- 9 files changed, 97 insertions(+), 241 deletions(-) delete mode 100644 src/main/java/mekanism/common/content/entangloporter/SharedInventory.java delete mode 100644 src/main/java/mekanism/common/content/entangloporter/SharedInventoryManager.java diff --git a/src/main/java/mekanism/common/Tier.java b/src/main/java/mekanism/common/Tier.java index e697be2be..847e8b5d8 100644 --- a/src/main/java/mekanism/common/Tier.java +++ b/src/main/java/mekanism/common/Tier.java @@ -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; diff --git a/src/main/java/mekanism/common/content/entangloporter/InventoryFrequency.java b/src/main/java/mekanism/common/content/entangloporter/InventoryFrequency.java index e59a6ca92..4a09b5344 100644 --- a/src/main/java/mekanism/common/content/entangloporter/InventoryFrequency.java +++ b/src/main/java/mekanism/common/content/entangloporter/InventoryFrequency.java @@ -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()) diff --git a/src/main/java/mekanism/common/content/entangloporter/SharedInventory.java b/src/main/java/mekanism/common/content/entangloporter/SharedInventory.java deleted file mode 100644 index 96a5a4fff..000000000 --- a/src/main/java/mekanism/common/content/entangloporter/SharedInventory.java +++ /dev/null @@ -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; - } -} diff --git a/src/main/java/mekanism/common/content/entangloporter/SharedInventoryManager.java b/src/main/java/mekanism/common/content/entangloporter/SharedInventoryManager.java deleted file mode 100644 index 970713a3d..000000000 --- a/src/main/java/mekanism/common/content/entangloporter/SharedInventoryManager.java +++ /dev/null @@ -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 inventories = new HashMap(); - - 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 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; - } -} diff --git a/src/main/java/mekanism/common/item/ItemBlockEnergyCube.java b/src/main/java/mekanism/common/item/ItemBlockEnergyCube.java index b0712eaa2..60bd7bd67 100644 --- a/src/main/java/mekanism/common/item/ItemBlockEnergyCube.java +++ b/src/main/java/mekanism/common/item/ItemBlockEnergyCube.java @@ -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; } diff --git a/src/main/java/mekanism/common/tile/TileEntityEnergyCube.java b/src/main/java/mekanism/common/tile/TileEntityEnergyCube.java index db9bac845..8d74a87ec 100644 --- a/src/main/java/mekanism/common/tile/TileEntityEnergyCube.java +++ b/src/main/java/mekanism/common/tile/TileEntityEnergyCube.java @@ -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; } diff --git a/src/main/java/mekanism/common/tile/TileEntityQuantumEntangloporter.java b/src/main/java/mekanism/common/tile/TileEntityQuantumEntangloporter.java index bb4a40b1f..ec89e9207 100644 --- a/src/main/java/mekanism/common/tile/TileEntityQuantumEntangloporter.java +++ b/src/main/java/mekanism/common/tile/TileEntityQuantumEntangloporter.java @@ -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 getOutputtingSides() { - return frequency == null ? nothing : configComponent.getSidesForData(TransmissionType.ENERGY, facing, 2); + return !hasFrequency() ? nothing : configComponent.getSidesForData(TransmissionType.ENERGY, facing, 2); } @Override public EnumSet 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) { @@ -599,11 +619,34 @@ 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; } diff --git a/src/main/java/mekanism/common/tile/component/TileComponentEjector.java b/src/main/java/mekanism/common/tile/component/TileComponentEjector.java index d4feaea49..5b9ec713d 100644 --- a/src/main/java/mekanism/common/tile/component/TileComponentEjector.java +++ b/src/main/java/mekanism/common/tile/component/TileComponentEjector.java @@ -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 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(); } diff --git a/src/main/java/mekanism/common/util/PipeUtils.java b/src/main/java/mekanism/common/util/PipeUtils.java index 8e83c2883..5f241fab8 100644 --- a/src/main/java/mekanism/common/util/PipeUtils.java +++ b/src/main/java/mekanism/common/util/PipeUtils.java @@ -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; }