|
|
|
@ -8,18 +8,39 @@
|
|
|
|
|
#include <iostream>
|
|
|
|
|
|
|
|
|
|
Editor::Editor(sf::RenderWindow& game_window, Callbacks&& callbacks, std::unique_ptr<Music>&& music, const FontHolder& font_holder) :
|
|
|
|
|
_font(font_holder.get(Fonts::Id::GUI)),
|
|
|
|
|
_game_window(game_window),
|
|
|
|
|
_music(std::move(music)),
|
|
|
|
|
_bpm_calculator(std::make_shared<BPMCalculator>(_music)),
|
|
|
|
|
_bpm_widget(std::make_shared<BPMCalculatorWidget>(_bpm_calculator, font_holder.get(Fonts::Id::GUI)))
|
|
|
|
|
_callbacks(std::move(callbacks)),
|
|
|
|
|
_music(std::move(music))
|
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
void Editor::input(const sf::Event& event)
|
|
|
|
|
{
|
|
|
|
|
_menu_bar->input(event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Editor::update(const sf::Time& dt)
|
|
|
|
|
{
|
|
|
|
|
_menu_bar->update(dt);
|
|
|
|
|
_bpm_widget->update(dt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Editor::draw() const
|
|
|
|
|
{
|
|
|
|
|
_game_window.draw(*_menu_bar);
|
|
|
|
|
_game_window.draw(*_bpm_widget);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Editor::enter()
|
|
|
|
|
{
|
|
|
|
|
(void)callbacks;
|
|
|
|
|
const float window_width = game_window.getSize().x;
|
|
|
|
|
//const float window_height = game_window.getSize().y;
|
|
|
|
|
_bpm_calculator = std::make_shared<BPMCalculator>(_music);
|
|
|
|
|
_bpm_widget = std::make_shared<BPMCalculatorWidget>(_bpm_calculator, _font);
|
|
|
|
|
|
|
|
|
|
const float window_width = _game_window.getSize().x;
|
|
|
|
|
|
|
|
|
|
_menu_bar = std::make_shared<MenuBar>(font_holder.get(Fonts::Id::GUI));
|
|
|
|
|
_menu_bar = std::make_shared<MenuBar>(_font);
|
|
|
|
|
|
|
|
|
|
auto bpm_button = std::make_shared<PushButton>("Play song :)", font_holder.get(Fonts::Id::GUI));
|
|
|
|
|
auto bpm_button = std::make_shared<PushButton>("Calculate BPM", _font);
|
|
|
|
|
bpm_button->setCallback([&]()
|
|
|
|
|
{
|
|
|
|
|
_bpm_widget->setVisibility(true);
|
|
|
|
@ -34,12 +55,12 @@ Editor::Editor(sf::RenderWindow& game_window, Callbacks&& callbacks, std::unique
|
|
|
|
|
auto test_menu_3 = std::make_shared<MenuDrop>();
|
|
|
|
|
test_menu_3->setRect(sf::FloatRect{0, 0, 200, 27 * 5});
|
|
|
|
|
|
|
|
|
|
auto test_cascade_button = std::make_shared<CascadeMenuButton>("Show submenu", font_holder.get(Fonts::Id::GUI));
|
|
|
|
|
auto test_cascade_button = std::make_shared<CascadeMenuButton>("Show submenu", _font);
|
|
|
|
|
|
|
|
|
|
auto test_cascade_button_2 = std::make_shared<CascadeMenuButton>("Show submenu 2", font_holder.get(Fonts::Id::GUI));
|
|
|
|
|
auto test_cascade_button_2 = std::make_shared<CascadeMenuButton>("Show submenu 2", _font);
|
|
|
|
|
|
|
|
|
|
auto quit_button = std::make_shared<PushButton>("Quit", font_holder.get(Fonts::Id::GUI));
|
|
|
|
|
quit_button->setCallback(callbacks.onLeaveEditorState);
|
|
|
|
|
auto quit_button = std::make_shared<PushButton>("Quit", _font);
|
|
|
|
|
quit_button->setCallback(_callbacks.onLeaveEditorState);
|
|
|
|
|
|
|
|
|
|
auto test_menu = std::make_shared<MenuDrop>();
|
|
|
|
|
test_menu->setRect(sf::FloatRect{0, 0, 200, 27 * 3});
|
|
|
|
@ -61,32 +82,14 @@ Editor::Editor(sf::RenderWindow& game_window, Callbacks&& callbacks, std::unique
|
|
|
|
|
|
|
|
|
|
_music->openFromFile("Uta-test.flac");
|
|
|
|
|
_music->setVolume(5);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Editor::input(const sf::Event& event)
|
|
|
|
|
{
|
|
|
|
|
_menu_bar->input(event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Editor::update(const sf::Time& dt)
|
|
|
|
|
{
|
|
|
|
|
_menu_bar->update(dt);
|
|
|
|
|
_bpm_widget->update(dt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Editor::draw() const
|
|
|
|
|
{
|
|
|
|
|
_game_window.draw(*_menu_bar);
|
|
|
|
|
_game_window.draw(*_bpm_widget);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Editor::enter()
|
|
|
|
|
{
|
|
|
|
|
_menu_bar->setVisibility();
|
|
|
|
|
_menu_bar->setVisibility(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Editor::leave()
|
|
|
|
|
{
|
|
|
|
|
_menu_bar->setVisibility(false);
|
|
|
|
|
_menu_bar.reset();
|
|
|
|
|
_bpm_calculator.reset();
|
|
|
|
|
_bpm_widget.reset();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|