]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/content_sao.cpp
Scripting WIP; Lua entity step callback works
[dragonfireclient.git] / src / content_sao.cpp
index d51e92a8c50738bafb9e6a83a8325df8f39c50e1..3507ec1542d7fbb8883b8bed07d1bf0f184eb3ea 100644 (file)
@@ -1516,7 +1516,7 @@ LuaEntitySAO::~LuaEntitySAO()
 {
        if(m_registered){
                lua_State *L = m_env->getLua();
-               scriptapi_luaentity_deregister(L, m_id);
+               scriptapi_luaentity_rm(L, m_id);
        }
 }
 
@@ -1527,7 +1527,7 @@ void LuaEntitySAO::addedToEnvironment(u16 id)
        // Create entity by name and state
        m_registered = true;
        lua_State *L = m_env->getLua();
-       scriptapi_luaentity_register(L, id, m_init_name.c_str(), m_init_state.c_str());
+       scriptapi_luaentity_add(L, id, m_init_name.c_str(), m_init_state.c_str());
 }
 
 ServerActiveObject* LuaEntitySAO::create(ServerEnvironment *env, v3f pos,
@@ -1553,7 +1553,7 @@ void LuaEntitySAO::step(float dtime, bool send_recommended)
 {
        if(m_registered){
                lua_State *L = m_env->getLua();
-               scriptapi_luaentity_step(L, m_id, dtime, send_recommended);
+               scriptapi_luaentity_step(L, m_id, dtime);
        }
 }
 
@@ -1576,9 +1576,21 @@ std::string LuaEntitySAO::getStaticData()
        // name
        os<<serializeString(m_init_name);
        // state
-       std::string state = scriptapi_luaentity_get_state(L, m_id);
-       os<<serializeString(state);
+       if(m_registered){
+               lua_State *L = m_env->getLua();
+               std::string state = scriptapi_luaentity_get_state(L, m_id);
+               os<<serializeLongString(state);
+       } else {
+               os<<serializeLongString(m_init_state);
+       }
        return os.str();
 }
 
+InventoryItem* LuaEntitySAO::createPickedUpItem()
+{
+       std::istringstream is("CraftItem testobject1 1", std::ios_base::binary);
+       InventoryItem *item = InventoryItem::deSerialize(is);
+       return item;
+}
+