|
|
@ -30,6 +30,24 @@ using namespace std::chrono_literals; |
|
|
|
using namespace ftxui; |
|
|
|
using namespace ftxui; |
|
|
|
using namespace components; |
|
|
|
using namespace components; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void NextLevelUI::create_render() { |
|
|
|
|
|
|
|
has_border = true; |
|
|
|
|
|
|
|
$no_button = Button("NO, I'M NOT", []{ fmt::println("no don't go down"); }); |
|
|
|
|
|
|
|
$yes_button = Button("YES, I'M READY", []{ fmt::println("Going down."); }); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$render = Renderer([&] { |
|
|
|
|
|
|
|
return vflow({ |
|
|
|
|
|
|
|
paragraph($message) | border, |
|
|
|
|
|
|
|
$no_button->Render(), |
|
|
|
|
|
|
|
$yes_button->Render() |
|
|
|
|
|
|
|
}) | flex; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set_renderer($render); |
|
|
|
|
|
|
|
add($yes_button); |
|
|
|
|
|
|
|
add($no_button); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void DeathUI::create_render() { |
|
|
|
void DeathUI::create_render() { |
|
|
|
has_border = true; |
|
|
|
has_border = true; |
|
|
|
$exit_button = Button("EXIT", []{ std::exit(0); }); |
|
|
|
$exit_button = Button("EXIT", []{ std::exit(0); }); |
|
|
@ -211,6 +229,7 @@ void GUI::create_renderer() { |
|
|
|
$status_ui.create_render(); |
|
|
|
$status_ui.create_render(); |
|
|
|
$inventory_ui.create_render(); |
|
|
|
$inventory_ui.create_render(); |
|
|
|
$death_ui.create_render(); |
|
|
|
$death_ui.create_render(); |
|
|
|
|
|
|
|
$next_level_ui.create_render(); |
|
|
|
|
|
|
|
|
|
|
|
$active_panels = {&$map_view, &$status_ui}; |
|
|
|
$active_panels = {&$map_view, &$status_ui}; |
|
|
|
} |
|
|
|
} |
|
|
@ -269,6 +288,7 @@ void GUI::handle_world_events() { |
|
|
|
auto& device = std::any_cast<Device&>(data); |
|
|
|
auto& device = std::any_cast<Device&>(data); |
|
|
|
$status_ui.log(format("Up stairs has test {}.", |
|
|
|
$status_ui.log(format("Up stairs has test {}.", |
|
|
|
(bool)device.config["test"])); |
|
|
|
(bool)device.config["test"])); |
|
|
|
|
|
|
|
toggle_modal(&$next_level_ui, $next_level); |
|
|
|
} break; |
|
|
|
} break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
$status_ui.log(format("INVALID EVENT! {},{}", evt, entity)); |
|
|
|
$status_ui.log(format("INVALID EVENT! {},{}", evt, entity)); |
|
|
@ -441,6 +461,10 @@ void GUI::render_scene() { |
|
|
|
draw_paused(); |
|
|
|
draw_paused(); |
|
|
|
$death_ui.render(); |
|
|
|
$death_ui.render(); |
|
|
|
$renderer.draw($death_ui); |
|
|
|
$renderer.draw($death_ui); |
|
|
|
|
|
|
|
} else if($next_level) { |
|
|
|
|
|
|
|
draw_paused(); |
|
|
|
|
|
|
|
$next_level_ui.render(); |
|
|
|
|
|
|
|
$renderer.draw($next_level_ui); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
$map_view.render(); |
|
|
|
$map_view.render(); |
|
|
|
$renderer.draw($map_view); |
|
|
|
$renderer.draw($map_view); |
|
|
|