diff options
Diffstat (limited to 'src/main/java/gregtech/api/interfaces')
21 files changed, 225 insertions, 294 deletions
diff --git a/src/main/java/gregtech/api/interfaces/IItemBehaviour.java b/src/main/java/gregtech/api/interfaces/IItemBehaviour.java index 1f67b9c1a8..67bb505c6b 100644 --- a/src/main/java/gregtech/api/interfaces/IItemBehaviour.java +++ b/src/main/java/gregtech/api/interfaces/IItemBehaviour.java @@ -10,6 +10,7 @@ import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.enums.SubTag; import gregtech.api.items.GT_MetaBase_Item; @@ -18,11 +19,11 @@ public interface IItemBehaviour<E extends Item> { boolean onLeftClickEntity(E aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity); - boolean onItemUse(E aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, - float hitX, float hitY, float hitZ); + boolean onItemUse(E aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, + int ordinalSide, float hitX, float hitY, float hitZ); boolean onItemUseFirst(E aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, - int aSide, float hitX, float hitY, float hitZ); + ForgeDirection side, float hitX, float hitY, float hitZ); ItemStack onItemRightClick(E aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer); diff --git a/src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java b/src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java index 91219368b7..0eea6ca3a4 100644 --- a/src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java +++ b/src/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java @@ -2,6 +2,7 @@ package gregtech.api.interfaces; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.util.GT_CoverBehavior; @@ -14,47 +15,47 @@ public interface IRedstoneCircuitBlock { /** * The Output Direction the Circuit Block is Facing */ - byte getOutputFacing(); + ForgeDirection getOutputFacing(); /** * sets Output Redstone State at Side */ - boolean setRedstone(byte aStrength, byte aSide); + boolean setRedstone(byte aStrength, ForgeDirection side); /** * returns Output Redstone State at Side Note that setRedstone checks if there is a Difference between the old and * the new Setting before consuming any Energy */ - byte getOutputRedstone(byte aSide); + byte getOutputRedstone(ForgeDirection side); /** * returns Input Redstone Signal at Side */ - byte getInputRedstone(byte aSide); + byte getInputRedstone(ForgeDirection side); /** * If this Side is Covered up and therefor not doing any Redstone */ - GT_CoverBehavior getCover(byte aSide); + GT_CoverBehavior getCover(ForgeDirection side); - int getCoverID(byte aSide); + int getCoverID(ForgeDirection side); - int getCoverVariable(byte aSide); + int getCoverVariable(ForgeDirection side); /** * returns whatever Block-ID is adjacent to the Redstone Circuit Block */ - Block getBlockAtSide(byte aSide); + Block getBlockAtSide(ForgeDirection side); /** * returns whatever Meta-Value is adjacent to the Redstone Circuit Block */ - byte getMetaIDAtSide(byte aSide); + byte getMetaIDAtSide(ForgeDirection side); /** * returns whatever TileEntity is adjacent to the Redstone Circuit Block */ - TileEntity getTileEntityAtSide(byte aSide); + TileEntity getTileEntityAtSide(ForgeDirection side); /** * returns whatever TileEntity is used by the Redstone Circuit Block diff --git a/src/main/java/gregtech/api/interfaces/covers/IControlsWorkCover.java b/src/main/java/gregtech/api/interfaces/covers/IControlsWorkCover.java index cef20ac3b7..d4cd1e9ec2 100644 --- a/src/main/java/gregtech/api/interfaces/covers/IControlsWorkCover.java +++ b/src/main/java/gregtech/api/interfaces/covers/IControlsWorkCover.java @@ -1,6 +1,6 @@ package gregtech.api.interfaces.covers; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.IMachineProgress; @@ -16,10 +16,11 @@ public interface IControlsWorkCover { * * @return true if the cover is the first (side) one **/ - static boolean makeSureOnlyOne(byte aMySide, ICoverable aTileEntity) { - for (byte tSide : ALL_VALID_SIDES) { - if (aTileEntity.getCoverBehaviorAtSideNew(tSide) instanceof IControlsWorkCover && tSide < aMySide) { - aTileEntity.dropCover(tSide, tSide, true); + static boolean makeSureOnlyOne(ForgeDirection aMySide, ICoverable aTileEntity) { + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if (aTileEntity.getCoverBehaviorAtSideNew(side) instanceof IControlsWorkCover + && side.ordinal() < aMySide.ordinal()) { + aTileEntity.dropCover(side, side, true); aTileEntity.markDirty(); return false; } diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java b/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java index 76d8d082ef..0ca519d40b 100644 --- a/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IConnectable.java @@ -1,5 +1,7 @@ package gregtech.api.interfaces.metatileentity; +import net.minecraftforge.common.util.ForgeDirection; + /** * For pipes, wires, and other MetaTiles which need to be decided whether they should connect to the block at each side. */ @@ -21,12 +23,12 @@ public interface IConnectable { * Try to connect to the Block at the specified side returns the connection state. Non-positive values for failed, * others for succeeded. */ - int connect(byte aSide); + int connect(ForgeDirection side); /** * Try to disconnect to the Block at the specified side */ - void disconnect(byte aSide); + void disconnect(ForgeDirection side); - boolean isConnectedAtSide(int aSide); + boolean isConnectedAtSide(ForgeDirection side); } diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java index a24e05f1a2..c9377d10be 100644 --- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java @@ -16,6 +16,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.IFluidHandler; import net.minecraftforge.fluids.IFluidTank; @@ -125,28 +126,30 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand * If a Cover of that Type can be placed on this Side. Also Called when the Facing of the Block Changes and a Cover * is on said Side. */ - boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack); + boolean allowCoverOnSide(ForgeDirection side, GT_ItemStack aStack); /** * When a Player rightclicks the Facing with a Screwdriver. */ - void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ); + void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ); /** - * When a Player rightclicks the Facing with a Wrench. + * When a Player right-clicks the Facing with a Wrench. */ - boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ); + boolean onWrenchRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer entityPlayer, float aX, + float aY, float aZ); /** - * When a Player rightclicks the Facing with a wire cutter. + * When a Player right-clicks the Facing with a wire cutter. */ - boolean onWireCutterRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ); + boolean onWireCutterRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer entityPlayer, + float aX, float aY, float aZ); /** - * When a Player rightclicks the Facing with a soldering iron. + * When a Player right-clicks the Facing with a soldering iron. */ - boolean onSolderingToolRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, - float aZ); + boolean onSolderingToolRightClick(ForgeDirection side, ForgeDirection wrenchingSide, EntityPlayer entityPlayer, + float aX, float aY, float aZ); /** * Called right before this Machine explodes @@ -181,10 +184,10 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand void onRemoval(); /** - * @param aFacing + * @param facing * @return if aFacing would be a valid Facing for this Device. Used for wrenching. */ - boolean isFacingValid(byte aFacing); + boolean isFacingValid(ForgeDirection facing); /** * @return the Server Side Container @@ -214,12 +217,12 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand /** * From new ISidedInventory */ - boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack); + boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack); /** * From new ISidedInventory */ - boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack); + boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, ForgeDirection side, ItemStack aStack); /** * @return if aIndex is a valid Slot. false for things like HoloSlots. Is used for determining if an Item is dropped @@ -243,12 +246,12 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand /** * If this Side can connect to inputting pipes */ - boolean isLiquidInput(byte aSide); + boolean isLiquidInput(ForgeDirection side); /** * If this Side can connect to outputting pipes */ - boolean isLiquidOutput(byte aSide); + boolean isLiquidOutput(ForgeDirection side); /** * Just an Accessor for the Name variable. @@ -261,12 +264,12 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand boolean isAccessAllowed(EntityPlayer aPlayer); /** - * a Player rightclicks the Machine Sneaky rightclicks are not getting passed to this! + * a Player right-clicks the Machine Sneaky right clicks are not getting passed to this! * * @return */ - boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, - float aZ); + boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, ForgeDirection side, float aX, + float aY, float aZ); /** * a Player leftclicks the Machine Sneaky leftclicks are getting passed to this unlike with the rightclicks. @@ -364,22 +367,17 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand /** * Icon of the Texture. If this returns null then it falls back to getTextureIndex. * - * @param aSide is the Side of the Block - * @param aFacing is the direction the Block is facing (or a Bitmask of all Connections in case of Pipes) - * @param aColorIndex The Minecraft Color the Block is having - * @param aActive if the Machine is currently active (use this instead of calling - * mBaseMetaTileEntity.mActive!!!). Note: In case of Pipes this means if this Side is connected - * to something or not. - * @param aRedstone if the Machine is currently outputting a RedstoneSignal (use this instead of calling - * mBaseMetaTileEntity.mRedstone!!!) + * @param side is the Side of the Block + * @param facing is the direction the Block is facing + * @param colorIndex The Minecraft Color the Block is having + * @param active if the Machine is currently active (use this instead of calling + * {@code mBaseMetaTileEntity.mActive)}. Note: In case of Pipes this means if this Side is + * connected to something or not. + * @param redstoneLevel if the Machine is currently outputting a RedstoneSignal (use this instead of calling + * {@code mBaseMetaTileEntity.mRedstone} !!!) */ - ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone); - - /** - * The Textures used for the Item rendering. Return null if you want the regular 3D Block Rendering. - */ - // public ITexture[] getItemTexture(ItemStack aStack); + ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection side, ForgeDirection facing, + int colorIndex, boolean active, boolean redstoneLevel); /** * Register Icons here. This gets called when the Icons get initialized by the Base Block Best is you put your Icons @@ -405,9 +403,9 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand /** * Gets the Output for the comparator on the given Side */ - byte getComparatorValue(byte aSide); + byte getComparatorValue(ForgeDirection side); - float getExplosionResistance(byte aSide); + float getExplosionResistance(ForgeDirection side); String[] getInfoData(); @@ -415,7 +413,7 @@ public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHand ItemStack[] getRealInventory(); - boolean connectsToItemPipe(byte aSide); + boolean connectsToItemPipe(ForgeDirection side); void onColorChangeServer(byte aColor); diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java index 3f7bc73383..a2d672e765 100644 --- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java @@ -4,14 +4,16 @@ import java.util.ArrayList; import java.util.HashSet; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; -public interface IMetaTileEntityCable extends IMetaTileEntity { +public interface IMetaTileEntityCable extends IMetaTileEntityPipe { @Deprecated - long transferElectricity(byte aSide, long aVoltage, long aAmperage, + long transferElectricity(ForgeDirection side, long aVoltage, long aAmperage, ArrayList<TileEntity> aAlreadyPassedTileEntityList); - default long transferElectricity(byte aSide, long aVoltage, long aAmperage, HashSet<TileEntity> aAlreadyPassedSet) { - return transferElectricity(aSide, aVoltage, aAmperage, new ArrayList<>(aAlreadyPassedSet)); + default long transferElectricity(ForgeDirection side, long aVoltage, long aAmperage, + HashSet<TileEntity> aAlreadyPassedSet) { + return transferElectricity(side, aVoltage, aAmperage, new ArrayList<>(aAlreadyPassedSet)); } } diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java index 76d3f56e74..0c2c5ebf28 100644 --- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java @@ -1,14 +1,13 @@ package gregtech.api.interfaces.metatileentity; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; - import java.util.Map; +import net.minecraftforge.common.util.ForgeDirection; + import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.BaseMetaPipeEntity; -import gregtech.api.util.GT_Utility; -public interface IMetaTileEntityItemPipe extends IMetaTileEntity { +public interface IMetaTileEntityItemPipe extends IMetaTileEntityPipe { /** * @return if this Pipe can still be used. @@ -32,10 +31,10 @@ public interface IMetaTileEntityItemPipe extends IMetaTileEntity { * Executes the Sending Code for inserting Stacks into the TileEntities. * * @param aSender the BaseMetaTileEntity sending the Stack. - * @param aSide the Side of the PIPE facing the TileEntity. + * @param side the Side of the PIPE facing the TileEntity. * @return if this Side was allowed to Output into the Block. */ - boolean insertItemStackIntoTileEntity(Object aSender, byte aSide); + boolean insertItemStackIntoTileEntity(Object aSender, ForgeDirection side); /** * Can be used to make flow control Pipes, like Redpowers Restriction Tubes. Every normal Pipe returns a Value of @@ -59,11 +58,10 @@ public interface IMetaTileEntityItemPipe extends IMetaTileEntity { if (aMap.get(aMetaTileEntity) == null || aMap.get(aMetaTileEntity) > aStep) { final IGregTechTileEntity aBaseMetaTileEntity = aMetaTileEntity.getBaseMetaTileEntity(); aMap.put(aMetaTileEntity, aStep); - byte oppositeSide; - for (byte side : ALL_VALID_SIDES) { + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { if (aMetaTileEntity instanceof IConnectable && !((IConnectable) aMetaTileEntity).isConnectedAtSide(side)) continue; - oppositeSide = GT_Utility.getOppositeSide(side); + final ForgeDirection oppositeSide = side.getOpposite(); if (aSuckItems) { if (aBaseMetaTileEntity.getCoverInfoAtSide(side) .letsItemsIn(-2)) { diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityPipe.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityPipe.java new file mode 100644 index 0000000000..0ac29b2e45 --- /dev/null +++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityPipe.java @@ -0,0 +1,24 @@ +package gregtech.api.interfaces.metatileentity; + +import net.minecraftforge.common.util.ForgeDirection; + +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; + +public interface IMetaTileEntityPipe extends IMetaTileEntity { + + /** + * Icon of the Texture. If this returns null then it falls back to getTextureIndex. + * + * @param side is the Side of the Block + * @param facingBitMask is the Bitmask of all Connections + * @param colorIndex The Minecraft Color the Block is having + * @param active if the Machine is currently active (use this instead of calling + * mBaseMetaTileEntity.mActive!!!). Note: In case of Pipes this means if this Side is connected + * to something or not. + * @param redstoneLevel if the Machine is currently outputting a RedstoneSignal (use this instead of calling + * mBaseMetaTileEntity.mRedstone!!!) + */ + ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection side, int facingBitMask, + int colorIndex, boolean active, boolean redstoneLevel); +} diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java b/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java index 4e64742db0..37d62894bb 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java @@ -1,5 +1,7 @@ package gregtech.api.interfaces.tileentity; +import net.minecraftforge.common.util.ForgeDirection; + /** * Interface for internal Code, which is mainly used for independent Energy conversion. */ @@ -57,7 +59,7 @@ public interface IBasicEnergyContainer extends IEnergyConnected, IHasWorldObject /** * Drain Energy Call for Electricity. */ - boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage); + boolean drainEnergyUnits(ForgeDirection side, long aVoltage, long aAmperage); /** * returns the amount of Electricity, accepted by this Block the last 5 ticks as Average. diff --git a/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java b/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java index d3186258ef..112a7035d7 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/ICoverable.java @@ -2,6 +2,7 @@ package gregtech.api.interfaces.tileentity; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.util.GT_CoverBehavior; import gregtech.api.util.GT_CoverBehaviorBase; @@ -10,80 +11,81 @@ import gregtech.common.covers.CoverInfo; public interface ICoverable extends IRedstoneTileEntity, IHasInventory, IBasicEnergyContainer { - boolean canPlaceCoverIDAtSide(byte aSide, int aID); + boolean canPlaceCoverIDAtSide(ForgeDirection side, int aID); - boolean canPlaceCoverItemAtSide(byte aSide, ItemStack aCover); + boolean canPlaceCoverItemAtSide(ForgeDirection side, ItemStack aCover); - boolean dropCover(byte aSide, byte aDroppedSide, boolean aForced); + boolean dropCover(ForgeDirection side, ForgeDirection droppedSide, boolean aForced); @Deprecated - void setCoverDataAtSide(byte aSide, int aData); + void setCoverDataAtSide(ForgeDirection side, int aData); - default void setCoverDataAtSide(byte aSide, ISerializableObject aData) { + default void setCoverDataAtSide(ForgeDirection side, ISerializableObject aData) { if (aData instanceof ISerializableObject.LegacyCoverData) - setCoverDataAtSide(aSide, ((ISerializableObject.LegacyCoverData) aData).get()); + setCoverDataAtSide(side, ((ISerializableObject.LegacyCoverData) aData).get()); } - void setCoverIdAndDataAtSide(byte aSide, int aId, ISerializableObject aData); + void setCoverIdAndDataAtSide(ForgeDirection side, int aId, ISerializableObject aData); - void setCoverIDAtSide(byte aSide, int aID); + void setCoverIDAtSide(ForgeDirection side, int aID); - boolean setCoverIDAtSideNoUpdate(byte aSide, int aID); + boolean setCoverIDAtSideNoUpdate(ForgeDirection side, int aID); - void setCoverItemAtSide(byte aSide, ItemStack aCover); + void setCoverItemAtSide(ForgeDirection side, ItemStack aCover); @Deprecated - int getCoverDataAtSide(byte aSide); + int getCoverDataAtSide(ForgeDirection side); - default CoverInfo getCoverInfoAtSide(byte aSide) { + default CoverInfo getCoverInfoAtSide(ForgeDirection side) { return null; } - default ISerializableObject getComplexCoverDataAtSide(byte aSide) { - return new ISerializableObject.LegacyCoverData(getCoverDataAtSide(aSide)); + default ISerializableObject getComplexCoverDataAtSide(ForgeDirection side) { + return new ISerializableObject.LegacyCoverData(getCoverDataAtSide(side)); } - int getCoverIDAtSide(byte aSide); + int getCoverIDAtSide(ForgeDirection side); - ItemStack getCoverItemAtSide(byte aSide); + ItemStack getCoverItemAtSide(ForgeDirection side); @Deprecated - GT_CoverBehavior getCoverBehaviorAtSide(byte aSide); + GT_CoverBehavior getCoverBehaviorAtSide(ForgeDirection side); - default GT_CoverBehaviorBase<?> getCoverBehaviorAtSideNew(byte aSide) { - return getCoverBehaviorAtSide(aSide); + default GT_CoverBehaviorBase<?> getCoverBehaviorAtSideNew(ForgeDirection side) { + return getCoverBehaviorAtSide(side); } /** * For use by the regular MetaTileEntities. Returns the Cover Manipulated input Redstone. Don't use this if you are * a Cover Behavior. Only for MetaTileEntities. */ - byte getInternalInputRedstoneSignal(byte aSide); + byte getInternalInputRedstoneSignal(ForgeDirection side); /** * For use by the regular MetaTileEntities. This makes it not conflict with Cover based Redstone Signals. Don't use * this if you are a Cover Behavior. Only for MetaTileEntities. */ - void setInternalOutputRedstoneSignal(byte aSide, byte aStrength); + void setInternalOutputRedstoneSignal(ForgeDirection side, byte aStrength); /** * Causes a general Cover Texture update. Sends 6 Integers to Client + causes @issueTextureUpdate() */ - void issueCoverUpdate(byte aSide); + void issueCoverUpdate(ForgeDirection side); /** * Receiving a packet with cover data. */ - void receiveCoverData(byte coverSide, int coverID, int coverData); + void receiveCoverData(ForgeDirection coverSide, int coverID, int coverData); /** * Receiving a packet with cover data. - * - * @param aPlayer the player who made the change + * + * @param coverSide + * @param aPlayer the player who made the change */ - default void receiveCoverData(byte aCoverSide, int aCoverID, ISerializableObject aCoverData, + default void receiveCoverData(ForgeDirection coverSide, int aCoverID, ISerializableObject aCoverData, EntityPlayerMP aPlayer) { if (aCoverData instanceof ISerializableObject.LegacyCoverData) - receiveCoverData(aCoverSide, aCoverID, ((ISerializableObject.LegacyCoverData) aCoverData).get()); + receiveCoverData(coverSide, aCoverID, ((ISerializableObject.LegacyCoverData) aCoverData).get()); } } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java index 55de2db088..f866092d38 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java @@ -24,28 +24,28 @@ public interface IEnergyConnected extends IColoredTileEntity { * <p/> * Note: you have to check for @inputEnergyFrom because the Network won't check for that by itself. * - * @param aSide 0 - 5 = Vanilla Directions of YOUR Block the Energy gets inserted to. 6 = No specific Side (don't do - * Side checks for this Side) + * @param side 0 - 5 = Vanilla Directions of YOUR Block the Energy gets inserted to. 6 = No specific Side (don't do + * Side checks for this Side) * @return amount of used Amperes. 0 if not accepted anything. */ - long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage); + long injectEnergyUnits(ForgeDirection side, long aVoltage, long aAmperage); /** * Sided Energy Input */ - boolean inputEnergyFrom(byte aSide); + boolean inputEnergyFrom(ForgeDirection side); - default boolean inputEnergyFrom(byte aSide, boolean waitForActive) { - return inputEnergyFrom(aSide); + default boolean inputEnergyFrom(ForgeDirection side, boolean waitForActive) { + return inputEnergyFrom(side); } /** * Sided Energy Output */ - boolean outputsEnergyTo(byte aSide); + boolean outputsEnergyTo(ForgeDirection side); - default boolean outputsEnergyTo(byte aSide, boolean waitForActive) { - return outputsEnergyTo(aSide); + default boolean outputsEnergyTo(ForgeDirection side, boolean waitForActive) { + return outputsEnergyTo(side); } /** @@ -64,43 +64,38 @@ public interface IEnergyConnected extends IColoredTileEntity { return 0; } - for (byte i = 0, j = 0; i < 6 && aAmperage > rUsedAmperes; i++) { - if (!aEmitter.outputsEnergyTo(i)) { + for (final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) { + if (rUsedAmperes > aAmperage) break; + if (!aEmitter.outputsEnergyTo(side)) { continue; } - j = GT_Utility.getOppositeSide(i); - final TileEntity tTileEntity = emitterTile.getTileEntityAtSide(i); + final ForgeDirection oppositeSide = side.getOpposite(); + final TileEntity tTileEntity = emitterTile.getTileEntityAtSide(side); if (tTileEntity instanceof PowerLogicHost host) { - PowerLogic logic = host.getPowerLogic(ForgeDirection.getOrientation(j)); + final PowerLogic logic = host.getPowerLogic(oppositeSide); if (logic == null || logic.isEnergyReceiver()) { continue; } rUsedAmperes += logic.injectEnergy(aVoltage, aAmperage - rUsedAmperes); - } else if (tTileEntity instanceof IEnergyConnected) { + } else if (tTileEntity instanceof IEnergyConnected energyConnected) { if (aEmitter.getColorization() >= 0) { - final byte tColor = ((IEnergyConnected) tTileEntity).getColorization(); + final byte tColor = energyConnected.getColorization(); if (tColor >= 0 && tColor != aEmitter.getColorization()) continue; } - rUsedAmperes += ((IEnergyConnected) tTileEntity) - .injectEnergyUnits(j, aVoltage, aAmperage - rUsedAmperes); + rUsedAmperes += energyConnected.injectEnergyUnits(oppositeSide, aVoltage, aAmperage - rUsedAmperes); - } else if (tTileEntity instanceof IEnergySink) { - if (((IEnergySink) tTileEntity) - .acceptsEnergyFrom((TileEntity) aEmitter, ForgeDirection.getOrientation(j))) { - while (aAmperage > rUsedAmperes && ((IEnergySink) tTileEntity).getDemandedEnergy() > 0 - && ((IEnergySink) tTileEntity) - .injectEnergy(ForgeDirection.getOrientation(j), aVoltage, aVoltage) < aVoltage) - rUsedAmperes++; + } else if (tTileEntity instanceof IEnergySink sink) { + if (sink.acceptsEnergyFrom((TileEntity) aEmitter, oppositeSide)) { + while (aAmperage > rUsedAmperes && sink.getDemandedEnergy() > 0 + && sink.injectEnergy(oppositeSide, aVoltage, aVoltage) < aVoltage) rUsedAmperes++; } - } else if (GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver) { - final ForgeDirection tDirection = ForgeDirection.getOrientation(i) - .getOpposite(); + } else if (GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver receiver) { final int rfOut = GT_Utility.safeInt(aVoltage * GregTech_API.mEUtoRF / 100); - if (((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, true) == rfOut) { - ((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, false); + if (receiver.receiveEnergy(oppositeSide, rfOut, true) == rfOut) { + receiver.receiveEnergy(oppositeSide, rfOut, false); rUsedAmperes++; } } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java deleted file mode 100644 index aa1b9a11c6..0000000000 --- a/src/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java +++ /dev/null @@ -1,112 +0,0 @@ -package gregtech.api.interfaces.tileentity; - -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -import cofh.api.energy.IEnergyReceiver; -import gregtech.api.enums.SubTag; -import gregtech.api.util.GT_Utility; -import ic2.api.energy.tile.IEnergySink; - -/** - * THIS IS GOING TO BE USED IN 1.8 - * <p/> - * Interface for getting Connected to the GregTech Energy Network. - * <p/> - * This is all you need to connect to the GT Network. IColoredTileEntity is needed for not connecting differently - * coloured Blocks to each other. IHasWorldObjectAndCoords is needed for the InWorld related Stuff. @BaseTileEntity does - * implement most of that Interface. - */ -public interface IExperimentalEnergyTileEntity extends IColoredTileEntity, IHasWorldObjectAndCoords { - - /** - * Inject Energy Call for Electricity. Gets called by EnergyEmitters to inject Energy into your Block - * <p/> - * Note: you have to check for @inputEnergyFrom because the Network won't check for that by itself. - * - * @param aSide 0 - 5 = Vanilla Directions of YOUR Block the Energy gets inserted to. 6 = No specific Side (don't do - * Side checks for this Side) - * @return amount of used Amperes. 0 if not accepted anything. - */ - long injectEnergy(SubTag aEnergyType, byte aSide, long aPrimary, long aSecondary); - - /** - * Sided Energy Input - */ - boolean inputEnergyFrom(SubTag aEnergyType, byte aSide); - - /** - * Sided Energy Output - */ - boolean outputsEnergyTo(SubTag aEnergyType, byte aSide); - - /** - * Utility for the Network - */ - class Util { - - public static int RF_PER_EU = 4; - private static boolean RF_ENERGY = false, IC_ENERGY = false, CHECK_ALL = true; - - private static void checkAvailabilities() { - if (CHECK_ALL) { - try { - Class<IEnergyReceiver> tClass = cofh.api.energy.IEnergyReceiver.class; - tClass.getCanonicalName(); - RF_ENERGY = true; - } catch (Throwable e) { - /**/ - } - try { - Class<IEnergySink> tClass = ic2.api.energy.tile.IEnergySink.class; - tClass.getCanonicalName(); - IC_ENERGY = true; - } catch (Throwable e) { - /**/ - } - CHECK_ALL = false; - } - } - - /** - * Emits Energy to the adjacent Blocks. Also compatible with adjacent IC2 TileEntities when electric and RF - * TileEntities when RedstoneFlux. - * - * @return the amount of used secondary value. - */ - public static final long emitEnergyToNetwork(SubTag aEnergyType, long aPrimary, long aSecondary, - IExperimentalEnergyTileEntity aEmitter) { - long rUsedSecondary = 0; - checkAvailabilities(); - for (byte i = 0, j = 0; i < 6 && aSecondary > rUsedSecondary; i++) - if (aEmitter.outputsEnergyTo(aEnergyType, i)) { - j = GT_Utility.getOppositeSide(i); - TileEntity tTileEntity = aEmitter.getTileEntityAtSide(i); - if (tTileEntity instanceof IExperimentalEnergyTileEntity) { - if (aEmitter.getColorization() >= 0) { - byte tColor = ((IExperimentalEnergyTileEntity) tTileEntity).getColorization(); - if (tColor >= 0 && tColor != aEmitter.getColorization()) continue; - } - rUsedSecondary += ((IExperimentalEnergyTileEntity) tTileEntity) - .injectEnergy(aEnergyType, j, aPrimary, aSecondary - rUsedSecondary); - } else if (IC_ENERGY && aEnergyType == SubTag.ENERGY_ELECTRICITY - && tTileEntity instanceof IEnergySink) { - if (((IEnergySink) tTileEntity) - .acceptsEnergyFrom((TileEntity) aEmitter, ForgeDirection.getOrientation(j))) { - while (aSecondary > rUsedSecondary - && ((IEnergySink) tTileEntity).getDemandedEnergy() > 0 - && ((IEnergySink) tTileEntity) - .injectEnergy(ForgeDirection.getOrientation(j), aPrimary, aPrimary) < aPrimary) - rUsedSecondary++; - } - } else if (RF_ENERGY && aEnergyType == SubTag.ENERGY_REDSTONE_FLUX - && tTileEntity instanceof IEnergyReceiver - && ((IEnergyReceiver) tTileEntity).canConnectEnergy(ForgeDirection.getOrientation(j))) { - rUsedSecondary += ((IEnergyReceiver) tTileEntity) - .receiveEnergy(ForgeDirection.getOrientation(j), (int) aSecondary, false); - } - } - return rUsedSecondary; - } - } -} diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java b/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java index a301c21a76..2f7f26e723 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java @@ -1,5 +1,7 @@ package gregtech.api.interfaces.tileentity; +import net.minecraftforge.common.util.ForgeDirection; + /** * This File has just internal Information about the Fibre Redstone State of a TileEntity */ @@ -8,25 +10,25 @@ public interface IFibreConnected extends IColoredTileEntity, IHasWorldObjectAndC /** * If this Blocks accepts Fibre from this Side */ - void inputFibreFrom(byte aSide); + void inputFibreFrom(ForgeDirection side); /** * If this Blocks emits Fibre to this Side */ - void outputsFibreTo(byte aSide); + void outputsFibreTo(ForgeDirection side); /** * Sets the Signal this Blocks outputs to this Fibre Color */ - void setFibreOutput(byte aSide, byte aColor, byte aRedstoneStrength); + void setFibreOutput(ForgeDirection side, byte aColor, byte aRedstoneStrength); /** * Gets the Signal this Blocks outputs to this Fibre Color */ - byte getFibreOutput(byte aSide, byte aColor); + byte getFibreOutput(ForgeDirection side, byte aColor); /** * Gets the Signal this Blocks receives from this Fibre Color */ - byte getFibreInput(byte aSide, byte aColor); + byte getFibreInput(ForgeDirection side, byte aColor); } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java index 31e9b51719..eefcbcb5ac 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java @@ -1,18 +1,21 @@ package gregtech.api.interfaces.tileentity; +import net.minecraftforge.common.util.ForgeDirection; + public interface IGearEnergyTileEntity { /** * If Rotation Energy can be accepted on this Side. This means that the Gear/Axle will connect to this Side, and can * cause the Gear/Axle to stop if the Energy isn't accepted. */ - boolean acceptsRotationalEnergy(byte aSide); + boolean acceptsRotationalEnergy(ForgeDirection side); /** * Inject Energy Call for Rotational Energy. Rotation Energy can't be stored, this is just for things like internal * Dynamos, which convert it into Energy, or into Progress. * + * @param side * @param aSpeed Positive = Clockwise, Negative = Counterclockwise */ - boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy); + boolean injectRotationalEnergy(ForgeDirection side, long aSpeed, long aEnergy); } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java index 23e4d662c9..5062f0fce5 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java @@ -10,6 +10,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.IFluidHandler; import cpw.mods.fml.relauncher.Side; @@ -128,9 +129,9 @@ public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTil /** * Called when rightclicking the TileEntity */ - boolean onRightclick(EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ); + boolean onRightclick(EntityPlayer aPlayer, ForgeDirection side, float aX, float aY, float aZ); - float getBlastResistance(byte aSide); + float getBlastResistance(ForgeDirection side); default void onBlockDestroyed() {} diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java b/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java index f02672365e..64d206aff7 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java @@ -8,6 +8,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.IFluidHandler; /** @@ -43,91 +44,91 @@ public interface IHasWorldObjectAndCoords { TileEntity getTileEntityOffset(int aX, int aY, int aZ); - TileEntity getTileEntityAtSide(byte aSide); + TileEntity getTileEntityAtSide(ForgeDirection side); - TileEntity getTileEntityAtSideAndDistance(byte aSide, int aDistance); + TileEntity getTileEntityAtSideAndDistance(ForgeDirection side, int aDistance); IInventory getIInventory(int aX, int aY, int aZ); IInventory getIInventoryOffset(int aX, int aY, int aZ); - IInventory getIInventoryAtSide(byte aSide); + IInventory getIInventoryAtSide(ForgeDirection side); - IInventory getIInventoryAtSideAndDistance(byte aSide, int aDistance); + IInventory getIInventoryAtSideAndDistance(ForgeDirection side, int aDistance); IFluidHandler getITankContainer(int aX, int aY, int aZ); IFluidHandler getITankContainerOffset(int aX, int aY, int aZ); - IFluidHandler getITankContainerAtSide(byte aSide); + IFluidHandler getITankContainerAtSide(ForgeDirection side); - IFluidHandler getITankContainerAtSideAndDistance(byte aSide, int aDistance); + IFluidHandler getITankContainerAtSideAndDistance(ForgeDirection side, int aDistance); IGregTechTileEntity getIGregTechTileEntity(int aX, int aY, int aZ); IGregTechTileEntity getIGregTechTileEntityOffset(int aX, int aY, int aZ); - IGregTechTileEntity getIGregTechTileEntityAtSide(byte aSide); + IGregTechTileEntity getIGregTechTileEntityAtSide(ForgeDirection side); - IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(byte aSide, int aDistance); + IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(ForgeDirection side, int aDistance); Block getBlock(int aX, int aY, int aZ); Block getBlockOffset(int aX, int aY, int aZ); - Block getBlockAtSide(byte aSide); + Block getBlockAtSide(ForgeDirection side); - Block getBlockAtSideAndDistance(byte aSide, int aDistance); + Block getBlockAtSideAndDistance(ForgeDirection side, int aDistance); byte getMetaID(int aX, int aY, int aZ); byte getMetaIDOffset(int aX, int aY, int aZ); - byte getMetaIDAtSide(byte aSide); + byte getMetaIDAtSide(ForgeDirection side); - byte getMetaIDAtSideAndDistance(byte aSide, int aDistance); + byte getMetaIDAtSideAndDistance(ForgeDirection side, int aDistance); byte getLightLevel(int aX, int aY, int aZ); byte getLightLevelOffset(int aX, int aY, int aZ); - byte getLightLevelAtSide(byte aSide); + byte getLightLevelAtSide(ForgeDirection side); - byte getLightLevelAtSideAndDistance(byte aSide, int aDistance); + byte getLightLevelAtSideAndDistance(ForgeDirection side, int aDistance); boolean getOpacity(int aX, int aY, int aZ); boolean getOpacityOffset(int aX, int aY, int aZ); - boolean getOpacityAtSide(byte aSide); + boolean getOpacityAtSide(ForgeDirection side); - boolean getOpacityAtSideAndDistance(byte aSide, int aDistance); + boolean getOpacityAtSideAndDistance(ForgeDirection side, int aDistance); boolean getSky(int aX, int aY, int aZ); boolean getSkyOffset(int aX, int aY, int aZ); - boolean getSkyAtSide(byte aSide); + boolean getSkyAtSide(ForgeDirection side); - boolean getSkyAtSideAndDistance(byte aSide, int aDistance); + boolean getSkyAtSideAndDistance(ForgeDirection side, int aDistance); boolean getAir(int aX, int aY, int aZ); boolean getAirOffset(int aX, int aY, int aZ); - boolean getAirAtSide(byte aSide); + boolean getAirAtSide(ForgeDirection side); - boolean getAirAtSideAndDistance(byte aSide, int aDistance); + boolean getAirAtSideAndDistance(ForgeDirection side, int aDistance); BiomeGenBase getBiome(); BiomeGenBase getBiome(int aX, int aZ); - int getOffsetX(byte aSide, int aMultiplier); + int getOffsetX(ForgeDirection side, int aMultiplier); - short getOffsetY(byte aSide, int aMultiplier); + short getOffsetY(ForgeDirection side, int aMultiplier); - int getOffsetZ(byte aSide, int aMultiplier); + int getOffsetZ(ForgeDirection side, int aMultiplier); /** * Checks if the TileEntity is Invalid or Unloaded. Stupid Minecraft cannot do that btw. @@ -168,7 +169,7 @@ public interface IHasWorldObjectAndCoords { /** * Opens the GUI with this ID of this MetaTileEntity - * + * * @deprecated Use ModularUI */ @Deprecated @@ -178,7 +179,7 @@ public interface IHasWorldObjectAndCoords { /** * Opens the GUI with the ID = 0 of this TileEntity - * + * * @deprecated Use ModularUI */ @Deprecated diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java index 3cc3c6404d..ab476449f0 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java @@ -1,5 +1,7 @@ package gregtech.api.interfaces.tileentity; +import net.minecraftforge.common.util.ForgeDirection; + import gregtech.api.interfaces.ITexture; public interface IPipeRenderedTileEntity extends ICoverable, ITexturedTileEntity { @@ -8,9 +10,9 @@ public interface IPipeRenderedTileEntity extends ICoverable, ITexturedTileEntity byte getConnections(); - ITexture[] getTextureUncovered(byte aSide); + ITexture[] getTextureUncovered(ForgeDirection side); - default ITexture[] getTextureCovered(byte aSide) { - return getTextureUncovered(aSide); + default ITexture[] getTextureCovered(ForgeDirection side) { + return getTextureUncovered(side); } } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java index fba20ee79d..1b280184ce 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java @@ -1,5 +1,7 @@ package gregtech.api.interfaces.tileentity; +import net.minecraftforge.common.util.ForgeDirection; + /** * This File has just internal Information about the Redstone State of a TileEntity */ @@ -7,8 +9,11 @@ public interface IRedstoneEmitter extends IHasWorldObjectAndCoords { /** * gets the Redstone Level the TileEntity should emit to the given Output Side + * + * @param side the {@link ForgeDirection} side + * @return the Redstone Level the TileEntity */ - byte getOutputRedstoneSignal(byte aSide); + byte getOutputRedstoneSignal(ForgeDirection side); /** * sets the Redstone Level the TileEntity should emit to the given Output Side @@ -17,12 +22,12 @@ public interface IRedstoneEmitter extends IHasWorldObjectAndCoords { * internal Output Redstone, so that it doesnt conflict with Cover Redstone. This sets the true Redstone Output * Signal. Only Cover Behaviors should use it, not MetaTileEntities. */ - void setOutputRedstoneSignal(byte aSide, byte aStrength); + void setOutputRedstoneSignal(ForgeDirection side, byte aStrength); /** * gets the Redstone Level the TileEntity should emit to the given Output Side */ - byte getStrongOutputRedstoneSignal(byte aSide); + byte getStrongOutputRedstoneSignal(ForgeDirection side); /** * sets the Redstone Level the TileEntity should emit to the given Output Side @@ -31,17 +36,17 @@ public interface IRedstoneEmitter extends IHasWorldObjectAndCoords { * internal Output Redstone, so that it doesnt conflict with Cover Redstone. This sets the true Redstone Output * Signal. Only Cover Behaviors should use it, not MetaTileEntities. */ - void setStrongOutputRedstoneSignal(byte aSide, byte aStrength); + void setStrongOutputRedstoneSignal(ForgeDirection side, byte aStrength); /** * Gets the Output for the comparator on the given Side */ - byte getComparatorValue(byte aSide); + byte getComparatorValue(ForgeDirection side); /** * Get the redstone output signal strength for a given side */ - default byte getGeneralRS(byte aSide) { + default byte getGeneralRS(ForgeDirection side) { return 0; } } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java index d5fb814c52..a41e9aaf7a 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java @@ -1,5 +1,7 @@ package gregtech.api.interfaces.tileentity; +import net.minecraftforge.common.util.ForgeDirection; + /** * This File has just internal Information about the Redstone State of a TileEntity */ @@ -12,7 +14,7 @@ public interface IRedstoneReceiver extends IHasWorldObjectAndCoords { * Input Redstone This returns the true incoming Redstone Signal. Only Cover Behaviors should check it, not * MetaTileEntities. */ - byte getInputRedstoneSignal(byte aSide); + byte getInputRedstoneSignal(ForgeDirection side); /** * gets the strongest Redstone Level the TileEntity receives @@ -27,5 +29,5 @@ public interface IRedstoneReceiver extends IHasWorldObjectAndCoords { /** * gets if the TileEntity receives Redstone at this Side */ - boolean getRedstone(byte aSide); + boolean getRedstone(ForgeDirection side); } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java index d6024b612e..379111b07e 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java @@ -1,6 +1,7 @@ package gregtech.api.interfaces.tileentity; import net.minecraft.block.Block; +import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.interfaces.ITexture; @@ -9,5 +10,5 @@ public interface ITexturedTileEntity { /** * @return the Textures rendered by the GT Rendering */ - ITexture[] getTexture(Block aBlock, byte aSide); + ITexture[] getTexture(Block aBlock, ForgeDirection side); } diff --git a/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java b/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java index e54a85090e..64cc8675ef 100644 --- a/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java +++ b/src/main/java/gregtech/api/interfaces/tileentity/ITurnable.java @@ -1,6 +1,6 @@ package gregtech.api.interfaces.tileentity; -import static gregtech.api.enums.GT_Values.ALL_VALID_SIDES; +import net.minecraftforge.common.util.ForgeDirection; /** * Implemented by all my Machines. However without any security checks, if the Players are even allowed to rotate it. @@ -12,34 +12,34 @@ public interface ITurnable { * * @return front Block facing */ - byte getFrontFacing(); + ForgeDirection getFrontFacing(); /** * Set the block's facing * - * @param aSide facing to set the block to + * @param side facing to set the block to */ - void setFrontFacing(byte aSide); + void setFrontFacing(ForgeDirection side); /** * Get the block's back facing. * * @return opposite Block facing */ - byte getBackFacing(); + ForgeDirection getBackFacing(); /** * Determine if the wrench can be used to set the block's facing. */ - boolean isValidFacing(byte aSide); + boolean isValidFacing(ForgeDirection side); /** * Get the list of valid facings */ default boolean[] getValidFacings() { final boolean[] validFacings = new boolean[6]; - for (byte facing : ALL_VALID_SIDES) { - validFacings[facing] = isValidFacing(facing); + for (final ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { + validFacings[facing.ordinal()] = isValidFacing(facing); } return validFacings; } |