feat(Pet): Add Pet Object and Methods (#288)

This commit is contained in:
iThorgrim
2025-08-29 03:59:04 +02:00
committed by GitHub
parent de84ed1369
commit 84d1c0cceb
3 changed files with 1029 additions and 27 deletions

View File

@@ -42,6 +42,7 @@ extern "C"
#include "RollMethods.h"
#include "TicketMethods.h"
#include "SpellInfoMethods.h"
#include "PetMethods.h"
#include "LootMethods.h"
// DBCStores includes
@@ -546,8 +547,16 @@ ElunaRegister<Player> PlayerMethods[] =
{ "GetTrader", &LuaPlayer::GetTrader },
{ "GetBonusTalentCount", &LuaPlayer::GetBonusTalentCount },
{ "GetKnownTaxiNodes", &LuaPlayer::GetKnownTaxiNodes },
{ "GetPet", &LuaPlayer::GetPet },
{ "GetTemporaryUnsummonedPetNumber", &LuaPlayer::GetTemporaryUnsummonedPetNumber },
{ "GetLastPetNumber", &LuaPlayer::GetLastPetNumber },
{ "GetLastPetSpell", &LuaPlayer::GetLastPetSpell },
// Setters
{ "SetTemporaryUnsummonedPetNumber", &LuaPlayer::SetTemporaryUnsummonedPetNumber },
{ "SetLastPetNumber", &LuaPlayer::SetLastPetNumber },
{ "SetLastPetSpell", &LuaPlayer::SetLastPetSpell },
{ "SetShowDKPet", &LuaPlayer::SetShowDKPet },
{ "AdvanceSkillsToMax", &LuaPlayer::AdvanceSkillsToMax },
{ "AdvanceSkill", &LuaPlayer::AdvanceSkill },
{ "AdvanceAllSkills", &LuaPlayer::AdvanceAllSkills },
@@ -670,6 +679,12 @@ ElunaRegister<Player> PlayerMethods[] =
{ "CanFly", &LuaPlayer::CanFly },
{ "IsMoving", &LuaPlayer::IsMoving },
{ "IsFlying", &LuaPlayer::IsFlying },
{ "CanPetResurrect", &LuaPlayer::CanPetResurrect },
{ "IsExistPet", &LuaPlayer::IsExistPet },
{ "CanTameExoticPets", &LuaPlayer::CanTameExoticPets },
{ "IsPetNeedBeTemporaryUnsummoned", &LuaPlayer::IsPetNeedBeTemporaryUnsummoned },
{ "CanResummonPet", &LuaPlayer::CanResummonPet },
{ "CanSeeDKPet", &LuaPlayer::CanSeeDKPet },
{ "IsMaxLevel", &LuaPlayer::IsMaxLevel },
{ "IsDailyQuestDone", &LuaPlayer::IsDailyQuestDone },
{ "IsPvP", &LuaPlayer::IsPvP },
@@ -788,6 +803,13 @@ ElunaRegister<Player> PlayerMethods[] =
{ "SendMovieStart", &LuaPlayer::SendMovieStart },
{ "UpdatePlayerSetting", &LuaPlayer::UpdatePlayerSetting },
{ "TeleportTo", &LuaPlayer::TeleportTo },
{ "SummonPet", &LuaPlayer::SummonPet },
{ "CreatePet", &LuaPlayer::CreatePet },
{ "UnsummonPetTemporarily", &LuaPlayer::UnsummonPetTemporarily },
{ "RemovePet", &LuaPlayer::RemovePet },
{ "ResetPetTalents", &LuaPlayer::ResetPetTalents },
{ "LearnPetTalent", &LuaPlayer::LearnPetTalent },
{ "ResummonPetTemporaryUnSummonedIfAny", &LuaPlayer::ResummonPetTemporaryUnSummonedIfAny },
{ "SetPlayerFlag", &LuaPlayer::SetPlayerFlag },
{ "RemovePlayerFlag", &LuaPlayer::RemovePlayerFlag },
{ "DoRandomRoll", &LuaPlayer::DoRandomRoll },
@@ -1600,6 +1622,65 @@ ElunaRegister<SpellEntry> SpellEntryMethods[] =
{ NULL, NULL }
};
ElunaRegister<Pet> PetMethods[] =
{
// Getters
{ "GetPetType", &LuaPet::GetPetType },
{ "GetDuration", &LuaPet::GetDuration },
{ "GetHappinessState", &LuaPet::GetHappinessState },
{ "GetCurrentFoodBenefitLevel", &LuaPet::GetCurrentFoodBenefitLevel },
{ "GetMaxTalentPointsForLevel", &LuaPet::GetMaxTalentPointsForLevel },
{ "GetFreeTalentPoints", &LuaPet::GetFreeTalentPoints },
{ "GetUsedTalentCount", &LuaPet::GetUsedTalentCount },
{ "GetAuraUpdateMaskForRaid", &LuaPet::GetAuraUpdateMaskForRaid },
{ "GetOwner", &LuaPet::GetOwner },
{ "GetPetAutoSpellSize", &LuaPet::GetPetAutoSpellSize },
{ "GetPetAutoSpellOnPos", &LuaPet::GetPetAutoSpellOnPos },
// Setters
{ "SetPetType", &LuaPet::SetPetType },
{ "SetDuration", &LuaPet::SetDuration },
{ "SetFreeTalentPoints", &LuaPet::SetFreeTalentPoints },
{ "SetUsedTalentCount", &LuaPet::SetUsedTalentCount },
{ "SetAuraUpdateMaskForRaid", &LuaPet::SetAuraUpdateMaskForRaid },
{ "SetRemoved", &LuaPet::SetRemoved },
// Boolean
{ "IsControlled", &LuaPet::IsControlled },
{ "IsTemporarySummoned", &LuaPet::IsTemporarySummoned },
{ "IsPermanentPetFor", &LuaPet::IsPermanentPetFor },
{ "HaveInDiet", &LuaPet::HaveInDiet },
{ "HasTempSpell", &LuaPet::HasTempSpell },
{ "IsRemoved", &LuaPet::IsRemoved },
{ "IsBeingLoaded", &LuaPet::IsBeingLoaded },
// Other
{ "CreateBaseAtCreature", &LuaPet::CreateBaseAtCreature },
{ "GivePetXP", &LuaPet::GivePetXP },
{ "GivePetLevel", &LuaPet::GivePetLevel },
{ "SynchronizeLevelWithOwner", &LuaPet::SynchronizeLevelWithOwner },
{ "ToggleAutocast", &LuaPet::ToggleAutocast },
{ "LearnPetPassives", &LuaPet::LearnPetPassives },
{ "CastWhenWillAvailable", &LuaPet::CastWhenWillAvailable },
{ "ClearCastWhenWillAvailable", &LuaPet::ClearCastWhenWillAvailable },
{ "AddSpell", &LuaPet::AddSpell },
{ "LearnSpell", &LuaPet::LearnSpell },
{ "LearnSpellHighRank", &LuaPet::LearnSpellHighRank },
{ "InitLevelupSpellsForLevel", &LuaPet::InitLevelupSpellsForLevel },
{ "UnlearnSpell", &LuaPet::UnlearnSpell },
{ "RemoveSpell", &LuaPet::RemoveSpell },
{ "CleanupActionBar", &LuaPet::CleanupActionBar },
{ "GenerateActionBarData", &LuaPet::GenerateActionBarData },
{ "InitPetCreateSpells", &LuaPet::InitPetCreateSpells },
{ "ResetTalents", &LuaPet::ResetTalents },
{ "InitTalentForLevel", &LuaPet::InitTalentForLevel },
{ "ResetAuraUpdateMaskForRaid", &LuaPet::ResetAuraUpdateMaskForRaid },
{ "SavePetToDB", &LuaPet::SavePetToDB },
{ "Remove", &LuaPet::Remove },
{ NULL, NULL }
};
ElunaRegister<Loot> LootMethods[] =
{
// Get