Skip to content

Commit 84d1c0c

Browse files
authored
feat(Pet): Add Pet Object and Methods (#288)
1 parent de84ed1 commit 84d1c0c

File tree

3 files changed

+1029
-27
lines changed

3 files changed

+1029
-27
lines changed

src/LuaEngine/LuaFunctions.cpp

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ extern "C"
4242
#include "RollMethods.h"
4343
#include "TicketMethods.h"
4444
#include "SpellInfoMethods.h"
45+
#include "PetMethods.h"
4546
#include "LootMethods.h"
4647

4748
// DBCStores includes
@@ -546,8 +547,16 @@ ElunaRegister<Player> PlayerMethods[] =
546547
{ "GetTrader", &LuaPlayer::GetTrader },
547548
{ "GetBonusTalentCount", &LuaPlayer::GetBonusTalentCount },
548549
{ "GetKnownTaxiNodes", &LuaPlayer::GetKnownTaxiNodes },
550+
{ "GetPet", &LuaPlayer::GetPet },
551+
{ "GetTemporaryUnsummonedPetNumber", &LuaPlayer::GetTemporaryUnsummonedPetNumber },
552+
{ "GetLastPetNumber", &LuaPlayer::GetLastPetNumber },
553+
{ "GetLastPetSpell", &LuaPlayer::GetLastPetSpell },
549554

550555
// Setters
556+
{ "SetTemporaryUnsummonedPetNumber", &LuaPlayer::SetTemporaryUnsummonedPetNumber },
557+
{ "SetLastPetNumber", &LuaPlayer::SetLastPetNumber },
558+
{ "SetLastPetSpell", &LuaPlayer::SetLastPetSpell },
559+
{ "SetShowDKPet", &LuaPlayer::SetShowDKPet },
551560
{ "AdvanceSkillsToMax", &LuaPlayer::AdvanceSkillsToMax },
552561
{ "AdvanceSkill", &LuaPlayer::AdvanceSkill },
553562
{ "AdvanceAllSkills", &LuaPlayer::AdvanceAllSkills },
@@ -670,6 +679,12 @@ ElunaRegister<Player> PlayerMethods[] =
670679
{ "CanFly", &LuaPlayer::CanFly },
671680
{ "IsMoving", &LuaPlayer::IsMoving },
672681
{ "IsFlying", &LuaPlayer::IsFlying },
682+
{ "CanPetResurrect", &LuaPlayer::CanPetResurrect },
683+
{ "IsExistPet", &LuaPlayer::IsExistPet },
684+
{ "CanTameExoticPets", &LuaPlayer::CanTameExoticPets },
685+
{ "IsPetNeedBeTemporaryUnsummoned", &LuaPlayer::IsPetNeedBeTemporaryUnsummoned },
686+
{ "CanResummonPet", &LuaPlayer::CanResummonPet },
687+
{ "CanSeeDKPet", &LuaPlayer::CanSeeDKPet },
673688
{ "IsMaxLevel", &LuaPlayer::IsMaxLevel },
674689
{ "IsDailyQuestDone", &LuaPlayer::IsDailyQuestDone },
675690
{ "IsPvP", &LuaPlayer::IsPvP },
@@ -788,6 +803,13 @@ ElunaRegister<Player> PlayerMethods[] =
788803
{ "SendMovieStart", &LuaPlayer::SendMovieStart },
789804
{ "UpdatePlayerSetting", &LuaPlayer::UpdatePlayerSetting },
790805
{ "TeleportTo", &LuaPlayer::TeleportTo },
806+
{ "SummonPet", &LuaPlayer::SummonPet },
807+
{ "CreatePet", &LuaPlayer::CreatePet },
808+
{ "UnsummonPetTemporarily", &LuaPlayer::UnsummonPetTemporarily },
809+
{ "RemovePet", &LuaPlayer::RemovePet },
810+
{ "ResetPetTalents", &LuaPlayer::ResetPetTalents },
811+
{ "LearnPetTalent", &LuaPlayer::LearnPetTalent },
812+
{ "ResummonPetTemporaryUnSummonedIfAny", &LuaPlayer::ResummonPetTemporaryUnSummonedIfAny },
791813
{ "SetPlayerFlag", &LuaPlayer::SetPlayerFlag },
792814
{ "RemovePlayerFlag", &LuaPlayer::RemovePlayerFlag },
793815
{ "DoRandomRoll", &LuaPlayer::DoRandomRoll },
@@ -1600,6 +1622,65 @@ ElunaRegister<SpellEntry> SpellEntryMethods[] =
16001622
{ NULL, NULL }
16011623
};
16021624

1625+
ElunaRegister<Pet> PetMethods[] =
1626+
{
1627+
// Getters
1628+
{ "GetPetType", &LuaPet::GetPetType },
1629+
{ "GetDuration", &LuaPet::GetDuration },
1630+
{ "GetHappinessState", &LuaPet::GetHappinessState },
1631+
{ "GetCurrentFoodBenefitLevel", &LuaPet::GetCurrentFoodBenefitLevel },
1632+
{ "GetMaxTalentPointsForLevel", &LuaPet::GetMaxTalentPointsForLevel },
1633+
{ "GetFreeTalentPoints", &LuaPet::GetFreeTalentPoints },
1634+
{ "GetUsedTalentCount", &LuaPet::GetUsedTalentCount },
1635+
{ "GetAuraUpdateMaskForRaid", &LuaPet::GetAuraUpdateMaskForRaid },
1636+
{ "GetOwner", &LuaPet::GetOwner },
1637+
{ "GetPetAutoSpellSize", &LuaPet::GetPetAutoSpellSize },
1638+
{ "GetPetAutoSpellOnPos", &LuaPet::GetPetAutoSpellOnPos },
1639+
1640+
// Setters
1641+
{ "SetPetType", &LuaPet::SetPetType },
1642+
{ "SetDuration", &LuaPet::SetDuration },
1643+
{ "SetFreeTalentPoints", &LuaPet::SetFreeTalentPoints },
1644+
{ "SetUsedTalentCount", &LuaPet::SetUsedTalentCount },
1645+
{ "SetAuraUpdateMaskForRaid", &LuaPet::SetAuraUpdateMaskForRaid },
1646+
{ "SetRemoved", &LuaPet::SetRemoved },
1647+
1648+
// Boolean
1649+
{ "IsControlled", &LuaPet::IsControlled },
1650+
{ "IsTemporarySummoned", &LuaPet::IsTemporarySummoned },
1651+
{ "IsPermanentPetFor", &LuaPet::IsPermanentPetFor },
1652+
{ "HaveInDiet", &LuaPet::HaveInDiet },
1653+
{ "HasTempSpell", &LuaPet::HasTempSpell },
1654+
{ "IsRemoved", &LuaPet::IsRemoved },
1655+
{ "IsBeingLoaded", &LuaPet::IsBeingLoaded },
1656+
1657+
// Other
1658+
{ "CreateBaseAtCreature", &LuaPet::CreateBaseAtCreature },
1659+
{ "GivePetXP", &LuaPet::GivePetXP },
1660+
{ "GivePetLevel", &LuaPet::GivePetLevel },
1661+
{ "SynchronizeLevelWithOwner", &LuaPet::SynchronizeLevelWithOwner },
1662+
{ "ToggleAutocast", &LuaPet::ToggleAutocast },
1663+
{ "LearnPetPassives", &LuaPet::LearnPetPassives },
1664+
{ "CastWhenWillAvailable", &LuaPet::CastWhenWillAvailable },
1665+
{ "ClearCastWhenWillAvailable", &LuaPet::ClearCastWhenWillAvailable },
1666+
{ "AddSpell", &LuaPet::AddSpell },
1667+
{ "LearnSpell", &LuaPet::LearnSpell },
1668+
{ "LearnSpellHighRank", &LuaPet::LearnSpellHighRank },
1669+
{ "InitLevelupSpellsForLevel", &LuaPet::InitLevelupSpellsForLevel },
1670+
{ "UnlearnSpell", &LuaPet::UnlearnSpell },
1671+
{ "RemoveSpell", &LuaPet::RemoveSpell },
1672+
{ "CleanupActionBar", &LuaPet::CleanupActionBar },
1673+
{ "GenerateActionBarData", &LuaPet::GenerateActionBarData },
1674+
{ "InitPetCreateSpells", &LuaPet::InitPetCreateSpells },
1675+
{ "ResetTalents", &LuaPet::ResetTalents },
1676+
{ "InitTalentForLevel", &LuaPet::InitTalentForLevel },
1677+
{ "ResetAuraUpdateMaskForRaid", &LuaPet::ResetAuraUpdateMaskForRaid },
1678+
{ "SavePetToDB", &LuaPet::SavePetToDB },
1679+
{ "Remove", &LuaPet::Remove },
1680+
1681+
{ NULL, NULL }
1682+
};
1683+
16031684
ElunaRegister<Loot> LootMethods[] =
16041685
{
16051686
// Get

0 commit comments

Comments
 (0)