package net.minecraft.util; import net.minecraft.world.phys.Vec3; import org.joml.Vector3f; public class ARGB { public static int alpha(int p_362339_) { return p_362339_ >>> 24; } public static int red(int p_363530_) { return p_363530_ >> 16 & 0xFF; } public static int green(int p_362707_) { return p_362707_ >> 8 & 0xFF; } public static int blue(int p_367010_) { return p_367010_ & 0xFF; } public static int color(int p_365053_, int p_365624_, int p_367179_, int p_364375_) { return p_365053_ << 24 | p_365624_ << 16 | p_367179_ << 8 | p_364375_; } public static int color(int p_368038_, int p_364189_, int p_366166_) { return color(255, p_368038_, p_364189_, p_366166_); } public static int color(Vec3 p_368690_) { return color(as8BitChannel((float)p_368690_.x()), as8BitChannel((float)p_368690_.y()), as8BitChannel((float)p_368690_.z())); } public static int multiply(int p_368908_, int p_362670_) { if (p_368908_ == -1) { return p_362670_; } else { return p_362670_ == -1 ? p_368908_ : color( alpha(p_368908_) * alpha(p_362670_) / 255, red(p_368908_) * red(p_362670_) / 255, green(p_368908_) * green(p_362670_) / 255, blue(p_368908_) * blue(p_362670_) / 255 ); } } public static int scaleRGB(int p_364590_, float p_365829_) { return scaleRGB(p_364590_, p_365829_, p_365829_, p_365829_); } public static int scaleRGB(int p_368386_, float p_366859_, float p_367328_, float p_364459_) { return color( alpha(p_368386_), Math.clamp((long)((int)((float)red(p_368386_) * p_366859_)), 0, 255), Math.clamp((long)((int)((float)green(p_368386_) * p_367328_)), 0, 255), Math.clamp((long)((int)((float)blue(p_368386_) * p_364459_)), 0, 255) ); } public static int scaleRGB(int p_366038_, int p_368003_) { return color( alpha(p_366038_), Math.clamp((long)red(p_366038_) * (long)p_368003_ / 255L, 0, 255), Math.clamp((long)green(p_366038_) * (long)p_368003_ / 255L, 0, 255), Math.clamp((long)blue(p_366038_) * (long)p_368003_ / 255L, 0, 255) ); } public static int greyscale(int p_362330_) { int i = (int)((float)red(p_362330_) * 0.3F + (float)green(p_362330_) * 0.59F + (float)blue(p_362330_) * 0.11F); return color(i, i, i); } public static int lerp(float p_368280_, int p_363975_, int p_368594_) { int i = Mth.lerpInt(p_368280_, alpha(p_363975_), alpha(p_368594_)); int j = Mth.lerpInt(p_368280_, red(p_363975_), red(p_368594_)); int k = Mth.lerpInt(p_368280_, green(p_363975_), green(p_368594_)); int l = Mth.lerpInt(p_368280_, blue(p_363975_), blue(p_368594_)); return color(i, j, k, l); } public static int opaque(int p_363480_) { return p_363480_ | 0xFF000000; } public static int transparent(int p_366691_) { return p_366691_ & 16777215; } public static int color(int p_362407_, int p_368043_) { return p_362407_ << 24 | p_368043_ & 16777215; } public static int white(float p_361606_) { return as8BitChannel(p_361606_) << 24 | 16777215; } public static int colorFromFloat(float p_365014_, float p_365331_, float p_361446_, float p_367224_) { return color(as8BitChannel(p_365014_), as8BitChannel(p_365331_), as8BitChannel(p_361446_), as8BitChannel(p_367224_)); } public static Vector3f vector3fFromRGB24(int p_368966_) { float f = (float)red(p_368966_) / 255.0F; float f1 = (float)green(p_368966_) / 255.0F; float f2 = (float)blue(p_368966_) / 255.0F; return new Vector3f(f, f1, f2); } public static int average(int p_368446_, int p_366831_) { return color( (alpha(p_368446_) + alpha(p_366831_)) / 2, (red(p_368446_) + red(p_366831_)) / 2, (green(p_368446_) + green(p_366831_)) / 2, (blue(p_368446_) + blue(p_366831_)) / 2 ); } public static int as8BitChannel(float p_367233_) { return Mth.floor(p_367233_ * 255.0F); } public static float alphaFloat(int p_376586_) { return from8BitChannel(alpha(p_376586_)); } public static float redFloat(int p_375781_) { return from8BitChannel(red(p_375781_)); } public static float greenFloat(int p_375888_) { return from8BitChannel(green(p_375888_)); } public static float blueFloat(int p_377428_) { return from8BitChannel(blue(p_377428_)); } private static float from8BitChannel(int p_370155_) { return (float)p_370155_ / 255.0F; } public static int toABGR(int p_368147_) { return p_368147_ & -16711936 | (p_368147_ & 0xFF0000) >> 16 | (p_368147_ & 0xFF) << 16; } public static int fromABGR(int p_369336_) { return toABGR(p_369336_); } }