]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/config/ColorHelper.java
b1e0cd932921d0e20b90195c4b05eee207e2a6ae
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / config / ColorHelper.java
1 package com.irtimaled.bbor.client.config;
2
3 import java.awt.*;
4 import java.util.HashMap;
5 import java.util.Map;
6
7 public class ColorHelper {
8     private static final Map<HexColor, Color> colorMap = new HashMap<>();
9
10     private static Color getColor(HexColor value) {
11         return colorMap.computeIfAbsent(value, ColorHelper::decodeColor);
12     }
13
14     private static Color decodeColor(HexColor hexColor) {
15         try {
16             int color = Integer.decode(hexColor.getValue());
17
18             int alpha = (color >> 24) & 0xFF;
19             return new Color(color, hexColor.hasAlpha());
20         }
21         catch (Exception ignored) {
22             return null;
23         }
24     }
25
26     public static Color getColor(Setting<HexColor> value) {
27         if(value == null) return Color.WHITE;
28
29         Color color = getColor(value.get());
30         return color != null ? color : getColor(value.defaultValue);
31     }
32 }