Feat(Loot): Add Loot Objet and Methods and GetLoot method for Creature (#287)

This commit is contained in:
iThorgrim
2025-08-29 01:30:12 +02:00
committed by GitHub
parent df36094b97
commit de84ed1369
4 changed files with 578 additions and 0 deletions

View File

@@ -42,6 +42,7 @@ extern "C"
#include "RollMethods.h"
#include "TicketMethods.h"
#include "SpellInfoMethods.h"
#include "LootMethods.h"
// DBCStores includes
#include "GemPropertiesEntryMethods.h"
@@ -837,6 +838,7 @@ ElunaRegister<Creature> CreatureMethods[] =
{ "GetDBTableGUIDLow", &LuaCreature::GetDBTableGUIDLow },
{ "GetCreatureFamily", &LuaCreature::GetCreatureFamily },
{ "GetReactState", &LuaCreature::GetReactState },
{ "GetLoot", &LuaCreature::GetLoot },
// Setters
{ "SetRegeneratingHealth", &LuaCreature::SetRegeneratingHealth },
@@ -1598,6 +1600,47 @@ ElunaRegister<SpellEntry> SpellEntryMethods[] =
{ NULL, NULL }
};
ElunaRegister<Loot> LootMethods[] =
{
// Get
{ "GetMoney", &LuaLoot::GetMoney },
{ "GetItems", &LuaLoot::GetItems },
{ "GetUnlootedCount", &LuaLoot::GetUnlootedCount },
{ "GetLootType", &LuaLoot::GetLootType },
{ "GetRoundRobinPlayer", &LuaLoot::GetRoundRobinPlayer },
{ "GetLootOwner", &LuaLoot::GetLootOwner },
{ "GetContainer", &LuaLoot::GetContainer },
{ "GetSourceWorldObject", &LuaLoot::GetSourceWorldObject },
{ "GetItemCount", &LuaLoot::GetItemCount },
{ "GetMaxSlotForPlayer", &LuaLoot::GetMaxSlotForPlayer },
// Set
{ "AddItem", &LuaLoot::AddItem },
{ "RemoveItem", &LuaLoot::RemoveItem },
{ "SetMoney", &LuaLoot::SetMoney },
{ "SetUnlootedCount", &LuaLoot::SetUnlootedCount },
{ "UpdateItemIndex", &LuaLoot::UpdateItemIndex },
{ "SetItemLooted", &LuaLoot::SetItemLooted },
{ "SetLootType", &LuaLoot::SetLootType },
{ "SetRoundRobinPlayer", &LuaLoot::SetRoundRobinPlayer },
{ "SetLootOwner", &LuaLoot::SetLootOwner },
{ "SetContainer", &LuaLoot::SetContainer },
{ "SetSourceWorldObject", &LuaLoot::SetSourceWorldObject },
{ "Clear", &LuaLoot::Clear },
{ "AddLooter", &LuaLoot::AddLooter },
{ "RemoveLooter", &LuaLoot::RemoveLooter },
// Boolean
{ "HasItem", &LuaLoot::HasItem },
{ "HasQuestItems", &LuaLoot::HasQuestItems },
{ "HasItemForAll", &LuaLoot::HasItemForAll },
{ "HasOverThresholdItem", &LuaLoot::HasOverThresholdItem },
{ "IsLooted", &LuaLoot::IsLooted },
{ "IsEmpty", &LuaLoot::IsEmpty },
{ NULL, NULL }
};
// fix compile error about accessing vehicle destructor
template<> int ElunaTemplate<Vehicle>::CollectGarbage(lua_State* L)
{