From e919496025bdb2dfc47e4686d767ffaa88b007af Mon Sep 17 00:00:00 2001 From: tonibm19 Date: Sun, 10 Nov 2013 16:03:00 +0100 Subject: Added sheep dyeing --- source/Mobs/Sheep.cpp | 158 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 156 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/Mobs/Sheep.cpp b/source/Mobs/Sheep.cpp index 703482ddb..85081b294 100644 --- a/source/Mobs/Sheep.cpp +++ b/source/Mobs/Sheep.cpp @@ -33,7 +33,6 @@ void cSheep::GetDrops(cItems & a_Drops, cEntity * a_Killer) - void cSheep::OnRightClicked(cPlayer & a_Player) { if ((a_Player.GetEquippedItem().m_ItemType == E_ITEM_SHEARS) && (!m_IsSheared)) @@ -51,9 +50,164 @@ void cSheep::OnRightClicked(cPlayer & a_Player) Drops.push_back(cItem(E_BLOCK_WOOL, NumDrops, m_WoolColor)); m_World->SpawnItemPickups(Drops, GetPosX(), GetPosY(), GetPosZ(), 10); } -} + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BLACK) + { + m_WoolColor = 15; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_RED) + { + m_WoolColor = 14; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_GREEN) + { + m_WoolColor = 13; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BROWN) + { + m_WoolColor = 12; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BLUE) + { + m_WoolColor = 11; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_PURPLE) + { + m_WoolColor = 10; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_CYAN) + { + m_WoolColor = 9; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTGRAY) + { + m_WoolColor = 8; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_GRAY) + { + m_WoolColor = 7; + m_World->BroadcastEntityMetadata(*this); + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_PINK) + { + m_WoolColor = 6; + m_World->BroadcastEntityMetadata(*this); + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTGREEN) + { + m_WoolColor = 5; + m_World->BroadcastEntityMetadata(*this); + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_YELLOW) + { + m_WoolColor = 4; + m_World->BroadcastEntityMetadata(*this); + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTBLUE) + { + m_WoolColor = 3; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_MAGENTA) + { + m_WoolColor = 2; + m_World->BroadcastEntityMetadata(*this); + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_ORANGE) + { + m_WoolColor = 1; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_WHITE) + { + m_WoolColor = 0; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } +} -- cgit v1.2.3 From 9da4011a7fc0f98efb2f1a9d8ad5af6e7bb0a5a9 Mon Sep 17 00:00:00 2001 From: tonibm19 Date: Sun, 10 Nov 2013 16:42:38 +0100 Subject: You can no longer color with wood --- source/Mobs/Sheep.cpp | 319 +++++++++++++++++++++++++------------------------- 1 file changed, 161 insertions(+), 158 deletions(-) (limited to 'source') diff --git a/source/Mobs/Sheep.cpp b/source/Mobs/Sheep.cpp index 85081b294..f9fc5a60c 100644 --- a/source/Mobs/Sheep.cpp +++ b/source/Mobs/Sheep.cpp @@ -50,164 +50,167 @@ void cSheep::OnRightClicked(cPlayer & a_Player) Drops.push_back(cItem(E_BLOCK_WOOL, NumDrops, m_WoolColor)); m_World->SpawnItemPickups(Drops, GetPosX(), GetPosY(), GetPosZ(), 10); } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BLACK) - { - m_WoolColor = 15; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_RED) - { - m_WoolColor = 14; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_GREEN) - { - m_WoolColor = 13; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BROWN) - { - m_WoolColor = 12; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BLUE) - { - m_WoolColor = 11; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_PURPLE) - { - m_WoolColor = 10; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_CYAN) - { - m_WoolColor = 9; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTGRAY) - { - m_WoolColor = 8; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_GRAY) - { - m_WoolColor = 7; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_PINK) - { - m_WoolColor = 6; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTGREEN) - { - m_WoolColor = 5; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_YELLOW) - { - m_WoolColor = 4; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTBLUE) - { - m_WoolColor = 3; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_MAGENTA) - { - m_WoolColor = 2; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_ORANGE) - { - m_WoolColor = 1; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_WHITE) - { - m_WoolColor = 0; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); + if (a_Player.GetEquippedItem().m_ItemType == E_ITEM_DYE + ) + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BLACK) + { + m_WoolColor = 15; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_RED) + { + m_WoolColor = 14; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_GREEN) + { + m_WoolColor = 13; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BROWN) + { + m_WoolColor = 12; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BLUE) + { + m_WoolColor = 11; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_PURPLE) + { + m_WoolColor = 10; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_CYAN) + { + m_WoolColor = 9; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTGRAY) + { + m_WoolColor = 8; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_GRAY) + { + m_WoolColor = 7; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_PINK) + { + m_WoolColor = 6; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTGREEN) + { + m_WoolColor = 5; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_YELLOW) + { + m_WoolColor = 4; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTBLUE) + { + m_WoolColor = 3; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_MAGENTA) + { + m_WoolColor = 2; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_ORANGE) + { + m_WoolColor = 1; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_WHITE) + { + m_WoolColor = 0; + m_World->BroadcastEntityMetadata(*this); + + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } } } } -- cgit v1.2.3 From e2b4745bbf657272f13a5d70b129a7f523c46918 Mon Sep 17 00:00:00 2001 From: tonibm19 Date: Sun, 10 Nov 2013 16:43:47 +0100 Subject: Fixed compilation --- source/Mobs/Sheep.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'source') diff --git a/source/Mobs/Sheep.cpp b/source/Mobs/Sheep.cpp index f9fc5a60c..de5874132 100644 --- a/source/Mobs/Sheep.cpp +++ b/source/Mobs/Sheep.cpp @@ -1,4 +1,3 @@ - #include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules #include "Sheep.h" @@ -50,8 +49,8 @@ void cSheep::OnRightClicked(cPlayer & a_Player) Drops.push_back(cItem(E_BLOCK_WOOL, NumDrops, m_WoolColor)); m_World->SpawnItemPickups(Drops, GetPosX(), GetPosY(), GetPosZ(), 10); } - if (a_Player.GetEquippedItem().m_ItemType == E_ITEM_DYE - ) + if (a_Player.GetEquippedItem().m_ItemType == E_ITEM_DYE) + { if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BLACK) { m_WoolColor = 15; -- cgit v1.2.3 From da5bd81836f12588a5fcba62e1f4bc27420b5222 Mon Sep 17 00:00:00 2001 From: tonibm19 Date: Sun, 10 Nov 2013 16:48:22 +0100 Subject: STR_Warrior was right. Simplified code. --- source/Mobs/Sheep.cpp | 161 +------------------------------------------------- 1 file changed, 1 insertion(+), 160 deletions(-) (limited to 'source') diff --git a/source/Mobs/Sheep.cpp b/source/Mobs/Sheep.cpp index de5874132..e8d0be2ae 100644 --- a/source/Mobs/Sheep.cpp +++ b/source/Mobs/Sheep.cpp @@ -51,165 +51,6 @@ void cSheep::OnRightClicked(cPlayer & a_Player) } if (a_Player.GetEquippedItem().m_ItemType == E_ITEM_DYE) { - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BLACK) - { - m_WoolColor = 15; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_RED) - { - m_WoolColor = 14; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_GREEN) - { - m_WoolColor = 13; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BROWN) - { - m_WoolColor = 12; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_BLUE) - { - m_WoolColor = 11; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_PURPLE) - { - m_WoolColor = 10; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_CYAN) - { - m_WoolColor = 9; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTGRAY) - { - m_WoolColor = 8; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_GRAY) - { - m_WoolColor = 7; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_PINK) - { - m_WoolColor = 6; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTGREEN) - { - m_WoolColor = 5; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_YELLOW) - { - m_WoolColor = 4; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_LIGHTBLUE) - { - m_WoolColor = 3; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_MAGENTA) - { - m_WoolColor = 2; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_ORANGE) - { - m_WoolColor = 1; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } - if (a_Player.GetEquippedItem().m_ItemDamage == E_META_DYE_WHITE) - { - m_WoolColor = 0; - m_World->BroadcastEntityMetadata(*this); - - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - } - } + m_WoolColor = 15 - a_Player.GetEquippedItem().m_ItemDamage; } } -- cgit v1.2.3 From 4af5868322757b892d976d9549633f40f0e7eeb4 Mon Sep 17 00:00:00 2001 From: tonibm19 Date: Sun, 10 Nov 2013 17:05:19 +0100 Subject: Fixes (SEE DESC) Entity metadata is broadcasted. If player is in survival, his equipped item is removed. If you have green dye, and sheep is green, your equipped item won't be removed. --- source/Mobs/Sheep.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/Mobs/Sheep.cpp b/source/Mobs/Sheep.cpp index e8d0be2ae..bda4ccff8 100644 --- a/source/Mobs/Sheep.cpp +++ b/source/Mobs/Sheep.cpp @@ -1,3 +1,4 @@ + #include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules #include "Sheep.h" @@ -49,8 +50,13 @@ void cSheep::OnRightClicked(cPlayer & a_Player) Drops.push_back(cItem(E_BLOCK_WOOL, NumDrops, m_WoolColor)); m_World->SpawnItemPickups(Drops, GetPosX(), GetPosY(), GetPosZ(), 10); } - if (a_Player.GetEquippedItem().m_ItemType == E_ITEM_DYE) + if ((a_Player.GetEquippedItem().m_ItemType == E_ITEM_DYE) && (m_WoolColor != 15 - a_Player.GetEquippedItem().m_ItemDamage)) { m_WoolColor = 15 - a_Player.GetEquippedItem().m_ItemDamage; + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + m_World->BroadcastEntityMetadata(*this); } } -- cgit v1.2.3