diff options
author | bibo38 <bibo38@github.com> | 2020-10-09 17:41:44 +0200 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@outlook.com> | 2020-10-20 12:45:58 +0200 |
commit | c221aa3653c00cd2f942294690cbd21dea0daa85 (patch) | |
tree | 637c09ed878a789ceaf1395346d0d6f6f5cdb2c5 | |
parent | cBlockInfo: further cleanup (#5001) (diff) | |
download | cuberite-CArrays.tar cuberite-CArrays.tar.gz cuberite-CArrays.tar.bz2 cuberite-CArrays.tar.lz cuberite-CArrays.tar.xz cuberite-CArrays.tar.zst cuberite-CArrays.zip |
-rw-r--r-- | src/BlockEntities/BrewingstandEntity.cpp | 30 | ||||
-rw-r--r-- | src/BlockEntities/BrewingstandEntity.h | 6 | ||||
-rw-r--r-- | src/BlockEntities/DropSpenserEntity.cpp | 6 | ||||
-rw-r--r-- | src/BlockEntities/HopperEntity.cpp | 37 | ||||
-rw-r--r-- | src/BlockEntities/SignEntity.cpp | 15 | ||||
-rw-r--r-- | src/BlockEntities/SignEntity.h | 6 |
6 files changed, 50 insertions, 50 deletions
diff --git a/src/BlockEntities/BrewingstandEntity.cpp b/src/BlockEntities/BrewingstandEntity.cpp index 9c43f257f..1c659a3c3 100644 --- a/src/BlockEntities/BrewingstandEntity.cpp +++ b/src/BlockEntities/BrewingstandEntity.cpp @@ -54,14 +54,8 @@ void cBrewingstandEntity::CopyFrom(const cBlockEntity & a_Src) Super::CopyFrom(a_Src); auto & src = static_cast<const cBrewingstandEntity &>(a_Src); m_IsBrewing = src.m_IsBrewing; - for (size_t i = 0; i < ARRAYCOUNT(m_CurrentBrewingRecipes); ++i) - { - m_CurrentBrewingRecipes[i] = src.m_CurrentBrewingRecipes[i]; - } - for (size_t i = 0; i < ARRAYCOUNT(m_Results); ++i) - { - m_Results[i] = src.m_Results[i]; - } + m_CurrentBrewingRecipes = src.m_CurrentBrewingRecipes; + m_Results = src.m_Results; m_TimeBrewed = src.m_TimeBrewed; m_RemainingFuel = src.m_RemainingFuel; } @@ -130,12 +124,12 @@ bool cBrewingstandEntity::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) const cBrewingRecipes::cRecipe * Recipe = nullptr; for (int i = 0; i < 3; i++) { - if (m_Contents.GetSlot(i).IsEmpty() || (m_CurrentBrewingRecipes[i] == nullptr)) + if (m_Contents.GetSlot(i).IsEmpty() || (m_CurrentBrewingRecipes[static_cast<size_t>(i)] == nullptr)) { continue; } - Recipe = m_CurrentBrewingRecipes[i]; + Recipe = m_CurrentBrewingRecipes[static_cast<size_t>(i)]; m_Contents.SetSlot(i, Recipe->Output.CopyOne()); } @@ -254,14 +248,14 @@ void cBrewingstandEntity::OnSlotChanged(cItemGrid * a_ItemGrid, int a_SlotNum) { if (GetSlot(i).IsEmpty()) { - m_CurrentBrewingRecipes[i] = nullptr; - m_Results[i].Clear(); + m_CurrentBrewingRecipes[static_cast<size_t>(i)] = nullptr; + m_Results[static_cast<size_t>(i)].Clear(); continue; } - if (m_CurrentBrewingRecipes[i] != nullptr) + if (m_CurrentBrewingRecipes[static_cast<size_t>(i)] != nullptr) { - Recipe = m_CurrentBrewingRecipes[i]; + Recipe = m_CurrentBrewingRecipes[static_cast<size_t>(i)]; if (Recipe->Ingredient.IsEqual(GetSlot(bsIngredient)) && Recipe->Input.IsEqual(GetSlot(i))) { Stop = false; @@ -273,8 +267,8 @@ void cBrewingstandEntity::OnSlotChanged(cItemGrid * a_ItemGrid, int a_SlotNum) if (Recipe != nullptr) { // Found a brewing recipe for the items - m_CurrentBrewingRecipes[i] = Recipe; - m_Results[i] = Recipe->Output.CopyOne(); + m_CurrentBrewingRecipes[static_cast<size_t>(i)] = Recipe; + m_Results[static_cast<size_t>(i)] = Recipe->Output.CopyOne(); Stop = false; } } @@ -348,8 +342,8 @@ void cBrewingstandEntity::LoadRecipes(void) Recipe = BR->GetRecipeFrom(GetSlot(i), GetSlot(bsIngredient)); if (Recipe != nullptr) { - m_CurrentBrewingRecipes[i] = Recipe; - m_Results[i] = Recipe->Output.CopyOne(); + m_CurrentBrewingRecipes[static_cast<size_t>(i)] = Recipe; + m_Results[static_cast<size_t>(i)] = Recipe->Output.CopyOne(); } } } diff --git a/src/BlockEntities/BrewingstandEntity.h b/src/BlockEntities/BrewingstandEntity.h index 90c6003df..5a78554ba 100644 --- a/src/BlockEntities/BrewingstandEntity.h +++ b/src/BlockEntities/BrewingstandEntity.h @@ -81,7 +81,7 @@ public: const cItem & GetFuelSlot(void) const { return GetSlot(bsFuel); } /** Get the expected result item for the given slot number */ - const cItem & GetResultItem(int a_SlotNumber) { return m_Results[a_SlotNumber]; } + const cItem & GetResultItem(size_t a_SlotNumber) { return m_Results[a_SlotNumber]; } /** Sets the item in the left bottle slot */ void SetLeftBottleSlot(const cItem & a_Item) { SetSlot(bsLeftBottle, a_Item); } @@ -125,10 +125,10 @@ protected: const short m_NeedBrewingTime = 400; /** Store the current brewing recipes */ - const cBrewingRecipes::cRecipe * m_CurrentBrewingRecipes[3] = {}; + std::array<const cBrewingRecipes::cRecipe *, 3> m_CurrentBrewingRecipes = {}; /** Result items for the bottle inputs */ - cItem m_Results[3]; + std::array<cItem, 3> m_Results; /** Amount of ticks that the current item has been brewed */ short m_TimeBrewed; diff --git a/src/BlockEntities/DropSpenserEntity.cpp b/src/BlockEntities/DropSpenserEntity.cpp index 259cec7a3..ef793ddc7 100644 --- a/src/BlockEntities/DropSpenserEntity.cpp +++ b/src/BlockEntities/DropSpenserEntity.cpp @@ -61,8 +61,8 @@ void cDropSpenserEntity::AddDropSpenserDir(Vector3i & a_RelCoord, NIBBLETYPE a_D void cDropSpenserEntity::DropSpense(cChunk & a_Chunk) { // Pick one of the occupied slots: - int OccupiedSlots[9]; - int SlotsCnt = 0; + std::array<int, 9> OccupiedSlots; + size_t SlotsCnt = 0; for (int i = m_Contents.GetNumSlots() - 1; i >= 0; i--) { if (!m_Contents.GetSlot(i).IsEmpty()) @@ -79,7 +79,7 @@ void cDropSpenserEntity::DropSpense(cChunk & a_Chunk) return; } - const int RandomSlot = m_World->GetTickRandomNumber(SlotsCnt - 1); + const size_t RandomSlot = GetRandomProvider().RandInt(SlotsCnt - 1); const int SpenseSlot = OccupiedSlots[RandomSlot]; if (cPluginManager::Get()->CallHookDropSpense(*m_World, *this, SpenseSlot)) diff --git a/src/BlockEntities/HopperEntity.cpp b/src/BlockEntities/HopperEntity.cpp index 2e4264204..616f1f7c7 100644 --- a/src/BlockEntities/HopperEntity.cpp +++ b/src/BlockEntities/HopperEntity.cpp @@ -383,14 +383,17 @@ bool cHopperEntity::MoveItemsFromChest(cChunk & a_Chunk) return true; } - // Check if the chest is a double-chest (chest directly above was empty), if so, try to move from there: - static const Vector3i neighborOfs[] = + static constexpr std::array<Vector3i, 4> neighborOfs { - { 1, 1, 0}, - {-1, 1, 0}, - { 0, 1, 1}, - { 0, 1, -1}, - } ; + { + { 1, 1, 0 }, + { -1, 1, 0 }, + { 0, 1, 1 }, + { 0, 1, -1 } + } + }; + + // Check if the chest is a double-chest (chest directly above was empty), if so, try to move from there: for (const auto & ofs: neighborOfs) { auto neighborRelCoord = ofs.addedXZ(m_RelX, m_RelZ); @@ -546,15 +549,19 @@ bool cHopperEntity::MoveItemsToChest(cChunk & a_Chunk, Vector3i a_Coords) return true; } + static constexpr std::array<Vector3i, 4> neighborOfs = + { + { + { 1, 0, 0 }, + { -1, 0, 0 }, + { 0, 0, 1 }, + { 0, 0, -1 } + } + }; + + const auto relCoord = a_Chunk.AbsoluteToRelative(a_Coords); + // Check if the chest is a double-chest (chest block directly connected was full), if so, try to move into the other half: - static const Vector3i neighborOfs [] = - { - { 1, 0, 0}, - {-1, 0, 0}, - { 0, 0, 1}, - { 0, 0, -1}, - } ; - auto relCoord = a_Chunk.AbsoluteToRelative(a_Coords); for (const auto & ofs: neighborOfs) { auto otherHalfRelCoord = relCoord + ofs; diff --git a/src/BlockEntities/SignEntity.cpp b/src/BlockEntities/SignEntity.cpp index 30adcb9f9..c79a2bc72 100644 --- a/src/BlockEntities/SignEntity.cpp +++ b/src/BlockEntities/SignEntity.cpp @@ -27,10 +27,7 @@ void cSignEntity::CopyFrom(const cBlockEntity & a_Src) { Super::CopyFrom(a_Src); auto & src = static_cast<const cSignEntity &>(a_Src); - for (size_t i = 0; i < ARRAYCOUNT(m_Line); ++i) - { - m_Line[i] = src.m_Line[i]; - } + m_Line = src.m_Line; } @@ -59,13 +56,14 @@ void cSignEntity::SetLines(const AString & a_Line1, const AString & a_Line2, con -void cSignEntity::SetLine(int a_Index, const AString & a_Line) +void cSignEntity::SetLine(size_t a_Index, const AString & a_Line) { - if ((a_Index < 0) || (a_Index >= static_cast<int>(ARRAYCOUNT(m_Line)))) + if (a_Index >= m_Line.size()) { LOGWARNING("%s: setting a non-existent line %d (value \"%s\"", __FUNCTION__, a_Index, a_Line.c_str()); return; } + m_Line[a_Index] = a_Line; } @@ -73,13 +71,14 @@ void cSignEntity::SetLine(int a_Index, const AString & a_Line) -AString cSignEntity::GetLine(int a_Index) const +AString cSignEntity::GetLine(size_t a_Index) const { - if ((a_Index < 0) || (a_Index >= static_cast<int>(ARRAYCOUNT(m_Line)))) + if (a_Index >= m_Line.size()) { LOGWARNING("%s: requesting a non-existent line %d", __FUNCTION__, a_Index); return ""; } + return m_Line[a_Index]; } diff --git a/src/BlockEntities/SignEntity.h b/src/BlockEntities/SignEntity.h index 83eb0352d..94c5eba28 100644 --- a/src/BlockEntities/SignEntity.h +++ b/src/BlockEntities/SignEntity.h @@ -36,10 +36,10 @@ public: // tolua_export void SetLines(const AString & a_Line1, const AString & a_Line2, const AString & a_Line3, const AString & a_Line4); /** Sets individual line (zero-based index) */ - void SetLine(int a_Index, const AString & a_Line); + void SetLine(size_t a_Index, const AString & a_Line); /** Retrieves individual line (zero-based index) */ - AString GetLine(int a_Index) const; + AString GetLine(size_t a_Index) const; // tolua_end @@ -50,7 +50,7 @@ public: // tolua_export private: - AString m_Line[4]; + std::array<AString, 4> m_Line; } ; // tolua_export |