summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2015-12-03 15:12:07 +0100
committerMattes D <github@xoft.cz>2015-12-03 15:12:07 +0100
commitef7c6ea7e7742223a705fe65c5ccff058b936e38 (patch)
tree731f128a18b2912cabb39f602c9db083a4ad8b33
parentMerge pull request #2711 from cuberite/FixFreeBSDBuild (diff)
parentMerge mushroom soup into generic food handler (diff)
downloadcuberite-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.txt1
-rw-r--r--src/Items/ItemFood.h24
-rw-r--r--src/Items/ItemHandler.cpp3
-rw-r--r--src/Items/ItemMushroomSoup.h53
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;
- }
-
-};
-
-
-
-