aboutsummaryrefslogtreecommitdiff
path: root/src/editor.rs
diff options
context:
space:
mode:
authorArne Dußin2021-01-06 22:50:14 +0100
committerGitHub2021-01-06 22:50:14 +0100
commitd8123704ea4fe4f1fb677db31ecac53c9c40096e (patch)
treee0a365444784efaaeb1eea6373b34559b6d57fbc /src/editor.rs
parent30b23db9e86fdf72a4e7de72213df274ce19123e (diff)
parentfa1afb6be3ba2d521eb0791edc0bb8e631a85327 (diff)
downloadgraf_karto-d8123704ea4fe4f1fb677db31ecac53c9c40096e.tar.gz
graf_karto-d8123704ea4fe4f1fb677db31ecac53c9c40096e.zip
Merge pull request #27 from LordSentox/snapping
Add snapping module to replace the rigid grid snapping
Diffstat (limited to 'src/editor.rs')
-rw-r--r--src/editor.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/editor.rs b/src/editor.rs
index e652ddc..2cf2e41 100644
--- a/src/editor.rs
+++ b/src/editor.rs
@@ -7,8 +7,8 @@
use crate::button::{Button, MouseButton};
use crate::config::Config;
-use crate::grid::{snap_to_grid, SNAP_SIZE};
use crate::map::Map;
+use crate::snapping::Snapper;
use crate::tool::*;
use crate::transform::Transform;
use raylib::core::drawing::RaylibDrawHandle;
@@ -106,7 +106,13 @@ impl Editor {
/// Update the internal editor data where necessary and handle selecting different tools, aswell
/// as updating the currently active tool. Should be called once every frame.
- pub fn update(&mut self, rl: &mut RaylibHandle, transform: &Transform, mouse_blocked: bool) {
+ pub fn update(
+ &mut self,
+ rl: &mut RaylibHandle,
+ transform: &Transform,
+ snapper: &Snapper,
+ mouse_blocked: bool,
+ ) {
// Handle keybindings for tool change
for (&tool_type, (_, activation_key)) in self.tools.iter() {
if activation_key.is_pressed(rl, false) {
@@ -122,7 +128,7 @@ impl Editor {
}
let mouse_pos_m = transform.point_px_to_m(&rl.get_mouse_position().into());
- let snapped_mouse_pos = snap_to_grid(mouse_pos_m, SNAP_SIZE);
+ let snapped_mouse_pos = snapper.snap(mouse_pos_m);
// Update the currently active tool
let active_tool = &mut self.tools.get_mut(&self.active).unwrap().0;