diff options
author | Mattes D <github@xoft.cz> | 2017-06-15 15:32:33 +0200 |
---|---|---|
committer | Lukas Pioch <lukas@zgow.de> | 2017-06-16 14:11:28 +0200 |
commit | 0dd1cd750bb51403d85a226a97a5ad93eb99b144 (patch) | |
tree | 8c7a4e8580a780e1ed27f4141c32de7ec3087710 /src/BlockEntities/HopperEntity.cpp | |
parent | Choose # of threads based on system info (#3644) (diff) | |
download | cuberite-0dd1cd750bb51403d85a226a97a5ad93eb99b144.tar cuberite-0dd1cd750bb51403d85a226a97a5ad93eb99b144.tar.gz cuberite-0dd1cd750bb51403d85a226a97a5ad93eb99b144.tar.bz2 cuberite-0dd1cd750bb51403d85a226a97a5ad93eb99b144.tar.lz cuberite-0dd1cd750bb51403d85a226a97a5ad93eb99b144.tar.xz cuberite-0dd1cd750bb51403d85a226a97a5ad93eb99b144.tar.zst cuberite-0dd1cd750bb51403d85a226a97a5ad93eb99b144.zip |
Diffstat (limited to 'src/BlockEntities/HopperEntity.cpp')
-rw-r--r-- | src/BlockEntities/HopperEntity.cpp | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/BlockEntities/HopperEntity.cpp b/src/BlockEntities/HopperEntity.cpp index c6cab90cd..0467685af 100644 --- a/src/BlockEntities/HopperEntity.cpp +++ b/src/BlockEntities/HopperEntity.cpp @@ -17,11 +17,12 @@ -cHopperEntity::cHopperEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World) : - super(E_BLOCK_HOPPER, a_BlockX, a_BlockY, a_BlockZ, ContentsWidth, ContentsHeight, a_World), +cHopperEntity::cHopperEntity(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World): + Super(a_BlockType, a_BlockMeta, a_BlockX, a_BlockY, a_BlockZ, ContentsWidth, ContentsHeight, a_World), m_LastMoveItemsInTick(0), m_LastMoveItemsOutTick(0) { + ASSERT(a_BlockType == E_BLOCK_HOPPER); } @@ -52,16 +53,28 @@ bool cHopperEntity::GetOutputBlockPos(NIBBLETYPE a_BlockMeta, int & a_OutputX, i +void cHopperEntity::CopyFrom(const cBlockEntity & a_Src) +{ + Super::CopyFrom(a_Src); + auto & src = reinterpret_cast<const cHopperEntity &>(a_Src); + m_LastMoveItemsInTick = src.m_LastMoveItemsInTick; + m_LastMoveItemsOutTick = src.m_LastMoveItemsOutTick; +} + + + + + bool cHopperEntity::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) { UNUSED(a_Dt); Int64 CurrentTick = a_Chunk.GetWorld()->GetWorldAge(); - bool res = false; - res = MoveItemsIn (a_Chunk, CurrentTick) || res; - res = MovePickupsIn(a_Chunk, CurrentTick) || res; - res = MoveItemsOut (a_Chunk, CurrentTick) || res; - return res; + bool isDirty = false; + isDirty = MoveItemsIn (a_Chunk, CurrentTick) || isDirty; + isDirty = MovePickupsIn(a_Chunk, CurrentTick) || isDirty; + isDirty = MoveItemsOut (a_Chunk, CurrentTick) || isDirty; + return isDirty; } |