/* EQEmu: EQEmulator
Copyright (C) 2001-2026 EQEmu Development Team
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#include "common/features.h"
#ifdef EMBPERL_XS_CLASSES
#include "zone/embperl.h"
#include "zone/object.h"
bool Perl_Object_IsGroundSpawn(Object* self) // @categories Objects
{
return self->IsGroundSpawn();
}
void Perl_Object_Close(Object* self) // @categories Objects
{
self->Close();
}
void Perl_Object_Delete(Object* self) // @categories Objects
{
self->Delete();
}
void Perl_Object_Delete(Object* self, bool reset_state) // @categories Objects
{
self->Delete(reset_state);
}
void Perl_Object_StartDecay(Object* self) // @categories Objects
{
self->StartDecay();
}
void Perl_Object_DeleteItem(Object* self, uint8_t index) // @categories Objects
{
self->DeleteItem(index);
}
bool Perl_Object_IsObject(Object* self) // @categories Objects
{
return self->IsObject();
}
bool Perl_Object_Save(Object* self) // @categories Objects
{
return self->Save();
}
void Perl_Object_SetID(Object* self, uint16_t set_id) // @categories Objects
{
self->SetID(set_id);
}
void Perl_Object_ClearUser(Object* self) // @categories Objects
{
self->ClearUser();
}
uint32_t Perl_Object_GetDBID(Object* self) // @categories Objects
{
return self->GetDBID();
}
uint32_t Perl_Object_GetID(Object* self) // @categories Objects
{
return self->GetID();
}
float Perl_Object_GetX(Object* self) // @categories Objects
{
return self->GetX();
}
float Perl_Object_GetY(Object* self) // @categories Objects
{
return self->GetY();
}
float Perl_Object_GetZ(Object* self) // @categories Objects
{
return self->GetZ();
}
float Perl_Object_GetHeading(Object* self) // @categories Objects
{
return self->GetHeadingData();
}
uint32_t Perl_Object_VarSave(Object* self) // @categories Objects
{
return self->VarSave();
}
uint32_t Perl_Object_GetType(Object* self) // @categories Objects
{
return self->GetType();
}
void Perl_Object_SetType(Object* self, uint32_t type) // @categories Objects
{
self->SetType(type);
}
uint32_t Perl_Object_GetIcon(Object* self) // @categories Objects
{
return self->GetIcon();
}
void Perl_Object_SetIcon(Object* self, uint32_t icon) // @categories Objects
{
self->SetIcon(icon);
}
uint32_t Perl_Object_GetItemID(Object* self) // @categories Objects
{
return self->GetItemID();
}
void Perl_Object_SetItemID(Object* self, uint32_t itemid) // @categories Objects
{
self->SetItemID(itemid);
}
void Perl_Object_SetLocation(Object* self, float x, float y, float z) // @categories Objects
{
self->SetLocation(x, y, z);
}
void Perl_Object_SetX(Object* self, float x) // @categories Objects
{
self->SetX(x);
}
void Perl_Object_SetY(Object* self, float y) // @categories Objects
{
self->SetY(y);
}
void Perl_Object_SetZ(Object* self, float z) // @categories Objects
{
self->SetZ(z);
}
void Perl_Object_SetHeading(Object* self, float heading) // @categories Objects
{
self->SetHeading(heading);
}
void Perl_Object_SetModelName(Object* self, const char* name) // @categories Objects
{
self->SetModelName(name);
}
std::string Perl_Object_GetModelName(Object* self) // @categories Objects
{
return self->GetModelName();
}
void Perl_Object_Repop(Object* self) // @categories Objects
{
self->Repop();
}
void Perl_Object_Depop(Object* self) // @categories Objects
{
self->Depop();
}
uint32_t Perl_Object_GetSolidType(Object* self) // @categories Objects
{
return self->GetSolidType();
}
void Perl_Object_SetSolidType(Object* self, uint16_t type) // @categories Objects
{
self->SetSolidType(type);
}
float Perl_Object_GetSize(Object* self) // @categories Objects
{
return self->GetSize();
}
void Perl_Object_SetSize(Object* self, float size) // @categories Objects
{
self->SetSize(size);
}
void Perl_Object_SetTiltX(Object* self, float tilt_x) // @categories Objects
{
self->SetTiltX(tilt_x);
}
void Perl_Object_SetTiltY(Object* self, float tilt_y) // @categories Objects
{
self->SetTiltY(tilt_y);
}
float Perl_Object_GetTiltX(Object* self) // @categories Objects
{
return self->GetTiltX();
}
float Perl_Object_GetTiltY(Object* self) // @categories Objects
{
return self->GetTiltY();
}
bool Perl_Object_ClearEntityVariables(Object* self) // @categories Script Utility
{
return self->ClearEntityVariables();
}
bool Perl_Object_DeleteEntityVariable(Object* self, std::string variable_name) // @categories Script Utility
{
return self->DeleteEntityVariable(variable_name);
}
bool Perl_Object_EntityVariableExists(Object* self, std::string variable_name) // @categories Objects
{
return self->EntityVariableExists(variable_name);
}
std::string Perl_Object_GetEntityVariable(Object* self, std::string variable_name) // @categories Objects
{
return self->GetEntityVariable(variable_name);
}
perl::array Perl_Object_GetEntityVariables(Object* self) // @categories Script Utility
{
perl::array a;
const auto& l = self->GetEntityVariables();
for (const auto& v : l) {
a.push_back(v);
}
return a;
}
void Perl_Object_SetEntityVariable(Object* self, std::string variable_name, std::string variable_value) // @categories Objects
{
self->SetEntityVariable(variable_name, variable_value);
}
void perl_register_object()
{
perl::interpreter perl(PERL_GET_THX);
auto package = perl.new_class