summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorAlexander Harkness <bearbin@gmail.com>2013-10-15 18:39:16 +0200
committerAlexander Harkness <bearbin@gmail.com>2013-10-15 18:39:16 +0200
commit9376005778494f7f34cf6a656ac0f2e6966e86e1 (patch)
tree6ad83c006521d648fa6f1df99bec47709c9f9dc6 /source
parentAPIDump: Documented HOOK_SPAWNING_MONSTER. (diff)
parentFixed a big fail.I did (diff)
downloadcuberite-9376005778494f7f34cf6a656ac0f2e6966e86e1.tar
cuberite-9376005778494f7f34cf6a656ac0f2e6966e86e1.tar.gz
cuberite-9376005778494f7f34cf6a656ac0f2e6966e86e1.tar.bz2
cuberite-9376005778494f7f34cf6a656ac0f2e6966e86e1.tar.lz
cuberite-9376005778494f7f34cf6a656ac0f2e6966e86e1.tar.xz
cuberite-9376005778494f7f34cf6a656ac0f2e6966e86e1.tar.zst
cuberite-9376005778494f7f34cf6a656ac0f2e6966e86e1.zip
Diffstat (limited to 'source')
-rw-r--r--source/Mobs/Cow.cpp16
-rw-r--r--source/Mobs/Cow.h1
-rw-r--r--source/Mobs/Horse.cpp12
3 files changed, 25 insertions, 4 deletions
diff --git a/source/Mobs/Cow.cpp b/source/Mobs/Cow.cpp
index 8e9b87d27..431a6916d 100644
--- a/source/Mobs/Cow.cpp
+++ b/source/Mobs/Cow.cpp
@@ -7,10 +7,6 @@
-// TODO: Milk Cow
-
-
-
cCow::cCow(void) :
@@ -28,6 +24,18 @@ void cCow::GetDrops(cItems & a_Drops, cEntity * a_Killer)
AddRandomDropItem(a_Drops, 1, 3, IsOnFire() ? E_ITEM_STEAK : E_ITEM_RAW_BEEF);
}
+void cCow::OnRightClicked(cPlayer & a_Player)
+{
+ if ((a_Player.GetEquippedItem().m_ItemType == E_ITEM_BUCKET))
+ {
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ a_Player.GetInventory().AddItem(E_ITEM_MILK)
+ }
+
+ }
+}
diff --git a/source/Mobs/Cow.h b/source/Mobs/Cow.h
index b90cb170e..0391d4a31 100644
--- a/source/Mobs/Cow.h
+++ b/source/Mobs/Cow.h
@@ -18,6 +18,7 @@ public:
CLASS_PROTODEF(cCow);
virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = NULL) override;
+ virtual void OnRightClicked(cPlayer & a_Player) override;
} ;
diff --git a/source/Mobs/Horse.cpp b/source/Mobs/Horse.cpp
index 46e7969cc..c2a8f6ed0 100644
--- a/source/Mobs/Horse.cpp
+++ b/source/Mobs/Horse.cpp
@@ -107,6 +107,18 @@ void cHorse::OnRightClicked(cPlayer & a_Player)
m_TameAttemptTimes++;
a_Player.AttachTo(this);
+
+ if (a_Player.GetEquippedItem().m_ItemType == E_ITEM_SADDLE)
+ {
+ if (!a_Player.IsGameModeCreative())
+ {
+ a_Player.GetInventory().RemoveOneEquippedItem();
+ }
+
+ // Set saddle state & broadcast metadata
+ m_bIsSaddled = true;
+ m_World->BroadcastEntityMetadata(*this);
+ }
}