summaryrefslogtreecommitdiff
path: root/src/scriptapi.cpp
diff options
context:
space:
mode:
authorKahrl <kahrl@gmx.net>2012-03-19 03:04:16 +0100
committerPerttu Ahola <celeron55@gmail.com>2012-03-29 14:05:45 +0300
commitf8c3743991a6897c7133bf35dc2699b8b5f9df7c (patch)
treee856506d9c96d572d1a3b0a58edf00f0d70cba43 /src/scriptapi.cpp
parent072c265c301d3336203b77b8b1651fdacf3a7682 (diff)
downloadminetest-f8c3743991a6897c7133bf35dc2699b8b5f9df7c.tar.gz
minetest-f8c3743991a6897c7133bf35dc2699b8b5f9df7c.tar.bz2
minetest-f8c3743991a6897c7133bf35dc2699b8b5f9df7c.zip
added PlayerSAO and RemotePlayer, removed ServerRemotePlayer
Diffstat (limited to 'src/scriptapi.cpp')
-rw-r--r--src/scriptapi.cpp48
1 files changed, 27 insertions, 21 deletions
diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp
index 863e2ba28..f8e4c471c 100644
--- a/src/scriptapi.cpp
+++ b/src/scriptapi.cpp
@@ -35,7 +35,7 @@ extern "C" {
#include "script.h"
//#include "luna.h"
#include "luaentity_common.h"
-#include "content_sao.h" // For LuaEntitySAO
+#include "content_sao.h" // For LuaEntitySAO and PlayerSAO
#include "itemdef.h"
#include "nodedef.h"
#include "craftdef.h"
@@ -1095,7 +1095,6 @@ static ItemStack read_item(lua_State *L, int index);
static void inventory_set_list_from_lua(Inventory *inv, const char *name,
lua_State *L, int tableindex, int forcesize=-1)
{
- dstream<<"inventory_set_list_from_lua\n";
if(tableindex < 0)
tableindex = lua_gettop(L) + 1 + tableindex;
// If nil, delete list
@@ -1127,7 +1126,6 @@ static void inventory_set_list_from_lua(Inventory *inv, const char *name,
invlist->deleteItem(index);
index++;
}
- dstream<<"inventory_set_list_from_lua done\n";
}
static void inventory_get_list_to_lua(Inventory *inv, const char *name,
@@ -2259,14 +2257,22 @@ private:
return (LuaEntitySAO*)obj;
}
- static ServerRemotePlayer* getplayer(ObjectRef *ref)
+ static PlayerSAO* getplayersao(ObjectRef *ref)
{
ServerActiveObject *obj = getobject(ref);
if(obj == NULL)
return NULL;
if(obj->getType() != ACTIVEOBJECT_TYPE_PLAYER)
return NULL;
- return static_cast<ServerRemotePlayer*>(obj);
+ return (PlayerSAO*)obj;
+ }
+
+ static Player* getplayer(ObjectRef *ref)
+ {
+ PlayerSAO *playersao = getplayersao(ref);
+ if(playersao == NULL)
+ return NULL;
+ return playersao->getPlayer();
}
// Exported functions
@@ -2319,10 +2325,6 @@ private:
v3f pos = checkFloatPos(L, 2);
// Do it
co->setPos(pos);
- // Move player if applicable
- ServerRemotePlayer *player = getplayer(ref);
- if(player != NULL)
- get_server(L)->SendMovePlayer(player);
return 0;
}
@@ -2626,7 +2628,7 @@ private:
static int l_get_player_name(lua_State *L)
{
ObjectRef *ref = checkobject(L, 1);
- ServerRemotePlayer *player = getplayer(ref);
+ Player *player = getplayer(ref);
if(player == NULL){
lua_pushnil(L);
return 1;
@@ -2640,7 +2642,7 @@ private:
static int l_get_look_dir(lua_State *L)
{
ObjectRef *ref = checkobject(L, 1);
- ServerRemotePlayer *player = getplayer(ref);
+ Player *player = getplayer(ref);
if(player == NULL) return 0;
// Do it
float pitch = player->getRadPitch();
@@ -2654,7 +2656,7 @@ private:
static int l_get_look_pitch(lua_State *L)
{
ObjectRef *ref = checkobject(L, 1);
- ServerRemotePlayer *player = getplayer(ref);
+ Player *player = getplayer(ref);
if(player == NULL) return 0;
// Do it
lua_pushnumber(L, player->getRadPitch());
@@ -2665,7 +2667,7 @@ private:
static int l_get_look_yaw(lua_State *L)
{
ObjectRef *ref = checkobject(L, 1);
- ServerRemotePlayer *player = getplayer(ref);
+ Player *player = getplayer(ref);
if(player == NULL) return 0;
// Do it
lua_pushnumber(L, player->getRadYaw());
@@ -2996,14 +2998,18 @@ private:
if(env == NULL) return 0;
// Do it
const char *name = luaL_checkstring(L, 2);
- ServerRemotePlayer *player =
- static_cast<ServerRemotePlayer*>(env->getPlayer(name));
+ Player *player = env->getPlayer(name);
if(player == NULL){
lua_pushnil(L);
return 1;
}
+ PlayerSAO *sao = player->getPlayerSAO();
+ if(sao == NULL){
+ lua_pushnil(L);
+ return 1;
+ }
// Put player on stack
- objectref_get_or_create(L, player);
+ objectref_get_or_create(L, sao);
return 1;
}
@@ -4211,8 +4217,6 @@ bool scriptapi_on_respawnplayer(lua_State *L, ServerActiveObject *player)
assert(lua_checkstack(L, 20));
StackUnroller stack_unroller(L);
- dstream<<"player: "<<player<<" id: "<<player->getId()<<std::endl;
-
bool positioning_handled_by_some = false;
// Get minetest.registered_on_respawnplayers
@@ -4238,13 +4242,15 @@ bool scriptapi_on_respawnplayer(lua_State *L, ServerActiveObject *player)
return positioning_handled_by_some;
}
-void scriptapi_get_creative_inventory(lua_State *L, ServerRemotePlayer *player)
+void scriptapi_get_creative_inventory(lua_State *L, ServerActiveObject *player)
{
+ Inventory *inv = player->getInventory();
+ assert(inv);
+
lua_getglobal(L, "minetest");
lua_getfield(L, -1, "creative_inventory");
luaL_checktype(L, -1, LUA_TTABLE);
- inventory_set_list_from_lua(&player->inventory, "main", L, -1,
- PLAYER_INVENTORY_SIZE);
+ inventory_set_list_from_lua(inv, "main", L, -1, PLAYER_INVENTORY_SIZE);
}
/*