aboutsummaryrefslogtreecommitdiff
path: root/games/rstnode/rst-client/src/color.rs
diff options
context:
space:
mode:
Diffstat (limited to 'games/rstnode/rst-client/src/color.rs')
-rw-r--r--games/rstnode/rst-client/src/color.rs27
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,
+ }
+ }
+}