diff options
author | Mattes D <github@xoft.cz> | 2014-03-16 21:43:33 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-03-16 21:43:33 +0100 |
commit | dc77cbfdc47016e0cb2a5ba9e4b18a1cb6896805 (patch) | |
tree | 0b599b418d62011ddc5f6ebb2702d7c4f6e1567e /src/Items | |
parent | Wrong if in BlockLeaves (diff) | |
parent | Fix anvil pickups. (diff) | |
download | cuberite-dc77cbfdc47016e0cb2a5ba9e4b18a1cb6896805.tar cuberite-dc77cbfdc47016e0cb2a5ba9e4b18a1cb6896805.tar.gz cuberite-dc77cbfdc47016e0cb2a5ba9e4b18a1cb6896805.tar.bz2 cuberite-dc77cbfdc47016e0cb2a5ba9e4b18a1cb6896805.tar.lz cuberite-dc77cbfdc47016e0cb2a5ba9e4b18a1cb6896805.tar.xz cuberite-dc77cbfdc47016e0cb2a5ba9e4b18a1cb6896805.tar.zst cuberite-dc77cbfdc47016e0cb2a5ba9e4b18a1cb6896805.zip |
Diffstat (limited to 'src/Items')
-rw-r--r-- | src/Items/ItemHandler.cpp | 1 | ||||
-rw-r--r-- | src/Items/ItemItemFrame.h | 6 | ||||
-rw-r--r-- | src/Items/ItemLighter.h | 22 |
3 files changed, 27 insertions, 2 deletions
diff --git a/src/Items/ItemHandler.cpp b/src/Items/ItemHandler.cpp index 136bc3096..454fabdd7 100644 --- a/src/Items/ItemHandler.cpp +++ b/src/Items/ItemHandler.cpp @@ -110,6 +110,7 @@ cItemHandler *cItemHandler::CreateItemHandler(int a_ItemType) case E_ITEM_EGG: return new cItemEggHandler(); case E_ITEM_EMPTY_MAP: return new cItemEmptyMapHandler(); case E_ITEM_ENDER_PEARL: return new cItemEnderPearlHandler(); + case E_ITEM_FIRE_CHARGE: return new cItemLighterHandler(a_ItemType); case E_ITEM_FIREWORK_ROCKET: return new cItemFireworkHandler(); case E_ITEM_FISHING_ROD: return new cItemFishingRodHandler(a_ItemType); case E_ITEM_FLINT_AND_STEEL: return new cItemLighterHandler(a_ItemType); diff --git a/src/Items/ItemItemFrame.h b/src/Items/ItemItemFrame.h index 74e987445..27e7dba35 100644 --- a/src/Items/ItemItemFrame.h +++ b/src/Items/ItemItemFrame.h @@ -34,7 +34,11 @@ public: if (Block == E_BLOCK_AIR) { cItemFrame * ItemFrame = new cItemFrame(a_Dir, a_BlockX, a_BlockY, a_BlockZ); - ItemFrame->Initialize(a_World); + if (!ItemFrame->Initialize(a_World)) + { + delete ItemFrame; + return false; + } if (!a_Player->IsGameModeCreative()) { diff --git a/src/Items/ItemLighter.h b/src/Items/ItemLighter.h index 18873e911..2db6c829a 100644 --- a/src/Items/ItemLighter.h +++ b/src/Items/ItemLighter.h @@ -26,7 +26,26 @@ public: return false; } - a_Player->UseEquippedItem(); + if (!a_Player->IsGameModeCreative()) + { + switch (m_ItemType) + { + case E_ITEM_FLINT_AND_STEEL: + { + a_Player->UseEquippedItem(); + break; + } + case E_ITEM_FIRE_CHARGE: + { + a_Player->GetInventory().RemoveOneEquippedItem(); + break; + } + default: + { + ASSERT(!"Unknown Lighter Item!"); + } + } + } switch (a_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ)) { @@ -49,6 +68,7 @@ public: if (a_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ) == E_BLOCK_AIR) { a_World->SetBlock(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_FIRE, 0); + a_World->BroadcastSoundEffect("fire.ignite", a_BlockX * 8, a_BlockY * 8, a_BlockZ * 8, 1.0F, 1.04F); break; } } |