diff options
author | Mattes D <github@xoft.cz> | 2014-10-21 12:43:06 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-10-21 12:43:06 +0200 |
commit | dc4185fb862ef762b34377907a3f01a4f537c4bc (patch) | |
tree | f718b4cf2a87a3edce71102fb082765ff9268ba4 | |
parent | Updated the Core. (diff) | |
download | cuberite-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.cpp | 55 |
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; } |