summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSTRWarrior <STRWarrior@users.noreply.github.com>2013-12-15 21:05:18 +0100
committerSTRWarrior <STRWarrior@users.noreply.github.com>2013-12-15 21:05:18 +0100
commit9b8112dbc2db44456aaec8471c14e5fb6aa04a4d (patch)
treec213af4ffb1e053a3e58f6122abbd31b00759477 /src
parentFixed player spawning packet. (diff)
parentDocumented ForceSetSpeed. (diff)
downloadcuberite-9b8112dbc2db44456aaec8471c14e5fb6aa04a4d.tar
cuberite-9b8112dbc2db44456aaec8471c14e5fb6aa04a4d.tar.gz
cuberite-9b8112dbc2db44456aaec8471c14e5fb6aa04a4d.tar.bz2
cuberite-9b8112dbc2db44456aaec8471c14e5fb6aa04a4d.tar.lz
cuberite-9b8112dbc2db44456aaec8471c14e5fb6aa04a4d.tar.xz
cuberite-9b8112dbc2db44456aaec8471c14e5fb6aa04a4d.tar.zst
cuberite-9b8112dbc2db44456aaec8471c14e5fb6aa04a4d.zip
Diffstat (limited to 'src')
-rw-r--r--src/Bindings/Bindings.cpp36
-rw-r--r--src/Bindings/Bindings.h2
-rw-r--r--src/ClientHandle.cpp2
-rw-r--r--src/Entities/Player.cpp10
-rw-r--r--src/Entities/Player.h3
5 files changed, 49 insertions, 4 deletions
diff --git a/src/Bindings/Bindings.cpp b/src/Bindings/Bindings.cpp
index 46f8c8f40..5536ab2b0 100644
--- a/src/Bindings/Bindings.cpp
+++ b/src/Bindings/Bindings.cpp
@@ -1,6 +1,6 @@
/*
** Lua binding: AllToLua
-** Generated automatically by tolua++-1.0.92 on 12/15/13 14:19:12.
+** Generated automatically by tolua++-1.0.92 on 12/15/13 20:25:06.
*/
#ifndef __cplusplus
@@ -9395,6 +9395,39 @@ static int tolua_AllToLua_cPlayer_GetIP00(lua_State* tolua_S)
}
#endif //#ifndef TOLUA_DISABLE
+/* method: ForceSetSpeed of class cPlayer */
+#ifndef TOLUA_DISABLE_tolua_AllToLua_cPlayer_ForceSetSpeed00
+static int tolua_AllToLua_cPlayer_ForceSetSpeed00(lua_State* tolua_S)
+{
+#ifndef TOLUA_RELEASE
+ tolua_Error tolua_err;
+ if (
+ !tolua_isusertype(tolua_S,1,"cPlayer",0,&tolua_err) ||
+ (tolua_isvaluenil(tolua_S,2,&tolua_err) || !tolua_isusertype(tolua_S,2,"Vector3d",0,&tolua_err)) ||
+ !tolua_isnoobj(tolua_S,3,&tolua_err)
+ )
+ goto tolua_lerror;
+ else
+#endif
+ {
+ cPlayer* self = (cPlayer*) tolua_tousertype(tolua_S,1,0);
+ Vector3d a_Direction = *((Vector3d*) tolua_tousertype(tolua_S,2,0));
+#ifndef TOLUA_RELEASE
+ if (!self) tolua_error(tolua_S,"invalid 'self' in function 'ForceSetSpeed'", NULL);
+#endif
+ {
+ self->ForceSetSpeed(a_Direction);
+ }
+ }
+ return 0;
+#ifndef TOLUA_RELEASE
+ tolua_lerror:
+ tolua_error(tolua_S,"#ferror in function 'ForceSetSpeed'.",&tolua_err);
+ return 0;
+#endif
+}
+#endif //#ifndef TOLUA_DISABLE
+
/* method: MoveTo of class cPlayer */
#ifndef TOLUA_DISABLE_tolua_AllToLua_cPlayer_MoveTo00
static int tolua_AllToLua_cPlayer_MoveTo00(lua_State* tolua_S)
@@ -31076,6 +31109,7 @@ TOLUA_API int tolua_AllToLua_open (lua_State* tolua_S)
tolua_function(tolua_S,"IsGameModeSurvival",tolua_AllToLua_cPlayer_IsGameModeSurvival00);
tolua_function(tolua_S,"IsGameModeAdventure",tolua_AllToLua_cPlayer_IsGameModeAdventure00);
tolua_function(tolua_S,"GetIP",tolua_AllToLua_cPlayer_GetIP00);
+ tolua_function(tolua_S,"ForceSetSpeed",tolua_AllToLua_cPlayer_ForceSetSpeed00);
tolua_function(tolua_S,"MoveTo",tolua_AllToLua_cPlayer_MoveTo00);
tolua_function(tolua_S,"GetWindow",tolua_AllToLua_cPlayer_GetWindow00);
tolua_function(tolua_S,"CloseWindow",tolua_AllToLua_cPlayer_CloseWindow00);
diff --git a/src/Bindings/Bindings.h b/src/Bindings/Bindings.h
index 4805c260e..ef3b6b49e 100644
--- a/src/Bindings/Bindings.h
+++ b/src/Bindings/Bindings.h
@@ -1,6 +1,6 @@
/*
** Lua binding: AllToLua
-** Generated automatically by tolua++-1.0.92 on 12/15/13 14:19:13.
+** Generated automatically by tolua++-1.0.92 on 12/15/13 20:25:06.
*/
/* Exported function */
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp
index c5fe270d3..f3deefe0b 100644
--- a/src/ClientHandle.cpp
+++ b/src/ClientHandle.cpp
@@ -1760,8 +1760,6 @@ void cClientHandle::SendEntityStatus(const cEntity & a_Entity, char a_Status)
void cClientHandle::SendEntityVelocity(const cEntity & a_Entity)
{
- ASSERT(a_Entity.GetUniqueID() != m_Player->GetUniqueID()); // Must not send for self
-
m_Protocol->SendEntityVelocity(a_Entity);
}
diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp
index c2a76342d..38b911fd2 100644
--- a/src/Entities/Player.cpp
+++ b/src/Entities/Player.cpp
@@ -1069,6 +1069,16 @@ Vector3d cPlayer::GetThrowSpeed(double a_SpeedCoeff) const
+void cPlayer::ForceSetSpeed(Vector3d a_Direction)
+{
+ SetSpeed(a_Direction);
+ m_ClientHandle->SendEntityVelocity(*this);
+}
+
+
+
+
+
void cPlayer::MoveTo( const Vector3d & a_NewPos )
{
if ((a_NewPos.y < -990) && (GetPosY() > -100))
diff --git a/src/Entities/Player.h b/src/Entities/Player.h
index f3ee841e7..a09f7f489 100644
--- a/src/Entities/Player.h
+++ b/src/Entities/Player.h
@@ -167,6 +167,9 @@ public:
// Sets the current gamemode, doesn't check validity, doesn't send update packets to client
void LoginSetGameMode(eGameMode a_GameMode);
+ /// Forces the player to move in the given direction.
+ void ForceSetSpeed(Vector3d a_Direction); // tolua_export
+
/// Tries to move to a new position, with attachment-related checks (y == -999)
void MoveTo(const Vector3d & a_NewPos); // tolua_export