diff options
author | Bond-009 <bond.009@outlook.com> | 2020-03-27 13:03:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-27 13:03:28 +0100 |
commit | ea386eaab12206e585e01720808dc37585569535 (patch) | |
tree | 7f26c0241b45cd2551b5d2ab5fc28d920130b0b7 /src/BlockEntities/HopperEntity.cpp | |
parent | Merge #4552 (diff) | |
download | cuberite-ea386eaab12206e585e01720808dc37585569535.tar cuberite-ea386eaab12206e585e01720808dc37585569535.tar.gz cuberite-ea386eaab12206e585e01720808dc37585569535.tar.bz2 cuberite-ea386eaab12206e585e01720808dc37585569535.tar.lz cuberite-ea386eaab12206e585e01720808dc37585569535.tar.xz cuberite-ea386eaab12206e585e01720808dc37585569535.tar.zst cuberite-ea386eaab12206e585e01720808dc37585569535.zip |
Diffstat (limited to '')
-rw-r--r-- | src/BlockEntities/HopperEntity.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/BlockEntities/HopperEntity.cpp b/src/BlockEntities/HopperEntity.cpp index e85cfb952..aadca8311 100644 --- a/src/BlockEntities/HopperEntity.cpp +++ b/src/BlockEntities/HopperEntity.cpp @@ -20,7 +20,8 @@ cHopperEntity::cHopperEntity(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos, cWorld * a_World): super(a_BlockType, a_BlockMeta, a_Pos, ContentsWidth, ContentsHeight, a_World), m_LastMoveItemsInTick(0), - m_LastMoveItemsOutTick(0) + m_LastMoveItemsOutTick(0), + m_Locked(false) { ASSERT(a_BlockType == E_BLOCK_HOPPER); } @@ -29,6 +30,15 @@ cHopperEntity::cHopperEntity(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vect +void cHopperEntity::SetLocked(bool a_Value) +{ + m_Locked = a_Value; +} + + + + + std::pair<bool, Vector3i> cHopperEntity::GetOutputBlockPos(NIBBLETYPE a_BlockMeta) { auto pos = GetPos(); @@ -69,9 +79,12 @@ bool cHopperEntity::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) Int64 CurrentTick = a_Chunk.GetWorld()->GetWorldAge(); bool isDirty = false; - isDirty = MoveItemsIn (a_Chunk, CurrentTick) || isDirty; - isDirty = MovePickupsIn(a_Chunk, CurrentTick) || isDirty; - isDirty = MoveItemsOut (a_Chunk, CurrentTick) || isDirty; + if (!m_Locked) + { + isDirty = MoveItemsIn (a_Chunk, CurrentTick) || isDirty; + isDirty = MovePickupsIn(a_Chunk, CurrentTick) || isDirty; + isDirty = MoveItemsOut (a_Chunk, CurrentTick) || isDirty; + } return isDirty; } |