diff options
Diffstat (limited to 'games/rstnode/rst-client/src/color.rs')
-rw-r--r-- | games/rstnode/rst-client/src/color.rs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/games/rstnode/rst-client/src/color.rs b/games/rstnode/rst-client/src/color.rs index 4fbd7519dcd0..65c32974ac81 100644 --- a/games/rstnode/rst-client/src/color.rs +++ b/games/rstnode/rst-client/src/color.rs @@ -1,7 +1,32 @@ use ggez::graphics::Color as EzColor; use rst_core::data::Color; - pub fn to(Color(r, g, b): Color) -> EzColor { EzColor::from_rgb(r, g, b) } + +/// A utility for manipulating colours +pub trait ColorUtils { + fn darken(&self, factor: u8) -> Self; + fn brighten(&self, factor: u8) -> Self; +} + +impl ColorUtils for EzColor { + fn darken(&self, factor: u8) -> Self { + Self { + r: self.r / factor as f32, + g: self.g / factor as f32, + b: self.b / factor as f32, + a: self.a, + } + } + + fn brighten(&self, factor: u8) -> Self { + Self { + r: self.r * factor as f32, + g: self.g * factor as f32, + b: self.b * factor as f32, + a: self.a, + } + } +} |