summaryrefslogtreecommitdiffstats
path: root/source/cPlayer.h
diff options
context:
space:
mode:
authorfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-10-03 20:41:19 +0200
committerfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2011-10-03 20:41:19 +0200
commit386d58b5862d8b76925c6523721594887606e82a (patch)
treeef073e7a843f4b75a4008d4b7383f7cdf08ceee5 /source/cPlayer.h
parentVisual Studio 2010 solution and project files (diff)
downloadcuberite-386d58b5862d8b76925c6523721594887606e82a.tar
cuberite-386d58b5862d8b76925c6523721594887606e82a.tar.gz
cuberite-386d58b5862d8b76925c6523721594887606e82a.tar.bz2
cuberite-386d58b5862d8b76925c6523721594887606e82a.tar.lz
cuberite-386d58b5862d8b76925c6523721594887606e82a.tar.xz
cuberite-386d58b5862d8b76925c6523721594887606e82a.tar.zst
cuberite-386d58b5862d8b76925c6523721594887606e82a.zip
Diffstat (limited to 'source/cPlayer.h')
-rw-r--r--source/cPlayer.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/source/cPlayer.h b/source/cPlayer.h
new file mode 100644
index 000000000..6f05b824d
--- /dev/null
+++ b/source/cPlayer.h
@@ -0,0 +1,96 @@
+#pragma once
+
+#include "cPawn.h"
+#include <list>
+
+class cGroup;
+class cWindow;
+class cInventory;
+class cClientHandle;
+class cPlayer : public cPawn //tolua_export
+{ //tolua_export
+public:
+ CLASS_PROTOTYPE();
+
+ cPlayer(cClientHandle* a_Client, const char* a_PlayerName);
+ virtual ~cPlayer();
+
+ virtual void SpawnOn( cClientHandle* a_Target );
+ virtual void Tick(float a_Dt);
+
+ void SetTouchGround( bool a_bTouchGround );
+ inline void SetStance( const double & a_Stance ) { m_Stance = a_Stance; }
+ double GetEyeHeight(); //tolua_export
+ Vector3d GetEyePosition(); //tolua_export
+ inline bool GetFlying() { return m_bTouchGround; } //tolua_export
+ inline const double & GetStance() { return m_Stance; } //tolua_export
+ cInventory & GetInventory() { return *m_Inventory; } //tolua_export
+ virtual void TeleportTo( cEntity* a_Entity ); //tolua_export
+ virtual void TeleportTo( const double & a_PosX, const double & a_PosY, const double & a_PosZ ); //tolua_export
+
+ // Tries to move to a new position, with collision checks and stuff
+ virtual void MoveTo( const Vector3d & a_NewPos ); //tolua_export
+
+ cWindow* GetWindow() { return m_CurrentWindow; }
+ void OpenWindow( cWindow* a_Window );
+ void CloseWindow();
+
+ cClientHandle* GetClientHandle() { return m_ClientHandle; } //tolua_export
+ void SetClientHandle( cClientHandle* a_Client ) { m_ClientHandle = a_Client; }
+
+ void SendMessage( const char* a_Message ); //tolua_export
+
+ const char* GetName(); //tolua_export
+ void SetName( const char* a_Name ); //tolua_export
+
+ typedef std::list< cGroup* > GroupList;
+ void AddToGroup( const char* a_GroupName ); //tolua_export
+ bool CanUseCommand( const char* a_Command ); //tolua_export
+ bool HasPermission( const char* a_Permission ); //tolua_export
+ const GroupList & GetGroups(); // >> EXPORTED IN MANUALBINDINGS <<
+ bool IsInGroup( const char* a_Group ); //tolua_export
+
+ std::string GetColor(); //tolua_export
+
+ void TossItem( bool a_bDraggingItem, int a_Amount = 1 ); //tolua_export
+
+ void Heal( int a_Health ); //tolua_export
+ void TakeDamage( int a_Damage, cEntity* a_Instigator ); //tolua_export
+ void KilledBy( cEntity* a_Killer ); //tolua_export
+ void Respawn(); //tolua_export
+
+ void SetVisible( bool a_bVisible ); //tolua_export
+ bool IsVisible() { return m_bVisible; } //tolua_export
+
+ bool SaveToDisk();
+ bool LoadFromDisk();
+
+ //Burning logic
+ bool m_bBurnable;
+ enum PMetaState{NORMAL,BURNING,CROUCHED,RIDING} e_EPMetaState;
+ virtual void CheckMetaDataBurn();
+ virtual void InStateBurning(float a_Dt);
+
+protected:
+ struct sPlayerState;
+ sPlayerState* m_pState;
+
+ bool m_bVisible;
+
+ float m_LastGroundHeight;
+ bool m_bTouchGround;
+ double m_Stance;
+ cInventory* m_Inventory;
+ cWindow* m_CurrentWindow;
+
+ float m_TimeLastPickupCheck;
+
+ void ResolvePermissions();
+
+ void ResolveGroups();
+ char m_Color;
+ float m_FireDamageInterval;
+ float m_BurnPeriod;
+
+ cClientHandle* m_ClientHandle;
+}; //tolua_export