1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#include "shared/net/proto.hh"
namespace shared {
namespace net {
shared::player get_player(const proto::player& packet) noexcept {
return shared::player{
.index = packet.index(),
.commands = packet.commands(),
.chunk_pos = {packet.chunk_pos().x(), packet.chunk_pos().z()},
.local_pos = {packet.local_pos().x(), packet.local_pos().y(),
packet.local_pos().z()},
.viewangles = {packet.viewangles().pitch(), packet.viewangles().yaw()},
.velocity = {packet.velocity().x(), packet.velocity().y(),
packet.velocity().z()},
};
}
void set_angles(proto::angles& proto_angles,
const shared::math::angles& angles) noexcept {
proto_angles.set_pitch(angles.pitch);
proto_angles.set_yaw(angles.yaw);
}
void set_coords(proto::coords& proto_coords,
const shared::math::coords& coords) noexcept {
proto_coords.set_x(coords.x);
proto_coords.set_z(coords.z);
}
void set_vec3(proto::vec3& proto_vec3, const glm::vec3& vec3) noexcept {
proto_vec3.set_x(vec3.x);
proto_vec3.set_y(vec3.y);
proto_vec3.set_z(vec3.z);
}
void set_ivec3(proto::ivec3& proto_ivec3, const glm::ivec3& ivec3) noexcept {
proto_ivec3.set_x(ivec3.x);
proto_ivec3.set_y(ivec3.y);
proto_ivec3.set_z(ivec3.z);
}
void set_player(proto::player& proto_player,
const shared::player& player) noexcept {
proto_player.set_index(player.index);
proto_player.set_commands(player.commands);
set_coords(*proto_player.mutable_chunk_pos(), player.chunk_pos);
set_vec3(*proto_player.mutable_local_pos(), player.local_pos);
set_angles(*proto_player.mutable_viewangles(), player.viewangles);
set_vec3(*proto_player.mutable_velocity(), player.velocity);
}
} // namespace net
} // namespace shared
|