add player_name text3d preset
This commit is contained in:
parent
65e5063326
commit
e1579f0c25
3
res/presets/text3d/player_name.toml
Normal file
3
res/presets/text3d/player_name.toml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
display = "projected"
|
||||||
|
xray_opacity = 0.3
|
||||||
|
render_distance = 128
|
||||||
@ -50,7 +50,7 @@ LevelScreen::LevelScreen(Engine* engine, std::unique_ptr<Level> levelPtr)
|
|||||||
hud = std::make_unique<Hud>(engine, *frontend, controller->getPlayer());
|
hud = std::make_unique<Hud>(engine, *frontend, controller->getPlayer());
|
||||||
|
|
||||||
decorator = std::make_unique<Decorator>(
|
decorator = std::make_unique<Decorator>(
|
||||||
*controller, *worldRenderer, assets
|
*engine, *controller, *worldRenderer, assets
|
||||||
);
|
);
|
||||||
|
|
||||||
keepAlive(settings.graphics.backlight.observe([=](bool) {
|
keepAlive(settings.graphics.backlight.observe([=](bool) {
|
||||||
|
|||||||
@ -13,7 +13,10 @@
|
|||||||
#include "objects/Players.hpp"
|
#include "objects/Players.hpp"
|
||||||
#include "logic/LevelController.hpp"
|
#include "logic/LevelController.hpp"
|
||||||
#include "util/stringutil.hpp"
|
#include "util/stringutil.hpp"
|
||||||
#include "presets/NotePreset.hpp"
|
#include "engine.hpp"
|
||||||
|
#include "files/files.hpp"
|
||||||
|
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
/// @brief Not greather than 64 for this BIG_PRIME value
|
/// @brief Not greather than 64 for this BIG_PRIME value
|
||||||
inline constexpr int UPDATE_AREA_DIAMETER = 32;
|
inline constexpr int UPDATE_AREA_DIAMETER = 32;
|
||||||
@ -25,22 +28,11 @@ inline constexpr int ITERATIONS = 512;
|
|||||||
/// @brief Big prime number used for pseudo-random 3d array iteration
|
/// @brief Big prime number used for pseudo-random 3d array iteration
|
||||||
inline constexpr int BIG_PRIME = 666667;
|
inline constexpr int BIG_PRIME = 666667;
|
||||||
|
|
||||||
static u64id_t create_player_name_note(
|
|
||||||
const WorldRenderer& renderer, const Player& player
|
|
||||||
) {
|
|
||||||
NotePreset preset {};
|
|
||||||
preset.displayMode = NoteDisplayMode::PROJECTED;
|
|
||||||
preset.xrayOpacity = 0.3f;
|
|
||||||
preset.renderDistance = 128.0f;
|
|
||||||
return renderer.texts->add(std::make_unique<TextNote>(
|
|
||||||
util::str2wstr_utf8(player.getName()), preset, player.getPosition()
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
Decorator::Decorator(
|
Decorator::Decorator(
|
||||||
LevelController& controller, WorldRenderer& renderer, const Assets& assets
|
Engine& engine, LevelController& controller, WorldRenderer& renderer, const Assets& assets
|
||||||
)
|
)
|
||||||
: level(*controller.getLevel()),
|
: engine(engine),
|
||||||
|
level(*controller.getLevel()),
|
||||||
renderer(renderer),
|
renderer(renderer),
|
||||||
assets(assets),
|
assets(assets),
|
||||||
player(*controller.getPlayer()) {
|
player(*controller.getPlayer()) {
|
||||||
@ -54,8 +46,15 @@ Decorator::Decorator(
|
|||||||
if (id == controller.getPlayer()->getId()) {
|
if (id == controller.getPlayer()->getId()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
playerTexts[id] = create_player_name_note(renderer, *player);
|
playerTexts[id] = renderer.texts->add(std::make_unique<TextNote>(
|
||||||
|
util::str2wstr_utf8(player->getName()),
|
||||||
|
playerNamePreset,
|
||||||
|
player->getPosition()
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
playerNamePreset.deserialize(engine.getResPaths()->readCombinedObject(
|
||||||
|
fs::u8path("presets/text3d/player_name.toml")
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Decorator::addParticles(const Block& def, const glm::ivec3& pos) {
|
void Decorator::addParticles(const Block& def, const glm::ivec3& pos) {
|
||||||
@ -141,7 +140,11 @@ void Decorator::update(float delta, const Camera& camera) {
|
|||||||
playerTexts.find(id) != playerTexts.end()) {
|
playerTexts.find(id) != playerTexts.end()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
playerTexts[id] = create_player_name_note(renderer, *player);
|
playerTexts[id] = renderer.texts->add(std::make_unique<TextNote>(
|
||||||
|
util::str2wstr_utf8(player->getName()),
|
||||||
|
playerNamePreset,
|
||||||
|
player->getPosition()
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
auto textsIter = playerTexts.begin();
|
auto textsIter = playerTexts.begin();
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
#include "typedefs.hpp"
|
#include "typedefs.hpp"
|
||||||
|
#include "presets/NotePreset.hpp"
|
||||||
|
|
||||||
class Level;
|
class Level;
|
||||||
class Chunks;
|
class Chunks;
|
||||||
@ -14,10 +15,12 @@ class Camera;
|
|||||||
class Assets;
|
class Assets;
|
||||||
class Player;
|
class Player;
|
||||||
struct Block;
|
struct Block;
|
||||||
|
class Engine;
|
||||||
class LevelController;
|
class LevelController;
|
||||||
class WorldRenderer;
|
class WorldRenderer;
|
||||||
|
|
||||||
class Decorator {
|
class Decorator {
|
||||||
|
Engine& engine;
|
||||||
const Level& level;
|
const Level& level;
|
||||||
const Assets& assets;
|
const Assets& assets;
|
||||||
Player& player;
|
Player& player;
|
||||||
@ -25,6 +28,7 @@ class Decorator {
|
|||||||
std::unordered_map<glm::ivec3, uint64_t> blockEmitters;
|
std::unordered_map<glm::ivec3, uint64_t> blockEmitters;
|
||||||
std::unordered_map<int64_t, u64id_t> playerTexts;
|
std::unordered_map<int64_t, u64id_t> playerTexts;
|
||||||
int currentIndex = 0;
|
int currentIndex = 0;
|
||||||
|
NotePreset playerNamePreset {};
|
||||||
|
|
||||||
void update(
|
void update(
|
||||||
float delta, const glm::ivec3& areaStart, const glm::ivec3& areaCenter
|
float delta, const glm::ivec3& areaStart, const glm::ivec3& areaCenter
|
||||||
@ -32,7 +36,10 @@ class Decorator {
|
|||||||
void addParticles(const Block& def, const glm::ivec3& pos);
|
void addParticles(const Block& def, const glm::ivec3& pos);
|
||||||
public:
|
public:
|
||||||
Decorator(
|
Decorator(
|
||||||
LevelController& level, WorldRenderer& renderer, const Assets& assets
|
Engine& engine,
|
||||||
|
LevelController& level,
|
||||||
|
WorldRenderer& renderer,
|
||||||
|
const Assets& assets
|
||||||
);
|
);
|
||||||
|
|
||||||
void update(float delta, const Camera& camera);
|
void update(float delta, const Camera& camera);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user