diff options
| author | Arne Dußin | 2021-01-27 14:01:50 +0100 |
|---|---|---|
| committer | Arne Dußin | 2021-02-02 22:16:15 +0100 |
| commit | f92e9f6f07b1e3834c2ca58ce3510734819d08e4 (patch) | |
| tree | 20e3d3afce342a56ae98f6c20491482ccd2b5c6b /src/tool/wall_tool.rs | |
| parent | c60a6d07efb120724b308e29e8e70f27c87c952d (diff) | |
| download | graf_karto-f92e9f6f07b1e3834c2ca58ce3510734819d08e4.tar.gz graf_karto-f92e9f6f07b1e3834c2ca58ce3510734819d08e4.zip | |
Rework graf karto to fit the client/server structure
Diffstat (limited to 'src/tool/wall_tool.rs')
| -rw-r--r-- | src/tool/wall_tool.rs | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/src/tool/wall_tool.rs b/src/tool/wall_tool.rs deleted file mode 100644 index e79d815..0000000 --- a/src/tool/wall_tool.rs +++ /dev/null @@ -1,69 +0,0 @@ -//! Tool to create walls. For information about walls, see also -//! [the wall module](crate::map::wall). - -use super::Tool; -use crate::map::Map; -use crate::math::{LineSegment, Vec2}; -use crate::transform::Transform; -use raylib::core::drawing::{RaylibDraw, RaylibDrawHandle}; -use raylib::ffi::{Color, Vector2}; - -/// The wall tool to create solid barriers a player usually cannot cross. -pub struct WallTool { - unfinished_wall: Option<LineSegment<f64>>, -} - -impl WallTool { - /// Create a new wall tool. There should only be one wall tool per program instance, which should - /// be created inside of the editor. - #[allow(clippy::new_without_default)] - pub fn new() -> Self { - Self { - unfinished_wall: None, - } - } -} - -impl Tool for WallTool { - fn deactivate(&mut self) { - self.unfinished_wall = None; - } - - fn update(&mut self, _map: &Map, mouse_pos_m: &Vec2<f64>) { - if let Some(ref mut wall) = &mut self.unfinished_wall { - wall.end = *mouse_pos_m; - } - } - - fn draw(&self, rld: &mut RaylibDrawHandle, transform: &Transform) { - if let Some(ref wall) = self.unfinished_wall { - let start: Vector2 = transform.point_m_to_px(&wall.start).into(); - let end: Vector2 = transform.point_m_to_px(&wall.end).into(); - rld.draw_line_ex( - start, - end, - transform.length_m_to_px(0.1) as f32, - Color { - r: 150, - g: 200, - b: 150, - a: 255, - }, - ); - } - } - - fn place_single(&mut self, map: &mut Map, mouse_pos_m: &Vec2<f64>) { - if let Some(wall) = self.unfinished_wall.take() { - // Continue with the next wall straight away. - self.unfinished_wall = Some(LineSegment::new(wall.end, wall.end)); - map.push_wall(wall); - } else { - self.unfinished_wall = Some(LineSegment::new(*mouse_pos_m, *mouse_pos_m)); - } - } - - fn abort(&mut self) { - self.unfinished_wall = None; - } -} |
