diff options
author | Martin Robertz <dream-master@gmx.net> | 2022-10-01 12:38:45 +0200 |
---|---|---|
committer | Martin Robertz <dream-master@gmx.net> | 2022-10-01 12:38:45 +0200 |
commit | 83a59b8babdccf6eb29967a52cda15c6bc2fd8c9 (patch) | |
tree | 3c850aecc7916c02ceeebbc6ac000c6b7ad8fbba /src/main/java/gregtech/api/util | |
parent | 1f68b3430593b9bdec6bf3c96dcafe1eb9cf730c (diff) | |
parent | 0268d287a9d165899ff456b674d56ba10d382d81 (diff) | |
download | GT5-Unofficial-83a59b8babdccf6eb29967a52cda15c6bc2fd8c9.tar.gz GT5-Unofficial-83a59b8babdccf6eb29967a52cda15c6bc2fd8c9.tar.bz2 GT5-Unofficial-83a59b8babdccf6eb29967a52cda15c6bc2fd8c9.zip |
Merge branch 'advanced_redstone_covers'
# Conflicts:
# src/main/java/gregtech/api/util/GT_Utility.java
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java | 28 | ||||
-rw-r--r-- | src/main/java/gregtech/api/util/GT_Utility.java | 24 |
2 files changed, 52 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java index efbff79957..1092a24307 100644 --- a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java +++ b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java @@ -131,6 +131,20 @@ public abstract class GT_CoverBehaviorBase<T extends ISerializableObject> { } /** + * Called before receiving data from network. Use {@link ICoverable#isClientSide()} to determine the side. + */ + public final void preDataChanged( + byte aSide, + int aCoverID, + int aNewCoverId, + ISerializableObject aCoverVariable, + ISerializableObject aNewCoverVariable, + ICoverable aTileEntity) { + preDataChangedImpl( + aSide, aCoverID, aNewCoverId, forceCast(aCoverVariable), forceCast(aNewCoverVariable), aTileEntity); + } + + /** * Called upon cover being removed. Called on both server and client. */ public final void onDropped(byte aSide, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { @@ -222,6 +236,15 @@ public abstract class GT_CoverBehaviorBase<T extends ISerializableObject> { } /** + * Called upon Base TE being destroyed (once getDrops is called), + * thus getting called only when destroyed in survival. + */ + public final void onBaseTEDestroyed( + byte aSide, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { + onBaseTEDestroyedImpl(aSide, aCoverID, forceCast(aCoverVariable), aTileEntity); + } + + /** * Gives a small Text for the status of the Cover. */ public final String getDescription( @@ -410,8 +433,13 @@ public abstract class GT_CoverBehaviorBase<T extends ISerializableObject> { protected void onDataChangedImpl(byte aSide, int aCoverID, T aCoverVariable, ICoverable aTileEntity) {} + protected void preDataChangedImpl( + byte aSide, int aCoverID, int aNewCoverId, T aCoverVariable, T aNewCoverVariable, ICoverable aTileEntity) {} + protected void onDroppedImpl(byte aSide, int aCoverID, T aCoverVariable, ICoverable aTileEntity) {} + protected void onBaseTEDestroyedImpl(byte aSide, int aCoverID, T aCoverVariable, ICoverable aTileEntity) {} + protected boolean isRedstoneSensitiveImpl( byte aSide, int aCoverID, T aCoverVariable, ICoverable aTileEntity, long aTimer) { return true; diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 270619363f..c9aa55d291 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -4276,6 +4276,30 @@ public class GT_Utility { for (int i = 0; i < 25; i++) if (itemStack.isItemEqual(GT_Utility.getIntegratedCircuit(i))) return true; return false; } +public static byte convertRatioToRedstone(long used, long max, int threshold, boolean inverted) { + byte signal; + if (used <= 0) { // Empty + signal = 0; + } else if (used >= max) { // Full + signal = 15; + } else { // Range 1-14 + signal = (byte) (1 + (14 * used) / max); + } + + if (inverted) { + signal = (byte) (15 - signal); + } + + if (threshold > 0) { + if (inverted && used >= threshold) { + return 0; + } else if (!inverted && used < threshold) { + return 0; + } + } + + return signal; + } @AutoValue public abstract static class ItemId { |