From 34c2a09c99620a1771f0658e25f94842dd266092 Mon Sep 17 00:00:00 2001 From: SuperGamerTron <45374546+SuperGamerTron@users.noreply.github.com> Date: Sun, 26 Jan 2025 15:15:34 -0700 Subject: [PATCH] Fix incorrect redstone tint colors (#38) --- .../generators/TintsDataGenerator.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mc/1.21.3/src/main/java/dev/u9g/minecraftdatagenerator/generators/TintsDataGenerator.java b/mc/1.21.3/src/main/java/dev/u9g/minecraftdatagenerator/generators/TintsDataGenerator.java index f3a994e..19e15c3 100644 --- a/mc/1.21.3/src/main/java/dev/u9g/minecraftdatagenerator/generators/TintsDataGenerator.java +++ b/mc/1.21.3/src/main/java/dev/u9g/minecraftdatagenerator/generators/TintsDataGenerator.java @@ -13,6 +13,7 @@ import net.minecraft.registry.Registry; import net.minecraft.registry.RegistryKeys; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.ColorHelper; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.FoliageColors; @@ -38,12 +39,20 @@ public class TintsDataGenerator implements IDataGenerator { Map resultColors = new LinkedHashMap<>(); for (int redstoneLevel : RedstoneWireBlock.POWER.getValues()) { - int color = RedstoneWireBlock.getWireColor(redstoneLevel); + // Remove the unintended alpha channel from the redstone tint color + int color = removeAlphaChannel(RedstoneWireBlock.getWireColor(redstoneLevel)); resultColors.put(redstoneLevel, color); } return resultColors; } + private static int removeAlphaChannel(int color) { + float r = (float) (color >> 16 & 0xFF) / 255; + float g = (float) (color >> 8 & 0xFF) / 255; + float b = (float) (color & 0xFF) / 255; + return ColorHelper.fromFloats(0, r, g, b); + } + private static int getBlockColor(Block block) { return BlockColors.create().getColor(block.getDefaultState(), EmptyRenderBlockView.INSTANCE, BlockPos.ORIGIN, 0xFFFFFF); }