summaryrefslogtreecommitdiffstats
path: root/src/Bindings
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2014-10-21 12:43:06 +0200
committerMattes D <github@xoft.cz>2014-10-21 12:43:06 +0200
commitdc4185fb862ef762b34377907a3f01a4f537c4bc (patch)
treef718b4cf2a87a3edce71102fb082765ff9268ba4 /src/Bindings
parentUpdated the Core. (diff)
downloadcuberite-dc4185fb862ef762b34377907a3f01a4f537c4bc.tar
cuberite-dc4185fb862ef762b34377907a3f01a4f537c4bc.tar.gz
cuberite-dc4185fb862ef762b34377907a3f01a4f537c4bc.tar.bz2
cuberite-dc4185fb862ef762b34377907a3f01a4f537c4bc.tar.lz
cuberite-dc4185fb862ef762b34377907a3f01a4f537c4bc.tar.xz
cuberite-dc4185fb862ef762b34377907a3f01a4f537c4bc.tar.zst
cuberite-dc4185fb862ef762b34377907a3f01a4f537c4bc.zip
Diffstat (limited to '')
-rw-r--r--src/Bindings/LuaState.cpp55
1 files changed, 48 insertions, 7 deletions
diff --git a/src/Bindings/LuaState.cpp b/src/Bindings/LuaState.cpp
index 142242162..928436a2f 100644
--- a/src/Bindings/LuaState.cpp
+++ b/src/Bindings/LuaState.cpp
@@ -562,16 +562,57 @@ void cLuaState::Push(cEntity * a_Entity)
{
lua_pushnil(m_LuaState);
}
- else if (a_Entity->IsMob())
- {
- // Don't push specific mob types, as those are not exported in the API:
- tolua_pushusertype(m_LuaState, a_Entity, "cMonster");
- }
else
{
- // Push the specific class type:
- tolua_pushusertype(m_LuaState, a_Entity, a_Entity->GetClass());
+ switch (a_Entity->GetEntityType())
+ {
+ case cEntity::etMonster:
+ {
+ // Don't push specific mob types, as those are not exported in the API:
+ tolua_pushusertype(m_LuaState, a_Entity, "cMonster");
+ break;
+ }
+ case cEntity::etPlayer:
+ {
+ tolua_pushusertype(m_LuaState, a_Entity, "cPlayer");
+ break;
+ }
+ case cEntity::etPickup:
+ {
+ tolua_pushusertype(m_LuaState, a_Entity, "cPickup");
+ break;
+ }
+ case cEntity::etTNT:
+ {
+ tolua_pushusertype(m_LuaState, a_Entity, "cTNTEntity");
+ break;
+ }
+ case cEntity::etProjectile:
+ {
+ tolua_pushusertype(m_LuaState, a_Entity, "cProjectileEntity");
+ break;
+ }
+ case cEntity::etFloater:
+ {
+ tolua_pushusertype(m_LuaState, a_Entity, "cFloater");
+ break;
+ }
+
+ case cEntity::etEntity:
+ case cEntity::etEnderCrystal:
+ case cEntity::etFallingBlock:
+ case cEntity::etMinecart:
+ case cEntity::etBoat:
+ case cEntity::etExpOrb:
+ case cEntity::etItemFrame:
+ case cEntity::etPainting:
+ {
+ // Push the generic entity class type:
+ tolua_pushusertype(m_LuaState, a_Entity, "cEntity");
+ }
+ } // switch (EntityType)
}
+
m_NumCurrentFunctionArgs += 1;
}