X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fplayer.h;h=67b02c3445d15b7cac634ce8b6917063f3bfce78;hb=8eb717d4d0d4131eb5b82a73b343c7309b1ebf47;hp=9bbdda15a90c0f1d5e6aac20974f10d5c6a57dcb;hpb=42bbd5c9ae06a8d8ffb7915599097ead6f848755;p=oweals%2Fminetest.git diff --git a/src/player.h b/src/player.h index 9bbdda15a..67b02c344 100644 --- a/src/player.h +++ b/src/player.h @@ -3,16 +3,16 @@ Minetest-c55 Copyright (C) 2010-2011 celeron55, Perttu Ahola This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GNU Lesser General Public License for more details. -You should have received a copy of the GNU General Public License along +You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ @@ -20,13 +20,68 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef PLAYER_HEADER #define PLAYER_HEADER -#include "common_irrlicht.h" +#include "irrlichttypes_bloated.h" #include "inventory.h" +#include "constants.h" // BS #define PLAYERNAME_SIZE 20 #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; @@ -150,12 +205,24 @@ public: u8 light; - // In creative mode, this is the invisible backup inventory Inventory inventory; u16 hp; + float hurt_tilt_timer; + float hurt_tilt_strength; + u16 peer_id; + + std::string inventory_formspec; + + PlayerControl control; + PlayerControl getPlayerControl() + { + return control; + } + + u32 keyPressed; protected: IGameDef *m_gamedef; @@ -167,83 +234,6 @@ protected: v3f m_position; }; -#ifndef SERVER -struct PlayerControl -{ - PlayerControl() - { - up = false; - down = false; - left = false; - right = false; - jump = false; - aux1 = false; - sneak = 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, - 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; - pitch = a_pitch; - yaw = a_yaw; - } - bool up; - bool down; - bool left; - bool right; - bool jump; - bool aux1; - bool sneak; - float pitch; - float yaw; -}; - -class LocalPlayer : public Player -{ -public: - LocalPlayer(IGameDef *gamedef); - virtual ~LocalPlayer(); - - bool isLocal() const - { - return true; - } - - void move(f32 dtime, Map &map, f32 pos_max_d, - core::list *collision_info); - void move(f32 dtime, Map &map, f32 pos_max_d); - - void applyControl(float dtime); - - v3s16 getStandingNodePos(); - - PlayerControl control; - -private: - // This is used for determining the sneaking range - v3s16 m_sneak_node; - // Whether the player is allowed to sneak - bool m_sneak_node_exists; -}; -#endif // !SERVER - /* Player on the server */ @@ -258,7 +248,7 @@ public: void setPlayerSAO(PlayerSAO *sao) { m_sao = sao; } void setPosition(const v3f &position); - + private: PlayerSAO *m_sao; };