[Quest API] Add Door Methods to Perl/Lua. (#2724)

# Perl
- Add `$door->ForceClose(sender)`.
- Add `$door->ForceClose(sender, alt_mode)`.
- Add `$door->ForceOpen(sender)`.
- Add `$door->ForceOpen(sender, alt_mode)`.
- Add `$door->GetDisableTimer()`.
- Add `$door->SetDisableTimer(disable_timer)`.

# Lua
- Add `door:GetID()`.

# Notes
- Makes Perl/Lua Door scripting capabilities 1:1.
This commit is contained in:
Alex King
2023-01-11 19:10:38 -05:00
committed by GitHub
parent 3341c0b7ab
commit 2f90f26351
3 changed files with 43 additions and 0 deletions
+36
View File
@@ -149,12 +149,47 @@ void Perl_Doors_CreateDatabaseEntry(Doors* self) // @categories Doors
self->CreateDatabaseEntry();
}
void Perl_Doors_ForceClose(Doors* self, Mob* sender)
{
self->ForceClose(sender);
}
void Perl_Doors_ForceClose(Doors* self, Mob* sender, bool alt_mode)
{
self->ForceClose(sender, alt_mode);
}
void Perl_Doors_ForceOpen(Doors* self, Mob* sender)
{
self->ForceOpen(sender);
}
void Perl_Doors_ForceOpen(Doors* self, Mob* sender, bool alt_mode)
{
self->ForceOpen(sender, alt_mode);
}
bool Perl_Doors_GetDisableTimer(Doors* self)
{
return self->GetDisableTimer();
}
void Perl_Doors_SetDisableTimer(Doors* self, bool disable_timer)
{
self->SetDisableTimer(disable_timer);
}
void perl_register_doors()
{
perl::interpreter perl(PERL_GET_THX);
auto package = perl.new_class<Doors>("Doors");
package.add("CreateDatabaseEntry", &Perl_Doors_CreateDatabaseEntry);
package.add("ForceClose", (void(*)(Doors*, Mob*))&Perl_Doors_ForceClose);
package.add("ForceClose", (void(*)(Doors*, Mob*, bool))&Perl_Doors_ForceClose);
package.add("ForceOpen", (void(*)(Doors*, Mob*))&Perl_Doors_ForceOpen);
package.add("ForceOpen", (void(*)(Doors*, Mob*, bool))&Perl_Doors_ForceOpen);
package.add("GetDisableTimer", &Perl_Doors_GetDisableTimer);
package.add("GetDoorDBID", &Perl_Doors_GetDoorDBID);
package.add("GetDoorID", &Perl_Doors_GetDoorID);
package.add("GetHeading", &Perl_Doors_GetHeading);
@@ -169,6 +204,7 @@ void perl_register_doors()
package.add("GetX", &Perl_Doors_GetX);
package.add("GetY", &Perl_Doors_GetY);
package.add("GetZ", &Perl_Doors_GetZ);
package.add("SetDisableTimer", &Perl_Doors_SetDisableTimer);
package.add("SetHeading", &Perl_Doors_SetHeading);
package.add("SetIncline", &Perl_Doors_SetIncline);
package.add("SetKeyItem", &Perl_Doors_SetKeyItem);