31 [&](
const auto&
event)
33 ctx.debug_ui_visible = !ctx.debug_ui_visible;
34 if (ctx.debug_ui_visible)
36 ctx.ui_scene->add_object(*ctx.frame_time_text);
40 ctx.ui_scene->remove_object(*ctx.frame_time_text);
46 ctx.event_subscriptions.emplace_back
50 [&](
const auto&
event)
52 if (ctx.adjust_time_action.is_active())
54 const double sensitivity = 1.0 / static_cast<double>(ctx.window->get_viewport_size().x());
55 const double t = ctx.astronomy_system->get_time();
56 ::world::set_time(ctx, t + static_cast<double>(event.difference.x()) * sensitivity);
59 if (ctx.adjust_exposure_action.is_active())
61 scene::camera* camera{};
62 if (ctx.active_scene == ctx.surface_scene.get())
64 camera = ctx.surface_camera.get();
66 else if (ctx.active_scene == ctx.underground_scene.get())
68 camera = ctx.underground_camera.get();
73 const float sensitivity = 8.0f /
static_cast<float>(ctx.window->get_viewport_size().
y());
74 ctx.surface_camera->set_exposure_value(ctx.surface_camera->get_exposure_value() +
static_cast<float>(
event.difference.y()) * sensitivity);
input::action toggle_debug_ui_action
input::action adjust_exposure_action
std::vector< std::shared_ptr<::event::subscription > > event_subscriptions
input::action adjust_time_action
input::action_map debug_action_map
void enable_debug_controls(::game &ctx)
void setup_debug_controls(::game &ctx)
void disable_debug_controls(::game &ctx)
Publish-subscribe messaging.