diff --git a/src/pocketmine/utils/Color.php b/src/pocketmine/utils/Color.php index ff1d414dd..9e5fa04f4 100644 --- a/src/pocketmine/utils/Color.php +++ b/src/pocketmine/utils/Color.php @@ -101,6 +101,30 @@ class Color{ $this->b = $b & 0xff; } + /** + * Mixes the supplied list of colours together to produce a result colour. + * + * @param Color[] ...$colors + * @return Color + */ + public static function mix(Color ...$colors) : Color{ + $count = count($colors); + if($count < 1){ + throw new \ArgumentCountError("No colors given"); + } + + $a = $r = $g = $b = 0; + + foreach($colors as $color){ + $a += $color->a; + $r += $color->r; + $g += $color->g; + $b += $color->b; + } + + return new Color((int) ($r / $count), (int) ($g / $count), (int) ($b / $count), (int) ($a / $count)); + } + /** * Returns a Color from the supplied RGB colour code (24-bit) * @param int $code