diff options
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
12 files changed, 473 insertions, 641 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java index 09b62c0657..31a341040e 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java @@ -22,6 +22,7 @@ import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import gregtech.common.covers.CoverInfo; import java.util.*; import net.minecraft.block.Block; import net.minecraft.entity.Entity; @@ -79,7 +80,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity public void addToLock(TileEntity tileEntity, int side) { if (node != null) { - Lock lock = node.locks[side]; + final Lock lock = node.locks[side]; if (lock != null) { lock.addTileEntity(tileEntity); } @@ -90,7 +91,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity public void removeFromLock(TileEntity tileEntity, int side) { if (node != null) { - Lock lock = node.locks[side]; + final Lock lock = node.locks[side]; if (lock != null) { lock.removeTileEntity(tileEntity); } @@ -100,7 +101,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } public void reloadLocks() { - IMetaTileEntity meta = getMetaTileEntity(); + final IMetaTileEntity meta = getMetaTileEntity(); if (meta instanceof MetaPipeEntity) { ((MetaPipeEntity) meta).reloadLocks(); } @@ -283,12 +284,12 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity (short) yCoord, zCoord, mID, - mCoverSides[0], - mCoverSides[1], - mCoverSides[2], - mCoverSides[3], - mCoverSides[4], - mCoverSides[5], + getCoverInfoAtSide((byte) 0).getCoverID(), + getCoverInfoAtSide((byte) 1).getCoverID(), + getCoverInfoAtSide((byte) 2).getCoverID(), + getCoverInfoAtSide((byte) 3).getCoverID(), + getCoverInfoAtSide((byte) 4).getCoverID(), + getCoverInfoAtSide((byte) 5).getCoverID(), oTextureData = mConnections, oUpdateData = hasValidMetaTileEntity() ? mMetaTileEntity.getUpdateData() : 0, oRedstoneData = (byte) (((mSidedRedstone[0] > 0) ? 1 : 0) @@ -705,16 +706,16 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity @Override public ITexture[] getTexture(Block aBlock, byte aSide) { - ITexture rIcon = getCoverTexture(aSide); + final ITexture rIcon = getCoverTexture(aSide); if (rIcon != null) return new ITexture[] {rIcon}; return getTextureUncovered(aSide); } @Override public ITexture[] getTextureCovered(byte aSide) { - ITexture coverTexture = getCoverTexture(aSide); - ITexture[] textureUncovered = getTextureUncovered(aSide); - ITexture[] textureCovered; + final ITexture coverTexture = getCoverTexture(aSide); + final ITexture[] textureUncovered = getTextureUncovered(aSide); + final ITexture[] textureCovered; if (coverTexture != null) { textureCovered = Arrays.copyOf(textureUncovered, textureUncovered.length + 1); textureCovered[textureUncovered.length] = coverTexture; @@ -762,18 +763,11 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity @Override public ArrayList<ItemStack> getDrops() { - ItemStack rStack = new ItemStack(GregTech_API.sBlockMachines, 1, mID); - NBTTagCompound tNBT = new NBTTagCompound(); - if (mStrongRedstone > 0) tNBT.setByte("mStrongRedstone", mStrongRedstone); - boolean hasCover = false; - for (byte i = 0; i < mCoverSides.length; i++) { - if (mCoverSides[i] != 0) { - if (mCoverData[i] != null) // this really shouldn't be null if a cover is there already, but whatever - tNBT.setTag(COVER_DATA_NBT_KEYS[i], mCoverData[i].saveDataToNBT()); - hasCover = true; - } - } - if (hasCover) tNBT.setIntArray("mCoverSides", mCoverSides); + final ItemStack rStack = new ItemStack(GregTech_API.sBlockMachines, 1, mID); + final NBTTagCompound tNBT = new NBTTagCompound(); + + writeCoverNBT(tNBT, true); + if (hasValidMetaTileEntity()) mMetaTileEntity.setItemNBT(tNBT); if (!tNBT.hasNoTags()) rStack.setTagCompound(tNBT); @@ -791,15 +785,15 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity if (isClientSide()) { // Configure Cover, sneak can also be: screwdriver, wrench, side cutter, soldering iron if (aPlayer.isSneaking()) { - byte tSide = + final byte tSide = (getCoverIDAtSide(aSide) == 0) ? GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ) : aSide; - return (getCoverBehaviorAtSideNew(tSide).hasCoverGUI()); + return (getCoverInfoAtSide(tSide).hasCoverGUI()); } else if (getCoverBehaviorAtSideNew(aSide).onCoverRightclickClient(aSide, this, aPlayer, aX, aY, aZ)) { return true; } } if (isServerSide()) { - ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); + final ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); if (tCurrentItem != null) { if (getColorization() >= 0 && GT_Utility.areStacksEqual(new ItemStack(Items.water_bucket, 1), tCurrentItem)) { @@ -808,7 +802,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity setColorization((byte) -1); return true; } - byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); + final byte tSide = GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ); if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sWrenchList)) { if (mMetaTileEntity.onWrenchRightClick(aSide, tSide, aPlayer, aX, aY, aZ)) { mMetaTileEntity.markDirty(); @@ -823,16 +817,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 200, aPlayer)) { setCoverDataAtSide( tSide, - getCoverBehaviorAtSideNew(tSide) - .onCoverScrewdriverClick( - tSide, - getCoverIDAtSide(tSide), - getComplexCoverDataAtSide(tSide), - this, - aPlayer, - 0.5F, - 0.5F, - 0.5F)); + getCoverInfoAtSide(tSide).onCoverScrewdriverClick(aPlayer, 0.5F, 0.5F, 0.5F)); mMetaTileEntity.onScrewdriverRightClick(tSide, aPlayer, aX, aY, aZ); mMetaTileEntity.markDirty(); GT_Utility.sendSoundToPlayers( @@ -841,17 +826,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } else { if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { setCoverDataAtSide( - aSide, - getCoverBehaviorAtSideNew(aSide) - .onCoverScrewdriverClick( - aSide, - getCoverIDAtSide(aSide), - getComplexCoverDataAtSide(aSide), - this, - aPlayer, - aX, - aY, - aZ)); + aSide, getCoverInfoAtSide(aSide).onCoverScrewdriverClick(aPlayer, aX, aY, aZ)); mMetaTileEntity.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ); mMetaTileEntity.markDirty(); GT_Utility.sendSoundToPlayers( @@ -925,7 +900,9 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity byte coverSide = aSide; if (getCoverIDAtSide(aSide) == 0) coverSide = tSide; - if (getCoverIDAtSide(coverSide) == 0) { + final CoverInfo coverInfo = getCoverInfoAtSide(coverSide); + + if (coverInfo.getCoverID() == 0) { if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sCovers.keySet())) { if (GregTech_API.getCoverBehaviorNew(tCurrentItem) .isCoverPlaceable(coverSide, tCurrentItem, this) @@ -951,34 +928,18 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity } } else if (aPlayer.isSneaking()) { // Sneak click, no tool -> open cover config or turn back. aSide = (getCoverIDAtSide(aSide) == 0) ? GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ) : aSide; - return getCoverIDAtSide(aSide) > 0 - && getCoverBehaviorAtSideNew(aSide) - .onCoverShiftRightClick( - aSide, - getCoverIDAtSide(aSide), - getComplexCoverDataAtSide(aSide), - this, - aPlayer); + final CoverInfo coverInfo = getCoverInfoAtSide(aSide); + return coverInfo.isValid() && coverInfo.onCoverShiftRightClick(aPlayer); } - if (getCoverBehaviorAtSideNew(aSide) - .onCoverRightClick( - aSide, - getCoverIDAtSide(aSide), - getComplexCoverDataAtSide(aSide), - this, - aPlayer, - aX, - aY, - aZ)) return true; + if (getCoverInfoAtSide(aSide).onCoverRightClick(aPlayer, aX, aY, aZ)) return true; } - if (!getCoverBehaviorAtSideNew(aSide) - .isGUIClickable(aSide, getCoverIDAtSide(aSide), getComplexCoverDataAtSide(aSide), this)) return false; + if (!getCoverInfoAtSide(aSide).isGUIClickable()) return false; try { if (!aPlayer.isSneaking() && hasValidMetaTileEntity()) { - boolean handled = mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ); + final boolean handled = mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ); if (handled) { mMetaTileEntity.markDirty(); } @@ -1034,21 +995,9 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity */ @Override public int[] getAccessibleSlotsFromSide(int aSide) { - if (canAccessData() - && (getCoverBehaviorAtSideNew((byte) aSide) - .letsItemsOut( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getComplexCoverDataAtSide((byte) aSide), - -1, - this) - || getCoverBehaviorAtSideNew((byte) aSide) - .letsItemsIn( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getComplexCoverDataAtSide((byte) aSide), - -1, - this))) return mMetaTileEntity.getAccessibleSlotsFromSide(aSide); + final CoverInfo coverInfo = getCoverInfoAtSide((byte) aSide); + if (canAccessData() && (coverInfo.letsItemsOut(-1) || coverInfo.letsItemsIn(-1))) + return mMetaTileEntity.getAccessibleSlotsFromSide(aSide); return GT_Values.emptyIntArray; } @@ -1058,13 +1007,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity @Override public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { return canAccessData() - && getCoverBehaviorAtSideNew((byte) aSide) - .letsItemsIn( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getComplexCoverDataAtSide((byte) aSide), - aIndex, - this) + && getCoverInfoAtSide((byte) aSide).letsItemsIn(aIndex) && mMetaTileEntity.canInsertItem(aIndex, aStack, aSide); } @@ -1206,30 +1149,18 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity private boolean canMoveFluidOnSide(ForgeDirection aSide, Fluid aFluid, boolean isFill) { if (aSide == ForgeDirection.UNKNOWN) return true; - IFluidHandler tTileEntity = getITankContainerAtSide((byte) aSide.ordinal()); + final IFluidHandler tTileEntity = getITankContainerAtSide((byte) aSide.ordinal()); // Only require a connection if there's something to connect to - Allows fluid cells & buckets to interact with // the pipe if (tTileEntity != null && !mMetaTileEntity.isConnectedAtSide((byte) aSide.ordinal())) return false; if (isFill && mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) - && getCoverBehaviorAtSideNew((byte) aSide.ordinal()) - .letsFluidIn( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getComplexCoverDataAtSide((byte) aSide.ordinal()), - aFluid, - this)) return true; + && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidIn(aFluid)) return true; if (!isFill && mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) - && getCoverBehaviorAtSideNew((byte) aSide.ordinal()) - .letsFluidOut( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getComplexCoverDataAtSide((byte) aSide.ordinal()), - aFluid, - this)) return true; + && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidOut(aFluid)) return true; return false; } @@ -1281,24 +1212,11 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity @Override public FluidTankInfo[] getTankInfo(ForgeDirection aSide) { + final CoverInfo coverInfo = getCoverInfoAtSide((byte) aSide.ordinal()); if (canAccessData() && (aSide == ForgeDirection.UNKNOWN - || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) - && getCoverBehaviorAtSideNew((byte) aSide.ordinal()) - .letsFluidIn( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getComplexCoverDataAtSide((byte) aSide.ordinal()), - null, - this)) - || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) - && getCoverBehaviorAtSideNew((byte) aSide.ordinal()) - .letsFluidOut( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getComplexCoverDataAtSide((byte) aSide.ordinal()), - null, - this)) + || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) && coverInfo.letsFluidIn(null)) + || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) && coverInfo.letsFluidOut(null)) // Doesn't need to be connected to get Tank Info -- otherwise things can't connect )) return mMetaTileEntity.getTankInfo(aSide); return new FluidTankInfo[] {}; @@ -1308,7 +1226,7 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity public boolean addStackToSlot(int aIndex, ItemStack aStack) { if (GT_Utility.isStackInvalid(aStack)) return true; if (aIndex < 0 || aIndex >= getSizeInventory()) return false; - ItemStack tStack = getStackInSlot(aIndex); + final ItemStack tStack = getStackInSlot(aIndex); if (GT_Utility.isStackInvalid(tStack)) { setInventorySlotContents(aIndex, aStack); return true; diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index 821cfcd8a7..1e8ffa0994 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -1,6 +1,7 @@ package gregtech.api.metatileentity; import static gregtech.GT_Mod.GT_FML_LOGGER; +import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; import static gregtech.api.enums.GT_Values.NW; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.objects.XSTR.XSTR_INSTANCE; @@ -40,6 +41,7 @@ import gregtech.api.net.GT_Packet_TileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.util.*; import gregtech.common.GT_Pollution; +import gregtech.common.covers.CoverInfo; import ic2.api.Direction; import java.lang.reflect.Field; import java.util.*; @@ -215,8 +217,6 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity loadMetaTileNBT(aNBT); } - if (mCoverData == null || mCoverData.length != 6) mCoverData = new ISerializableObject[6]; - if (mCoverSides.length != 6) mCoverSides = new int[] {0, 0, 0, 0, 0, 0}; if (mSidedRedstone.length != 6) if (hasValidMetaTileEntity() && mMetaTileEntity.hasSidedRedstoneOutputBehavior()) mSidedRedstone = new byte[] {0, 0, 0, 0, 0, 0}; @@ -400,7 +400,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity } if (mMetaTileEntity.isEnetOutput() || mMetaTileEntity.isEnetInput()) { - for (byte i = 0; i < 6; i++) { + for (byte i : ALL_VALID_SIDES) { boolean temp = isEnergyInputSide(i); if (temp != mActiveEUInputs[i]) { mActiveEUInputs[i] = temp; @@ -656,12 +656,12 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity (short) yCoord, zCoord, mID, - mCoverSides[0], - mCoverSides[1], - mCoverSides[2], - mCoverSides[3], - mCoverSides[4], - mCoverSides[5], + getCoverInfoAtSide((byte) 0).getCoverID(), + getCoverInfoAtSide((byte) 1).getCoverID(), + getCoverInfoAtSide((byte) 2).getCoverID(), + getCoverInfoAtSide((byte) 3).getCoverID(), + getCoverInfoAtSide((byte) 4).getCoverID(), + getCoverInfoAtSide((byte) 5).getCoverID(), oTextureData = (byte) ((mFacing & 7) | (mActive ? 8 : 0) | (mRedstone ? 16 : 0) @@ -1147,7 +1147,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity public void generatePowerNodes() { if (isServerSide() && (isEnetInput() || isEnetOutput())) { final int time = MinecraftServer.getServer().getTickCounter(); - for (byte i = 0; i < 6; i++) { + for (byte i : ALL_VALID_SIDES) { if (outputsEnergyTo(i, false) || inputEnergyFrom(i, false)) { final IGregTechTileEntity TE = getIGregTechTileEntityAtSide(i); if (TE instanceof BaseMetaPipeEntity) { @@ -1252,8 +1252,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity private boolean isEnergyInputSide(byte aSide) { if (aSide >= 0 && aSide < 6) { - if (!getCoverBehaviorAtSideNew(aSide) - .letsEnergyIn(aSide, getCoverIDAtSide(aSide), getComplexCoverDataAtSide(aSide), this)) return false; + if (!getCoverInfoAtSide(aSide).letsEnergyIn()) return false; if (isInvalid() || mReleaseEnergy) return false; if (canAccessData() && mMetaTileEntity.isElectric() && mMetaTileEntity.isEnetInput()) return mMetaTileEntity.isInputFacing(aSide); @@ -1263,9 +1262,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity private boolean isEnergyOutputSide(byte aSide) { if (aSide >= 0 && aSide < 6) { - if (!getCoverBehaviorAtSideNew(aSide) - .letsEnergyOut(aSide, getCoverIDAtSide(aSide), getComplexCoverDataAtSide(aSide), this)) - return false; + if (!getCoverInfoAtSide(aSide).letsEnergyOut()) return false; if (isInvalid() || mReleaseEnergy) return mReleaseEnergy; if (canAccessData() && mMetaTileEntity.isElectric() && mMetaTileEntity.isEnetOutput()) return mMetaTileEntity.isOutputFacing(aSide); @@ -1460,10 +1457,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity return true; } - if (!getCoverBehaviorAtSideNew(aSide) - .isGUIClickable(aSide, getCoverIDAtSide(aSide), getComplexCoverDataAtSide(aSide), this)) - return false; + if (!getCoverInfoAtSide(aSide).isGUIClickable()) return false; } + if (isServerSide()) { if (!privateAccess() || aPlayer.getDisplayName().equalsIgnoreCase(getOwnerName())) { final ItemStack tCurrentItem = aPlayer.inventory.getCurrentItem(); @@ -1622,6 +1618,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity return true; } } + // End item != null } else if (aPlayer.isSneaking()) { // Sneak click, no tool -> open cover config if possible. aSide = (getCoverIDAtSide(aSide) == 0) ? GT_Utility.determineWrenchingSide(aSide, aX, aY, aZ) @@ -1647,9 +1644,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity aY, aZ)) return true; - if (!getCoverBehaviorAtSideNew(aSide) - .isGUIClickable(aSide, getCoverIDAtSide(aSide), getComplexCoverDataAtSide(aSide), this)) - return false; + if (!getCoverInfoAtSide(aSide).isGUIClickable()) return false; if (isUpgradable() && tCurrentItem != null) { if (ItemList.Upgrade_Muffler.isStackEqual(aPlayer.inventory.getCurrentItem())) { @@ -1736,21 +1731,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity */ @Override public int[] getAccessibleSlotsFromSide(int aSide) { - if (canAccessData() - && (getCoverBehaviorAtSideNew((byte) aSide) - .letsItemsOut( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getComplexCoverDataAtSide((byte) aSide), - -1, - this) - || getCoverBehaviorAtSideNew((byte) aSide) - .letsItemsIn( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getComplexCoverDataAtSide((byte) aSide), - -1, - this))) return mMetaTileEntity.getAccessibleSlotsFromSide(aSide); + final CoverInfo coverInfo = getCoverInfoAtSide((byte) aSide); + if (canAccessData() && (coverInfo.letsItemsOut(-1) || coverInfo.letsItemsIn(-1))) + return mMetaTileEntity.getAccessibleSlotsFromSide(aSide); return GT_Values.emptyIntArray; } @@ -1761,13 +1744,7 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { return canAccessData() && (mRunningThroughTick || !mInputDisabled) - && getCoverBehaviorAtSideNew((byte) aSide) - .letsItemsIn( - (byte) aSide, - getCoverIDAtSide((byte) aSide), - getComplexCoverDataAtSide((byte) aSide), - aIndex, - this) + && getCoverInfoAtSide((byte) aSide).letsItemsIn(aIndex) && mMetaTileEntity.canInsertItem(aIndex, aStack, aSide); } @@ -1998,13 +1975,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity && (mRunningThroughTick || !mInputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) - && getCoverBehaviorAtSideNew((byte) aSide.ordinal()) - .letsFluidIn( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getComplexCoverDataAtSide((byte) aSide.ordinal()), - aFluid == null ? null : aFluid.getFluid(), - this)))) return mMetaTileEntity.fill(aSide, aFluid, doFill); + && getCoverInfoAtSide((byte) aSide.ordinal()) + .letsFluidIn(aFluid == null ? null : aFluid.getFluid())))) + return mMetaTileEntity.fill(aSide, aFluid, doFill); return 0; } @@ -2015,17 +1988,14 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity && (mRunningThroughTick || !mOutputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) - && getCoverBehaviorAtSideNew((byte) aSide.ordinal()) + && getCoverInfoAtSide((byte) aSide.ordinal()) .letsFluidOut( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getComplexCoverDataAtSide((byte) aSide.ordinal()), mMetaTileEntity.getFluid() == null ? null : mMetaTileEntity .getFluid() - .getFluid(), - this)))) return mMetaTileEntity.drain(aSide, maxDrain, doDrain); + .getFluid())))) + return mMetaTileEntity.drain(aSide, maxDrain, doDrain); return null; } @@ -2036,13 +2006,9 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity && (mRunningThroughTick || !mOutputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) - && getCoverBehaviorAtSideNew((byte) aSide.ordinal()) - .letsFluidOut( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getComplexCoverDataAtSide((byte) aSide.ordinal()), - aFluid == null ? null : aFluid.getFluid(), - this)))) return mMetaTileEntity.drain(aSide, aFluid, doDrain); + && getCoverInfoAtSide((byte) aSide.ordinal()) + .letsFluidOut(aFluid == null ? null : aFluid.getFluid())))) + return mMetaTileEntity.drain(aSide, aFluid, doDrain); return null; } @@ -2053,13 +2019,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity && (mRunningThroughTick || !mInputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput((byte) aSide.ordinal()) - && getCoverBehaviorAtSideNew((byte) aSide.ordinal()) - .letsFluidIn( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getComplexCoverDataAtSide((byte) aSide.ordinal()), - aFluid, - this)))) return mMetaTileEntity.canFill(aSide, aFluid); + && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidIn(aFluid)))) + return mMetaTileEntity.canFill(aSide, aFluid); return false; } @@ -2070,13 +2031,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity && (mRunningThroughTick || !mOutputDisabled) && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidOutput((byte) aSide.ordinal()) - && getCoverBehaviorAtSideNew((byte) aSide.ordinal()) - .letsFluidOut( - (byte) aSide.ordinal(), - getCoverIDAtSide((byte) aSide.ordinal()), - getComplexCoverDataAtSide((byte) aSide.ordinal()), - aFluid, - this)))) return mMetaTileEntity.canDrain(aSide, aFluid); + && getCoverInfoAtSide((byte) aSide.ordinal()).letsFluidOut(aFluid)))) + return mMetaTileEntity.canDrain(aSide, aFluid); return false; } @@ -2087,21 +2043,10 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity if (canAccessData() && (aSide == ForgeDirection.UNKNOWN || (mMetaTileEntity.isLiquidInput(tSide) - && getCoverBehaviorAtSideNew(tSide) - .letsFluidIn( - tSide, - getCoverIDAtSide(tSide), - getComplexCoverDataAtSide(tSide), - null, - this)) + && getCoverInfoAtSide(tSide).letsFluidIn(null)) || (mMetaTileEntity.isLiquidOutput(tSide) - && getCoverBehaviorAtSideNew(tSide) - .letsFluidOut( - tSide, - getCoverIDAtSide(tSide), - getComplexCoverDataAtSide(tSide), - null, - this)))) return mMetaTileEntity.getTankInfo(aSide); + && getCoverInfoAtSide(tSide).letsFluidOut(null)))) + return mMetaTileEntity.getTankInfo(aSide); return new FluidTankInfo[] {}; } diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java index 2d29c7b70d..cbd39d3d15 100644 --- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java @@ -21,7 +21,6 @@ import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Textures; -import gregtech.api.gui.modularui.GT_CoverUIBuildContext; import gregtech.api.gui.modularui.GUITextureSet; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.ICoverable; @@ -34,6 +33,7 @@ import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_CoverBehaviorBase; import gregtech.api.util.ISerializableObject; import gregtech.common.GT_Client; +import gregtech.common.covers.CoverInfo; import gregtech.common.covers.GT_Cover_Fluidfilter; import java.util.ArrayList; import java.util.Arrays; @@ -49,6 +49,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; @@ -61,6 +62,16 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov .mapToInt(Enum::ordinal) .mapToObj(i -> "mCoverData" + i) .toArray(String[]::new); + + // New Cover Information + protected final CoverInfo[] coverInfos = new CoverInfo[] {null, null, null, null, null, null}; + + protected byte[] mSidedRedstone = new byte[] {15, 15, 15, 15, 15, 15}; + protected boolean mRedstone = false; + protected byte mStrongRedstone = 0; + + /* Deprecated Cover Variables */ + @Deprecated protected final GT_CoverBehaviorBase<?>[] mCoverBehaviors = new GT_CoverBehaviorBase<?>[] { GregT |
