Compare commits

...

2 commits

Author SHA1 Message Date
8425e89254 add keybind for saving 2025-04-04 23:24:06 +02:00
dbb478f9ec update readme 2025-04-04 23:19:07 +02:00
3 changed files with 10 additions and 5 deletions

View file

@ -1,10 +1,11 @@
# Marble Machinations # Marble Machinations
A zach-like programming-adjacent puzzle game.
Still in development, but core features are mostly stable.
logic mostly like https://git.crispypin.cc/CrispyPin/marble logic mostly like https://git.crispypin.cc/CrispyPin/marble
## todo ## todo
### meta ### meta
- itch page text
- engine tests - engine tests
- blag post about marble movement logic - blag post about marble movement logic
### game ### game
@ -29,7 +30,7 @@ logic mostly like https://git.crispypin.cc/CrispyPin/marble
- validate solutions in server (with limits) - validate solutions in server (with limits)
- show histograms - show histograms
- author name in solutions and blueprints - author name in solutions and blueprints
#### undecided ### undecided
- footprint score (tiles that were non-empty at any point in the run) - footprint score (tiles that were non-empty at any point in the run)
- option to use 8-bit marbles? - option to use 8-bit marbles?
- blueprint rotation? - blueprint rotation?

View file

@ -620,7 +620,7 @@ impl Editor {
self.draw_board(d, &globals.textures); self.draw_board(d, &globals.textures);
self.board_overlay(d, &globals.textures); self.board_overlay(d, &globals.textures);
self.draw_bottom_bar(d, globals); self.draw_bottom_bar(d, globals);
self.draw_top_bar(d, &globals.textures); self.draw_top_bar(d, globals);
if self.active_tool == Tool::Blueprint { if self.active_tool == Tool::Blueprint {
self.draw_blueprint_sidebar(d, &globals.textures); self.draw_blueprint_sidebar(d, &globals.textures);
@ -786,7 +786,8 @@ impl Editor {
} }
} }
fn draw_top_bar(&mut self, d: &mut RaylibDrawHandle, textures: &Textures) { fn draw_top_bar(&mut self, d: &mut RaylibDrawHandle, globals: &Globals) {
let textures = &globals.textures;
// background // background
d.draw_rectangle( d.draw_rectangle(
0, 0,
@ -822,7 +823,8 @@ impl Editor {
(40, 4), (40, 4),
textures.get("save"), textures.get("save"),
(&mut self.tooltip, "save"), (&mut self.tooltip, "save"),
) { ) || globals.is_pressed(ActionId::Save)
{
self.exit_state = ExitState::Save; self.exit_state = ExitState::Save;
} }

View file

@ -25,6 +25,7 @@ pub enum ActionId {
Paste, Paste,
Erase, Erase,
ToggleMenu, ToggleMenu,
Save,
StartSim, StartSim,
StopSim, StopSim,
StepSim, StepSim,
@ -65,6 +66,7 @@ impl Default for Input {
bind_key(ActionId::Paste, vec![LCtrl], V); bind_key(ActionId::Paste, vec![LCtrl], V);
bind_key(ActionId::Erase, vec![], Backspace); bind_key(ActionId::Erase, vec![], Backspace);
bind_key(ActionId::ToggleMenu, vec![], Escape); bind_key(ActionId::ToggleMenu, vec![], Escape);
bind_key(ActionId::Save, vec![LCtrl], S);
bind_key(ActionId::StartSim, vec![], Enter); bind_key(ActionId::StartSim, vec![], Enter);
bind_key(ActionId::StopSim, vec![], Enter); bind_key(ActionId::StopSim, vec![], Enter);
bind_key(ActionId::StepSim, vec![], Space); bind_key(ActionId::StepSim, vec![], Space);