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/metatileentity | |
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/metatileentity')
3 files changed, 22 insertions, 1 deletions
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..9df38b2725 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); @@ -414,10 +422,19 @@ 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); + behaviorBase.onDataChanged(aCoverSide, aCoverID, aCoverData, this); } } } |