diff options
author | Raven Szewczyk <git@eigenraven.me> | 2022-08-27 10:19:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-27 11:19:57 +0200 |
commit | 6f31720697bcc351421a4d86ba3bf749375dd12c (patch) | |
tree | 3adf8f318f22c892d74cd7c9d30b6dd3f11f11bd /src/main/java/gregtech/api/multitileentity/multiblock/base | |
parent | c3eac50decd33ee2be8703dfb2ecf9cdc31c2b67 (diff) | |
download | GT5-Unofficial-6f31720697bcc351421a4d86ba3bf749375dd12c.tar.gz GT5-Unofficial-6f31720697bcc351421a4d86ba3bf749375dd12c.tar.bz2 GT5-Unofficial-6f31720697bcc351421a4d86ba3bf749375dd12c.zip |
Update buildscript & apply spotless (#1306)
* Update dependencies
* Update buildscript, apply spotless
Diffstat (limited to 'src/main/java/gregtech/api/multitileentity/multiblock/base')
3 files changed, 268 insertions, 236 deletions
diff --git a/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockController.java b/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockController.java index afd8f9577f..bb01f0b4fa 100644 --- a/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockController.java +++ b/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockController.java @@ -1,5 +1,8 @@ package gregtech.api.multitileentity.multiblock.base; +import static gregtech.GT_Mod.GT_FML_LOGGER; +import static gregtech.api.enums.GT_Values.NBT; + import com.gtnewhorizon.structurelib.StructureLibAPI; import com.gtnewhorizon.structurelib.alignment.IAlignment; import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits; @@ -29,12 +32,16 @@ import gregtech.api.multitileentity.machine.MultiTileBasicMachine; import gregtech.api.objects.GT_ItemStack; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Utility; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; -import net.minecraft.util.Tuple; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; @@ -45,26 +52,23 @@ import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import org.lwjgl.input.Keyboard; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import static gregtech.GT_Mod.GT_FML_LOGGER; -import static gregtech.api.enums.GT_Values.NBT; - public abstract class MultiBlockController<T extends MultiBlockController<T>> extends MultiTileBasicMachine - implements IAlignment, IConstructable, IMultiBlockController, IDescribable, IMachineProgress, IMultiBlockFluidHandler, IMultiBlockInventory, IMTE_AddToolTips -{ + implements IAlignment, + IConstructable, + IMultiBlockController, + IDescribable, + IMachineProgress, + IMultiBlockFluidHandler, + IMultiBlockInventory, + IMTE_AddToolTips { private static final Map<Integer, GT_Multiblock_Tooltip_Builder> tooltip = new ConcurrentHashMap<>(); protected BuildState buildState = new BuildState(); - // The 0th slot is the default inventory of the MultiBlock; any other has been added by an Inventory Extender of sorts + // The 0th slot is the default inventory of the MultiBlock; any other has been added by an Inventory Extender of + // sorts protected List<ItemStack[]> multiBlockInventory = new ArrayList<>(); - private int mMaxProgresstime = 0, mProgresstime = 0; private boolean mStructureOkay = false, mStructureChanged = false; private boolean mWorks = true, mWorkUpdate = false, mWasShutdown = false, mActive = false; @@ -76,7 +80,6 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex /** Meta ID of the required casing */ public abstract short getCasingMeta(); - /** * Create the tooltip for this multi block controller. */ @@ -106,7 +109,6 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex */ public abstract boolean checkRecipe(ItemStack aStack); - @Override public void writeMultiTileNBT(NBTTagCompound aNBT) { super.writeMultiTileNBT(aNBT); @@ -120,16 +122,16 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex public void readMultiTileNBT(NBTTagCompound aNBT) { super.readMultiTileNBT(aNBT); - // Multiblock inventories are a collection of inventories. The first inventory is the default internal inventory, + // Multiblock inventories are a collection of inventories. The first inventory is the default internal + // inventory, // and the others are added by inventory extending blocks. - if(mInventory != null) multiBlockInventory.add(mInventory); + if (mInventory != null) multiBlockInventory.add(mInventory); mStructureOkay = aNBT.getBoolean(NBT.STRUCTURE_OK); mExtendedFacing = ExtendedFacing.of( - ForgeDirection.getOrientation(getFrontFacing()), - Rotation.byIndex(aNBT.getByte(NBT.ROTATION)), - Flip.byIndex(aNBT.getByte(NBT.FLIP)) - ); + ForgeDirection.getOrientation(getFrontFacing()), + Rotation.byIndex(aNBT.getByte(NBT.ROTATION)), + Flip.byIndex(aNBT.getByte(NBT.FLIP))); } @Override @@ -157,18 +159,17 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex protected GT_Multiblock_Tooltip_Builder getTooltip() { return createTooltip(); -// final int tooltipId = getToolTipID(); -// final GT_Multiblock_Tooltip_Builder tt = tooltip.get(tooltipId); -// if (tt == null) { -// return tooltip.computeIfAbsent(tooltipId, k -> createTooltip()); -// } -// return tt; + // final int tooltipId = getToolTipID(); + // final GT_Multiblock_Tooltip_Builder tt = tooltip.get(tooltipId); + // if (tt == null) { + // return tooltip.computeIfAbsent(tooltipId, k -> createTooltip()); + // } + // return tt; } - @Override public boolean checkStructure(boolean aForceReset) { - if(!isServerSide()) return mStructureOkay; + if (!isServerSide()) return mStructureOkay; // Only trigger an update if forced (from onPostTick, generally), or if the structure has changed if ((mStructureChanged || aForceReset)) { @@ -199,21 +200,46 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex * All these offsets can be negative. */ protected final boolean checkPiece(String piece, int horizontalOffset, int verticalOffset, int depthOffset) { - return getCastedStructureDefinition().check( - this, piece, getWorld(), getExtendedFacing(), getXCoord(), getYCoord(), getZCoord(), horizontalOffset, verticalOffset, - depthOffset, !mStructureOkay - ); + return getCastedStructureDefinition() + .check( + this, + piece, + getWorld(), + getExtendedFacing(), + getXCoord(), + getYCoord(), + getZCoord(), + horizontalOffset, + verticalOffset, + depthOffset, + !mStructureOkay); } public final boolean buildPiece(String piece, ItemStack trigger, boolean hintsOnly, Vec3Impl offset) { return buildPiece(piece, trigger, hintsOnly, offset.get0(), offset.get1(), offset.get2()); } - protected final boolean buildPiece(String piece, ItemStack trigger, boolean hintOnly, int horizontalOffset, int verticalOffset, int depthOffset) { - return getCastedStructureDefinition().buildOrHints( - this, trigger, piece, getWorld(), getExtendedFacing(), getXCoord(), getYCoord(), getZCoord(), horizontalOffset, - verticalOffset, depthOffset, hintOnly - ); + protected final boolean buildPiece( + String piece, + ItemStack trigger, + boolean hintOnly, + int horizontalOffset, + int verticalOffset, + int depthOffset) { + return getCastedStructureDefinition() + .buildOrHints( + this, + trigger, + piece, + getWorld(), + getExtendedFacing(), + getXCoord(), + getYCoord(), + getZCoord(), + horizontalOffset, + verticalOffset, + depthOffset, + hintOnly); } @SuppressWarnings("unchecked") @@ -230,13 +256,14 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex public void setExtendedFacing(ExtendedFacing newExtendedFacing) { if (mExtendedFacing != newExtendedFacing) { onStructureChange(); - if (mStructureOkay) - stopMachine(); + if (mStructureOkay) stopMachine(); mExtendedFacing = newExtendedFacing; mStructureOkay = false; if (isServerSide()) { StructureLibAPI.sendAlignment( - this, new NetworkRegistry.TargetPoint(getWorld().provider.dimensionId, getXCoord(), getYCoord(), getZCoord(), 512)); + this, + new NetworkRegistry.TargetPoint( + getWorld().provider.dimensionId, getXCoord(), getYCoord(), getZCoord(), 512)); } else { issueTextureUpdate(); } @@ -244,11 +271,13 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex } @Override - public boolean onWrenchRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, byte wrenchSide, float aX, float aY, float aZ) { + public boolean onWrenchRightClick( + EntityPlayer aPlayer, ItemStack tCurrentItem, byte wrenchSide, float aX, float aY, float aZ) { if (wrenchSide != getFrontFacing()) return super.onWrenchRightClick(aPlayer, tCurrentItem, wrenchSide, aX, aY, aZ); if (aPlayer.isSneaking()) { - // we won't be allowing horizontal flips, as it can be perfectly emulated by rotating twice and flipping horizontally + // we won't be allowing horizontal flips, as it can be perfectly emulated by rotating twice and flipping + // horizontally // allowing an extra round of flip make it hard to draw meaningful flip markers in GT_Proxy#drawGrid toolSetFlip(getFlip().isHorizontallyFlipped() ? Flip.NONE : Flip.HORIZONTAL); } else { @@ -260,10 +289,8 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex @Override public void onFirstTick(boolean aIsServerSide) { super.onFirstTick(aIsServerSide); - if (aIsServerSide) - checkStructure(true); - else - StructureLibAPI.queryAlignment(this); + if (aIsServerSide) checkStructure(true); + else StructureLibAPI.queryAlignment(this); } @Override @@ -325,8 +352,7 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex @Override public FluidStack getDrainableFluid(byte aSide) { final IFluidTank tank = getFluidTankDrainable(aSide, null); - return tank == null ? null : tank.getFluid(); - + return tank == null ? null : tank.getFluid(); } /** @@ -393,6 +419,7 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex * Utility class to keep track of the build state of a multiblock */ boolean building = false; + Vec3Impl currentOffset; public void startBuilding(Vec3Impl structureOffset) { @@ -437,7 +464,7 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex public <S> IStructureElement<S> addMultiTileCasing(int aRegistryID, int aBlockMeta, int aModes) { return new IStructureElement<S>() { - private final short[] DEFAULT = new short[]{255, 255, 255, 0}; + private final short[] DEFAULT = new short[] {255, 255, 255, 0}; private IIcon[] mIcons = null; @Override @@ -446,7 +473,8 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex if (!(tileEntity instanceof MultiBlockPart)) return false; final MultiBlockPart part = (MultiBlockPart) tileEntity; - if (aRegistryID != part.getMultiTileEntityRegistryID() || aBlockMeta != part.getMultiTileEntityID()) return false; + if (aRegistryID != part.getMultiTileEntityRegistryID() || aBlockMeta != part.getMultiTileEntityID()) + return false; final IMultiBlockController tTarget = part.getTarget(false); if (tTarget != null && tTarget != MultiBlockController.this) return false; @@ -460,27 +488,28 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex if (mIcons == null) { mIcons = new IIcon[6]; Arrays.fill(mIcons, TextureSet.SET_NONE.mTextures[OrePrefixes.block.mTextureIndex].getIcon()); -// Arrays.fill(mIcons, getTexture(aCasing); -// for (int i = 0; i < 6; i++) { -// mIcons[i] = aCasing.getIcon(i, aMeta); -// } + // Arrays.fill(mIcons, getTexture(aCasing); + // for (int i = 0; i < 6; i++) { + // mIcons[i] = aCasing.getIcon(i, aMeta); + // } } final short[] RGBA = DEFAULT; StructureLibAPI.hintParticleTinted(world, x, y, z, mIcons, RGBA); -// StructureLibAPI.hintParticle(world, x, y, z, aCasing, aMeta); + // StructureLibAPI.hintParticle(world, x, y, z, aCasing, aMeta); return true; } @Override public boolean placeBlock(S t, World world, int x, int y, int z, ItemStack trigger) { final MultiTileEntityRegistry tRegistry = MultiTileEntityRegistry.getRegistry(aRegistryID); - final MultiTileEntityContainer tContainer = tRegistry.getNewTileEntityContainer(world, x, y, z, aBlockMeta, null); - if(tContainer == null) { + final MultiTileEntityContainer tContainer = + tRegistry.getNewTileEntityContainer(world, x, y, z, aBlockMeta, null); + if (tContainer == null) { GT_FML_LOGGER.error("NULL CONTAINER"); return false; } - final IMultiTileEntity te = ((IMultiTileEntity)tContainer.mTileEntity); - if(!(te instanceof MultiBlockPart)) { + final IMultiTileEntity te = ((IMultiTileEntity) tContainer.mTileEntity); + if (!(te instanceof MultiBlockPart)) { GT_FML_LOGGER.error("Not a multiblock part"); return false; } @@ -501,15 +530,22 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex /** * Fluid - MultiBlock related Fluid Tank behaviour. */ + protected IFluidTank getFluidTankFillable(MultiBlockPart aPart, byte aSide, FluidStack aFluidToFill) { + return getFluidTankFillable(aSide, aFluidToFill); + } - protected IFluidTank getFluidTankFillable(MultiBlockPart aPart, byte aSide, FluidStack aFluidToFill) {return getFluidTankFillable(aSide, aFluidToFill);} - protected IFluidTank getFluidTankDrainable(MultiBlockPart aPart, byte aSide, FluidStack aFluidToDrain) {return getFluidTankDrainable(aSide, aFluidToDrain);} - protected IFluidTank[] getFluidTanks(MultiBlockPart aPart, byte aSide) {return getFluidTanks(aSide);} + protected IFluidTank getFluidTankDrainable(MultiBlockPart aPart, byte aSide, FluidStack aFluidToDrain) { + return getFluidTankDrainable(aSide, aFluidToDrain); + } + + protected IFluidTank[] getFluidTanks(MultiBlockPart aPart, byte aSide) { + return getFluidTanks(aSide); + } @Override public int fill(MultiBlockPart aPart, ForgeDirection aDirection, FluidStack aFluid, boolean aDoFill) { if (aFluid == null || aFluid.amount <= 0) return 0; - final IFluidTank tTank = getFluidTankFillable(aPart, (byte)aDirection.ordinal(), aFluid); + final IFluidTank tTank = getFluidTankFillable(aPart, (byte) aDirection.ordinal(), aFluid); if (tTank == null) return 0; final int rFilledAmount = tTank.fill(aFluid, aDoFill); if (rFilledAmount > 0 && aDoFill) mInventoryChanged = true; @@ -519,8 +555,11 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex @Override public FluidStack drain(MultiBlockPart aPart, ForgeDirection aDirection, FluidStack aFluid, boolean aDoDrain) { if (aFluid == null || aFluid.amount <= 0) return null; - final IFluidTank tTank = getFluidTankDrainable(aPart, (byte)aDirection.ordinal(), aFluid); - if (tTank == null || tTank.getFluid() == null || tTank.getFluidAmount() == 0 || !tTank.getFluid().isFluidEqual(aFluid)) return null; + final IFluidTank tTank = getFluidTankDrainable(aPart, (byte) aDirection.ordinal(), aFluid); + if (tTank == null + || tTank.getFluid() == null + || tTank.getFluidAmount() == 0 + || !tTank.getFluid().isFluidEqual(aFluid)) return null; final FluidStack rDrained = tTank.drain(aFluid.amount, aDoDrain); if (rDrained != null && aDoDrain) markInventoryBeenModified(); return rDrained; @@ -529,7 +568,7 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex @Override public FluidStack drain(MultiBlockPart aPart, ForgeDirection aDirection, int aAmountToDrain, boolean aDoDrain) { if (aAmountToDrain <= 0) return null; - final IFluidTank tTank = getFluidTankDrainable(aPart, (byte)aDirection.ordinal(), null); + final IFluidTank tTank = getFluidTankDrainable(aPart, (byte) aDirection.ordinal(), null); if (tTank == null || tTank.getFluid() == null || tTank.getFluidAmount() == 0) return null; final FluidStack rDrained = tTank.drain(aAmountToDrain, aDoDrain); if (rDrained != null && aDoDrain) markInventoryBeenModified(); @@ -539,20 +578,20 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex @Override public boolean canFill(MultiBlockPart aPart, ForgeDirection aDirection, Fluid aFluid) { if (aFluid == null) return false; - final IFluidTank tTank = getFluidTankFillable(aPart, (byte)aDirection.ordinal(), new FluidStack(aFluid, 0)); + final IFluidTank tTank = getFluidTankFillable(aPart, (byte) aDirection.ordinal(), new FluidStack(aFluid, 0)); return tTank != null && (tTank.getFluid() == null || tTank.getFluid().getFluid() == aFluid); } @Override public boolean canDrain(MultiBlockPart aPart, ForgeDirection aDirection, Fluid aFluid) { if (aFluid == null) return false; - final IFluidTank tTank = getFluidTankDrainable(aPart, (byte)aDirection.ordinal(), new FluidStack(aFluid, 0)); + final IFluidTank tTank = getFluidTankDrainable(aPart, (byte) aDirection.ordinal(), new FluidStack(aFluid, 0)); return tTank != null && (tTank.getFluid() != null && tTank.getFluid().getFluid() == aFluid); } @Override public FluidTankInfo[] getTankInfo(MultiBlockPart aPart, ForgeDirection aDirection) { - final IFluidTank[] tTanks = getFluidTanks(aPart, (byte)aDirection.ordinal()); + final IFluidTank[] tTanks = getFluidTanks(aPart, (byte) aDirection.ordinal()); if (tTanks == null || tTanks.length <= 0) return GT_Values.emptyFluidTankInfo; final FluidTankInfo[] rInfo = new FluidTankInfo[tTanks.length]; for (int i = 0; i < tTanks.length; i++) rInfo[i] = new FluidTankInfo(tTanks[i]); @@ -562,7 +601,6 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex /** * Energy - MultiBlock related Energy behavior */ - @Override public boolean isUniversalEnergyStored(MultiBlockPart aPart, long aEnergyAmount) { return getUniversalEnergyStored(aPart) >= aEnergyAmount; @@ -642,7 +680,7 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex public boolean inputEnergyFrom(MultiBlockPart aPart, byte aSide) { if (aSide == GT_Values.SIDE_UNKNOWN) return true; if (aSide >= 0 && aSide < 6) { - if(isInvalid()) return false; + if (isInvalid()) return false; if (isEnetInput()) return isEnergyInputSide(aSide); } return false; @@ -661,8 +699,6 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex /** * Item - MultiBlock related Item behaviour. */ - - @Override public boolean hasInventoryBeenModified(MultiBlockPart aPart) { // TODO: MultiInventory - Figure this out based on locked & the part @@ -688,7 +724,7 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex if (lockedInventory != -1) return new ImmutablePair<>(multiBlockInventory.get(lockedInventory), aSlot); int start = 0; - for(ItemStack[] inv : multiBlockInventory) { + for (ItemStack[] inv : multiBlockInventory) { if (aSlot > start && aSlot < start + inv.length) { return new ImmutablePair<>(inv, aSlot - start); } @@ -703,42 +739,43 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex final int lockedInventory = aPart.getLockedInventory(); int start = 0; - if(lockedInventory == -1) { + if (lockedInventory == -1) { for (ItemStack[] inv : multiBlockInventory) { for (int i = start; i < inv.length + start; i++) tList.add(i); start += inv.length; } } else { final int len = multiBlockInventory.get(lockedInventory).length; - for(int i = 0; i < len ; i++) tList.add(i); + for (int i = 0; i < len; i++) tList.add(i); } return tList.toArray(); } - @Override public boolean canInsertItem(MultiBlockPart aPart, int aSlot, ItemStack aStack, byte aSide) { final int lockedInventory = aPart.getLockedInventory(), tSlot; final ItemStack[] inv; - if(lockedInventory == -1) { + if (lockedInventory == -1) { final Pair<ItemStack[], Integer> tInv = getInventory(lockedInventory, aSlot); - if(tInv == null) return false; + if (tInv == null) return false; inv = tInv.getLeft(); tSlot = tInv.getRight(); } else { inv = multiBlockInventory.get(lockedInventory); tSlot = aSlot; } - return inv[tSlot] == null || GT_Utility.areStacksEqual(aStack, inv[tSlot]); //&& allowPutStack(getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack) + return inv[tSlot] == null + || GT_Utility.areStacksEqual( + aStack, inv[tSlot]); // && allowPutStack(getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack) } @Override public boolean canExtractItem(MultiBlockPart aPart, int aSlot, ItemStack aStack, byte aSide) { final int lockedInventory = aPart.getLockedInventory(), tSlot; final ItemStack[] inv; - if(lockedInventory == -1) { + if (lockedInventory == -1) { final Pair<ItemStack[], Integer> tInv = getInventory(lockedInventory, aSlot); - if(tInv == null) return false; + if (tInv == null) return false; inv = tInv.getLeft(); tSlot = tInv.getRight(); } else { @@ -751,7 +788,7 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex @Override public int getSizeInventory(MultiBlockPart aPart) { final int lockedInventory = aPart.getLockedInventory(); - if(lockedInventory == -1) { + if (lockedInventory == -1) { int len = 0; for (ItemStack[] inv : multiBlockInventory) len += inv.length; return len; @@ -764,9 +801,9 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex public ItemStack getStackInSlot(MultiBlockPart aPart, int aSlot) { final int lockedInventory = aPart.getLockedInventory(), tSlot; final ItemStack[] inv; - if(lockedInventory == -1) { + if (lockedInventory == -1) { final Pair<ItemStack[], Integer> tInv = getInventory(lockedInventory, aSlot); - if(tInv == null) return null; + if (tInv == null) return null; inv = tInv.getLeft(); tSlot = tInv.getRight(); } else { @@ -785,8 +822,7 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex setInventorySlotContents(aSlot, null); } else { rStack = tStack.splitStack(aDecrement); - if (tStack.stackSize == 0) - setInventorySlotContents(aSlot, null); + if (tStack.stackSize == 0) setInventorySlotContents(aSlot, null); } } return rStack; @@ -833,7 +869,8 @@ public abstract class MultiBlockController<T extends MultiBlockController<T>> ex @Override public void markDirty(MultiBlockPart aPart) { // TODO: MultiInventory - Consider the part? - markDirty(); markInventoryBeenModified(); + markDirty(); + markInventoryBeenModified(); } @Override diff --git a/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java b/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java index 6c36798197..628992a931 100644 --- a/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java +++ b/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java @@ -1,20 +1,36 @@ package gregtech.api.multitileentity.multiblock.base; +import static com.google.common.math.LongMath.log2; +import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; +import static gregtech.api.enums.GT_Values.B; +import static gregtech.api.enums.GT_Values.NBT; +import static gregtech.api.enums.GT_Values.SIDE_UNKNOWN; +import static gregtech.api.enums.Textures.BlockIcons.FLUID_IN_SIGN; +import static gregtech.api.enums.Textures.BlockIcons.FLUID_OUT_SIGN; +import static gregtech.api.enums.Textures.BlockIcons.ITEM_IN_SIGN; +import static gregtech.api.enums.Textures.BlockIcons.ITEM_OUT_SIGN; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ENERGY_IN_MULTI; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ENERGY_OUT_MULTI; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_PIPE_IN; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_PIPE_OUT; +import static org.apache.commons.lang3.ObjectUtils.firstNonNull; + import gregtech.api.enums.GT_Values; import gregtech.api.enums.Textures; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; import gregtech.api.multitileentity.MultiTileEntityRegistry; -import gregtech.api.multitileentity.base.BaseMultiTileEntity; import gregtech.api.multitileentity.base.BaseNontickableMultiTileEntity; import gregtech.api.multitileentity.interfaces.IMultiBlockController; import gregtech.api.multitileentity.interfaces.IMultiTileEntity.IMTE_BreakBlock; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_CoverBehaviorBase; -import gregtech.api.util.GT_Util; import gregtech.api.util.GT_Utility; import gregtech.api.util.ISerializableObject; -import gregtech.common.render.GT_MultiTexture; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; import net.minecraft.block.Block; @@ -29,44 +45,23 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; -import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static com.google.common.math.LongMath.log2; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; -import static gregtech.api.enums.GT_Values.B; -import static gregtech.api.enums.GT_Values.NBT; -import static gregtech.api.enums.GT_Values.SIDE_UNKNOWN; -import static gregtech.api.enums.Textures.BlockIcons.FLUID_IN_SIGN; -import static gregtech.api.enums.Textures.BlockIcons.FLUID_OUT_SIGN; -import static gregtech.api.enums.Textures.BlockIcons.ITEM_IN_SIGN; -import static gregtech.api.enums.Textures.BlockIcons.ITEM_OUT_SIGN; -import static gregtech.api.enums.Textures.BlockIcons.MACHINE_CASINGS; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ENERGY_IN_MULTI; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_ENERGY_OUT_MULTI; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_PIPE_IN; -import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_PIPE_OUT; -import static org.apache.commons.lang3.ObjectUtils.firstNonNull; - public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IMTE_BreakBlock { - public static final int - NOTHING = 0, - ENERGY_IN = B[0], - ENERGY_OUT = B[1], - FLUID_IN = B[2], - FLUID_OUT = B[3], - ITEM_IN = B[4], - ITEM_OUT = B[5]; + public static final int NOTHING = 0, + ENERGY_IN = B[0], + ENERGY_OUT = B[1], + FLUID_IN = B[2], + FLUID_OUT = B[3], + ITEM_IN = B[4], + ITEM_OUT = B[5]; - protected final List<Integer> BASIC_MODES = new ArrayList<>(Arrays.asList(NOTHING, ENERGY_IN, ENERGY_OUT, FLUID_IN, FLUID_OUT, ITEM_IN, ITEM_OUT)); + protected final List<Integer> BASIC_MODES = + new ArrayList<>(Arrays.asList(NOTHING, ENERGY_IN, ENERGY_OUT, FLUID_IN, FLUID_OUT, ITEM_IN, ITEM_OUT)); protected ChunkCoordinates mTargetPos = null; protected IMultiBlockController mTarget = null; - protected int mAllowedModes = NOTHING; // BITMASK - Modes allowed for this part - protected byte mMode = 0; // Mode selected for this part + protected int mAllowedModes = NOTHING; // BITMASK - Modes allowed for this part + protected byte mMode = 0; // Mode selected for this part /** * What Part Tier is this part? All Basic Casings are Tier 1, and will allow: @@ -89,7 +84,7 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM @Override protected void addDebugInfo(EntityPlayer aPlayer, int aLogLevel, ArrayList<String> tList) { final IMultiBlockController controller = getTarget(false); - if(controller != null) { + if (controller != null) { tList.add("Has controller"); } else { tList.add("No Controller"); @@ -98,7 +93,8 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM } @Override - public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) { + public void getWailaBody( + ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) { super.getWailaBody(itemStack, currenttip, accessor, config); currenttip.add(String.format("Mode: %s", getModeName(mMode))); } @@ -109,17 +105,15 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM if (worldObj.blockExists(mTargetPos.posX, mTargetPos.posY, mTargetPos.posZ)) { final TileEntity te = worldObj.getTileEntity(mTargetPos.posX, mTargetPos.posY, mTargetPos.posZ); if (te instanceof IMultiBlockController) { - mTarget = (IMultiBlockController)te; + mTarget = (IMultiBlockController) te; } else { mTargetPos = null; } } } - if(aCheckValidity) { + if (aCheckValidity) { return mTarget != null && mTarget.checkStructure(false) ? mTarget : null; - } - else - return mTarget; + } else return mTarget; } @Override @@ -127,9 +121,9 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM if (aNBT.hasKey(NBT.ALLOWED_MODES)) mAllowedModes = aNBT.getInteger(NBT.ALLOWED_MODES); if (aNBT.hasKey(NBT.MODE)) mMode = aNBT.getByte(NBT.MODE); if (aNBT.hasKey(NBT.TARGET)) { - mTargetPos = new ChunkCoordinates(aNBT.getInteger(NBT.TARGET_X), aNBT.getShort(NBT.TARGET_Y), aNBT.getInteger(NBT.TARGET_Z)); + mTargetPos = new ChunkCoordinates( + aNBT.getInteger(NBT.TARGET_X), aNBT.getShort(NBT.TARGET_Y), aNBT.getInteger(NBT.TARGET_Z)); } - } @Override @@ -139,7 +133,7 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM if (mTargetPos != null) { aNBT.setBoolean(NBT.TARGET, true); aNBT.setInteger(NBT.TARGET_X, mTargetPos.posX); - aNBT.setShort(NBT.TARGET_Y, (short)mTargetPos.posY); + aNBT.setShort(NBT.TARGET_Y, (short) mTargetPos.posY); aNBT.setInteger(NBT.TARGET_Z, mTargetPos.posZ); } } @@ -155,9 +149,8 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM * Returns true if the part has any of the modes provided, and that mode is the currently selected mode */ public boolean modeSelected(int... aModes) { - for(int aMode : aModes) { - if (hasMode(aMode) && mMode == getModeOrdinal(aMode)) - return true; + for (int aMode : aModes) { + if (hasMode(aMode) && mMode == getModeOrdinal(aMode)) return true; } return false; } @@ -174,10 +167,10 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM for (byte tSide : ALL_VALID_SIDES) { final TileEntity te = getTileEntityAtSide(tSide); if (te instanceof MultiBlockPart) { - final IMultiBlockController tController = ((MultiBlockPart)te).getTarget(false); + final IMultiBlockController tController = ((MultiBlockPart) te).getTarget(false); if (tController != null) tController.onStructureChange(); } else if (te instanceof IMultiBlockController) { - ((IMultiBlockController)te).onStructureChange(); + ((IMultiBlockController) te).onStructureChange(); } } } @@ -192,51 +185,55 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM mMode = aData; } - @Override public void loadTextureNBT(NBTTagCompound aNBT) { // Loading the registry final String textureName = aNBT.getString(NBT.TEXTURE); mTextures = new IIconContainer[] { - new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/"+textureName+"/bottom"), - new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/"+textureName+"/top"), - new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/"+textureName+"/side"), - new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/"+textureName+"/overlay/bottom"), - new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/"+textureName+"/overlay/top"), - new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/"+textureName+"/overlay/side") + new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/" + textureName + "/bottom"), + new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/" + textureName + "/top"), + new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/" + textureName + "/side"), + new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/" + textureName + "/overlay/bottom"), + new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/" + textureName + "/overlay/top"), + new Textures.BlockIcons.CustomIcon("multitileentity/multiblockparts/" + textureName + "/overlay/side") }; } @Override public void copyTextures() { // Loading an instance - final TileEntity tCanonicalTileEntity = MultiTileEntityRegistry.getCanonicalTileEntity(getMultiTileEntityRegistryID(), getMultiTileEntityID()); - if(tCanonicalTileEntity instanceof MultiBlockPart) - mTextures = ((MultiBlockPart)tCanonicalTileEntity).mTextures; + final TileEntity tCanonicalTileEntity = + MultiTileEntityRegistry.getCanonicalTileEntity(getMultiTileEntityRegistryID(), getMultiTileEntityID()); + if (tCanonicalTileEntity instanceof MultiBlockPart) + mTextures = ((MultiBlockPart) tCanonicalTileEntity).mTextures; } - @Override public ITexture[] getTexture(Block aBlock, byte aSide, boolean isActive, int aRenderPass) { // For normal parts - texture comes from BaseMTE; overlay based on current mode // TODO(MTE) - For Advanced parts they might come from somewhere else final ITexture baseTexture = TextureFactory.of(super.getTexture(aBlock, aSide, isActive, aRenderPass)); - if(mMode != 0 && aSide == mFacing) { - if(mMode == getModeOrdinal(ITEM_IN)) - return new ITexture[]{ baseTexture, TextureFactory.of(OVERLAY_PIPE_IN), TextureFactory.of(ITEM_IN_SIGN) }; - if(mMode == getModeOrdinal(ITEM_OUT)) - return new ITexture[]{ baseTexture, TextureFactory.of(OVERLAY_PIPE_OUT), TextureFactory.of(ITEM_OUT_SIGN) }; - if(mMode == getModeOrdinal(FLUID_IN)) - return new ITexture[]{ baseTexture, TextureFactory.of(OVERLAY_PIPE_IN), TextureFactory.of(FLUID_IN_SIGN) }; - if(mMode == getModeOrdinal(FLUID_OUT)) - return new ITexture[]{ baseTexture, TextureFactory.of(OVERLAY_PIPE_OUT), TextureFactory.of(FLUID_OUT_SIGN) }; - if(mMode == getModeOrdinal(ENERGY_IN)) - return new ITexture[]{ baseTexture, TextureFactory.of(OVERLAY_ENERGY_IN_MULTI)}; - if(mMode == getModeOrdinal(ENERGY_OUT)) - return new ITexture[]{ baseTexture, TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI)}; - + if (mMode != 0 && aSide == mFacing) { + if (mMode == getModeOrdinal(ITEM_IN)) + return new ITexture[] {baseTexture, TextureFactory.of(OVERLAY_PIPE_IN), TextureFactory.of(ITEM_IN_SIGN) + }; + if (mMode == getModeOrdinal(ITEM_OUT)) + return new ITexture[] { + baseTexture, TextureFactory.of(OVERLAY_PIPE_OUT), TextureFactory.of(ITEM_OUT_SIGN) + }; + if (mMode == getModeOrdinal(FLUID_IN)) + return new ITexture[] {baseTexture, TextureFactory.of(OVERLAY_PIPE_IN), TextureFactory.of(FLUID_IN_SIGN) + }; + if (mMode == getModeOrdinal(FLUID_OUT)) + return new ITexture[] { + baseTexture, TextureFactory.of(OVERLAY_PIPE_OUT), TextureFactory.of(FLUID_OUT_SIGN) + }; + if (mMode == getModeOrdinal(ENERGY_IN)) + return new ITexture[] {baseTexture, TextureFactory.of(OVERLAY_ENERGY_IN_MULTI)}; + if (mMode == getModeOrdinal(ENERGY_OUT)) + return new ITexture[] {baseTexture, TextureFactory.of(OVERLAY_ENERGY_OUT_MULTI)}; } - return new ITexture[]{ baseTexture }; + return new ITexture[] {baseTexture}; } @Override @@ -245,46 +242,38 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM } protected String getModeName(int aMode) { - if(aMode == NOTHING) - return "Nothing"; - if(aMode == getModeOrdinal(ITEM_IN)) - return "Item Input"; - if(aMode == getModeOrdinal(ITEM_OUT)) - return "Item Output"; - if(aMode == getModeOrdinal(FLUID_IN)) - return "Fluid Input"; - if(aMode == getModeOrdinal(FLUID_OUT)) - return "Fluid Output"; - if(aMode == getModeOrdinal(ENERGY_IN)) - return "Energy Input"; - if(aMode == getModeOrdinal(ENERGY_OUT)) - return "Energy Output"; + if (aMode == NOTHING) return "Nothing"; + if (aMode == getModeOrdinal(ITEM_IN)) return "Item Input"; + if (aMode == getModeOrdinal(ITEM_OUT)) return "Item Output"; + if (aMode == getModeOrdinal(FLUID_IN)) return "Fluid Input"; + if (aMode == getModeOrdinal(FLUID_OUT)) return "Fluid Output"; + if (aMode == getModeOrdinal(ENERGY_IN)) return "Energy Input"; + if (aMode == getModeOrdinal(ENERGY_OUT)) return "Energy Output"; return "Unknown"; } protected byte getModeOrdinal(int aMode) { // log2 returns the bit position of the only bit set, add 1 to account for 0 being NOTHING // NOTE: Must be a power of 2 (single bit) - return (byte)(log2(aMode, RoundingMode.UNNECESSARY) + 1); + return (byte) (log2(aMode, RoundingMode.UNNECESSARY) + 1); } + protected byte getNextAllowedMode(List<Integer> allowedModes) { - if(mAllowedModes == NOTHING) - return NOTHING; + if (mAllowedModes == NOTHING) return NOTHING; final int numModes = allowedModes.size(); - for(byte i = 1 ; i <= numModes ; i++) { - final byte curMode = (byte)((mMode + i) % numModes); - if(curMode == NOTHING || hasMode(1 << (curMode - 1))) - return curMode; + for (byte i = 1; i <= numModes; i++) { + final byte curMode = (byte) ((mMode + i) % numModes); + if (curMode == NOTHING || hasMode(1 << (curMode - 1))) return curMode; } // Nothing valid found return 0; } @Override - public boolean onMalletRightClick(EntityPlayer aPlayer, ItemStack tCurrentItem, byte wrenchSide, float aX, float aY, float aZ) { - if(mAllowedModes == NOTHING) - return true; + public boolean onMalletRightClick( + EntityPlayer aPlayer, ItemStack tCurrentItem, byte wrenchSide, float aX, float aY, float aZ) { + if (mAllowedModes == NOTHING) return true; mMode = getNextAllowedMode(BASIC_MODES); GT_Utility.sendChatToPlayer(aPlayer, "Mode set to `" + getModeName(mMode) + "' (" + mMode + ")"); @@ -293,17 +282,15 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM } @Override - public void setLightValue(byte aLightValue) { - - } + public void setLightValue(byte aLightValue) {} @Override public byte getComparatorValue(byte aSide) { return 0; } - - @Override public String getTileEntityName() { + @Override + public String getTileEntityName() { return "gt.multitileentity.multiblock.part"; } @@ -318,8 +305,9 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM @Override public int fill(ForgeDirection aDirection, FluidStack aFluidStack, boolean aDoFill) { if (!modeSelected(FLUID_IN)) return 0; - final byte aSide = (byte)aDirection.ordinal(); - if(aDirection != ForgeDirection.UNKNOWN && (aSide != mFacing || !coverLetsFluidIn(aSide, aFluidStack == null ? null : aFluidStack.getFluid()))) + final byte aSide = (byte) aDirection.ordinal(); + if (aDirection != ForgeDirection.UNKNOWN + && (aSide != mFacing || !coverLetsFluidIn(aSide, aFluidStack == null ? null : aFluidStack.getFluid()))) return 0; final IMultiBlockController controller = getTarget(true); return controller == null ? 0 : controller.fill(this, aDirection, aFluidStack, aDoFill); @@ -328,8 +316,9 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM @Override public FluidStack drain(ForgeDirection aDirection, FluidStack aFluidStack, boolean aDoDrain) { if (!modeSelected(FLUID_OUT)) return null; - final byte aSide = (byte)aDirection.ordinal(); - if(aDirection != ForgeDirection.UNKNOWN && (aSide != mFacing || !coverLetsFluidOut(aSide, aFluidStack == null ? null : aFluidStack.getFluid()))) + final byte aSide = (byte) aDirection.ordinal(); + if (aDirection != ForgeDirection.UNKNOWN + && (aSide != mFacing || !coverLetsFluidOut(aSide, aFluidStack == null ? null : aFluidStack.getFluid()))) return null; final IMultiBlockController controller = getTarget(true); return controller == null ? null : controller.drain(this, aDirection, aFluidStack, aDoDrain); @@ -338,11 +327,12 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM @Override public FluidStack drain(ForgeDirection aDirection, int aAmountToDrain, boolean aDoDrain) { if (!modeSelected(FLUID_OUT)) return null; - final byte aSide = (byte)aDirection.ordinal(); + final byte aSide = (byte) aDirection.ordinal(); final IMultiBlockController controller = getTarget(true); if (controller == null) return null; final FluidStack aFluidStack = controller.getDrainableFluid(aSide); - if(aDirection != ForgeDirection.UNKNOWN && (aSide != mFacing || !coverLetsFluidOut(aSide, aFluidStack == null ? null : aFluidStack.getFluid()))) + if (aDirection != ForgeDirection.UNKNOWN + && (aSide != mFacing || !coverLetsFluidOut(aSide, aFluidStack == null ? null : aFluidStack.getFluid()))) return null; return controller.drain(this, aDirection, aAmountToDrain, aDoDrain); } @@ -350,8 +340,8 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM @Override public boolean canFill(ForgeDirection aDirection, Fluid aFluid) { if (!modeSelected(FLUID_IN)) return false; - final byte aSide = (byte)aDirection.ordinal(); - if(aDirection != ForgeDirection.UNKNOWN && (aSide != mFacing || !coverLetsFluidIn(aSide, aFluid))) + final byte aSide = (byte) aDirection.ordinal(); + if (aDirection != ForgeDirection.UNKNOWN && (aSide != mFacing || !coverLetsFluidIn(aSide, aFluid))) return false; final IMultiBlockController controller = getTarget(true); return controller != null && controller.canFill(this, aDirection, aFluid); @@ -360,8 +350,8 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM @Override public boolean canDrain(ForgeDirection aDirection, Fluid aFluid) { if (!modeSelected(FLUID_OUT)) return false; - final byte aSide = (byte)aDirection.ordinal(); - if(aDirection != ForgeDirection.UNKNOWN && (aSide != mFacing || !coverLetsFluidOut(aSide, aFluid))) + final byte aSide = (byte) aDirection.ordinal(); + if (aDirection != ForgeDirection.UNKNOWN && (aSide != mFacing || !coverLetsFluidOut(aSide, aFluid))) return false; final IMultiBlockController controller = getTarget(true); return controller != null && controller.canDrain(this, aDirection, aFluid); @@ -370,16 +360,18 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM @Override public FluidTankInfo[] getTankInfo(ForgeDirection aDirection) { final byte aSide = (byte) aDirection.ordinal(); - if (!modeSelected(FLUID_IN, FLUID_OUT) || (aSide != SIDE_UNKNOWN && aSide != mFacing)) return GT_Values.emptyFluidTankInfo; + if (!modeSelected(FLUID_IN, FLUID_OUT) || (aSide != SIDE_UNKNOWN && aSide != mFacing)) + return GT_Values.emptyFluidTankInfo; final IMultiBlockController controller = getTarget(true); - if(controller == null) return GT_Values.emptyFluidTankInfo; + if (controller == null) return GT_Values.emptyFluidTankInfo; final GT_CoverBehaviorBase<?> tCover = getCoverBehaviorAtSideNew(aSide); final int coverId = getCoverIDAtSide(aSide); final ISerializableObject complexCoverData = getComplexCoverDataAtSide(aSide); - if((controller.isLiquidInput(aSide) && tCover.letsFluidIn(aSide, coverId, complexCoverData, null, controller)) || - (controller.isLiquidOutput(aSide) && tCover.letsFluidOut(aSide, coverId, complexCoverData, null, controller))) + if ((controller.isLiquidInput(aSide) && tCover.letsFluidIn(aSide, coverId, complexCoverData, null, controller)) + || (controller.isLiquidOutput(aSide) + && tCover.letsFluidOut(aSide, coverId, complexCoverData, null, controller))) return controller.getTankInfo(this, aDirection); return GT_Values.emptyFluidTankInfo; @@ -388,7 +380,6 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM /** * Energy - Depending on the part type - proxy to the multiblock controller, if we have one */ - @Override public boolean isEnetInput() { return modeSelected(ENERGY_IN); @@ -404,7 +395,6 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM if (!modeSelected(ENERGY_OUT, ENERGY_IN)) return false; final IMultiBlockController controller = getTarget(true); return controller != null && controller.isUniversalEnergyStored(this, aEnergyAmount); - } @Override @@ -453,37 +443,41 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM public boolean decreaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooLittleEnergy) { if (!modeSelected(ENERGY_IN)) return false; final IMultiBlockController controller = getTarget(true); - return controller != null && hasMode(ENERGY_OUT) && controller.decreaseStoredEnergyUnits(this, aEnergy, aIgnoreTooLittleEnergy); + return controller != null + && hasMode(ENERGY_OUT) + && controller.decreaseStoredEnergyUnits(this, aEnergy, aIgnoreTooLittleEnergy); } @Override public boolean increaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooMuchEnergy) { if (!modeSelected(ENERGY_IN)) return false; final IMultiBlockController controller = getTarget(true); - return controller != null && hasMode(ENERGY_IN) && controller.increaseStoredEnergyUnits(this, aEnergy, aIgnoreTooMuchEnergy); + return controller != null + && hasMode(ENERGY_IN) + && controller.increaseStoredEnergyUnits(this, aEnergy, aIgnoreTooMuchEnergy); } @Override public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - if(!modeSelected(ENERGY_OUT) || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsEnergyOut(aSide)))) return false; + if (!modeSelected(ENERGY_OUT) || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsEnergyOut(aSide)))) + return false; final IMultiBlockController controller = getTarget(true); return controller != null && controller.drainEnergyUnits(this, aSide, aVoltage, aAmperage); } - @Override public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { - if (!modeSelected(ENERGY_IN) || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsEnergyIn(aSide)))) return 0; + if (!modeSelected(ENERGY_IN) || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsEnergyIn(aSide)))) + return 0; final IMultiBlockController controller = getTarget(true); return controller != null ? controller.injectEnergyUnits(this, aSide, aVoltage, aAmperage) : 0; } - @Override public long getAverageElectricInput() { if (!modeSelected(ENERGY_IN)) return 0; final IMultiBlockController controller = getTarget(true); - return controller != null? controller.getAverageElectricInput(this) : 0; + return controller != null ? controller.getAverageElectricInput(this) : 0; } @Override @@ -509,13 +503,16 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM @Override public boolean inputEnergyFrom(byte aSide) { - if (!modeSelected(ENERGY_IN) || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsEnergyIn(aSide)))) return false; + if (!modeSelected(ENERGY_IN) || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsEnergyIn(aSide)))) + return false; final IMultiBlockController controller = getTarget(true); return controller != null && controller.inputEnergyFrom(this, aSide); } + @Override public boolean outputsEnergyTo(byte aSide) { - if(!modeSelected(ENERGY_OUT) || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsEnergyOut(aSide)))) return false; + if (!modeSelected(ENERGY_OUT) || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsEnergyOut(aSide)))) + return false; final IMultiBlockController controller = getTarget(true); return controller != null && controller.outputsEnergyTo(this, aSide); } @@ -525,7 +522,6 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM /** * Inventory - Depending on the part type - proxy to the multiblock controller, if we have one */ - @Override public boolean hasInventoryBeenModified() { final IMultiBlockController controller = getTarget(true); @@ -552,23 +548,28 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM return (controller != null && controller.addStackToSlot(this, aIndex, aStack, aAmount)); } - @Override public int[] getAccessibleSlotsFromSide(int aSide) { - if (!modeSelected(ITEM_IN, ITEM_OUT) || (mFacing != SIDE_UNKNOWN && mFacing != aSide)) return GT_Values.emptyIntArray; + if (!modeSelected(ITEM_IN, ITEM_OUT) || (mFacing != SIDE_UNKNOWN && mFacing != aSide)) + return GT_Values.emptyIntArray; final IMultiBlockController controller = getTarget(true); return controller != null ? controller.getAccessibleSlotsFromSide(this, (byte) aSide) : GT_Values.emptyIntArray; } @Override public boolean canInsertItem(int aSlot, ItemStack aStack, int aSide) { - if (!modeSelected(ITEM_IN) || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsItemsIn((byte)aSide, aSlot)))) return false; + if (!modeSelected(ITEM_IN) + || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsItemsIn((byte) aSide, aSlot)))) + return false; final IMultiBlockController controller = getTarget(true); return (controller != null && controller.canInsertItem(this, aSlot, aStack, (byte) aSide)); } + @Override public boolean canExtractItem(int aSlot, ItemStack aStack, int aSide) { - if (!modeSelected(ITEM_OUT) || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsItemsOut((byte)aSide, aSlot)))) return false; + if (!modeSelected(ITEM_OUT) + || (mFacing != SIDE_UNKNOWN && (mFacing != aSide || !coverLetsItemsOut((byte) aSide, aSlot)))) + return false; final IMultiBlockController controller = getTarget(true); return (controller != null && controller.canExtractItem(this, aSlot, aStack, (byte) aSide)); } @@ -603,14 +604,13 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM @Override public void setInventorySlotContents(int aSlot, ItemStack aStack) { final IMultiBlockController controller = getTarget(true); - if(controller != null) controller.setInventorySlotContents(this, aSlot, aStack); + if (controller != null) controller.setInventorySlotContents(this, aSlot, aStack); } @Override public String getInventoryName() { final IMultiBlockController controller = getTarget(true); - if(controller != null) - return controller.getInventoryName(this); + if (controller != null) return controller.getInventoryName(this); return firstNonNull(getCustomName(), getTileEntityName()); } @@ -620,7 +620,6 @@ public class MultiBlockPart extends BaseNontickableMultiTileEntity implements IM return controller != null ? controller.getInventoryStackLimit(this) : 0; } - @Override public boolean isItemValidForSlot(int aSlot, ItemStack aStack) { final IMultiBlockController controller = getTarget(true); diff --git a/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlock_Stackable.java b/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlock_Stackable.java index f19d3156fa..92931bc4db 100644 --- a/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlock_Stackable.java +++ b/src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlock_Stackable.java @@ -1,7 +1,6 @@ package gregtech.api.multitileentity.multiblock.base; import com.gtnewhorizon.structurelib.util.Vec3Impl; - import net.minecraft.item.ItemStack; public abstract class MultiBlock_Stackable<T extends MultiBlock_Stackable<T>> extends MultiBlockController<T> { @@ -25,7 +24,7 @@ public abstract class MultiBlock_Stackable<T extends MultiBlock_Stackable<T>> ex buildPiece(STACKABLE_MIDDLE, trigger, hintsOnly, buildState.getCurrentOffset()); buildState.addOffset(getPerStackOffset()); } - if(hasTop()) { + if (hasTop()) { buildState.addOffset(getAfterLastStackOffset()); buildPiece(STACKABLE_TOP, trigger, hintsOnly, buildState.stopBuilding()); } else { @@ -86,8 +85,7 @@ public abstract class MultiBlock_Stackable<T extends MultiBlock_Stackable<T>> ex int stackCount = 0; buildState.startBuilding(getStartingStructureOffset()); - if (!checkPiece(STACKABLE_BOTTOM, buildState.getCurrentOffset())) - return buildState.failBuilding(); + if (!checkPiece(STACKABLE_BOTTOM, buildState.getCurrentOffset())) return buildState.failBuilding(); buildState.addOffset(getStartingStackOffset()); @@ -99,8 +97,7 @@ public abstract class MultiBlock_Stackable<T extends MultiBlock_Stackable<T>> ex break; } } - if (stackCount < getMinStacks()) - return buildState.failBuilding(); + if (stackCount < getMinStacks()) return buildState.failBuilding(); buildState.addOffset(getAfterLastStackOffset()); return checkPiece(STACKABLE_TOP, buildState.stopBuilding()); @@ -110,5 +107,4 @@ public abstract class MultiBlock_Stackable<T extends MultiBlock_Stackable<T>> ex public boolean checkRecipe(ItemStack aStack) { return false; } - } |