diff options
author | Tiger Wang <ziwei.tiger@outlook.com> | 2020-09-20 15:50:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-20 15:50:52 +0200 |
commit | 68cced73afe546328cf94ed07c57deee47bfadec (patch) | |
tree | 88be88e3fd4a208b9849e526f1877caa44058ab5 /src/Items | |
parent | Added armor and shulker box cleaning (#4875) (diff) | |
download | cuberite-68cced73afe546328cf94ed07c57deee47bfadec.tar cuberite-68cced73afe546328cf94ed07c57deee47bfadec.tar.gz cuberite-68cced73afe546328cf94ed07c57deee47bfadec.tar.bz2 cuberite-68cced73afe546328cf94ed07c57deee47bfadec.tar.lz cuberite-68cced73afe546328cf94ed07c57deee47bfadec.tar.xz cuberite-68cced73afe546328cf94ed07c57deee47bfadec.tar.zst cuberite-68cced73afe546328cf94ed07c57deee47bfadec.zip |
Diffstat (limited to 'src/Items')
-rw-r--r-- | src/Items/ItemBigFlower.h | 2 | ||||
-rw-r--r-- | src/Items/ItemChest.h | 6 | ||||
-rw-r--r-- | src/Items/ItemHandler.cpp | 8 | ||||
-rw-r--r-- | src/Items/ItemSign.h | 2 |
4 files changed, 7 insertions, 11 deletions
diff --git a/src/Items/ItemBigFlower.h b/src/Items/ItemBigFlower.h index a126a72bc..a67ca8d0a 100644 --- a/src/Items/ItemBigFlower.h +++ b/src/Items/ItemBigFlower.h @@ -52,7 +52,7 @@ public: a_World.GetBlockTypeMeta(TopPos, TopType, TopMeta); cChunkInterface ChunkInterface(a_World.GetChunkMap()); - if (!BlockHandler(TopType)->DoesIgnoreBuildCollision(ChunkInterface, TopPos, a_Player, TopMeta)) + if (!cBlockHandler::For(TopType).DoesIgnoreBuildCollision(ChunkInterface, TopPos, a_Player, TopMeta)) { return false; } diff --git a/src/Items/ItemChest.h b/src/Items/ItemChest.h index ecd957a59..8548f8d25 100644 --- a/src/Items/ItemChest.h +++ b/src/Items/ItemChest.h @@ -50,9 +50,8 @@ public: NIBBLETYPE ClickedBlockMeta; a_World.GetBlockTypeMeta(a_ClickedBlockPos, ClickedBlockType, ClickedBlockMeta); cChunkInterface ChunkInterface(a_World.GetChunkMap()); - auto blockHandler = BlockHandler(ClickedBlockType); Vector3i PlacePos; - if (blockHandler->DoesIgnoreBuildCollision(ChunkInterface, a_ClickedBlockPos, a_Player, ClickedBlockMeta)) + if (cBlockHandler::For(ClickedBlockType).DoesIgnoreBuildCollision(ChunkInterface, a_ClickedBlockPos, a_Player, ClickedBlockMeta)) { PlacePos = a_ClickedBlockPos; } @@ -69,8 +68,7 @@ public: BLOCKTYPE PlaceBlock; NIBBLETYPE PlaceMeta; a_World.GetBlockTypeMeta(PlacePos, PlaceBlock, PlaceMeta); - blockHandler = BlockHandler(PlaceBlock); - if (!blockHandler->DoesIgnoreBuildCollision(ChunkInterface, PlacePos, a_Player, PlaceMeta)) + if (!cBlockHandler::For(PlaceBlock).DoesIgnoreBuildCollision(ChunkInterface, PlacePos, a_Player, PlaceMeta)) { return false; } diff --git a/src/Items/ItemHandler.cpp b/src/Items/ItemHandler.cpp index d9f9c3168..fcdbe109b 100644 --- a/src/Items/ItemHandler.cpp +++ b/src/Items/ItemHandler.cpp @@ -370,9 +370,8 @@ bool cItemHandler::OnPlayerPlace( cChunkInterface ChunkInterface(a_World.GetChunkMap()); // Check if the block ignores build collision (water, grass etc.): - auto HandlerB = BlockHandler(ClickedBlockType); auto PlacedBlockPos = AddFaceDirection(a_ClickedBlockPos, a_ClickedBlockFace); - if (HandlerB->DoesIgnoreBuildCollision(ChunkInterface, a_ClickedBlockPos, a_Player, ClickedBlockMeta)) + if (cBlockHandler::For(ClickedBlockType).DoesIgnoreBuildCollision(ChunkInterface, a_ClickedBlockPos, a_Player, ClickedBlockMeta)) { // Replace the clicked block: a_World.DropBlockAsPickups(a_ClickedBlockPos, &a_Player, nullptr); @@ -392,7 +391,7 @@ bool cItemHandler::OnPlayerPlace( // Clicked on side of block, make sure that placement won't be cancelled if there is a slab able to be double slabbed. // No need to do combinability (dblslab) checks, client will do that here. - if (!BlockHandler(PlaceBlock)->DoesIgnoreBuildCollision(ChunkInterface, PlacedBlockPos, a_Player, PlaceMeta)) + if (!cBlockHandler::For(PlaceBlock).DoesIgnoreBuildCollision(ChunkInterface, PlacedBlockPos, a_Player, PlaceMeta)) { // Tried to place a block into another? // Happens when you place a block aiming at side of block with a torch on it or stem beside it @@ -832,9 +831,8 @@ bool cItemHandler::GetPlacementBlockTypeMeta( return false; } - cBlockHandler * BlockH = BlockHandler(static_cast<BLOCKTYPE>(m_ItemType)); cChunkInterface ChunkInterface(a_World->GetChunkMap()); - return BlockH->GetPlacementBlockTypeMeta( + return cBlockHandler::For(static_cast<BLOCKTYPE>(m_ItemType)).GetPlacementBlockTypeMeta( ChunkInterface, *a_Player, a_PlacedBlockPos, a_ClickedBlockFace, a_CursorPos, diff --git a/src/Items/ItemSign.h b/src/Items/ItemSign.h index cb9136db1..64d162f8d 100644 --- a/src/Items/ItemSign.h +++ b/src/Items/ItemSign.h @@ -41,7 +41,7 @@ public: NIBBLETYPE ClickedBlockMeta; a_World.GetBlockTypeMeta(a_ClickedBlockPos, ClickedBlockType, ClickedBlockMeta); cChunkInterface ChunkInterface(a_World.GetChunkMap()); - bool IsReplacingClickedBlock = BlockHandler(ClickedBlockType)->DoesIgnoreBuildCollision(ChunkInterface, a_ClickedBlockPos, a_Player, ClickedBlockMeta); + bool IsReplacingClickedBlock = cBlockHandler::For(ClickedBlockType).DoesIgnoreBuildCollision(ChunkInterface, a_ClickedBlockPos, a_Player, ClickedBlockMeta); // If the regular placement doesn't work, do no further processing: if (!Super::OnPlayerPlace(a_World, a_Player, a_EquippedItem, a_ClickedBlockPos, a_ClickedBlockFace, a_CursorPos)) |