diff options
author | Mattes D <github@xoft.cz> | 2015-12-03 15:12:07 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2015-12-03 15:12:07 +0100 |
commit | ef7c6ea7e7742223a705fe65c5ccff058b936e38 (patch) | |
tree | 731f128a18b2912cabb39f602c9db083a4ad8b33 | |
parent | Merge pull request #2711 from cuberite/FixFreeBSDBuild (diff) | |
parent | Merge mushroom soup into generic food handler (diff) | |
download | cuberite-ef7c6ea7e7742223a705fe65c5ccff058b936e38.tar cuberite-ef7c6ea7e7742223a705fe65c5ccff058b936e38.tar.gz cuberite-ef7c6ea7e7742223a705fe65c5ccff058b936e38.tar.bz2 cuberite-ef7c6ea7e7742223a705fe65c5ccff058b936e38.tar.lz cuberite-ef7c6ea7e7742223a705fe65c5ccff058b936e38.tar.xz cuberite-ef7c6ea7e7742223a705fe65c5ccff058b936e38.tar.zst cuberite-ef7c6ea7e7742223a705fe65c5ccff058b936e38.zip |
-rw-r--r-- | src/Items/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/Items/ItemFood.h | 24 | ||||
-rw-r--r-- | src/Items/ItemHandler.cpp | 3 | ||||
-rw-r--r-- | src/Items/ItemMushroomSoup.h | 53 |
4 files changed, 25 insertions, 56 deletions
diff --git a/src/Items/CMakeLists.txt b/src/Items/CMakeLists.txt index 91083d31b..a0910ea8a 100644 --- a/src/Items/CMakeLists.txt +++ b/src/Items/CMakeLists.txt @@ -38,7 +38,6 @@ SET (HDRS ItemMilk.h ItemMinecart.h ItemMobHead.h - ItemMushroomSoup.h ItemNetherWart.h ItemPainting.h ItemPickaxe.h diff --git a/src/Items/ItemFood.h b/src/Items/ItemFood.h index e7c718c77..2fbbb2528 100644 --- a/src/Items/ItemFood.h +++ b/src/Items/ItemFood.h @@ -42,6 +42,7 @@ public: // Golden apple handled in ItemGoldenApple case E_ITEM_GOLDEN_CARROT: return FoodInfo(6, 14.4); case E_ITEM_MELON_SLICE: return FoodInfo(2, 1.2); + case E_ITEM_MUSHROOM_SOUP: return FoodInfo(6, 7.2); case E_ITEM_POISONOUS_POTATO: return FoodInfo(2, 1.2); // Potatoes handled in ItemSeeds case E_ITEM_PUMPKIN_PIE: return FoodInfo(8, 4.8); @@ -101,6 +102,29 @@ public: return false; } + virtual bool EatItem(cPlayer * a_Player, cItem * a_Item) override + { + if (!super::EatItem(a_Player, a_Item)) + { + return false; + } + + switch (m_ItemType) + { + case E_ITEM_MUSHROOM_SOUP: + case E_ITEM_RABBIT_STEW: + { + // Return a bowl to the inventory + if (!a_Player->IsGameModeCreative()) + { + a_Player->GetInventory().AddItem(cItem(E_ITEM_BOWL)); + } + break; + } + } + return true; + } + }; diff --git a/src/Items/ItemHandler.cpp b/src/Items/ItemHandler.cpp index 580a0b7ee..5ff3c84bf 100644 --- a/src/Items/ItemHandler.cpp +++ b/src/Items/ItemHandler.cpp @@ -37,7 +37,6 @@ #include "ItemMilk.h" #include "ItemMinecart.h" #include "ItemMobHead.h" -#include "ItemMushroomSoup.h" #include "ItemNetherWart.h" #include "ItemPainting.h" #include "ItemPickaxe.h" @@ -138,7 +137,6 @@ cItemHandler * cItemHandler::CreateItemHandler(int a_ItemType) case E_ITEM_GOLDEN_APPLE: return new cItemGoldenAppleHandler(); case E_ITEM_MAP: return new cItemMapHandler(); case E_ITEM_MILK: return new cItemMilkHandler(); - case E_ITEM_MUSHROOM_SOUP: return new cItemMushroomSoupHandler(a_ItemType); case E_ITEM_ITEM_FRAME: return new cItemItemFrameHandler(a_ItemType); case E_ITEM_NETHER_WART: return new cItemNetherWartHandler(a_ItemType); case E_ITEM_PAINTING: return new cItemPaintingHandler(a_ItemType); @@ -237,6 +235,7 @@ cItemHandler * cItemHandler::CreateItemHandler(int a_ItemType) case E_ITEM_COOKIE: case E_ITEM_GOLDEN_CARROT: case E_ITEM_MELON_SLICE: + case E_ITEM_MUSHROOM_SOUP: case E_ITEM_POISONOUS_POTATO: case E_ITEM_PUMPKIN_PIE: case E_ITEM_RABBIT_STEW: diff --git a/src/Items/ItemMushroomSoup.h b/src/Items/ItemMushroomSoup.h deleted file mode 100644 index 1a761cbf1..000000000 --- a/src/Items/ItemMushroomSoup.h +++ /dev/null @@ -1,53 +0,0 @@ - -#pragma once - -#include "ItemHandler.h" - - - - - -class cItemMushroomSoupHandler : - public cItemHandler -{ - typedef cItemHandler super; - -public: - cItemMushroomSoupHandler(int a_ItemType) - : super(a_ItemType) - { - } - - - virtual bool IsFood(void) override - { - return true; - } - - - virtual FoodInfo GetFoodInfo(void) override - { - return FoodInfo(6, 7.2); - } - - - virtual bool EatItem(cPlayer * a_Player, cItem * a_Item) override - { - if (!super::EatItem(a_Player, a_Item)) - { - return false; - } - - // Return a bowl to the inventory - if (!a_Player->IsGameModeCreative()) - { - a_Player->GetInventory().AddItem(cItem(E_ITEM_BOWL)); - } - return true; - } - -}; - - - - |