diff options
author | Dream-Master <dream-master@gmx.net> | 2018-10-07 20:54:08 +0200 |
---|---|---|
committer | Dream-Master <dream-master@gmx.net> | 2018-10-07 20:54:08 +0200 |
commit | 364d417a3eea8d79f7c5102dd13aabaaa809b525 (patch) | |
tree | 148c5d0cdb9a4486f4c48e33857a543a0f12e374 /src/main/java/gregtech/common/blocks/GT_Block_Machines.java | |
parent | 8d642dc651fb66b441695319a170758e2feae012 (diff) | |
download | GT5-Unofficial-364d417a3eea8d79f7c5102dd13aabaaa809b525.tar.gz GT5-Unofficial-364d417a3eea8d79f7c5102dd13aabaaa809b525.tar.bz2 GT5-Unofficial-364d417a3eea8d79f7c5102dd13aabaaa809b525.zip |
cherry pick 6a1b45f2be752afd77db32e011bbd1118949b8ae [6a1b45f]
fix(blockmachines): persistency on harvest (#1498)
This patch fixes persistency of NBT tags in machine item when machine block is harvested.
Machines with an @Override on setItemNBT will now persist data correctly when harvested?
Change fixes intended persistency behaviour of following machines:
- Item buffers will persist screwdriver configured output stack size when harvested.
- Item distributors will persist setings of items per face.
Diffstat (limited to 'src/main/java/gregtech/common/blocks/GT_Block_Machines.java')
-rw-r--r-- | src/main/java/gregtech/common/blocks/GT_Block_Machines.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java index e1c11e05df..36d32bca6d 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java @@ -372,7 +372,22 @@ public class GT_Block_Machines }
return mTemporaryTileEntity.get() == null ? new ArrayList() : ((IGregTechTileEntity) mTemporaryTileEntity.get()).getDrops();
}
+ @Override
+ public boolean removedByPlayer(World aWorld, EntityPlayer aPlayer, int aX, int aY, int aZ, boolean aWillHarvest) {
+ if (aWillHarvest) {
+ return true; // This delays deletion of the block until after getDrops
+ } else {
+ return super.removedByPlayer(aWorld, aPlayer, aX, aY, aZ, false);
+ }
+ }
+ @Override
+ public void harvestBlock(World aWorld, EntityPlayer aPlayer, int aX, int aY, int aZ, int aMeta)
+ {
+ super.harvestBlock(aWorld, aPlayer, aX, aY, aZ, aMeta);
+ aWorld.setBlockToAir(aX, aY, aZ);
+ }
+
public int getComparatorInputOverride(World aWorld, int aX, int aY, int aZ, int aSide) {
TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
if (((tTileEntity instanceof IGregTechTileEntity))) {
|