From 82d11b7d3e15d8175accf7579db1fbe528fc6583 Mon Sep 17 00:00:00 2001 From: Arne Dußin Date: Wed, 16 Dec 2020 13:34:56 +0100 Subject: Add constant for default colours and selection tool --- src/map/polygon_room.rs | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'src/map/polygon_room.rs') diff --git a/src/map/polygon_room.rs b/src/map/polygon_room.rs index 12c480b..a209a7c 100644 --- a/src/map/polygon_room.rs +++ b/src/map/polygon_room.rs @@ -1,9 +1,9 @@ use super::Mappable; -use crate::math::{self, Rect, Polygon, Triangle, Vec2}; +use crate::colours::DEFAULT_COLOURS; +use crate::math::{self, Polygon, Rect, Triangle, Vec2}; use crate::scaleable::Scaleable; use crate::transform::Transform; use raylib::drawing::{RaylibDraw, RaylibDrawHandle}; -use raylib::ffi::Color; pub type PolygonRoomData = Polygon; @@ -11,13 +11,15 @@ pub struct PolygonRoom { data: PolygonRoomData, // The polygon shape, but in triangles, so the polygon does not have to be triangulated every frame. triangulated: Vec>, + selected: bool, } impl PolygonRoom { pub fn from_data(data: PolygonRoomData) -> Self { Self { data: data.clone(), - triangulated: math::triangulate(data) + triangulated: math::triangulate(data), + selected: false, } } @@ -33,16 +35,23 @@ impl Mappable for PolygonRoom { transform.point_m_to_px(&triangle.corners()[0]), transform.point_m_to_px(&triangle.corners()[1]), transform.point_m_to_px(&triangle.corners()[2]), - Color { - r: 180, - g: 180, - b: 180, - a: 255, + if self.selected() { + DEFAULT_COLOURS.room_selected + } else { + DEFAULT_COLOURS.room_normal }, ) } } + fn set_selected(&mut self, selected: bool) { + self.selected = selected; + } + + fn selected(&self) -> bool { + self.selected + } + fn bounding_rect(&self) -> Rect { Rect::bounding_rect_n(&self.data.corners()) } -- cgit v1.2.3-70-g09d2