fix: Update toggle TileState debug bind to Shift + LMB instead of only
LMB
This commit is contained in:
@@ -40,7 +40,7 @@ cargo run
|
||||
### Hidden binds (Only available in the debug build)
|
||||
|
||||
- `Shift + Enter`: Duration of the current phase is set to 3 seconds.
|
||||
- `Left Mouse Button` on Tile: Rotate tile state.
|
||||
- `Shift + Left Mouse Button` on Tile: Toggle tile state.
|
||||
- `Shift + Arrow Up`: Add one berry to your inventory
|
||||
- `Shift + Arrow Down`: Remove one berry from your inventory
|
||||
|
||||
|
||||
@@ -21,6 +21,9 @@ impl Plugin for InputPlugin {
|
||||
interact_click.run_if(in_state(AppState::GameScreen)),
|
||||
);
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
app.add_systems(Update, debug_click.run_if(in_state(AppState::GameScreen)));
|
||||
|
||||
app.add_message::<PhaseTimerPauseMessage>();
|
||||
app.add_systems(
|
||||
Update,
|
||||
@@ -74,14 +77,12 @@ fn move_click(
|
||||
fn interact_click(
|
||||
mut interact_messages: MessageWriter<InteractStartMessage>,
|
||||
mouse_btn: Res<ButtonInput<MouseButton>>,
|
||||
keys: Res<ButtonInput<KeyCode>>,
|
||||
window: Single<&Window, With<PrimaryWindow>>,
|
||||
camera: Single<(&Camera, &GlobalTransform), With<Camera2d>>,
|
||||
config: Res<GameConfig>,
|
||||
phase: Res<CurrentPhase>,
|
||||
ui_query: Query<(&ComputedNode, &GlobalTransform), With<Node>>,
|
||||
// for debug
|
||||
grid: ResMut<Grid>,
|
||||
tile_query: Query<&mut TileState>,
|
||||
) {
|
||||
match phase.0 {
|
||||
Phase::Focus { .. } => return,
|
||||
@@ -89,6 +90,9 @@ fn interact_click(
|
||||
}
|
||||
|
||||
if mouse_btn.just_pressed(MouseButton::Left) {
|
||||
if keys.pressed(KeyCode::ShiftLeft) || keys.pressed(KeyCode::ShiftRight) {
|
||||
return;
|
||||
}
|
||||
let (cam, cam_transform) = *camera;
|
||||
|
||||
let Some(cursor_pos) = window.cursor_position() else {
|
||||
@@ -108,8 +112,48 @@ fn interact_click(
|
||||
|
||||
println!("Interact Click: ({}, {})", x, y);
|
||||
interact_messages.write(InteractStartMessage { x, y });
|
||||
}
|
||||
}
|
||||
|
||||
if cfg!(debug_assertions) {
|
||||
fn debug_click(
|
||||
mouse_btn: Res<ButtonInput<MouseButton>>,
|
||||
keys: Res<ButtonInput<KeyCode>>,
|
||||
window: Single<&Window, With<PrimaryWindow>>,
|
||||
camera: Single<(&Camera, &GlobalTransform), With<Camera2d>>,
|
||||
config: Res<GameConfig>,
|
||||
phase: Res<CurrentPhase>,
|
||||
ui_query: Query<(&ComputedNode, &GlobalTransform), With<Node>>,
|
||||
grid: Res<Grid>,
|
||||
tile_query: Query<&mut TileState>,
|
||||
) {
|
||||
match phase.0 {
|
||||
Phase::Focus { .. } => return,
|
||||
_ => {}
|
||||
}
|
||||
|
||||
if mouse_btn.just_pressed(MouseButton::Left) {
|
||||
if !keys.pressed(KeyCode::ShiftLeft) && !keys.pressed(KeyCode::ShiftRight) {
|
||||
return;
|
||||
}
|
||||
|
||||
let (cam, cam_transform) = *camera;
|
||||
|
||||
let Some(cursor_pos) = window.cursor_position() else {
|
||||
return;
|
||||
};
|
||||
if ui_blocks(window, cursor_pos, ui_query) {
|
||||
return;
|
||||
}
|
||||
let Ok(world_pos) = cam.viewport_to_world(cam_transform, cursor_pos) else {
|
||||
return;
|
||||
};
|
||||
let Ok((x, y)) =
|
||||
world_to_grid_coords(world_pos.origin, config.grid_width, config.grid_height)
|
||||
else {
|
||||
return;
|
||||
};
|
||||
|
||||
println!("Debug Toggle Click: ({}, {})", x, y);
|
||||
grid.map_tile_state(
|
||||
(x, y),
|
||||
|state| match state {
|
||||
@@ -121,7 +165,6 @@ fn interact_click(
|
||||
)
|
||||
.unwrap_or_else(|_| ());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn phase_timer_pause(
|
||||
|
||||
Reference in New Issue
Block a user