aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity/multiblock/base
diff options
context:
space:
mode:
authorRaven Szewczyk <git@eigenraven.me>2022-08-27 10:19:57 +0100
committerGitHub <noreply@github.com>2022-08-27 11:19:57 +0200
commit6f31720697bcc351421a4d86ba3bf749375dd12c (patch)
tree3adf8f318f22c892d74cd7c9d30b6dd3f11f11bd /src/main/java/gregtech/api/multitileentity/multiblock/base
parentc3eac50decd33ee2be8703dfb2ecf9cdc31c2b67 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockController.java217
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlockPart.java277
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/MultiBlock_Stackable.java10
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;
}
-
}