From 2911e1e68afa0db6e615aca4b79b012bd6e08936 Mon Sep 17 00:00:00 2001 From: Matej Dipčár <492666@mail.muni.cz> Date: Wed, 21 Sep 2022 14:00:15 +0200 Subject: Implement `onBaseTEDestroyed` hook for covers --- src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/main/java/gregtech/api/util') diff --git a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java index efbff79957..e0879cda86 100644 --- a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java +++ b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java @@ -221,6 +221,14 @@ public abstract class GT_CoverBehaviorBase { return onCoverRemovalImpl(aSide, aCoverID, forceCast(aCoverVariable), aTileEntity, aForced); } + /** + * 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. */ @@ -412,6 +420,8 @@ public abstract class GT_CoverBehaviorBase { 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; -- cgit From 1f37e091b74e64eb4ff989f60de5924b8d4cb922 Mon Sep 17 00:00:00 2001 From: Matej Dipčár <492666@mail.muni.cz> Date: Wed, 21 Sep 2022 21:23:33 +0200 Subject: Implement logic in Wireless Fluid Detector --- src/main/java/gregtech/api/util/GT_Utility.java | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/main/java/gregtech/api/util') diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 5898e5fd14..706694d6dd 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -4254,6 +4254,12 @@ public class GT_Utility { return Textures.BlockIcons.ERROR_TEXTURE_INDEX; } + public static byte convertRatioToRedstone(long value, long max) { + if (value <= 0) return 0; // Empty + if (value >= max) return 15; // Full + return (byte) (1 + (14 * value) / max); // Range 1-14 + } + @AutoValue public abstract static class ItemId { /** This method copies NBT, as it is mutable. */ -- cgit From 16dc222b95a9b45258a678f7b884121c4ba25a8a Mon Sep 17 00:00:00 2001 From: Matej Dipčár <492666@mail.muni.cz> Date: Thu, 22 Sep 2022 03:14:01 +0200 Subject: Abstract `convertRatioToRedstone` properly --- src/main/java/gregtech/api/util/GT_Utility.java | 27 +++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'src/main/java/gregtech/api/util') diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 706694d6dd..f7fd9ce914 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -4254,10 +4254,29 @@ public class GT_Utility { return Textures.BlockIcons.ERROR_TEXTURE_INDEX; } - public static byte convertRatioToRedstone(long value, long max) { - if (value <= 0) return 0; // Empty - if (value >= max) return 15; // Full - return (byte) (1 + (14 * value) / max); // Range 1-14 + 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 -- cgit From d2c7530665e1bf7929be2f92218df8f7941a8d91 Mon Sep 17 00:00:00 2001 From: Matej Dipčár <492666@mail.muni.cz> Date: Thu, 22 Sep 2022 04:02:16 +0200 Subject: Add new hook `preDataChanged` --- src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/main/java/gregtech/api/util') diff --git a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java index e0879cda86..47cb866653 100644 --- a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java +++ b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java @@ -130,6 +130,14 @@ public abstract class GT_CoverBehaviorBase { onDataChangedImpl(aSide, aCoverID, forceCast(aCoverVariable), aTileEntity); } + /** + * 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. */ @@ -417,6 +425,9 @@ public abstract class GT_CoverBehaviorBase { } 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) {} -- cgit From 0268d287a9d165899ff456b674d56ba10d382d81 Mon Sep 17 00:00:00 2001 From: Martin Robertz Date: Sat, 1 Oct 2022 12:37:34 +0200 Subject: spotless --- src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java | 15 +++++++++++---- src/main/java/gregtech/api/util/GT_Utility.java | 6 +++--- 2 files changed, 14 insertions(+), 7 deletions(-) (limited to 'src/main/java/gregtech/api/util') diff --git a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java index 47cb866653..1092a24307 100644 --- a/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java +++ b/src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java @@ -134,8 +134,14 @@ public abstract class GT_CoverBehaviorBase { * 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); + byte aSide, + int aCoverID, + int aNewCoverId, + ISerializableObject aCoverVariable, + ISerializableObject aNewCoverVariable, + ICoverable aTileEntity) { + preDataChangedImpl( + aSide, aCoverID, aNewCoverId, forceCast(aCoverVariable), forceCast(aNewCoverVariable), aTileEntity); } /** @@ -233,7 +239,8 @@ public abstract class GT_CoverBehaviorBase { * 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) { + public final void onBaseTEDestroyed( + byte aSide, int aCoverID, ISerializableObject aCoverVariable, ICoverable aTileEntity) { onBaseTEDestroyedImpl(aSide, aCoverID, forceCast(aCoverVariable), aTileEntity); } @@ -425,7 +432,7 @@ public abstract class GT_CoverBehaviorBase { } 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) {} diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index f7fd9ce914..4371658b3a 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -4256,11 +4256,11 @@ public class GT_Utility { public static byte convertRatioToRedstone(long used, long max, int threshold, boolean inverted) { byte signal; - if (used <= 0) { // Empty + if (used <= 0) { // Empty signal = 0; - } else if (used >= max) { // Full + } else if (used >= max) { // Full signal = 15; - } else { // Range 1-14 + } else { // Range 1-14 signal = (byte) (1 + (14 * used) / max); } -- cgit