aboutsummaryrefslogtreecommitdiff
path: root/src/player.h
diff options
context:
space:
mode:
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>2012-11-22 21:01:31 +0200
committerPerttu Ahola <celeron55@gmail.com>2012-11-25 19:14:24 +0200
commit3d1c481f0bdf03b59871237d810685278e87613b (patch)
treefe49c10e926b1e452e4f98561a148e2f145c27e9 /src/player.h
parent756db8174aa6a05eb998cfcec8eb5127053c5ea9 (diff)
downloaddragonfireclient-3d1c481f0bdf03b59871237d810685278e87613b.tar.xz
RealBadAngel's patch which allows the lua api to read pressed player keys. This should make it possible to change the player's animation based on what he is doing
Correct lua api version number Always update animations and attachments after the entity is added to scene client side. Fixes animations not being applied in client initialization for some reason. Attachments should be re-tested now just to be safe. Fix a segmentation fault caused by reaching materials that didn't exist in a loop for setting texture
Diffstat (limited to 'src/player.h')
-rw-r--r--src/player.h69
1 files changed, 66 insertions, 3 deletions
diff --git a/src/player.h b/src/player.h
index 47f34c178..6c7c1e4ea 100644
--- a/src/player.h
+++ b/src/player.h
@@ -28,6 +28,61 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define PLAYERNAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
+struct PlayerControl
+{
+ PlayerControl()
+ {
+ up = false;
+ down = false;
+ left = false;
+ right = false;
+ jump = false;
+ aux1 = false;
+ sneak = false;
+ LMB = false;
+ RMB = false;
+ pitch = 0;
+ yaw = 0;
+ }
+ PlayerControl(
+ bool a_up,
+ bool a_down,
+ bool a_left,
+ bool a_right,
+ bool a_jump,
+ bool a_aux1,
+ bool a_sneak,
+ bool a_LMB,
+ bool a_RMB,
+ float a_pitch,
+ float a_yaw
+ )
+ {
+ up = a_up;
+ down = a_down;
+ left = a_left;
+ right = a_right;
+ jump = a_jump;
+ aux1 = a_aux1;
+ sneak = a_sneak;
+ LMB = a_LMB;
+ RMB = a_RMB;
+ pitch = a_pitch;
+ yaw = a_yaw;
+ }
+ bool up;
+ bool down;
+ bool left;
+ bool right;
+ bool jump;
+ bool aux1;
+ bool sneak;
+ bool LMB;
+ bool RMB;
+ float pitch;
+ float yaw;
+};
+
class Map;
class IGameDef;
struct CollisionInfo;
@@ -155,9 +210,17 @@ public:
u16 hp;
u16 peer_id;
-
+
std::string inventory_formspec;
-
+
+ PlayerControl control;
+ PlayerControl getPlayerControl()
+ {
+ return control;
+ }
+
+ u32 keyPressed;
+
protected:
IGameDef *m_gamedef;
@@ -182,7 +245,7 @@ public:
void setPlayerSAO(PlayerSAO *sao)
{ m_sao = sao; }
void setPosition(const v3f &position);
-
+
private:
PlayerSAO *m_sao;
};