aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArne Dußin2020-11-10 23:31:58 +0100
committerArne Dußin2020-11-10 23:31:58 +0100
commit6aabd0123961d90095df3cefefeb0718f94aa6fc (patch)
tree110e3b867ea15b4fbcb1a1ad086ec211e753811a /src
parent94b9d39bd32ced4435951dc7a61612c3ea826b87 (diff)
downloadgraf_karto-6aabd0123961d90095df3cefefeb0718f94aa6fc.tar.gz
graf_karto-6aabd0123961d90095df3cefefeb0718f94aa6fc.zip
Add constant for the grid accuracy
0.5 was used as a magical number throughout the code for that until now, which I now changed.
Diffstat (limited to 'src')
-rw-r--r--src/grid.rs3
-rw-r--r--src/tool/icon_tool.rs8
-rw-r--r--src/tool/room_tool.rs6
-rw-r--r--src/tool/wall_tool.rs6
4 files changed, 14 insertions, 9 deletions
diff --git a/src/grid.rs b/src/grid.rs
index ecc59c3..72a849a 100644
--- a/src/grid.rs
+++ b/src/grid.rs
@@ -3,6 +3,9 @@ use crate::transform::Transform;
use raylib::drawing::RaylibDraw;
use raylib::ffi::Color;
+/// The internal grid length which will be used to snap things to it.
+pub const SNAP_SIZE: f32 = 0.5;
+
pub const LINE_COLOUR: Color = Color {
r: 255,
g: 255,
diff --git a/src/tool/icon_tool.rs b/src/tool/icon_tool.rs
index 702c30e..bd16de8 100644
--- a/src/tool/icon_tool.rs
+++ b/src/tool/icon_tool.rs
@@ -1,6 +1,6 @@
use crate::button::Button;
use crate::config::{IconToolKeybindings, ToolKeybindings};
-use crate::grid::snap_to_grid;
+use crate::grid::{snap_to_grid, SNAP_SIZE};
use crate::map_data::MapData;
use crate::math::Vec2;
use crate::tool::Tool;
@@ -125,8 +125,10 @@ impl Tool for IconTool {
fn active_update(&mut self, map: &mut MapData, rl: &RaylibHandle, transform: &Transform) {
// Update the position of the icon that should be drawn to the current mouse position.
- let snapped_mouse_pos_m =
- snap_to_grid(transform.point_px_to_m(rl.get_mouse_position().into()), 0.5);
+ let snapped_mouse_pos_m = snap_to_grid(
+ transform.point_px_to_m(rl.get_mouse_position().into()),
+ SNAP_SIZE,
+ );
self.current_icon.position = snapped_mouse_pos_m;
// Unwrap the current icon, since it is now definitely set, as we are in the active update.
diff --git a/src/tool/room_tool.rs b/src/tool/room_tool.rs
index bb719e0..0ac74b5 100644
--- a/src/tool/room_tool.rs
+++ b/src/tool/room_tool.rs
@@ -2,7 +2,7 @@ use super::Tool;
use crate::button::Button;
use crate::config::{RoomToolKeybindings, ToolKeybindings};
use crate::dimension_indicator::DimensionIndicator;
-use crate::grid::snap_to_grid;
+use crate::grid::{snap_to_grid, SNAP_SIZE};
use crate::map_data::MapData;
use crate::math::{Rect, Vec2};
use crate::transform::Transform;
@@ -34,7 +34,7 @@ impl Tool for RoomTool {
let mouse_pos_m = transform.point_px_to_m(rl.get_mouse_position().into());
// Update the currently drawn rectangle, if it exists, and also its dimension indicator.
if let Some((ref pos1, ref mut pos2)) = &mut self.unfinished_rect {
- *pos2 = snap_to_grid(mouse_pos_m, 0.5);
+ *pos2 = snap_to_grid(mouse_pos_m, SNAP_SIZE);
self.dimension_indicator.update_dimensions(&[*pos1, *pos2]);
}
@@ -44,7 +44,7 @@ impl Tool for RoomTool {
let (pos1, pos2) = self.unfinished_rect.take().unwrap();
map_data.rooms_mut().push(Rect::bounding_rect(pos1, pos2));
} else if self.keybindings.start_draw.is_pressed(rl) {
- let snapped_mouse_pos = snap_to_grid(mouse_pos_m, 0.5);
+ let snapped_mouse_pos = snap_to_grid(mouse_pos_m, SNAP_SIZE);
self.unfinished_rect = Some((snapped_mouse_pos, snapped_mouse_pos))
}
diff --git a/src/tool/wall_tool.rs b/src/tool/wall_tool.rs
index e815484..157f626 100644
--- a/src/tool/wall_tool.rs
+++ b/src/tool/wall_tool.rs
@@ -1,7 +1,7 @@
use super::Tool;
use crate::button::Button;
use crate::config::{ToolKeybindings, WallToolKeybindings};
-use crate::grid::snap_to_grid;
+use crate::grid::{snap_to_grid, SNAP_SIZE};
use crate::map_data::MapData;
use crate::math::Vec2;
use crate::transform::Transform;
@@ -27,7 +27,7 @@ impl Tool for WallTool {
fn active_update(&mut self, map_data: &mut MapData, rl: &RaylibHandle, transform: &Transform) {
let mouse_pos_m = transform.point_px_to_m(rl.get_mouse_position().into());
if let Some((_, ref mut pos2)) = &mut self.unfinished_wall {
- *pos2 = snap_to_grid(mouse_pos_m, 0.5);
+ *pos2 = snap_to_grid(mouse_pos_m, SNAP_SIZE);
}
if self.keybindings.finish_segment.is_pressed(rl) && self.unfinished_wall.is_some() {
@@ -35,7 +35,7 @@ impl Tool for WallTool {
map_data.walls_mut().push((pos1, pos2));
self.unfinished_wall = Some((pos2, pos2));
} else if self.keybindings.start_wall.is_pressed(rl) {
- let snapped_mouse_pos = snap_to_grid(mouse_pos_m, 0.5);
+ let snapped_mouse_pos = snap_to_grid(mouse_pos_m, SNAP_SIZE);
self.unfinished_wall = Some((snapped_mouse_pos, snapped_mouse_pos))
}