diff options
| author | NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> | 2024-08-04 23:55:53 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-04 15:55:53 +0200 |
| commit | d2ea5ba43970e4beef98d6ba2b1bfb49ba73ab1d (patch) | |
| tree | 42361e9f78b9e872f12d97a72853813e152f26ba /src/main/java/io/github/moulberry/notenoughupdates/miscgui/itemcustomization/ItemCustomizationUtils.java | |
| parent | 2b2f59ef37e93f11a70a44bc83d81ac8d9b64381 (diff) | |
| download | notenoughupdates-d2ea5ba43970e4beef98d6ba2b1bfb49ba73ab1d.tar.gz notenoughupdates-d2ea5ba43970e4beef98d6ba2b1bfb49ba73ab1d.tar.bz2 notenoughupdates-d2ea5ba43970e4beef98d6ba2b1bfb49ba73ab1d.zip | |
Add gradient mode for animated dyes (#1260)
Co-authored-by: Linnea Gräf <nea@nea.moe>
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscgui/itemcustomization/ItemCustomizationUtils.java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/miscgui/itemcustomization/ItemCustomizationUtils.java | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/itemcustomization/ItemCustomizationUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/itemcustomization/ItemCustomizationUtils.java index 9f31fddc..ec8b3af2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/itemcustomization/ItemCustomizationUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/itemcustomization/ItemCustomizationUtils.java @@ -86,7 +86,10 @@ public class ItemCustomizationUtils { public static List<String> speedGuide = Lists.newArrayList( EnumChatFormatting.AQUA + "This is how fast the dyes will cycle, in ticks", - EnumChatFormatting.GRAY + "Hypixel dyes cycle every 2 ticks" + EnumChatFormatting.GRAY + "§6Hypixel §7dyes cycle every 2 ticks", + EnumChatFormatting.GRAY + "", + EnumChatFormatting.GRAY + "In the §dgradient mode §7this decides the amount of intermediary colours", + EnumChatFormatting.GRAY + "This means if speed is set to 1 it's the same as §aCycling mode" ); public static ItemStack copy(ItemStack stack, GuiItemCustomize instance) { @@ -197,7 +200,18 @@ public class ItemCustomizationUtils { return null; } - public static int getAnimatedDyeColour(String[] dyeColours, int ticks) { + public static int getAnimatedDyeColour(String[] dyeColours, int ticks, DyeMode dyeMode) { + if (dyeMode == DyeMode.GRADIENT) { + int i = (Minecraft.getMinecraft().thePlayer.ticksExisted / ticks) % dyeColours.length; + int dyeColour1 = ChromaColour.specialToChromaRGB(dyeColours[i]); + if (i == dyeColours.length - 1) { + i = 0; + } else { + i++; + } + int dyeColour2 = ChromaColour.specialToChromaRGB(dyeColours[i]); + return blendColors(dyeColour1, dyeColour2, (float) (Minecraft.getMinecraft().thePlayer.ticksExisted % ticks) / ticks); + } return ChromaColour.specialToChromaRGB( dyeColours[(Minecraft.getMinecraft().thePlayer.ticksExisted / ticks) % dyeColours.length]); } @@ -343,4 +357,22 @@ public class ItemCustomizationUtils { return jsonString; } + + public static int blendColors(int startColorInt, int endColorInt, float ratio) { + Color startColour = new Color(startColorInt); + Color endColour = new Color(endColorInt); + int redStart = startColour.getRed(); + int greenStart = startColour.getGreen(); + int blueStart = startColour.getBlue(); + + int redEnd = endColour.getRed(); + int greenEnd = endColour.getGreen(); + int blueEnd = endColour.getBlue(); + + int red = (int) (redStart + (redEnd - redStart) * ratio); + int green = (int) (greenStart + (greenEnd - greenStart) * ratio); + int blue = (int) (blueStart + (blueEnd - blueStart) * ratio); + + return (red << 16) | (green << 8) | blue; + } } |
