f7ef93611c
It has been crashing the server. http://forum.mc-server.org/showthread.php?tid=610 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1024 0a769ca7-a7f5-676a-18bf-c427514a06d6
196 lines
6.6 KiB
C++
196 lines
6.6 KiB
C++
|
|
#include "Globals.h"
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef USE_SQUIRREL
|
|
|
|
|
|
|
|
|
|
#include "SquirrelBindings.h"
|
|
#include "SquirrelFunctions.h"
|
|
|
|
#include "SquirrelBaseClass.h"
|
|
#include "SquirrelArray.h"
|
|
|
|
#include "../Player.h"
|
|
|
|
|
|
|
|
|
|
|
|
using namespace Sqrat;
|
|
|
|
|
|
|
|
|
|
|
|
void BindSquirrel(HSQUIRRELVM vm)
|
|
{
|
|
RootTable()
|
|
.Bind("Plugin", Class<cSquirrelBaseClass>()
|
|
.Func("AddHook", &cSquirrelBaseClass::AddHook)
|
|
.Func("AddCommand", &cSquirrelBaseClass::AddCommand)
|
|
.Func("BindCommand", &cSquirrelBaseClass::BindCommand)
|
|
);
|
|
|
|
RootTable().Bind("Vector3f", Class<Vector3f, NoConstructor>()
|
|
.Func("Set", &Vector3f::Set)
|
|
.Func("Normalize", &Vector3f::Normalize)
|
|
.Func("Length", &Vector3f::Length)
|
|
.Func("SqrLength", &Vector3f::SqrLength)
|
|
.Var("x", &Vector3f::x)
|
|
.Var("y", &Vector3f::y)
|
|
.Var("z", &Vector3f::z)
|
|
);
|
|
|
|
RootTable().Bind("Vector3d", Class<Vector3d, NoConstructor>()
|
|
.Func("Set", &Vector3d::Set)
|
|
.Func("Normalize", &Vector3d::Normalize)
|
|
.Func("Length", &Vector3d::Length)
|
|
.Func("SqrLength", &Vector3d::SqrLength)
|
|
.Var("x", &Vector3d::x)
|
|
.Var("y", &Vector3d::y)
|
|
.Var("z", &Vector3d::z)
|
|
);
|
|
|
|
RootTable().Bind("cEntity", Class<cEntity, NoConstructor>()
|
|
.Func("GetEntityType", &cEntity::GetEntityType)
|
|
.Func("IsA", &cEntity::IsA)
|
|
.Func("GetWorld", &cEntity::GetWorld)
|
|
.Func("GetPosition", &cEntity::GetPosition)
|
|
.Func("GetPosX", &cEntity::GetPosX)
|
|
.Func("GetPosY", &cEntity::GetPosY)
|
|
.Func("GetPosZ", &cEntity::GetPosZ)
|
|
.Func("GetRot", &cEntity::GetRot)
|
|
.Func("GetRotation", &cEntity::GetRotation)
|
|
.Func("GetPitch", &cEntity::GetPitch)
|
|
.Func("GetRoll", &cEntity::GetRoll)
|
|
.Func("SetRotation", &cEntity::SetRotation)
|
|
.Func("SetPitch", &cEntity::SetPitch)
|
|
.Func("SetRoll", &cEntity::SetRoll)
|
|
.Func("GetLookVector", &cEntity::GetLookVector)
|
|
.Func("GetChunkX", &cEntity::GetChunkX)
|
|
.Func("GetChunkY", &cEntity::GetChunkY)
|
|
.Func("GetChunkZ", &cEntity::GetChunkZ)
|
|
.Func("SetPosX", &cEntity::SetPosX)
|
|
.Func("SetPosY", &cEntity::SetPosY)
|
|
.Func("SetPosZ", &cEntity::SetPosZ)
|
|
.Func<void (cEntity::*) (const double &, const double &, const double &)>("SetPosition", &cEntity::SetPosition)
|
|
.Func("GetUniqueID", &cEntity::GetUniqueID)
|
|
.Func("IsDestroyed", &cEntity::IsDestroyed)
|
|
.Func("Destroy", &cEntity::Destroy)
|
|
);
|
|
|
|
ConstTable().Enum("MetaData", Enumeration()
|
|
.Const("Normal", cPawn::NORMAL)
|
|
.Const("Burning", cPawn::BURNING)
|
|
.Const("Crouched", cPawn::CROUCHED)
|
|
.Const("Riding", cPawn::RIDING)
|
|
.Const("Sprinting", cPawn::SPRINTING)
|
|
.Const("Eating", cPawn::EATING)
|
|
.Const("Blocking", cPawn::BLOCKING)
|
|
);
|
|
|
|
RootTable().Bind("cPawn", DerivedClass<cPawn, cEntity, NoConstructor>()
|
|
.Func("TeleportToEntity", &cPawn::TeleportToEntity)
|
|
.Func("TeleportTo", &cPawn::TeleportTo)
|
|
.Func("Heal", &cPawn::Heal)
|
|
.Func("TakeDamage", &cPawn::TakeDamage)
|
|
.Func("KilledBy", &cPawn::KilledBy)
|
|
.Func("GetHealth", &cPawn::GetHealth)
|
|
.Func("SetMetaData", &cPawn::SetMetaData)
|
|
.Func("GetMetaData", &cPawn::GetMetaData)
|
|
.Func("SetMaxHealth", &cPawn::SetMaxHealth)
|
|
.Func("GetMaxHealth", &cPawn::GetMaxHealth)
|
|
);
|
|
|
|
RootTable().Bind("cPlayer", DerivedClass<cPlayer, cPawn, NoConstructor>()
|
|
.Func("GetName", &cPlayer::GetName)
|
|
.Func("SetTouchGround", &cPlayer::SetTouchGround)
|
|
.Func("SetStance", &cPlayer::SetStance)
|
|
.Func("GetEyeHeight", &cPlayer::GetEyeHeight)
|
|
.Func("GetEyePosition", &cPlayer::GetEyePosition)
|
|
.Func("GetFlying", &cPlayer::GetFlying)
|
|
.Func("GetStance", &cPlayer::GetStance)
|
|
//TODO .Func("GetInventory", &cPlayer::GetInventory)
|
|
.Func("TeleportTo", &cPlayer::TeleportTo)
|
|
.Func("GetGameMode", &cPlayer::GetGameMode)
|
|
.Func("GetIP", &cPlayer::GetIP)
|
|
.Func("GetLastBlockActionTime", &cPlayer::GetLastBlockActionTime)
|
|
.Func("GetLastBlockActionCnt", &cPlayer::GetLastBlockActionCnt)
|
|
.Func("SetLastBlockActionCnt", &cPlayer::SetLastBlockActionCnt)
|
|
.Func("SetLastBlockActionTime", &cPlayer::SetLastBlockActionTime)
|
|
.Func("SetGameMode", &cPlayer::SetGameMode)
|
|
.Func("LoginSetGameMode", &cPlayer::LoginSetGameMode)
|
|
.Func("SetIP", &cPlayer::SetIP)
|
|
.Func("MoveTo", &cPlayer::MoveTo)
|
|
.Func("GetClientHandle", &cPlayer::GetClientHandle)
|
|
.Func("SendMessage", &cPlayer::SendMessage)
|
|
.Func("AddToGroup", &cPlayer::AddToGroup)
|
|
.Func("CanUseCommand", &cPlayer::CanUseCommand)
|
|
.Func("HasPermission", &cPlayer::HasPermission)
|
|
.Func("IsInGroup", &cPlayer::IsInGroup)
|
|
.Func("GetColor", &cPlayer::GetColor)
|
|
.Func("TossItem", &cPlayer::TossItem)
|
|
.Func("Heal", &cPlayer::Heal)
|
|
.Func("Feed", &cPlayer::Feed)
|
|
.Func("TakeDamage", &cPlayer::TakeDamage)
|
|
.Func("KilledBy", &cPlayer::KilledBy)
|
|
.Func("Respawn", &cPlayer::Respawn)
|
|
.Func("SetVisible", &cPlayer::SetVisible)
|
|
.Func("IsVisible", &cPlayer::IsVisible)
|
|
.Func("MoveToWorld", &cPlayer::MoveToWorld)
|
|
.Func("GetLoadedWorldName", &cPlayer::GetLoadedWorldName)
|
|
.Func("UseEquippedItem", &cPlayer::UseEquippedItem)
|
|
);
|
|
|
|
RootTable().Bind("StringArray", Class<SquirrelStringArray>()
|
|
.Func("Get", &SquirrelStringArray::Get)
|
|
.Func("Add", &SquirrelStringArray::Add)
|
|
.Func("Size", &SquirrelStringArray::Size)
|
|
);
|
|
|
|
|
|
RootTable().Func("print", &sqPrint);
|
|
|
|
|
|
ConstTable().Enum("Hook", Enumeration()
|
|
.Const("Tick", cPluginManager::HOOK_TICK)
|
|
.Const("Chat", cPluginManager::HOOK_CHAT)
|
|
.Const("CollectItem", cPluginManager::HOOK_COLLECT_ITEM)
|
|
.Const("BlockDig", cPluginManager::HOOK_BLOCK_DIG)
|
|
.Const("BlockPlace", cPluginManager::HOOK_BLOCK_PLACE)
|
|
.Const("Disconnect", cPluginManager::HOOK_DISCONNECT)
|
|
.Const("Handshake", cPluginManager::HOOK_HANDSHAKE)
|
|
.Const("Login", cPluginManager::HOOK_LOGIN)
|
|
.Const("PlayerSpawn", cPluginManager::HOOK_PLAYER_SPAWN)
|
|
.Const("PlayerJoin", cPluginManager::HOOK_PLAYER_JOIN)
|
|
.Const("PlayerMove", cPluginManager::HOOK_PLAYER_MOVE)
|
|
.Const("TakeDamage", cPluginManager::HOOK_TAKE_DAMAGE)
|
|
.Const("Killed", cPluginManager::HOOK_KILLED)
|
|
.Const("ChunkGenerated", cPluginManager::HOOK_CHUNK_GENERATED)
|
|
.Const("ChunkGenerating", cPluginManager::HOOK_CHUNK_GENERATING)
|
|
.Const("BlockToDrops", cPluginManager::HOOK_BLOCK_TO_DROPS)
|
|
.Const("PreCrafting", cPluginManager::HOOK_PRE_CRAFTING)
|
|
.Const("CraftingNoRecipe", cPluginManager::HOOK_CRAFTING_NO_RECIPE)
|
|
.Const("PostCrafting", cPluginManager::HOOK_POST_CRAFTING)
|
|
.Const("BlockToPickup", cPluginManager::HOOK_BLOCK_TO_PICKUP)
|
|
.Const("WeatherChanged", cPluginManager::HOOK_WEATHER_CHANGED)
|
|
.Const("UpdatingSign", cPluginManager::HOOK_UPDATING_SIGN)
|
|
.Const("UpdatedSign", cPluginManager::HOOK_UPDATED_SIGN));
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endif // USE_SQUIRREL
|
|
|
|
|
|
|
|
|