mirror of
https://github.com/minetest/minetest.git
synced 2024-09-12 00:26:50 +02:00
lua methods set_look_pitch and set_look_yaw
This commit is contained in:
parent
c00c8832c6
commit
7f51b2da28
@ -1228,6 +1228,8 @@ Player-only: (no-op for other objects)
|
||||
- get_look_dir(): get camera direction as a unit vector
|
||||
- get_look_pitch(): pitch in radians
|
||||
- get_look_yaw(): yaw in radians (wraps around pretty randomly as of now)
|
||||
- set_look_pitch(radians): sets look pitch
|
||||
- set_look_yaw(radians): sets look yaw
|
||||
- set_inventory_formspec(formspec)
|
||||
^ Redefine player's inventory form
|
||||
^ Should usually be called in on_joinplayer
|
||||
|
@ -1230,6 +1230,20 @@ void PlayerSAO::moveTo(v3f pos, bool continuous)
|
||||
m_moved = true;
|
||||
}
|
||||
|
||||
void PlayerSAO::setYaw(float yaw)
|
||||
{
|
||||
m_player->setYaw(yaw);
|
||||
// Force change on client
|
||||
m_moved = true;
|
||||
}
|
||||
|
||||
void PlayerSAO::setPitch(float pitch)
|
||||
{
|
||||
m_player->setPitch(pitch);
|
||||
// Force change on client
|
||||
m_moved = true;
|
||||
}
|
||||
|
||||
int PlayerSAO::punch(v3f dir,
|
||||
const ToolCapabilities *toolcap,
|
||||
ServerActiveObject *puncher,
|
||||
|
@ -147,6 +147,8 @@ public:
|
||||
void setBasePosition(const v3f &position);
|
||||
void setPos(v3f pos);
|
||||
void moveTo(v3f pos, bool continuous);
|
||||
void setYaw(float);
|
||||
void setPitch(float);
|
||||
|
||||
/*
|
||||
Interaction interface
|
||||
|
@ -27,7 +27,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "scriptapi_entity.h"
|
||||
#include "scriptapi_common.h"
|
||||
|
||||
|
||||
/*
|
||||
ObjectRef
|
||||
*/
|
||||
@ -582,6 +581,30 @@ int ObjectRef::l_get_look_yaw(lua_State *L)
|
||||
return 1;
|
||||
}
|
||||
|
||||
// set_look_pitch(self, radians)
|
||||
int ObjectRef::l_set_look_pitch(lua_State *L)
|
||||
{
|
||||
ObjectRef *ref = checkobject(L, 1);
|
||||
PlayerSAO* co = getplayersao(ref);
|
||||
if(co == NULL) return 0;
|
||||
float pitch = luaL_checknumber(L, 2) * core::RADTODEG;
|
||||
// Do it
|
||||
co->setPitch(pitch);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// set_look_yaw(self, radians)
|
||||
int ObjectRef::l_set_look_yaw(lua_State *L)
|
||||
{
|
||||
ObjectRef *ref = checkobject(L, 1);
|
||||
PlayerSAO* co = getplayersao(ref);
|
||||
if(co == NULL) return 0;
|
||||
float yaw = luaL_checknumber(L, 2) * core::RADTODEG;
|
||||
// Do it
|
||||
co->setYaw(yaw);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// set_inventory_formspec(self, formspec)
|
||||
int ObjectRef::l_set_inventory_formspec(lua_State *L)
|
||||
{
|
||||
@ -755,6 +778,8 @@ const luaL_reg ObjectRef::methods[] = {
|
||||
luamethod(ObjectRef, get_look_dir),
|
||||
luamethod(ObjectRef, get_look_pitch),
|
||||
luamethod(ObjectRef, get_look_yaw),
|
||||
luamethod(ObjectRef, set_look_yaw),
|
||||
luamethod(ObjectRef, set_look_pitch),
|
||||
luamethod(ObjectRef, set_inventory_formspec),
|
||||
luamethod(ObjectRef, get_inventory_formspec),
|
||||
luamethod(ObjectRef, get_player_control),
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Minetest
|
||||
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@ -169,6 +169,12 @@ private:
|
||||
// get_look_yaw(self)
|
||||
static int l_get_look_yaw(lua_State *L);
|
||||
|
||||
// set_look_pitch(self, radians)
|
||||
static int l_set_look_pitch(lua_State *L);
|
||||
|
||||
// set_look_yaw(self, radians)
|
||||
static int l_set_look_yaw(lua_State *L);
|
||||
|
||||
// set_inventory_formspec(self, formspec)
|
||||
static int l_set_inventory_formspec(lua_State *L);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user