#include "hud.h"
#include "constants.h"
#include "gamedef.h"
-#include "connection.h" // PEER_ID_INEXISTENT
#include "settings.h"
#include "content_sao.h"
#include "util/numeric.h"
is_climbing(false),
swimming_vertical(false),
camera_barely_in_ceiling(false),
+ light(0),
inventory(gamedef->idef()),
hp(PLAYER_MAX_HP),
+ hurt_tilt_timer(0),
+ hurt_tilt_strength(0),
peer_id(PEER_ID_INEXISTENT),
+ keyPressed(0),
// protected
m_gamedef(gamedef),
+ m_breath(-1),
m_pitch(0),
m_yaw(0),
m_speed(0,0,0),
m_position(0,0,0),
- m_collisionbox(-BS*0.30,0.0,-BS*0.30,BS*0.30,BS*1.55,BS*0.30)
+ m_collisionbox(-BS*0.30,0.0,-BS*0.30,BS*0.30,BS*1.55,BS*0.30),
+ m_last_pitch(0),
+ m_last_yaw(0),
+ m_last_pos(0,0,0),
+ m_last_hp(PLAYER_MAX_HP),
+ m_last_inventory(gamedef->idef())
{
updateName("<not set>");
inventory.clear();
craft->setWidth(3);
inventory.addList("craftpreview", 1);
inventory.addList("craftresult", 1);
+ m_last_inventory = inventory;
// Can be redefined via Lua
inventory_formspec = "size[8,7.5]"
physics_override_gravity = 1;
hud_flags = HUD_FLAG_HOTBAR_VISIBLE | HUD_FLAG_HEALTHBAR_VISIBLE |
- HUD_FLAG_CROSSHAIR_VISIBLE | HUD_FLAG_WIELDITEM_VISIBLE;
+ HUD_FLAG_CROSSHAIR_VISIBLE | HUD_FLAG_WIELDITEM_VISIBLE |
+ HUD_FLAG_BREATHBAR_VISIBLE;
hud_hotbar_itemcount = HUD_HOTBAR_ITEMCOUNT_DEFAULT;
}
args.setFloat("yaw", m_yaw);
args.setV3F("position", m_position);
args.setS32("hp", hp);
+ args.setS32("breath", m_breath);
args.writeLines(os);
os<<"PlayerArgsEnd\n";
-
+
inventory.serialize(os);
}
-void Player::deSerialize(std::istream &is)
+void Player::deSerialize(std::istream &is, std::string playername)
{
Settings args;
{
if(is.eof())
throw SerializationError
- ("Player::deSerialize(): PlayerArgsEnd not found");
+ (("Player::deSerialize(): PlayerArgsEnd of player \"" + playername + "\" not found").c_str());
std::string line;
std::getline(is, line);
std::string trimmedline = trim(line);
}catch(SettingNotFoundException &e){
hp = 20;
}
+ try{
+ m_breath = args.getS32("breath");
+ }catch(SettingNotFoundException &e){
+ m_breath = 11;
+ }
inventory.deSerialize(is);
inventory.getList("craftresult")->changeItem(0, ItemStack());
}
}
+
+ // Set m_last_*
+ checkModified();
}
/*