diff options
-rw-r--r-- | src/BlockArea.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/BlockArea.cpp b/src/BlockArea.cpp index b32851afc..5e66e4aec 100644 --- a/src/BlockArea.cpp +++ b/src/BlockArea.cpp @@ -835,7 +835,14 @@ void cBlockArea::Fill(int a_DataTypes, BLOCKTYPE a_BlockType, NIBBLETYPE a_Block // If the area contains block entities, remove those not matching and replace with whatever block entity block was filled if (HasBlockEntities() && ((a_DataTypes & baTypes) != 0)) { - RescanBlockEntities(); + if (cBlockEntity::IsBlockEntityBlockType(a_BlockType)) + { + RescanBlockEntities(); + } + else + { + ClearBlockEntities(*m_BlockEntities); + } } } @@ -888,7 +895,14 @@ void cBlockArea::FillRelCuboid(int a_MinRelX, int a_MaxRelX, int a_MinRelY, int // If the area contains block entities, remove those in the affected cuboid and replace with whatever block entity block was filled: if (HasBlockEntities() && ((a_DataTypes & baTypes) != 0)) { - RescanBlockEntities(); + if (cBlockEntity::IsBlockEntityBlockType(a_BlockType)) + { + RescanBlockEntities(); + } + else + { + ClearBlockEntities(*m_BlockEntities); + } } } |