Handlers: update item and block handlers (#5371)

+ Resend blocks when server rejects placement because in a block

* Fix chest handler not invoked, fixes #5367
* Fix comparator handler not invoked
* Update some naming
This commit is contained in:
Tiger Wang 2022-01-02 11:56:36 +00:00 committed by GitHub
parent 1616108af3
commit c52f299e72
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 81 additions and 89 deletions

View File

@ -6,7 +6,7 @@
class cBlockEnderchestHandler final : class cBlockEnderChestHandler final :
public cYawRotator<cBlockEntityHandler, 0x07, 0x03, 0x04, 0x02, 0x05> public cYawRotator<cBlockEntityHandler, 0x07, 0x03, 0x04, 0x02, 0x05>
{ {
using Super = cYawRotator<cBlockEntityHandler, 0x07, 0x03, 0x04, 0x02, 0x05>; using Super = cYawRotator<cBlockEntityHandler, 0x07, 0x03, 0x04, 0x02, 0x05>;
@ -38,7 +38,3 @@ private:
} }
}; };

View File

@ -33,7 +33,7 @@
#include "BlockDropSpenser.h" #include "BlockDropSpenser.h"
#include "BlockEnchantingTable.h" #include "BlockEnchantingTable.h"
#include "BlockEndPortalFrame.h" #include "BlockEndPortalFrame.h"
#include "BlockEnderchest.h" #include "BlockEnderChest.h"
#include "BlockEntity.h" #include "BlockEntity.h"
#include "BlockFarmland.h" #include "BlockFarmland.h"
#include "BlockFence.h" #include "BlockFence.h"
@ -75,7 +75,7 @@
#include "BlockPumpkin.h" #include "BlockPumpkin.h"
#include "BlockQuartz.h" #include "BlockQuartz.h"
#include "BlockRail.h" #include "BlockRail.h"
#include "BlockRedstone.h" #include "BlockRedstoneWire.h"
#include "BlockRedstoneLamp.h" #include "BlockRedstoneLamp.h"
#include "BlockRedstoneOre.h" #include "BlockRedstoneOre.h"
#include "BlockRedstoneRepeater.h" #include "BlockRedstoneRepeater.h"
@ -91,14 +91,14 @@
#include "BlockStairs.h" #include "BlockStairs.h"
#include "BlockStems.h" #include "BlockStems.h"
#include "BlockStone.h" #include "BlockStone.h"
#include "BlockSugarcane.h" #include "BlockSugarCane.h"
#include "BlockTNT.h" #include "BlockTNT.h"
#include "BlockTallGrass.h" #include "BlockTallGrass.h"
#include "BlockTorch.h" #include "BlockTorch.h"
#include "BlockTrapdoor.h" #include "BlockTrapdoor.h"
#include "BlockTripwire.h" #include "BlockTripwire.h"
#include "BlockTripwireHook.h" #include "BlockTripwireHook.h"
#include "BlockVine.h" #include "BlockVines.h"
#include "BlockWallSign.h" #include "BlockWallSign.h"
#include "BlockWorkbench.h" #include "BlockWorkbench.h"
@ -215,14 +215,14 @@ namespace
constexpr cBlockStairsHandler BlockBirchWoodStairsHandler (E_BLOCK_BIRCH_WOOD_STAIRS); constexpr cBlockStairsHandler BlockBirchWoodStairsHandler (E_BLOCK_BIRCH_WOOD_STAIRS);
constexpr cBlockGlazedTerracottaHandler BlockBlackGlazedTerracottaHandler (E_BLOCK_BLACK_GLAZED_TERRACOTTA); constexpr cBlockGlazedTerracottaHandler BlockBlackGlazedTerracottaHandler (E_BLOCK_BLACK_GLAZED_TERRACOTTA);
constexpr cDefaultBlockHandler BlockBlackShulkerBoxHandler (E_BLOCK_BLACK_SHULKER_BOX); constexpr cDefaultBlockHandler BlockBlackShulkerBoxHandler (E_BLOCK_BLACK_SHULKER_BOX);
constexpr cDefaultBlockHandler BlockBlockOfCoalHandler (E_BLOCK_BLOCK_OF_COAL); constexpr cDefaultBlockHandler BlockCoalBlockHandler (E_BLOCK_BLOCK_OF_COAL);
constexpr cDefaultBlockHandler BlockBlockOfRedstoneHandler (E_BLOCK_BLOCK_OF_REDSTONE); constexpr cDefaultBlockHandler BlockRedstoneBlockHandler (E_BLOCK_BLOCK_OF_REDSTONE);
constexpr cBlockGlazedTerracottaHandler BlockBlueGlazedTerracottaHandler (E_BLOCK_BLUE_GLAZED_TERRACOTTA); constexpr cBlockGlazedTerracottaHandler BlockBlueGlazedTerracottaHandler (E_BLOCK_BLUE_GLAZED_TERRACOTTA);
constexpr cDefaultBlockHandler BlockBlueShulkerBoxHandler (E_BLOCK_BLUE_SHULKER_BOX); constexpr cDefaultBlockHandler BlockBlueShulkerBoxHandler (E_BLOCK_BLUE_SHULKER_BOX);
constexpr cDefaultBlockHandler BlockBoneBlockHandler (E_BLOCK_BONE_BLOCK); constexpr cDefaultBlockHandler BlockBoneBlockHandler (E_BLOCK_BONE_BLOCK);
constexpr cBlockBookShelfHandler BlockBookcaseHandler (E_BLOCK_BOOKCASE); constexpr cBlockBookShelfHandler BlockBookcaseHandler (E_BLOCK_BOOKCASE);
constexpr cBlockBrewingStandHandler BlockBrewingStandHandler (E_BLOCK_BREWING_STAND); constexpr cBlockBrewingStandHandler BlockBrewingStandHandler (E_BLOCK_BREWING_STAND);
constexpr cDefaultBlockHandler BlockBrickHandler (E_BLOCK_BRICK); constexpr cDefaultBlockHandler BlockBricksHandler (E_BLOCK_BRICK);
constexpr cBlockStairsHandler BlockBrickStairsHandler (E_BLOCK_BRICK_STAIRS); constexpr cBlockStairsHandler BlockBrickStairsHandler (E_BLOCK_BRICK_STAIRS);
constexpr cBlockGlazedTerracottaHandler BlockBrownGlazedTerracottaHandler (E_BLOCK_BROWN_GLAZED_TERRACOTTA); constexpr cBlockGlazedTerracottaHandler BlockBrownGlazedTerracottaHandler (E_BLOCK_BROWN_GLAZED_TERRACOTTA);
constexpr cBlockMushroomHandler BlockBrownMushroomHandler (E_BLOCK_BROWN_MUSHROOM); constexpr cBlockMushroomHandler BlockBrownMushroomHandler (E_BLOCK_BROWN_MUSHROOM);
@ -274,7 +274,7 @@ namespace
constexpr cDefaultBlockHandler BlockEndPortalHandler (E_BLOCK_END_PORTAL); constexpr cDefaultBlockHandler BlockEndPortalHandler (E_BLOCK_END_PORTAL);
constexpr cDefaultBlockHandler BlockEndRodHandler (E_BLOCK_END_ROD); constexpr cDefaultBlockHandler BlockEndRodHandler (E_BLOCK_END_ROD);
constexpr cDefaultBlockHandler BlockEndStoneHandler (E_BLOCK_END_STONE); constexpr cDefaultBlockHandler BlockEndStoneHandler (E_BLOCK_END_STONE);
constexpr cBlockEnderchestHandler BlockEnderChestHandler (E_BLOCK_ENDER_CHEST); constexpr cBlockEnderChestHandler BlockEnderChestHandler (E_BLOCK_ENDER_CHEST);
constexpr cBlockFarmlandHandler BlockFarmlandHandler (E_BLOCK_FARMLAND); constexpr cBlockFarmlandHandler BlockFarmlandHandler (E_BLOCK_FARMLAND);
constexpr cBlockFenceHandler BlockFenceHandler (E_BLOCK_FENCE); constexpr cBlockFenceHandler BlockFenceHandler (E_BLOCK_FENCE);
constexpr cBlockFireHandler BlockFireHandler (E_BLOCK_FIRE); constexpr cBlockFireHandler BlockFireHandler (E_BLOCK_FIRE);
@ -339,7 +339,7 @@ namespace
constexpr cDefaultBlockHandler BlockMossyCobblestoneHandler (E_BLOCK_MOSSY_COBBLESTONE); constexpr cDefaultBlockHandler BlockMossyCobblestoneHandler (E_BLOCK_MOSSY_COBBLESTONE);
constexpr cBlockMyceliumHandler BlockMyceliumHandler (E_BLOCK_MYCELIUM); constexpr cBlockMyceliumHandler BlockMyceliumHandler (E_BLOCK_MYCELIUM);
constexpr cBlockFenceHandler BlockNetherBrickFenceHandler (E_BLOCK_NETHER_BRICK_FENCE); constexpr cBlockFenceHandler BlockNetherBrickFenceHandler (E_BLOCK_NETHER_BRICK_FENCE);
constexpr cDefaultBlockHandler BlockNetherBrickHandler (E_BLOCK_NETHER_BRICK); constexpr cDefaultBlockHandler BlockNetherBricksHandler (E_BLOCK_NETHER_BRICK);
constexpr cBlockStairsHandler BlockNetherBrickStairsHandler (E_BLOCK_NETHER_BRICK_STAIRS); constexpr cBlockStairsHandler BlockNetherBrickStairsHandler (E_BLOCK_NETHER_BRICK_STAIRS);
constexpr cBlockPortalHandler BlockNetherPortalHandler (E_BLOCK_NETHER_PORTAL); constexpr cBlockPortalHandler BlockNetherPortalHandler (E_BLOCK_NETHER_PORTAL);
constexpr cDefaultOreHandler BlockNetherQuartzOreHandler (E_BLOCK_NETHER_QUARTZ_ORE); constexpr cDefaultOreHandler BlockNetherQuartzOreHandler (E_BLOCK_NETHER_QUARTZ_ORE);
@ -380,7 +380,7 @@ namespace
constexpr cBlockRailHandler BlockRailHandler (E_BLOCK_RAIL); constexpr cBlockRailHandler BlockRailHandler (E_BLOCK_RAIL);
constexpr cBlockGlazedTerracottaHandler BlockRedGlazedTerracottaHandler (E_BLOCK_RED_GLAZED_TERRACOTTA); constexpr cBlockGlazedTerracottaHandler BlockRedGlazedTerracottaHandler (E_BLOCK_RED_GLAZED_TERRACOTTA);
constexpr cBlockMushroomHandler BlockRedMushroomHandler (E_BLOCK_RED_MUSHROOM); constexpr cBlockMushroomHandler BlockRedMushroomHandler (E_BLOCK_RED_MUSHROOM);
constexpr cDefaultBlockHandler BlockRedNetherBrickHandler (E_BLOCK_RED_NETHER_BRICK); constexpr cDefaultBlockHandler BlockRedNetherBricksHandler (E_BLOCK_RED_NETHER_BRICK);
constexpr cBlockFlowerHandler BlockRedRoseHandler (E_BLOCK_RED_ROSE); constexpr cBlockFlowerHandler BlockRedRoseHandler (E_BLOCK_RED_ROSE);
constexpr cDefaultBlockHandler BlockRedSandstoneHandler (E_BLOCK_RED_SANDSTONE); constexpr cDefaultBlockHandler BlockRedSandstoneHandler (E_BLOCK_RED_SANDSTONE);
constexpr cBlockSlabHandler BlockRedSandstoneSlabHandler (E_BLOCK_RED_SANDSTONE_SLAB); constexpr cBlockSlabHandler BlockRedSandstoneSlabHandler (E_BLOCK_RED_SANDSTONE_SLAB);
@ -393,7 +393,7 @@ namespace
constexpr cBlockRedstoneRepeaterHandler BlockRedstoneRepeaterOnHandler (E_BLOCK_REDSTONE_REPEATER_ON); constexpr cBlockRedstoneRepeaterHandler BlockRedstoneRepeaterOnHandler (E_BLOCK_REDSTONE_REPEATER_ON);
constexpr cBlockRedstoneTorchHandler BlockRedstoneTorchOffHandler (E_BLOCK_REDSTONE_TORCH_OFF); constexpr cBlockRedstoneTorchHandler BlockRedstoneTorchOffHandler (E_BLOCK_REDSTONE_TORCH_OFF);
constexpr cBlockRedstoneTorchHandler BlockRedstoneTorchOnHandler (E_BLOCK_REDSTONE_TORCH_ON); constexpr cBlockRedstoneTorchHandler BlockRedstoneTorchOnHandler (E_BLOCK_REDSTONE_TORCH_ON);
constexpr cBlockRedstoneHandler BlockRedstoneWireHandler (E_BLOCK_REDSTONE_WIRE); constexpr cBlockRedstoneWireHandler BlockRedstoneWireHandler (E_BLOCK_REDSTONE_WIRE);
constexpr cBlockCommandBlockHandler BlockRepeatingCommandBlockHandler (E_BLOCK_REPEATING_COMMAND_BLOCK); constexpr cBlockCommandBlockHandler BlockRepeatingCommandBlockHandler (E_BLOCK_REPEATING_COMMAND_BLOCK);
constexpr cBlockSandHandler BlockSandHandler (E_BLOCK_SAND); constexpr cBlockSandHandler BlockSandHandler (E_BLOCK_SAND);
constexpr cDefaultBlockHandler BlockSandstoneHandler (E_BLOCK_SANDSTONE); constexpr cDefaultBlockHandler BlockSandstoneHandler (E_BLOCK_SANDSTONE);
@ -425,15 +425,15 @@ namespace
constexpr cBlockSlabHandler BlockStoneSlabHandler (E_BLOCK_STONE_SLAB); constexpr cBlockSlabHandler BlockStoneSlabHandler (E_BLOCK_STONE_SLAB);
constexpr cDefaultBlockHandler BlockStructureBlockHandler (E_BLOCK_STRUCTURE_BLOCK); constexpr cDefaultBlockHandler BlockStructureBlockHandler (E_BLOCK_STRUCTURE_BLOCK);
constexpr cDefaultBlockHandler BlockStructureVoidHandler (E_BLOCK_STRUCTURE_VOID); constexpr cDefaultBlockHandler BlockStructureVoidHandler (E_BLOCK_STRUCTURE_VOID);
constexpr cBlockSugarcaneHandler BlockSugarcaneHandler (E_BLOCK_SUGARCANE); constexpr cBlockSugarCaneHandler BlockSugarCaneHandler (E_BLOCK_SUGARCANE);
constexpr cBlockTallGrassHandler BlockTallGrassHandler (E_BLOCK_TALL_GRASS); constexpr cBlockTallGrassHandler BlockTallGrassHandler (E_BLOCK_TALL_GRASS);
constexpr cBlockTNTHandler BlockTntHandler (E_BLOCK_TNT); constexpr cBlockTNTHandler BlockTNTHandler (E_BLOCK_TNT);
constexpr cBlockTorchHandler BlockTorchHandler (E_BLOCK_TORCH); constexpr cBlockTorchHandler BlockTorchHandler (E_BLOCK_TORCH);
constexpr cBlockTrapdoorHandler BlockTrapdoorHandler (E_BLOCK_TRAPDOOR); constexpr cBlockTrapdoorHandler BlockTrapdoorHandler (E_BLOCK_TRAPDOOR);
constexpr cBlockChestHandler BlockTrappedChestHandler (E_BLOCK_TRAPPED_CHEST); constexpr cBlockChestHandler BlockTrappedChestHandler (E_BLOCK_TRAPPED_CHEST);
constexpr cBlockTripwireHandler BlockTripwireHandler (E_BLOCK_TRIPWIRE); constexpr cBlockTripwireHandler BlockTripwireHandler (E_BLOCK_TRIPWIRE);
constexpr cBlockTripwireHookHandler BlockTripwireHookHandler (E_BLOCK_TRIPWIRE_HOOK); constexpr cBlockTripwireHookHandler BlockTripwireHookHandler (E_BLOCK_TRIPWIRE_HOOK);
constexpr cBlockVineHandler BlockVinesHandler (E_BLOCK_VINES); constexpr cBlockVinesHandler BlockVinesHandler (E_BLOCK_VINES);
constexpr cBlockBannerHandler BlockWallBannerHandler (E_BLOCK_WALL_BANNER); constexpr cBlockBannerHandler BlockWallBannerHandler (E_BLOCK_WALL_BANNER);
constexpr cBlockWallSignHandler BlockWallsignHandler (E_BLOCK_WALLSIGN); constexpr cBlockWallSignHandler BlockWallsignHandler (E_BLOCK_WALLSIGN);
constexpr cBlockWaterHandler BlockWaterHandler (E_BLOCK_WATER); constexpr cBlockWaterHandler BlockWaterHandler (E_BLOCK_WATER);
@ -655,14 +655,14 @@ const cBlockHandler & cBlockHandler::For(BLOCKTYPE a_BlockType)
case E_BLOCK_BIRCH_WOOD_STAIRS: return BlockBirchWoodStairsHandler; case E_BLOCK_BIRCH_WOOD_STAIRS: return BlockBirchWoodStairsHandler;
case E_BLOCK_BLACK_GLAZED_TERRACOTTA: return BlockBlackGlazedTerracottaHandler; case E_BLOCK_BLACK_GLAZED_TERRACOTTA: return BlockBlackGlazedTerracottaHandler;
case E_BLOCK_BLACK_SHULKER_BOX: return BlockBlackShulkerBoxHandler; case E_BLOCK_BLACK_SHULKER_BOX: return BlockBlackShulkerBoxHandler;
case E_BLOCK_BLOCK_OF_COAL: return BlockBlockOfCoalHandler; case E_BLOCK_BLOCK_OF_COAL: return BlockCoalBlockHandler;
case E_BLOCK_BLOCK_OF_REDSTONE: return BlockBlockOfRedstoneHandler; case E_BLOCK_BLOCK_OF_REDSTONE: return BlockRedstoneBlockHandler;
case E_BLOCK_BLUE_GLAZED_TERRACOTTA: return BlockBlueGlazedTerracottaHandler; case E_BLOCK_BLUE_GLAZED_TERRACOTTA: return BlockBlueGlazedTerracottaHandler;
case E_BLOCK_BLUE_SHULKER_BOX: return BlockBlueShulkerBoxHandler; case E_BLOCK_BLUE_SHULKER_BOX: return BlockBlueShulkerBoxHandler;
case E_BLOCK_BONE_BLOCK: return BlockBoneBlockHandler; case E_BLOCK_BONE_BLOCK: return BlockBoneBlockHandler;
case E_BLOCK_BOOKCASE: return BlockBookcaseHandler; case E_BLOCK_BOOKCASE: return BlockBookcaseHandler;
case E_BLOCK_BREWING_STAND: return BlockBrewingStandHandler; case E_BLOCK_BREWING_STAND: return BlockBrewingStandHandler;
case E_BLOCK_BRICK: return BlockBrickHandler; case E_BLOCK_BRICK: return BlockBricksHandler;
case E_BLOCK_BRICK_STAIRS: return BlockBrickStairsHandler; case E_BLOCK_BRICK_STAIRS: return BlockBrickStairsHandler;
case E_BLOCK_BROWN_GLAZED_TERRACOTTA: return BlockBrownGlazedTerracottaHandler; case E_BLOCK_BROWN_GLAZED_TERRACOTTA: return BlockBrownGlazedTerracottaHandler;
case E_BLOCK_BROWN_MUSHROOM: return BlockBrownMushroomHandler; case E_BLOCK_BROWN_MUSHROOM: return BlockBrownMushroomHandler;
@ -779,7 +779,7 @@ const cBlockHandler & cBlockHandler::For(BLOCKTYPE a_BlockType)
case E_BLOCK_MOSSY_COBBLESTONE: return BlockMossyCobblestoneHandler; case E_BLOCK_MOSSY_COBBLESTONE: return BlockMossyCobblestoneHandler;
case E_BLOCK_MYCELIUM: return BlockMyceliumHandler; case E_BLOCK_MYCELIUM: return BlockMyceliumHandler;
case E_BLOCK_NETHERRACK: return BlockNetherrackHandler; case E_BLOCK_NETHERRACK: return BlockNetherrackHandler;
case E_BLOCK_NETHER_BRICK: return BlockNetherBrickHandler; case E_BLOCK_NETHER_BRICK: return BlockNetherBricksHandler;
case E_BLOCK_NETHER_BRICK_FENCE: return BlockNetherBrickFenceHandler; case E_BLOCK_NETHER_BRICK_FENCE: return BlockNetherBrickFenceHandler;
case E_BLOCK_NETHER_BRICK_STAIRS: return BlockNetherBrickStairsHandler; case E_BLOCK_NETHER_BRICK_STAIRS: return BlockNetherBrickStairsHandler;
case E_BLOCK_NETHER_PORTAL: return BlockNetherPortalHandler; case E_BLOCK_NETHER_PORTAL: return BlockNetherPortalHandler;
@ -829,7 +829,7 @@ const cBlockHandler & cBlockHandler::For(BLOCKTYPE a_BlockType)
case E_BLOCK_REDSTONE_WIRE: return BlockRedstoneWireHandler; case E_BLOCK_REDSTONE_WIRE: return BlockRedstoneWireHandler;
case E_BLOCK_RED_GLAZED_TERRACOTTA: return BlockRedGlazedTerracottaHandler; case E_BLOCK_RED_GLAZED_TERRACOTTA: return BlockRedGlazedTerracottaHandler;
case E_BLOCK_RED_MUSHROOM: return BlockRedMushroomHandler; case E_BLOCK_RED_MUSHROOM: return BlockRedMushroomHandler;
case E_BLOCK_RED_NETHER_BRICK: return BlockRedNetherBrickHandler; case E_BLOCK_RED_NETHER_BRICK: return BlockRedNetherBricksHandler;
case E_BLOCK_RED_ROSE: return BlockRedRoseHandler; case E_BLOCK_RED_ROSE: return BlockRedRoseHandler;
case E_BLOCK_RED_SANDSTONE: return BlockRedSandstoneHandler; case E_BLOCK_RED_SANDSTONE: return BlockRedSandstoneHandler;
case E_BLOCK_RED_SANDSTONE_SLAB: return BlockRedSandstoneSlabHandler; case E_BLOCK_RED_SANDSTONE_SLAB: return BlockRedSandstoneSlabHandler;
@ -867,9 +867,9 @@ const cBlockHandler & cBlockHandler::For(BLOCKTYPE a_BlockType)
case E_BLOCK_STONE_SLAB: return BlockStoneSlabHandler; case E_BLOCK_STONE_SLAB: return BlockStoneSlabHandler;
case E_BLOCK_STRUCTURE_BLOCK: return BlockStructureBlockHandler; case E_BLOCK_STRUCTURE_BLOCK: return BlockStructureBlockHandler;
case E_BLOCK_STRUCTURE_VOID: return BlockStructureVoidHandler; case E_BLOCK_STRUCTURE_VOID: return BlockStructureVoidHandler;
case E_BLOCK_SUGARCANE: return BlockSugarcaneHandler; case E_BLOCK_SUGARCANE: return BlockSugarCaneHandler;
case E_BLOCK_TALL_GRASS: return BlockTallGrassHandler; case E_BLOCK_TALL_GRASS: return BlockTallGrassHandler;
case E_BLOCK_TNT: return BlockTntHandler; case E_BLOCK_TNT: return BlockTNTHandler;
case E_BLOCK_TORCH: return BlockTorchHandler; case E_BLOCK_TORCH: return BlockTorchHandler;
case E_BLOCK_TRAPDOOR: return BlockTrapdoorHandler; case E_BLOCK_TRAPDOOR: return BlockTrapdoorHandler;
case E_BLOCK_TRAPPED_CHEST: return BlockTrappedChestHandler; case E_BLOCK_TRAPPED_CHEST: return BlockTrappedChestHandler;

View File

@ -8,7 +8,7 @@
class cBlockRedstoneHandler final : class cBlockRedstoneWireHandler final :
public cBlockHandler public cBlockHandler
{ {
using Super = cBlockHandler; using Super = cBlockHandler;

View File

@ -7,7 +7,7 @@
class cBlockSugarcaneHandler final : class cBlockSugarCaneHandler final :
public cBlockPlant<false> public cBlockPlant<false>
{ {
using Super = cBlockPlant<false>; using Super = cBlockPlant<false>;

View File

@ -6,7 +6,7 @@
class cBlockVineHandler final : class cBlockVinesHandler final :
public cBlockHandler public cBlockHandler
{ {
using Super = cBlockHandler; using Super = cBlockHandler;

View File

@ -34,7 +34,7 @@ target_sources(
BlockDoor.h BlockDoor.h
BlockDropSpenser.h BlockDropSpenser.h
BlockEnchantingTable.h BlockEnchantingTable.h
BlockEnderchest.h BlockEnderChest.h
BlockEndPortalFrame.h BlockEndPortalFrame.h
BlockEntity.h BlockEntity.h
BlockFarmland.h BlockFarmland.h
@ -80,7 +80,7 @@ target_sources(
BlockPumpkin.h BlockPumpkin.h
BlockQuartz.h BlockQuartz.h
BlockRail.h BlockRail.h
BlockRedstone.h BlockRedstoneWire.h
BlockRedstoneLamp.h BlockRedstoneLamp.h
BlockRedstoneOre.h BlockRedstoneOre.h
BlockRedstoneRepeater.h BlockRedstoneRepeater.h
@ -96,14 +96,14 @@ target_sources(
BlockStairs.h BlockStairs.h
BlockStems.h BlockStems.h
BlockStone.h BlockStone.h
BlockSugarcane.h BlockSugarCane.h
BlockTNT.h BlockTNT.h
BlockTallGrass.h BlockTallGrass.h
BlockTorch.h BlockTorch.h
BlockTrapdoor.h BlockTrapdoor.h
BlockTripwire.h BlockTripwire.h
BlockTripwireHook.h BlockTripwireHook.h
BlockVine.h BlockVines.h
BlockWallSign.h BlockWallSign.h
BlockWorkbench.h BlockWorkbench.h
BroadcastInterface.h BroadcastInterface.h

View File

@ -27,7 +27,7 @@ target_sources(
ItemEnchantingTable.h ItemEnchantingTable.h
ItemEndCrystal.h ItemEndCrystal.h
ItemEndPortalFrame.h ItemEndPortalFrame.h
ItemEnderchest.h ItemEnderChest.h
ItemEyeOfEnder.h ItemEyeOfEnder.h
ItemFenceGate.h ItemFenceGate.h
ItemFishingRod.h ItemFishingRod.h
@ -83,6 +83,6 @@ target_sources(
ItemTorch.h ItemTorch.h
ItemTrapdoor.h ItemTrapdoor.h
ItemTripwireHook.h ItemTripwireHook.h
ItemVine.h ItemVines.h
SimplePlaceableItemHandler.h SimplePlaceableItemHandler.h
) )

View File

@ -15,13 +15,7 @@ class cItemComparatorHandler final:
public: public:
cItemComparatorHandler(int a_ItemType): using Super::Super;
cItemHandler(a_ItemType)
{
}
virtual bool CommitPlacement(cPlayer & a_Player, const cItem & a_HeldItem, const Vector3i a_PlacePosition, const eBlockFace a_ClickedBlockFace, const Vector3i a_CursorPosition) const override virtual bool CommitPlacement(cPlayer & a_Player, const cItem & a_HeldItem, const Vector3i a_PlacePosition, const eBlockFace a_ClickedBlockFace, const Vector3i a_CursorPosition) const override
@ -30,15 +24,8 @@ public:
} }
virtual bool IsPlaceable(void) const override virtual bool IsPlaceable(void) const override
{ {
return true; return true;
} }
} ; } ;

View File

@ -1,9 +1,16 @@
#pragma once
#include "ItemHandler.h" #include "ItemHandler.h"
class cDefaultItemHandler final : class cDefaultItemHandler final :
public cItemHandler public cItemHandler
{ {
public: public:
using cItemHandler::cItemHandler; using cItemHandler::cItemHandler;
}; };

View File

@ -2,13 +2,13 @@
#pragma once #pragma once
#include "ItemHandler.h" #include "ItemHandler.h"
#include "Blocks/BlockEnderchest.h" #include "Blocks/BlockEnderChest.h"
class cItemEnderchestHandler final : class cItemEnderChestHandler final :
public cItemHandler public cItemHandler
{ {
using Super = cItemHandler; using Super = cItemHandler;
@ -21,6 +21,6 @@ private:
virtual bool CommitPlacement(cPlayer & a_Player, const cItem & a_HeldItem, const Vector3i a_PlacePosition, const eBlockFace a_ClickedBlockFace, const Vector3i a_CursorPosition) const override virtual bool CommitPlacement(cPlayer & a_Player, const cItem & a_HeldItem, const Vector3i a_PlacePosition, const eBlockFace a_ClickedBlockFace, const Vector3i a_CursorPosition) const override
{ {
return a_Player.PlaceBlock(a_PlacePosition, E_BLOCK_ENDER_CHEST, cBlockEnderchestHandler::YawToMetaData(a_Player.GetYaw())); return a_Player.PlaceBlock(a_PlacePosition, E_BLOCK_ENDER_CHEST, cBlockEnderChestHandler::YawToMetaData(a_Player.GetYaw()));
} }
}; };

View File

@ -31,7 +31,7 @@
#include "ItemEmptyMap.h" #include "ItemEmptyMap.h"
#include "ItemEnchantingTable.h" #include "ItemEnchantingTable.h"
#include "ItemEndCrystal.h" #include "ItemEndCrystal.h"
#include "ItemEnderchest.h" #include "ItemEnderChest.h"
#include "ItemEndPortalFrame.h" #include "ItemEndPortalFrame.h"
#include "ItemEyeOfEnder.h" #include "ItemEyeOfEnder.h"
#include "ItemFenceGate.h" #include "ItemFenceGate.h"
@ -87,7 +87,7 @@
#include "ItemTorch.h" #include "ItemTorch.h"
#include "ItemTrapdoor.h" #include "ItemTrapdoor.h"
#include "ItemTripwireHook.h" #include "ItemTripwireHook.h"
#include "ItemVine.h" #include "ItemVines.h"
#include "../Blocks/BlockHandler.h" #include "../Blocks/BlockHandler.h"
#include "SimplePlaceableItemHandler.h" #include "SimplePlaceableItemHandler.h"
@ -117,7 +117,7 @@ namespace
constexpr cItemBannerHandler ItemBannerHandler (E_ITEM_BANNER); constexpr cItemBannerHandler ItemBannerHandler (E_ITEM_BANNER);
constexpr cDefaultItemHandler ItemBarrierHandler (E_BLOCK_BARRIER); constexpr cDefaultItemHandler ItemBarrierHandler (E_BLOCK_BARRIER);
constexpr cDefaultItemHandler ItemBeaconHandler (E_BLOCK_BEACON); constexpr cDefaultItemHandler ItemBeaconHandler (E_BLOCK_BEACON);
constexpr cItemBedHandler ItemBedBlockHandler (E_BLOCK_BED); constexpr cDefaultItemHandler ItemBedBlockHandler (E_BLOCK_BED);
constexpr cItemBedHandler ItemBedHandler (E_ITEM_BED); constexpr cItemBedHandler ItemBedHandler (E_ITEM_BED);
constexpr cDefaultItemHandler ItemBedrockHandler (E_BLOCK_BEDROCK); constexpr cDefaultItemHandler ItemBedrockHandler (E_BLOCK_BEDROCK);
constexpr cItemSimpleFoodHandler ItemBeetrootHandler (E_ITEM_BEETROOT, cItemHandler::FoodInfo(1, 1.2)); constexpr cItemSimpleFoodHandler ItemBeetrootHandler (E_ITEM_BEETROOT, cItemHandler::FoodInfo(1, 1.2));
@ -170,7 +170,7 @@ namespace
constexpr cDefaultItemHandler ItemChainCommandBlockHandler (E_BLOCK_CHAIN_COMMAND_BLOCK); constexpr cDefaultItemHandler ItemChainCommandBlockHandler (E_BLOCK_CHAIN_COMMAND_BLOCK);
constexpr cItemArmorHandler ItemChainHelmetHandler (E_ITEM_CHAIN_HELMET); constexpr cItemArmorHandler ItemChainHelmetHandler (E_ITEM_CHAIN_HELMET);
constexpr cItemArmorHandler ItemChainLeggingsHandler (E_ITEM_CHAIN_LEGGINGS); constexpr cItemArmorHandler ItemChainLeggingsHandler (E_ITEM_CHAIN_LEGGINGS);
constexpr cDefaultItemHandler ItemChestBlockHandler (E_BLOCK_CHEST); constexpr cItemChestHandler ItemChestHandler (E_BLOCK_CHEST);
constexpr cItemMinecartHandler ItemChestMinecartHandler (E_ITEM_CHEST_MINECART); constexpr cItemMinecartHandler ItemChestMinecartHandler (E_ITEM_CHEST_MINECART);
constexpr cDefaultItemHandler ItemChirpDiscHandler (E_ITEM_CHIRP_DISC); constexpr cDefaultItemHandler ItemChirpDiscHandler (E_ITEM_CHIRP_DISC);
constexpr cDefaultItemHandler ItemChorusFlowerHandler (E_BLOCK_CHORUS_FLOWER); constexpr cDefaultItemHandler ItemChorusFlowerHandler (E_BLOCK_CHORUS_FLOWER);
@ -188,7 +188,7 @@ namespace
constexpr cDefaultItemHandler ItemCobwebHandler (E_BLOCK_COBWEB); constexpr cDefaultItemHandler ItemCobwebHandler (E_BLOCK_COBWEB);
constexpr cDefaultItemHandler ItemCocoaPodHandler (E_BLOCK_COCOA_POD); constexpr cDefaultItemHandler ItemCocoaPodHandler (E_BLOCK_COCOA_POD);
constexpr cDefaultItemHandler ItemCommandBlockHandler (E_BLOCK_COMMAND_BLOCK); constexpr cDefaultItemHandler ItemCommandBlockHandler (E_BLOCK_COMMAND_BLOCK);
constexpr cDefaultItemHandler ItemComparatorHandler (E_ITEM_COMPARATOR); constexpr cItemComparatorHandler ItemComparatorHandler (E_ITEM_COMPARATOR);
constexpr cDefaultItemHandler ItemCompassHandler (E_ITEM_COMPASS); constexpr cDefaultItemHandler ItemCompassHandler (E_ITEM_COMPASS);
constexpr cDefaultItemHandler ItemConcreteBlockHandler (E_BLOCK_CONCRETE); constexpr cDefaultItemHandler ItemConcreteBlockHandler (E_BLOCK_CONCRETE);
constexpr cDefaultItemHandler ItemConcretePowderHandler (E_BLOCK_CONCRETE_POWDER); constexpr cDefaultItemHandler ItemConcretePowderHandler (E_BLOCK_CONCRETE_POWDER);
@ -250,7 +250,7 @@ namespace
constexpr cDefaultItemHandler ItemEndRodHandler (E_BLOCK_END_ROD); constexpr cDefaultItemHandler ItemEndRodHandler (E_BLOCK_END_ROD);
constexpr cDefaultItemHandler ItemEndStoneBlockHandler (E_BLOCK_END_STONE); constexpr cDefaultItemHandler ItemEndStoneBlockHandler (E_BLOCK_END_STONE);
constexpr cItemEnderPearlHandler ItemEnderPearlHandler (E_ITEM_ENDER_PEARL); constexpr cItemEnderPearlHandler ItemEnderPearlHandler (E_ITEM_ENDER_PEARL);
constexpr cItemEnderchestHandler ItemEnderchestHandler (E_BLOCK_ENDER_CHEST); constexpr cItemEnderChestHandler ItemEnderChestHandler (E_BLOCK_ENDER_CHEST);
constexpr cItemEyeOfEnderHandler ItemEyeOfEnderHandler (E_ITEM_EYE_OF_ENDER); constexpr cItemEyeOfEnderHandler ItemEyeOfEnderHandler (E_ITEM_EYE_OF_ENDER);
constexpr cDefaultItemHandler ItemFarDiscHandler (E_ITEM_FAR_DISC); constexpr cDefaultItemHandler ItemFarDiscHandler (E_ITEM_FAR_DISC);
constexpr cDefaultItemHandler ItemFarmlandHandler (E_BLOCK_FARMLAND); constexpr cDefaultItemHandler ItemFarmlandHandler (E_BLOCK_FARMLAND);
@ -272,7 +272,7 @@ namespace
constexpr cDefaultItemHandler ItemGhastTearHandler (E_ITEM_GHAST_TEAR); constexpr cDefaultItemHandler ItemGhastTearHandler (E_ITEM_GHAST_TEAR);
constexpr cItemBottleHandler ItemGlassBottleHandler (E_ITEM_GLASS_BOTTLE); constexpr cItemBottleHandler ItemGlassBottleHandler (E_ITEM_GLASS_BOTTLE);
constexpr cDefaultItemHandler ItemGlassHandler (E_BLOCK_GLASS); constexpr cDefaultItemHandler ItemGlassHandler (E_BLOCK_GLASS);
constexpr cDefaultItemHandler ItemGlassPaneBlockHandler (E_BLOCK_GLASS_PANE); constexpr cDefaultItemHandler ItemGlassPaneHandler (E_BLOCK_GLASS_PANE);
constexpr cDefaultItemHandler ItemGlisteringMelonHandler (E_ITEM_GLISTERING_MELON); constexpr cDefaultItemHandler ItemGlisteringMelonHandler (E_ITEM_GLISTERING_MELON);
constexpr cDefaultItemHandler ItemGlowstoneBlockHandler (E_BLOCK_GLOWSTONE); constexpr cDefaultItemHandler ItemGlowstoneBlockHandler (E_BLOCK_GLOWSTONE);
constexpr cDefaultItemHandler ItemGlowstoneDustHandler (E_ITEM_GLOWSTONE_DUST); constexpr cDefaultItemHandler ItemGlowstoneDustHandler (E_ITEM_GLOWSTONE_DUST);
@ -302,9 +302,9 @@ namespace
constexpr cDefaultItemHandler ItemGunpowderHandler (E_ITEM_GUNPOWDER); constexpr cDefaultItemHandler ItemGunpowderHandler (E_ITEM_GUNPOWDER);
constexpr cDefaultItemHandler ItemHardenedClayHandler (E_BLOCK_HARDENED_CLAY); constexpr cDefaultItemHandler ItemHardenedClayHandler (E_BLOCK_HARDENED_CLAY);
constexpr cItemSidewaysHandler ItemHayBaleHandler (E_BLOCK_HAY_BALE); constexpr cItemSidewaysHandler ItemHayBaleHandler (E_BLOCK_HAY_BALE);
constexpr cItemMobHeadHandler ItemHeadBlockHandler (E_BLOCK_HEAD); constexpr cDefaultItemHandler ItemHeadBlockHandler (E_BLOCK_HEAD);
constexpr cItemMobHeadHandler ItemHeadHandler (E_ITEM_HEAD); constexpr cItemMobHeadHandler ItemHeadHandler (E_ITEM_HEAD);
constexpr cDefaultItemHandler ItemHeavyWeightedPressurePlateBlockHandler (E_BLOCK_HEAVY_WEIGHTED_PRESSURE_PLATE); constexpr cDefaultItemHandler ItemHeavyWeightedPressurePlateHandler (E_BLOCK_HEAVY_WEIGHTED_PRESSURE_PLATE);
constexpr cItemHopperHandler ItemHopperHandler (E_BLOCK_HOPPER); constexpr cItemHopperHandler ItemHopperHandler (E_BLOCK_HOPPER);
constexpr cDefaultItemHandler ItemHugeBrownMushroomBlockHandler (E_BLOCK_HUGE_BROWN_MUSHROOM); constexpr cDefaultItemHandler ItemHugeBrownMushroomBlockHandler (E_BLOCK_HUGE_BROWN_MUSHROOM);
constexpr cDefaultItemHandler ItemHugeRedMushroomBlockHandler (E_BLOCK_HUGE_RED_MUSHROOM); constexpr cDefaultItemHandler ItemHugeRedMushroomBlockHandler (E_BLOCK_HUGE_RED_MUSHROOM);
@ -355,7 +355,7 @@ namespace
constexpr cDefaultItemHandler ItemLightBlueShulkerBoxHandler (E_BLOCK_LIGHT_BLUE_SHULKER_BOX); constexpr cDefaultItemHandler ItemLightBlueShulkerBoxHandler (E_BLOCK_LIGHT_BLUE_SHULKER_BOX);
constexpr cItemGlazedTerracottaHandler ItemLightGrayGlazedTerracottaHandler (E_BLOCK_LIGHT_GRAY_GLAZED_TERRACOTTA); constexpr cItemGlazedTerracottaHandler ItemLightGrayGlazedTerracottaHandler (E_BLOCK_LIGHT_GRAY_GLAZED_TERRACOTTA);
constexpr cDefaultItemHandler ItemLightGrayShulkerBoxHandler (E_BLOCK_LIGHT_GRAY_SHULKER_BOX); constexpr cDefaultItemHandler ItemLightGrayShulkerBoxHandler (E_BLOCK_LIGHT_GRAY_SHULKER_BOX);
constexpr cDefaultItemHandler ItemLightWeightedPressurePlateBlockHandler (E_BLOCK_LIGHT_WEIGHTED_PRESSURE_PLATE); constexpr cDefaultItemHandler ItemLightWeightedPressurePlateHandler (E_BLOCK_LIGHT_WEIGHTED_PRESSURE_PLATE);
constexpr cItemLilypadHandler ItemLilypadHandler (E_BLOCK_LILY_PAD); constexpr cItemLilypadHandler ItemLilypadHandler (E_BLOCK_LILY_PAD);
constexpr cItemGlazedTerracottaHandler ItemLimeGlazedTerracottaHandler (E_BLOCK_LIME_GLAZED_TERRACOTTA); constexpr cItemGlazedTerracottaHandler ItemLimeGlazedTerracottaHandler (E_BLOCK_LIME_GLAZED_TERRACOTTA);
constexpr cDefaultItemHandler ItemLimeShulkerBoxHandler (E_BLOCK_LIME_SHULKER_BOX); constexpr cDefaultItemHandler ItemLimeShulkerBoxHandler (E_BLOCK_LIME_SHULKER_BOX);
@ -383,16 +383,16 @@ namespace
constexpr cItemSoupHandler ItemMushroomSoupHandler (E_ITEM_MUSHROOM_SOUP, cItemHandler::FoodInfo(6, 7.2)); constexpr cItemSoupHandler ItemMushroomSoupHandler (E_ITEM_MUSHROOM_SOUP, cItemHandler::FoodInfo(6, 7.2));
constexpr cDefaultItemHandler ItemMyceliumHandler (E_BLOCK_MYCELIUM); constexpr cDefaultItemHandler ItemMyceliumHandler (E_BLOCK_MYCELIUM);
constexpr cDefaultItemHandler ItemNameTagHandler (E_ITEM_NAME_TAG); constexpr cDefaultItemHandler ItemNameTagHandler (E_ITEM_NAME_TAG);
constexpr cDefaultItemHandler ItemNetherBrickBlockHandler (E_BLOCK_NETHER_BRICK); constexpr cDefaultItemHandler ItemNetherBricksHandler (E_BLOCK_NETHER_BRICK);
constexpr cDefaultItemHandler ItemNetherBrickFenceBlockHandler (E_BLOCK_NETHER_BRICK_FENCE); constexpr cDefaultItemHandler ItemNetherBrickFenceHandler (E_BLOCK_NETHER_BRICK_FENCE);
constexpr cDefaultItemHandler ItemNetherBrickHandler (E_ITEM_NETHER_BRICK); constexpr cDefaultItemHandler ItemNetherBrickHandler (E_ITEM_NETHER_BRICK);
constexpr cItemStairsHandler ItemNetherBrickStairsHandler (E_BLOCK_NETHER_BRICK_STAIRS); constexpr cItemStairsHandler ItemNetherBrickStairsHandler (E_BLOCK_NETHER_BRICK_STAIRS);
constexpr cDefaultItemHandler ItemNetherPortalBlockHandler (E_BLOCK_NETHER_PORTAL); constexpr cDefaultItemHandler ItemNetherPortalBlockHandler (E_BLOCK_NETHER_PORTAL);
constexpr cDefaultItemHandler ItemNetherQuartzHandler (E_ITEM_NETHER_QUARTZ); constexpr cDefaultItemHandler ItemNetherQuartzHandler (E_ITEM_NETHER_QUARTZ);
constexpr cDefaultItemHandler ItemNetherQuartzOreHandler (E_BLOCK_NETHER_QUARTZ_ORE); constexpr cDefaultItemHandler ItemNetherQuartzOreHandler (E_BLOCK_NETHER_QUARTZ_ORE);
constexpr cDefaultItemHandler ItemNetherStarHandler (E_ITEM_NETHER_STAR); constexpr cDefaultItemHandler ItemNetherStarHandler (E_ITEM_NETHER_STAR);
constexpr cDefaultItemHandler ItemNetherWartBlockBlockHandler (E_BLOCK_NETHER_WART_BLOCK); constexpr cDefaultItemHandler ItemNetherWartBlockHandler (E_BLOCK_NETHER_WART_BLOCK);
constexpr cDefaultItemHandler ItemNetherWartBlockHandler (E_BLOCK_NETHER_WART); constexpr cDefaultItemHandler ItemNetherWartTechnicalBlockHandler (E_BLOCK_NETHER_WART);
constexpr cItemNetherWartHandler ItemNetherWartHandler (E_ITEM_NETHER_WART); constexpr cItemNetherWartHandler ItemNetherWartHandler (E_ITEM_NETHER_WART);
constexpr cDefaultItemHandler ItemNetherrackHandler (E_BLOCK_NETHERRACK); constexpr cDefaultItemHandler ItemNetherrackHandler (E_BLOCK_NETHERRACK);
constexpr cItemLeavesHandler ItemNewLeavesHandler (E_BLOCK_NEW_LEAVES); constexpr cItemLeavesHandler ItemNewLeavesHandler (E_BLOCK_NEW_LEAVES);
@ -519,26 +519,26 @@ namespace
constexpr cDefaultItemHandler ItemStoneHandler (E_BLOCK_STONE); constexpr cDefaultItemHandler ItemStoneHandler (E_BLOCK_STONE);
constexpr cItemHoeHandler ItemStoneHoeHandler (E_ITEM_STONE_HOE); constexpr cItemHoeHandler ItemStoneHoeHandler (E_ITEM_STONE_HOE);
constexpr cItemPickaxeHandler ItemStonePickaxeHandler (E_ITEM_STONE_PICKAXE); constexpr cItemPickaxeHandler ItemStonePickaxeHandler (E_ITEM_STONE_PICKAXE);
constexpr cDefaultItemHandler ItemStonePressurePlateBlockHandler (E_BLOCK_STONE_PRESSURE_PLATE); constexpr cDefaultItemHandler ItemStonePressurePlateHandler (E_BLOCK_STONE_PRESSURE_PLATE);
constexpr cItemShovelHandler ItemStoneShovelHandler (E_ITEM_STONE_SHOVEL); constexpr cItemShovelHandler ItemStoneShovelHandler (E_ITEM_STONE_SHOVEL);
constexpr cItemSlabHandler ItemStoneSlabHandler (E_BLOCK_STONE_SLAB); constexpr cItemSlabHandler ItemStoneSlabHandler (E_BLOCK_STONE_SLAB);
constexpr cItemSwordHandler ItemStoneSwordHandler (E_ITEM_STONE_SWORD); constexpr cItemSwordHandler ItemStoneSwordHandler (E_ITEM_STONE_SWORD);
constexpr cDefaultItemHandler ItemStradDiscHandler (E_ITEM_STRAD_DISC); constexpr cDefaultItemHandler ItemStradDiscHandler (E_ITEM_STRAD_DISC);
constexpr cDefaultItemHandler ItemStructureBlockHandler (E_BLOCK_STRUCTURE_BLOCK); constexpr cDefaultItemHandler ItemStructureBlockHandler (E_BLOCK_STRUCTURE_BLOCK);
constexpr cDefaultItemHandler ItemStructureVoidHandler (E_BLOCK_STRUCTURE_VOID); constexpr cDefaultItemHandler ItemStructureVoidHandler (E_BLOCK_STRUCTURE_VOID);
constexpr cSimplePlaceableItemHandler ItemSugarCaneHandler (E_BLOCK_SUGARCANE, E_BLOCK_SUGARCANE); constexpr cDefaultItemHandler ItemSugarCaneBlockHandler (E_BLOCK_SUGARCANE);
constexpr cSimplePlaceableItemHandler ItemSugarCaneHandler (E_ITEM_SUGARCANE, E_BLOCK_SUGARCANE);
constexpr cDefaultItemHandler ItemSugarHandler (E_ITEM_SUGAR); constexpr cDefaultItemHandler ItemSugarHandler (E_ITEM_SUGAR);
constexpr cSimplePlaceableItemHandler ItemSugarcaneHandler (E_ITEM_SUGARCANE, E_BLOCK_SUGARCANE); constexpr cDefaultItemHandler ItemTNTHandler (E_BLOCK_TNT);
constexpr cDefaultItemHandler ItemTNTBlockHandler (E_BLOCK_TNT);
constexpr cDefaultItemHandler ItemTallGrassHandler (E_BLOCK_TALL_GRASS); constexpr cDefaultItemHandler ItemTallGrassHandler (E_BLOCK_TALL_GRASS);
constexpr cDefaultItemHandler ItemTerracottaHandler (E_BLOCK_TERRACOTTA); constexpr cDefaultItemHandler ItemTerracottaHandler (E_BLOCK_TERRACOTTA);
constexpr cDefaultItemHandler ItemTippedArrowHandler (E_ITEM_TIPPED_ARROW); constexpr cDefaultItemHandler ItemTippedArrowHandler (E_ITEM_TIPPED_ARROW);
constexpr cItemTorchHandler ItemTorchBlockHandler (E_BLOCK_TORCH); constexpr cDefaultItemHandler ItemTorchBlockHandler (E_BLOCK_TORCH);
constexpr cDefaultItemHandler ItemTotemOfUndyingHandler (E_ITEM_TOTEM_OF_UNDYING); constexpr cDefaultItemHandler ItemTotemOfUndyingHandler (E_ITEM_TOTEM_OF_UNDYING);
constexpr cItemChestHandler ItemTrappedChestHandler (E_BLOCK_TRAPPED_CHEST); constexpr cItemChestHandler ItemTrappedChestHandler (E_BLOCK_TRAPPED_CHEST);
constexpr cDefaultItemHandler ItemTripwireHandler (E_BLOCK_TRIPWIRE); constexpr cDefaultItemHandler ItemTripwireHandler (E_BLOCK_TRIPWIRE);
constexpr cItemTripwireHookHandler ItemTripwireHookHandler (E_BLOCK_TRIPWIRE_HOOK); constexpr cItemTripwireHookHandler ItemTripwireHookHandler (E_BLOCK_TRIPWIRE_HOOK);
constexpr cItemVineHandler ItemVineHandler (E_BLOCK_VINES); constexpr cItemVinesHandler ItemVinesHandler (E_BLOCK_VINES);
constexpr cDefaultItemHandler ItemWaitDiscHandler (E_ITEM_WAIT_DISC); constexpr cDefaultItemHandler ItemWaitDiscHandler (E_ITEM_WAIT_DISC);
constexpr cDefaultItemHandler ItemWallBannerHandler (E_BLOCK_WALL_BANNER); constexpr cDefaultItemHandler ItemWallBannerHandler (E_BLOCK_WALL_BANNER);
constexpr cDefaultItemHandler ItemWallsignHandler (E_BLOCK_WALLSIGN); constexpr cDefaultItemHandler ItemWallsignHandler (E_BLOCK_WALLSIGN);
@ -552,7 +552,7 @@ namespace
constexpr cItemAxeHandler ItemWoodenAxeHandler (E_ITEM_WOODEN_AXE); constexpr cItemAxeHandler ItemWoodenAxeHandler (E_ITEM_WOODEN_AXE);
constexpr cItemHoeHandler ItemWoodenHoeHandler (E_ITEM_WOODEN_HOE); constexpr cItemHoeHandler ItemWoodenHoeHandler (E_ITEM_WOODEN_HOE);
constexpr cItemPickaxeHandler ItemWoodenPickaxeHandler (E_ITEM_WOODEN_PICKAXE); constexpr cItemPickaxeHandler ItemWoodenPickaxeHandler (E_ITEM_WOODEN_PICKAXE);
constexpr cDefaultItemHandler ItemWoodenPressurePlateBlockHandler (E_BLOCK_WOODEN_PRESSURE_PLATE); constexpr cDefaultItemHandler ItemWoodenPressurePlateHandler (E_BLOCK_WOODEN_PRESSURE_PLATE);
constexpr cItemShovelHandler ItemWoodenShovelHandler (E_ITEM_WOODEN_SHOVEL); constexpr cItemShovelHandler ItemWoodenShovelHandler (E_ITEM_WOODEN_SHOVEL);
constexpr cItemSwordHandler ItemWoodenSwordHandler (E_ITEM_WOODEN_SWORD); constexpr cItemSwordHandler ItemWoodenSwordHandler (E_ITEM_WOODEN_SWORD);
constexpr cItemClothHandler ItemWoolHandler (E_BLOCK_WOOL); constexpr cItemClothHandler ItemWoolHandler (E_BLOCK_WOOL);
@ -608,7 +608,7 @@ const cItemHandler & cItemHandler::For(int a_ItemType)
case E_BLOCK_CARROTS: return ItemCarrotsBlockHandler; case E_BLOCK_CARROTS: return ItemCarrotsBlockHandler;
case E_BLOCK_CAULDRON: return ItemCauldronBlockHandler; case E_BLOCK_CAULDRON: return ItemCauldronBlockHandler;
case E_BLOCK_CHAIN_COMMAND_BLOCK: return ItemChainCommandBlockHandler; case E_BLOCK_CHAIN_COMMAND_BLOCK: return ItemChainCommandBlockHandler;
case E_BLOCK_CHEST: return ItemChestBlockHandler; case E_BLOCK_CHEST: return ItemChestHandler;
case E_BLOCK_CHORUS_FLOWER: return ItemChorusFlowerHandler; case E_BLOCK_CHORUS_FLOWER: return ItemChorusFlowerHandler;
case E_BLOCK_CHORUS_PLANT: return ItemChorusPlantHandler; case E_BLOCK_CHORUS_PLANT: return ItemChorusPlantHandler;
case E_BLOCK_CLAY: return ItemClayBlockHandler; case E_BLOCK_CLAY: return ItemClayBlockHandler;
@ -644,7 +644,7 @@ const cItemHandler & cItemHandler::For(int a_ItemType)
case E_BLOCK_EMERALD_BLOCK: return ItemEmeraldBlockHandler; case E_BLOCK_EMERALD_BLOCK: return ItemEmeraldBlockHandler;
case E_BLOCK_EMERALD_ORE: return ItemEmeraldOreHandler; case E_BLOCK_EMERALD_ORE: return ItemEmeraldOreHandler;
case E_BLOCK_ENCHANTMENT_TABLE: return ItemEnchantingTableHandler; case E_BLOCK_ENCHANTMENT_TABLE: return ItemEnchantingTableHandler;
case E_BLOCK_ENDER_CHEST: return ItemEnderchestHandler; case E_BLOCK_ENDER_CHEST: return ItemEnderChestHandler;
case E_BLOCK_END_BRICKS: return ItemEndBricksHandler; case E_BLOCK_END_BRICKS: return ItemEndBricksHandler;
case E_BLOCK_END_GATEWAY: return ItemEndGatewayHandler; case E_BLOCK_END_GATEWAY: return ItemEndGatewayHandler;
case E_BLOCK_END_PORTAL: return ItemEndPortalBlockHandler; case E_BLOCK_END_PORTAL: return ItemEndPortalBlockHandler;
@ -659,7 +659,7 @@ const cItemHandler & cItemHandler::For(int a_ItemType)
case E_BLOCK_FROSTED_ICE: return ItemFrostedIceHandler; case E_BLOCK_FROSTED_ICE: return ItemFrostedIceHandler;
case E_BLOCK_FURNACE: return ItemFurnaceHandler; case E_BLOCK_FURNACE: return ItemFurnaceHandler;
case E_BLOCK_GLASS: return ItemGlassHandler; case E_BLOCK_GLASS: return ItemGlassHandler;
case E_BLOCK_GLASS_PANE: return ItemGlassPaneBlockHandler; case E_BLOCK_GLASS_PANE: return ItemGlassPaneHandler;
case E_BLOCK_GLOWSTONE: return ItemGlowstoneBlockHandler; case E_BLOCK_GLOWSTONE: return ItemGlowstoneBlockHandler;
case E_BLOCK_GOLD_BLOCK: return ItemGoldBlockHandler; case E_BLOCK_GOLD_BLOCK: return ItemGoldBlockHandler;
case E_BLOCK_GOLD_ORE: return ItemGoldOreHandler; case E_BLOCK_GOLD_ORE: return ItemGoldOreHandler;
@ -673,7 +673,7 @@ const cItemHandler & cItemHandler::For(int a_ItemType)
case E_BLOCK_HARDENED_CLAY: return ItemHardenedClayHandler; case E_BLOCK_HARDENED_CLAY: return ItemHardenedClayHandler;
case E_BLOCK_HAY_BALE: return ItemHayBaleHandler; case E_BLOCK_HAY_BALE: return ItemHayBaleHandler;
case E_BLOCK_HEAD: return ItemHeadBlockHandler; case E_BLOCK_HEAD: return ItemHeadBlockHandler;
case E_BLOCK_HEAVY_WEIGHTED_PRESSURE_PLATE: return ItemHeavyWeightedPressurePlateBlockHandler; case E_BLOCK_HEAVY_WEIGHTED_PRESSURE_PLATE: return ItemHeavyWeightedPressurePlateHandler;
case E_BLOCK_HOPPER: return ItemHopperHandler; case E_BLOCK_HOPPER: return ItemHopperHandler;
case E_BLOCK_HUGE_BROWN_MUSHROOM: return ItemHugeBrownMushroomBlockHandler; case E_BLOCK_HUGE_BROWN_MUSHROOM: return ItemHugeBrownMushroomBlockHandler;
case E_BLOCK_HUGE_RED_MUSHROOM: return ItemHugeRedMushroomBlockHandler; case E_BLOCK_HUGE_RED_MUSHROOM: return ItemHugeRedMushroomBlockHandler;
@ -701,7 +701,7 @@ const cItemHandler & cItemHandler::For(int a_ItemType)
case E_BLOCK_LIGHT_BLUE_SHULKER_BOX: return ItemLightBlueShulkerBoxHandler; case E_BLOCK_LIGHT_BLUE_SHULKER_BOX: return ItemLightBlueShulkerBoxHandler;
case E_BLOCK_LIGHT_GRAY_GLAZED_TERRACOTTA: return ItemLightGrayGlazedTerracottaHandler; case E_BLOCK_LIGHT_GRAY_GLAZED_TERRACOTTA: return ItemLightGrayGlazedTerracottaHandler;
case E_BLOCK_LIGHT_GRAY_SHULKER_BOX: return ItemLightGrayShulkerBoxHandler; case E_BLOCK_LIGHT_GRAY_SHULKER_BOX: return ItemLightGrayShulkerBoxHandler;
case E_BLOCK_LIGHT_WEIGHTED_PRESSURE_PLATE: return ItemLightWeightedPressurePlateBlockHandler; case E_BLOCK_LIGHT_WEIGHTED_PRESSURE_PLATE: return ItemLightWeightedPressurePlateHandler;
case E_BLOCK_LILY_PAD: return ItemLilypadHandler; case E_BLOCK_LILY_PAD: return ItemLilypadHandler;
case E_BLOCK_LIME_GLAZED_TERRACOTTA: return ItemLimeGlazedTerracottaHandler; case E_BLOCK_LIME_GLAZED_TERRACOTTA: return ItemLimeGlazedTerracottaHandler;
case E_BLOCK_LIME_SHULKER_BOX: return ItemLimeShulkerBoxHandler; case E_BLOCK_LIME_SHULKER_BOX: return ItemLimeShulkerBoxHandler;
@ -716,13 +716,13 @@ const cItemHandler & cItemHandler::For(int a_ItemType)
case E_BLOCK_MOSSY_COBBLESTONE: return ItemMossyCobblestoneHandler; case E_BLOCK_MOSSY_COBBLESTONE: return ItemMossyCobblestoneHandler;
case E_BLOCK_MYCELIUM: return ItemMyceliumHandler; case E_BLOCK_MYCELIUM: return ItemMyceliumHandler;
case E_BLOCK_NETHERRACK: return ItemNetherrackHandler; case E_BLOCK_NETHERRACK: return ItemNetherrackHandler;
case E_BLOCK_NETHER_BRICK: return ItemNetherBrickBlockHandler; case E_BLOCK_NETHER_BRICK: return ItemNetherBricksHandler;
case E_BLOCK_NETHER_BRICK_FENCE: return ItemNetherBrickFenceBlockHandler; case E_BLOCK_NETHER_BRICK_FENCE: return ItemNetherBrickFenceHandler;
case E_BLOCK_NETHER_BRICK_STAIRS: return ItemNetherBrickStairsHandler; case E_BLOCK_NETHER_BRICK_STAIRS: return ItemNetherBrickStairsHandler;
case E_BLOCK_NETHER_PORTAL: return ItemNetherPortalBlockHandler; case E_BLOCK_NETHER_PORTAL: return ItemNetherPortalBlockHandler;
case E_BLOCK_NETHER_QUARTZ_ORE: return ItemNetherQuartzOreHandler; case E_BLOCK_NETHER_QUARTZ_ORE: return ItemNetherQuartzOreHandler;
case E_BLOCK_NETHER_WART: return ItemNetherWartBlockHandler; case E_BLOCK_NETHER_WART: return ItemNetherWartTechnicalBlockHandler;
case E_BLOCK_NETHER_WART_BLOCK: return ItemNetherWartBlockBlockHandler; case E_BLOCK_NETHER_WART_BLOCK: return ItemNetherWartBlockHandler;
case E_BLOCK_NEW_LEAVES: return ItemNewLeavesHandler; case E_BLOCK_NEW_LEAVES: return ItemNewLeavesHandler;
case E_BLOCK_NEW_LOG: return ItemNewLogHandler; case E_BLOCK_NEW_LOG: return ItemNewLogHandler;
case E_BLOCK_NOTE_BLOCK: return ItemNoteBlockHandler; case E_BLOCK_NOTE_BLOCK: return ItemNoteBlockHandler;
@ -798,20 +798,20 @@ const cItemHandler & cItemHandler::For(int a_ItemType)
case E_BLOCK_STONE_BRICKS: return ItemStoneBricksHandler; case E_BLOCK_STONE_BRICKS: return ItemStoneBricksHandler;
case E_BLOCK_STONE_BRICK_STAIRS: return ItemStoneBrickStairsHandler; case E_BLOCK_STONE_BRICK_STAIRS: return ItemStoneBrickStairsHandler;
case E_BLOCK_STONE_BUTTON: return ItemStoneButtonHandler; case E_BLOCK_STONE_BUTTON: return ItemStoneButtonHandler;
case E_BLOCK_STONE_PRESSURE_PLATE: return ItemStonePressurePlateBlockHandler; case E_BLOCK_STONE_PRESSURE_PLATE: return ItemStonePressurePlateHandler;
case E_BLOCK_STONE_SLAB: return ItemStoneSlabHandler; case E_BLOCK_STONE_SLAB: return ItemStoneSlabHandler;
case E_BLOCK_STRUCTURE_BLOCK: return ItemStructureBlockHandler; case E_BLOCK_STRUCTURE_BLOCK: return ItemStructureBlockHandler;
case E_BLOCK_STRUCTURE_VOID: return ItemStructureVoidHandler; case E_BLOCK_STRUCTURE_VOID: return ItemStructureVoidHandler;
case E_BLOCK_SUGARCANE: return ItemSugarcaneHandler; case E_BLOCK_SUGARCANE: return ItemSugarCaneBlockHandler;
case E_BLOCK_TALL_GRASS: return ItemTallGrassHandler; case E_BLOCK_TALL_GRASS: return ItemTallGrassHandler;
case E_BLOCK_TERRACOTTA: return ItemTerracottaHandler; case E_BLOCK_TERRACOTTA: return ItemTerracottaHandler;
case E_BLOCK_TNT: return ItemTNTBlockHandler; case E_BLOCK_TNT: return ItemTNTHandler;
case E_BLOCK_TORCH: return ItemTorchBlockHandler; case E_BLOCK_TORCH: return ItemTorchBlockHandler;
case E_BLOCK_TRAPDOOR: return ItemOakTrapdoorHandler; case E_BLOCK_TRAPDOOR: return ItemOakTrapdoorHandler;
case E_BLOCK_TRAPPED_CHEST: return ItemTrappedChestHandler; case E_BLOCK_TRAPPED_CHEST: return ItemTrappedChestHandler;
case E_BLOCK_TRIPWIRE: return ItemTripwireHandler; case E_BLOCK_TRIPWIRE: return ItemTripwireHandler;
case E_BLOCK_TRIPWIRE_HOOK: return ItemTripwireHookHandler; case E_BLOCK_TRIPWIRE_HOOK: return ItemTripwireHookHandler;
case E_BLOCK_VINES: return ItemVineHandler; case E_BLOCK_VINES: return ItemVinesHandler;
case E_BLOCK_WALLSIGN: return ItemWallsignHandler; case E_BLOCK_WALLSIGN: return ItemWallsignHandler;
case E_BLOCK_WALL_BANNER: return ItemWallBannerHandler; case E_BLOCK_WALL_BANNER: return ItemWallBannerHandler;
case E_BLOCK_WATER: return ItemWaterHandler; case E_BLOCK_WATER: return ItemWaterHandler;
@ -819,7 +819,7 @@ const cItemHandler & cItemHandler::For(int a_ItemType)
case E_BLOCK_WHITE_GLAZED_TERRACOTTA: return ItemWhiteGlazedTerracottaHandler; case E_BLOCK_WHITE_GLAZED_TERRACOTTA: return ItemWhiteGlazedTerracottaHandler;
case E_BLOCK_WHITE_SHULKER_BOX: return ItemWhiteShulkerBoxHandler; case E_BLOCK_WHITE_SHULKER_BOX: return ItemWhiteShulkerBoxHandler;
case E_BLOCK_WOODEN_BUTTON: return ItemOakButtonHandler; case E_BLOCK_WOODEN_BUTTON: return ItemOakButtonHandler;
case E_BLOCK_WOODEN_PRESSURE_PLATE: return ItemWoodenPressurePlateBlockHandler; case E_BLOCK_WOODEN_PRESSURE_PLATE: return ItemWoodenPressurePlateHandler;
case E_BLOCK_WOODEN_SLAB: return ItemOakSlabHandler; case E_BLOCK_WOODEN_SLAB: return ItemOakSlabHandler;
case E_BLOCK_WOOL: return ItemWoolHandler; case E_BLOCK_WOOL: return ItemWoolHandler;
case E_BLOCK_YELLOW_GLAZED_TERRACOTTA: return ItemYellowGlazedTerracottaHandler; case E_BLOCK_YELLOW_GLAZED_TERRACOTTA: return ItemYellowGlazedTerracottaHandler;
@ -1091,7 +1091,9 @@ void cItemHandler::OnPlayerPlace(cPlayer & a_Player, const cItem & a_HeldItem, c
if (!cBlockHandler::For(PlaceBlock).DoesIgnoreBuildCollision(World, a_HeldItem, PlacedPosition, PlaceMeta, a_ClickedBlockFace, false)) if (!cBlockHandler::For(PlaceBlock).DoesIgnoreBuildCollision(World, a_HeldItem, PlacedPosition, PlaceMeta, a_ClickedBlockFace, false))
{ {
// Tried to place a block into another? // 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 // Happens when you place a block aiming at side of block with a torch on it or stem beside it.
a_Player.SendBlocksAround(PlacedPosition.x, PlacedPosition.y, PlacedPosition.z, 2);
a_Player.GetInventory().SendEquippedSlot();
return; return;
} }

View File

@ -7,7 +7,7 @@
class cItemVineHandler final : class cItemVinesHandler final :
public cItemHandler public cItemHandler
{ {
using Super = cItemHandler; using Super = cItemHandler;