summaryrefslogtreecommitdiffstats
path: root/source/Mobs
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2013-10-15 22:14:47 +0200
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2013-10-15 22:14:47 +0200
commitcb9ccb36acfb1d80684098759f8f39c7022891dd (patch)
treef65f9ca3c1c70f447c41d9b7190bb5dc8fbb5071 /source/Mobs
parentMerge submodule changes (diff)
parentAdded HOOK_PLAYER_RIGHT_CLICK (diff)
downloadcuberite-cb9ccb36acfb1d80684098759f8f39c7022891dd.tar
cuberite-cb9ccb36acfb1d80684098759f8f39c7022891dd.tar.gz
cuberite-cb9ccb36acfb1d80684098759f8f39c7022891dd.tar.bz2
cuberite-cb9ccb36acfb1d80684098759f8f39c7022891dd.tar.lz
cuberite-cb9ccb36acfb1d80684098759f8f39c7022891dd.tar.xz
cuberite-cb9ccb36acfb1d80684098759f8f39c7022891dd.tar.zst
cuberite-cb9ccb36acfb1d80684098759f8f39c7022891dd.zip
Diffstat (limited to 'source/Mobs')
-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);
+ }
}