Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions pomme-client/src/app/core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,13 @@ impl AppCore {
copy: self.input.copy_pressed(),
cut: self.input.cut_pressed(),
undo: self.input.undo_pressed(),
caret_left: self.input.caret_left_pressed(),
caret_right: self.input.caret_right_pressed(),
caret_up: self.input.caret_up_pressed(),
caret_down: self.input.caret_down_pressed(),
caret_home: self.input.caret_home_pressed(),
caret_end: self.input.caret_end_pressed(),
save: self.input.save_pressed(),
scroll_delta: self.input.consume_menu_scroll(),
}
}
Expand Down
52 changes: 52 additions & 0 deletions pomme-client/src/app/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@ pub struct InputState {
copy_pressed: bool,
cut_pressed: bool,
undo_pressed: bool,
caret_left_pressed: bool,
caret_right_pressed: bool,
caret_up_pressed: bool,
caret_down_pressed: bool,
caret_home_pressed: bool,
caret_end_pressed: bool,
save_pressed: bool,
controller_manager: Option<Gilrs>,
active_gamepad_id: Option<GamepadId>,
recent_actions: HashMap<Action, bool>,
Expand Down Expand Up @@ -99,6 +106,13 @@ impl InputState {
copy_pressed: false,
cut_pressed: false,
undo_pressed: false,
caret_left_pressed: false,
caret_right_pressed: false,
caret_up_pressed: false,
caret_down_pressed: false,
caret_home_pressed: false,
caret_end_pressed: false,
save_pressed: false,
controller_manager,
active_gamepad_id: None,
recent_actions: HashMap::new(),
Expand Down Expand Up @@ -359,6 +373,12 @@ impl InputState {
KeyCode::Escape => self.escape_pressed = true,
KeyCode::Tab => self.tab_pressed = true,
KeyCode::F5 => self.f5_pressed = true,
KeyCode::ArrowLeft => self.caret_left_pressed = true,
KeyCode::ArrowRight => self.caret_right_pressed = true,
KeyCode::ArrowUp => self.caret_up_pressed = true,
KeyCode::ArrowDown => self.caret_down_pressed = true,
KeyCode::Home => self.caret_home_pressed = true,
KeyCode::End => self.caret_end_pressed = true,
KeyCode::KeyV if self.modifiers.state().control_key() => {
if let Ok(mut cb) = arboard::Clipboard::new()
&& let Ok(text) = cb.get_text()
Expand Down Expand Up @@ -387,6 +407,10 @@ impl InputState {
self.undo_pressed = true;
return;
}
KeyCode::KeyS if self.modifiers.state().control_key() => {
self.save_pressed = true;
return;
}
_ => {}
}
}
Expand Down Expand Up @@ -454,6 +478,34 @@ impl InputState {
std::mem::take(&mut self.undo_pressed)
}

pub fn caret_left_pressed(&mut self) -> bool {
std::mem::take(&mut self.caret_left_pressed)
}

pub fn caret_right_pressed(&mut self) -> bool {
std::mem::take(&mut self.caret_right_pressed)
}

pub fn caret_up_pressed(&mut self) -> bool {
std::mem::take(&mut self.caret_up_pressed)
}

pub fn caret_down_pressed(&mut self) -> bool {
std::mem::take(&mut self.caret_down_pressed)
}

pub fn caret_home_pressed(&mut self) -> bool {
std::mem::take(&mut self.caret_home_pressed)
}

pub fn caret_end_pressed(&mut self) -> bool {
std::mem::take(&mut self.caret_end_pressed)
}

pub fn save_pressed(&mut self) -> bool {
std::mem::take(&mut self.save_pressed)
}

pub fn selected_slot(&self) -> u8 {
self.selected_slot
}
Expand Down
8 changes: 7 additions & 1 deletion pomme-client/src/app/phases/in_game.rs
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,12 @@ pub fn update_game(
game.paused = false;
core.apply_cursor_grab(&gfx.window, Some(game));
}
PauseAction::Editor => {
core.menu.open_editor();
game.options_from_game = true;
game.paused = false;
core.apply_cursor_grab(&gfx.window, Some(game));
}
PauseAction::Disconnect => {
return GameUpdateResult::ManualDisconnect;
}
Expand All @@ -770,7 +776,7 @@ pub fn update_game(
if core.menu.render_distance != game.last_render_distance {
game.sync_render_distance(connection, core.menu.render_distance);
}
if !core.menu.is_options_screen() {
if !core.menu.is_options_screen() && !core.menu.is_editor_screen() {
game.options_from_game = false;
game.paused = true;
core.apply_cursor_grab(&gfx.window, Some(game));
Expand Down
Loading
Loading