refactor Player serialization

This commit is contained in:
MihailRis
2024-09-19 13:53:13 +03:00
parent 3953583605
commit d0328f2feb
+7 -9
View File
@@ -14,6 +14,7 @@
#include "window/Camera.hpp" #include "window/Camera.hpp"
#include "window/Events.hpp" #include "window/Events.hpp"
#include "world/Level.hpp" #include "world/Level.hpp"
#include "data/dv_util.hpp"
const float CROUCH_SPEED_MUL = 0.35f; const float CROUCH_SPEED_MUL = 0.35f;
const float RUN_SPEED_MUL = 1.5f; const float RUN_SPEED_MUL = 1.5f;
@@ -259,9 +260,9 @@ glm::vec3 Player::getSpawnPoint() const {
dv::value Player::serialize() const { dv::value Player::serialize() const {
auto root = dv::object(); auto root = dv::object();
root["position"] = dv::list({position.x, position.y, position.z}); root["position"] = dv::to_value(position);
root["rotation"] = dv::list({cam.x, cam.y, cam.z}); root["rotation"] = dv::to_value(cam);
root["spawnpoint"] = dv::list({spawnpoint.x, spawnpoint.y, spawnpoint.z}); root["spawnpoint"] = dv::to_value(spawnpoint);
root["flight"] = flight; root["flight"] = flight;
root["noclip"] = noclip; root["noclip"] = noclip;
@@ -279,15 +280,12 @@ dv::value Player::serialize() const {
void Player::deserialize(const dv::value& src) { void Player::deserialize(const dv::value& src) {
const auto& posarr = src["position"]; const auto& posarr = src["position"];
position.x = posarr[0].asNumber();
position.y = posarr[1].asNumber(); dv::get_vec(posarr, position);
position.z = posarr[2].asNumber();
camera->position = position; camera->position = position;
const auto& rotarr = src["rotation"]; const auto& rotarr = src["rotation"];
cam.x = rotarr[0].asNumber(); dv::get_vec(rotarr, cam);
cam.y = rotarr[1].asNumber();
cam.z = rotarr[2].asNumber();
const auto& sparr = src["spawnpoint"]; const auto& sparr = src["spawnpoint"];
setSpawnPoint(glm::vec3( setSpawnPoint(glm::vec3(