summaryrefslogtreecommitdiffstats
path: root/source/squirrelbindings/SquirrelBindings.cpp
blob: 51acc184f651e980a00bc0ffa9dcd5924d783053 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195

#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::*) (double, double, 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("CollectPickup", cPluginManager::HOOK_COLLECT_PICKUP)
		.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