raycaster/boss/ui.hpp

36 lines
889 B
C++

#pragma once
#include "dinkyecs.hpp"
#include <memory>
#include <SFML/Graphics/RenderWindow.hpp>
#include <guecs/ui.hpp>
#include "textures.hpp"
#include "gui/combat_ui.hpp"
namespace components {
struct BossFight;
}
namespace boss {
using std::shared_ptr;
using namespace DinkyECS;
using namespace textures;
struct UI {
shared_ptr<World> $world = nullptr;
Entity $boss_id = NONE;
components::BossFight& $scene;
gui::CombatUI $combat_ui;
SpriteTexture $boss_sprite;
SpriteTexture $player_sprite;
SpriteTexture $floor_sprite;
guecs::UI $arena;
guecs::UI $actions;
UI(shared_ptr<World> world, Entity boss_id);
void init();
void render(sf::RenderWindow& window);
bool mouse(float x, float y, guecs::Modifiers mods);
void position_sprite(SpriteTexture& st, const std::string& name, float scale, bool at_mid=false);
};
}