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/metatileentity/BaseMetaPipeEntity.java | 2 ++ src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java | 2 ++ .../java/gregtech/api/metatileentity/CoverableTileEntity.java | 8 ++++++++ 3 files changed, 12 insertions(+) (limited to 'src/main/java/gregtech/api/metatileentity') diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java index 0fdaa90c1a..7c75bb97d4 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaPipeEntity.java @@ -776,6 +776,8 @@ public class BaseMetaPipeEntity extends CommonMetaTileEntity if (hasCover) tNBT.setIntArray("mCoverSides", mCoverSides); if (hasValidMetaTileEntity()) mMetaTileEntity.setItemNBT(tNBT); if (!tNBT.hasNoTags()) rStack.setTagCompound(tNBT); + + onBaseTEDestroyed(); return new ArrayList<>(Collections.singletonList(rStack)); } diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index cdc81220e6..08ead9a946 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -1423,6 +1423,8 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity if (hasValidMetaTileEntity()) mMetaTileEntity.setItemNBT(tNBT); if (!tNBT.hasNoTags()) rStack.setTagCompound(tNBT); + + onBaseTEDestroyed(); return new ArrayList<>(Collections.singletonList(rStack)); } diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java index caf3c1b15f..5958b515be 100644 --- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java @@ -320,6 +320,14 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov return false; } + protected void onBaseTEDestroyed() { + for (byte side = 0; side < 6; ++side) { + GT_CoverBehaviorBase behavior = getCoverBehaviorAtSideNew(side); + if (behavior != GregTech_API.sNoBehavior) + behavior.onBaseTEDestroyed(side, getCoverIDAtSide(side), mCoverData[side], this); + } + } + @Override public void setOutputRedstoneSignal(byte aSide, byte aStrength) { aStrength = (byte) Math.min(Math.max(0, aStrength), 15); -- 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/metatileentity/CoverableTileEntity.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/api/metatileentity') 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); } } } -- cgit From 29258562cbfdb0fe40e7f0577d0d84d33eeba204 Mon Sep 17 00:00:00 2001 From: Matej Dipčár <492666@mail.muni.cz> Date: Fri, 23 Sep 2022 02:27:42 +0200 Subject: Fix previous oopsie --- src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api/metatileentity') diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java index e26d12f311..d3a96efffe 100644 --- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java @@ -427,7 +427,7 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov setCoverIDAtSideNoUpdate(aCoverSide, aCoverID); setCoverDataAtSide(aCoverSide, aCoverData); - if (!isClientSide()) { + if (isClientSide()) { behaviorBase.onDataChanged(aCoverSide, aCoverID, aCoverData, this); } } -- cgit From 0268d287a9d165899ff456b674d56ba10d382d81 Mon Sep 17 00:00:00 2001 From: Martin Robertz Date: Sat, 1 Oct 2022 12:37:34 +0200 Subject: spotless --- .../java/gregtech/api/metatileentity/CoverableTileEntity.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/api/metatileentity') diff --git a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java index d3a96efffe..9df38b2725 100644 --- a/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/CoverableTileEntity.java @@ -423,8 +423,14 @@ public abstract class CoverableTileEntity extends BaseTileEntity implements ICov 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); - + behaviorBase.preDataChanged( + aCoverSide, + getCoverIDAtSide(aCoverSide), + aCoverID, + getComplexCoverDataAtSide(aCoverSide), + aCoverData, + this); + setCoverIDAtSideNoUpdate(aCoverSide, aCoverID); setCoverDataAtSide(aCoverSide, aCoverData); if (isClientSide()) { -- cgit