1
0
Fork 0
Univerxel/src/client/state.hpp

49 lines
1.1 KiB
C++

#pragma once
#include "config.hpp"
#include "core/world/server_handle.hpp"
#include "core/queue/circular_buffer.hpp"
namespace state {
/// Live state
struct state {
bool playing = false;
world::client::Universe::login login{};
bool useSrv = false;
world::AbstractServerFactory *srvContainer = nullptr;
bool capture_mouse = true;
struct {
world::relative_transform relative = world::relative_transform{generational::id(), world::transform()};
world::transform absolute = world::transform();
} position;
world::Universe::query_result look_at = {};
bool can_fill = true;
contouring::Abstract* contouring;
struct line {
std::string text;
std::optional<uint32_t> color;
};
struct {
std::array<char, 256> buffer = {'\0'};
data::circular_buffer<line, 1024> lines;
} console;
struct {
bool aabb = false;
bool obb = false;
bool chunk = false;
} indicators;
};
/// Readonly metrics
struct reports {
size_t tris_count = 0;
size_t models_count = 0;
};
}