aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
authorMatej Dipčár <492666@mail.muni.cz>2022-09-22 04:02:16 +0200
committerMatej Dipčár <492666@mail.muni.cz>2022-09-23 02:15:56 +0200
commitd2c7530665e1bf7929be2f92218df8f7941a8d91 (patch)
treea852332adb72290d51ece709313a7891ab8a2dfd /src/main/java/gregtech/api
parent16dc222b95a9b45258a678f7b884121c4ba25a8a (diff)
downloadGT5-Unofficial-d2c7530665e1bf7929be2f92218df8f7941a8d91.tar.gz
GT5-Unofficial-d2c7530665e1bf7929be2f92218df8f7941a8d91.tar.bz2
GT5-Unofficial-d2c7530665e1bf7929be2f92218df8f7941a8d91.zip
Add new hook `preDataChanged`
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java7
-rw-r--r--src/main/java/gregtech/api/util/GT_CoverBehaviorBase.java11
2 files changed, 16 insertions, 2 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
index 5958b515be..e26d12f311 100644
--- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java
@@ -422,10 +422,13 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov
public void receiveCoverData(
byte aCoverSide, int aCoverID, ISerializableObject aCoverData, EntityPlayerMP aPlayer) {
if ((aCoverSide >= 0 && aCoverSide < 6)) {
+ GT_CoverBehaviorBase<?> behaviorBase = getCoverBehaviorAtSideNew(aCoverSide);
+ behaviorBase.preDataChanged(aCoverSide, getCoverIDAtSide(aCoverSide), aCoverID, getComplexCoverDataAtSide(aCoverSide), aCoverData, this);
+
setCoverIDAtSideNoUpdate(aCoverSide, aCoverID);
setCoverDataAtSide(aCoverSide, aCoverData);
- if (isClientSide()) {
- getCoverBehaviorAtSideNew(aCoverSide).onDataChanged(aCoverSide, aCoverID, aCoverData, this);
+ if (!isClientSide()) {
+ behaviorBase.onDataChanged(aCoverSide, aCoverID, aCoverData, this);
}
}
}
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
@@ -131,6 +131,14 @@ 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) {
@@ -417,6 +425,9 @@ 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) {}