mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 06:17:35 +00:00
Snake: Update snake skin color interactively while picking
The snake now changes color while interacting with `GUI::ColorPicker`
This commit is contained in:
parent
0388bb019f
commit
d1f6540196
2 changed files with 6 additions and 4 deletions
|
@ -34,6 +34,7 @@ public:
|
||||||
Function<bool(u32)> on_score_update;
|
Function<bool(u32)> on_score_update;
|
||||||
|
|
||||||
void set_skin_color(Color);
|
void set_skin_color(Color);
|
||||||
|
Gfx::Color get_skin_color() const { return m_snake_color; }
|
||||||
void set_skin_name(DeprecatedString);
|
void set_skin_name(DeprecatedString);
|
||||||
void set_skin(NonnullOwnPtr<SnakeSkin> skin);
|
void set_skin(NonnullOwnPtr<SnakeSkin> skin);
|
||||||
|
|
||||||
|
|
|
@ -108,11 +108,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
auto was_paused = game.is_paused();
|
auto was_paused = game.is_paused();
|
||||||
if (!was_paused)
|
if (!was_paused)
|
||||||
game.pause();
|
game.pause();
|
||||||
auto dialog = GUI::ColorPicker::construct(Gfx::Color::White, window);
|
auto dialog = GUI::ColorPicker::construct(game.get_skin_color(), window);
|
||||||
if (dialog->exec() == GUI::Dialog::ExecResult::OK) {
|
dialog->on_color_changed = [&game](Gfx::Color color) {
|
||||||
|
game.set_skin_color(color);
|
||||||
|
};
|
||||||
|
if (dialog->exec() == GUI::Dialog::ExecResult::OK)
|
||||||
Config::write_u32("Snake"sv, "Snake"sv, "BaseColor"sv, dialog->color().value());
|
Config::write_u32("Snake"sv, "Snake"sv, "BaseColor"sv, dialog->color().value());
|
||||||
game.set_skin_color(dialog->color());
|
|
||||||
}
|
|
||||||
if (!was_paused)
|
if (!was_paused)
|
||||||
game.start();
|
game.start();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue