[Quest API] Add Entity Variable Methods to Perl/Lua. (#2609)

* [Quest API] Add Entity Variable Methods to Perl/Lua.

# Perl
- Add `$mob->ClearEntityVariables()`.
- Add `$mob->DeleteEntityVariable(variable_name)`.
- Add `$object->ClearEntityVariables()`.
- Add `$object->DeleteEntityVariable(variable_name)`.

# Lua
- Add `mob:ClearEntityVariables()`.
- Add `mob:DeleteEntityVariable(variable_name)`.
- Add `object:ClearEntityVariables()`.
- Add `object:DeleteEntityVariable(variable_name)`.

# Notes
- Allows operators to clear all entity variables or delete one by name, previously you just had to set to an empty value to clear after being set.

* Cleanup.
This commit is contained in:
Alex King
2022-12-04 12:18:27 -05:00
committed by GitHub
parent 5d5c2a4194
commit 7abc084cd1
10 changed files with 126 additions and 4 deletions
+12
View File
@@ -2641,6 +2641,16 @@ perl::array Perl_Mob_GetHateListNPCs(Mob* self, uint32 distance)
return result;
}
bool Perl_Mob_ClearEntityVariables(Mob* self) // @categories Script Utility
{
return self->ClearEntityVariables();
}
bool Perl_Mob_DeleteEntityVariable(Mob* self, std::string variable_name) // @categories Script Utility
{
return self->DeleteEntityVariable(variable_name);
}
bool Perl_Mob_EntityVariableExists(Mob* self, std::string variable_name) // @categories Script Utility
{
return self->EntityVariableExists(variable_name);
@@ -2811,6 +2821,7 @@ void perl_register_mob()
package.add("CheckLoS", &Perl_Mob_CheckLoS);
package.add("CheckLoSToLoc", (bool(*)(Mob*, float, float, float))&Perl_Mob_CheckLoSToLoc);
package.add("CheckLoSToLoc", (bool(*)(Mob*, float, float, float, float))&Perl_Mob_CheckLoSToLoc);
package.add("ClearEntityVariables", &Perl_Mob_ClearEntityVariables);
package.add("ClearFeignMemory", &Perl_Mob_ClearFeignMemory);
package.add("ClearSpecialAbilities", &Perl_Mob_ClearSpecialAbilities);
package.add("CloneAppearance", (void(*)(Mob*, Mob*))&Perl_Mob_CloneAppearance);
@@ -2858,6 +2869,7 @@ void perl_register_mob()
package.add("DamageHateListPercentage", (void(*)(Mob*, int64, uint32))&Perl_Mob_DamageHateListPercentage);
package.add("DelGlobal", &Perl_Mob_DelGlobal);
package.add("DeleteBucket", &Perl_Mob_DeleteBucket);
package.add("DeleteEntityVariable", &Perl_Mob_DeleteEntityVariable);
package.add("Depop", (void(*)(Mob*))&Perl_Mob_Depop);
package.add("Depop", (void(*)(Mob*, bool))&Perl_Mob_Depop);
package.add("DivineAura", &Perl_Mob_DivineAura);