From 0dbe01de411ea118fcb2f2b6d35b9133b7355c33 Mon Sep 17 00:00:00 2001 From: DevDyna Date: Sun, 17 May 2026 12:33:12 +0200 Subject: [PATCH 01/13] file moved --- .../cakesticklib/api/{ => animations}/AnimatedText.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) rename src/main/java/com/devdyna/cakesticklib/api/{ => animations}/AnimatedText.java (95%) diff --git a/src/main/java/com/devdyna/cakesticklib/api/AnimatedText.java b/src/main/java/com/devdyna/cakesticklib/api/animations/AnimatedText.java similarity index 95% rename from src/main/java/com/devdyna/cakesticklib/api/AnimatedText.java rename to src/main/java/com/devdyna/cakesticklib/api/animations/AnimatedText.java index 627fadf..eb2a517 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/AnimatedText.java +++ b/src/main/java/com/devdyna/cakesticklib/api/animations/AnimatedText.java @@ -1,4 +1,4 @@ -package com.devdyna.cakesticklib.api; +package com.devdyna.cakesticklib.api.animations; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -83,7 +83,7 @@ private MutableComponent tick() { } private void pickNext() { - if (bag.isEmpty()) + if (bag.isEmpty()) refillBag(); currentRaw = entries.get(bag.remove(0)); @@ -92,7 +92,7 @@ private void pickNext() { private void refillBag() { bag.clear(); - for (int i = 0; i < entries.size(); i++) + for (int i = 0; i < entries.size(); i++) bag.add(i); Collections.shuffle(bag); @@ -103,5 +103,4 @@ private void randomizeDelay() { + RANDOM.nextInt((int) (3.5 * TimeUtil.ONE_SECOND))); } - } \ No newline at end of file From 6761584350d756d8b00c96563402a2132ba6bdd1 Mon Sep 17 00:00:00 2001 From: DevDyna Date: Sun, 17 May 2026 12:34:00 +0200 Subject: [PATCH 02/13] added color to ImageGUI --- .../devdyna/cakesticklib/api/gui/ImageGui.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java index 2ccfcb7..8758824 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java +++ b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java @@ -19,6 +19,7 @@ public class ImageGui { private int u = 0; private int v = 0; + private int color = -1;// default public ImageGui() { @@ -52,6 +53,21 @@ public ImageGui offset(int xo, int yo) { return this; } + public ImageGui color(int c) { + this.color = c; + return this; + } + + public ImageGui color(int a, int r, int g, int b) { + this.color = ColorUtils.argb(a, r, g, b); + return this; + } + + public ImageGui color(Color c) { + this.color = ColorUtils.argb(c); + return this; + } + public ImageGui rl(String image) { this.rl = image; return this; @@ -79,6 +95,8 @@ public void render(GuiGraphicsExtractor g) { u, v, x, y, tx, ty); + tx, ty, + color); } From 41fb349ae3abd792681c3a596db4f059f32a46dc Mon Sep 17 00:00:00 2001 From: DevDyna Date: Sun, 17 May 2026 12:34:09 +0200 Subject: [PATCH 03/13] Update ImageGui.java --- src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java index 8758824..0ba1184 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java +++ b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java @@ -1,6 +1,8 @@ package com.devdyna.cakesticklib.api.gui; import com.devdyna.cakesticklib.CakeStickLib; +import com.devdyna.cakesticklib.api.utils.ColorUtils; +import java.awt.Color; import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.renderer.RenderPipelines; From 47af0462cd9dc3a09d239932cea0aa97709ff751 Mon Sep 17 00:00:00 2001 From: DevDyna Date: Sun, 17 May 2026 12:34:21 +0200 Subject: [PATCH 04/13] Update ImageGui.java --- src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java index 0ba1184..611d17b 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java +++ b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java @@ -96,7 +96,6 @@ public void render(GuiGraphicsExtractor g) { yo - 1, u, v, x, y, - tx, ty); tx, ty, color); From e8ae8180ec9e038aa3de7c3f4faa14d9f2938272 Mon Sep 17 00:00:00 2001 From: DevDyna Date: Sun, 17 May 2026 12:34:40 +0200 Subject: [PATCH 05/13] added default values to more imagegui variables --- .../java/com/devdyna/cakesticklib/api/gui/ImageGui.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java index 611d17b..d44f2c9 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java +++ b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java @@ -10,9 +10,9 @@ public class ImageGui { - private int x; - private int y; - private String rl; + private int x = 0; + private int y = 0; + private String rl = ""; private String modid = CakeStickLib.MODULE_ID; private int xo = 0; private int yo = 0; From 53ed53ab153ebbeb66970305226d118e47d03d9d Mon Sep 17 00:00:00 2001 From: DevDyna Date: Sun, 17 May 2026 12:34:54 +0200 Subject: [PATCH 06/13] ImageGui getters --- .../cakesticklib/api/gui/ImageGui.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java index d44f2c9..2694370 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java +++ b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java @@ -1,6 +1,8 @@ package com.devdyna.cakesticklib.api.gui; import com.devdyna.cakesticklib.CakeStickLib; +import com.devdyna.cakesticklib.api.primitive.Pos; +import com.devdyna.cakesticklib.api.primitive.Size; import com.devdyna.cakesticklib.api.utils.ColorUtils; import java.awt.Color; @@ -87,6 +89,66 @@ public ImageGui rl(Identifier rl) { return this; } + public Identifier getLocation() { + return com.devdyna.cakesticklib.api.utils.x.rl(modid, rl); + } + + public Size getSpriteSize() { + return Size.of(x, y); + } + + public Pos getOffsetPos() { + return Pos.of(xo, yo); + } + + public Size getTextureSize() { + return Size.of(tx, ty); + } + + public int getPosX() { + return x; + } + + public int getPosY() { + return y; + } + + public int getOffsetX() { + return xo; + } + + public int getOffsetY() { + return yo; + } + + public int getTextureX() { + return tx; + } + + public int getTextureY() { + return ty; + } + + public int getU() { + return u; + } + + public int getV() { + return v; + } + + public int getColor() { + return color; + } + + public String getModid() { + return modid; + } + + public String getPath() { + return rl; + } + public void render(GuiGraphicsExtractor g) { g.blit( From 8b93c72eb10bc138043f54bb93fcf27df46cce89 Mon Sep 17 00:00:00 2001 From: DevDyna Date: Sun, 17 May 2026 12:35:00 +0200 Subject: [PATCH 07/13] Create CyclicImageGui.java --- .../api/animations/CyclicImageGui.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/main/java/com/devdyna/cakesticklib/api/animations/CyclicImageGui.java diff --git a/src/main/java/com/devdyna/cakesticklib/api/animations/CyclicImageGui.java b/src/main/java/com/devdyna/cakesticklib/api/animations/CyclicImageGui.java new file mode 100644 index 0000000..ec52fe0 --- /dev/null +++ b/src/main/java/com/devdyna/cakesticklib/api/animations/CyclicImageGui.java @@ -0,0 +1,64 @@ +package com.devdyna.cakesticklib.api.animations; + +import java.util.List; + +import com.devdyna.cakesticklib.api.gui.ImageGui; + +import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.util.ARGB; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.Slot; + +/** + * Utility render class based on + * {@code net.minecraft.client.gui.screens.inventory.CyclingSlotBackground} + */ +public class CyclicImageGui { + + private final int slotIndex; + private List icons = List.of(); + private int tick; + private int iconIndex; + private int tickDelay = 30; + + public CyclicImageGui(int slotIndex, int delay) { + this.slotIndex = slotIndex; + this.tickDelay = delay; + } + + /** + * @param newIcons must contain a list of {@code ImageGui} that should an + * {@code Identifier} , SpriteSize , Offset and Texture Size + */ + public void tick(List newIcons) { + if (!this.icons.equals(newIcons)) { + this.icons = newIcons; + this.iconIndex = 0; + } + + if (!this.icons.isEmpty() && ++this.tick % tickDelay == 0) + this.iconIndex = (this.iconIndex + 1) % this.icons.size(); + + } + + public void extractRenderState(AbstractContainerMenu menu, GuiGraphicsExtractor graphics, float partialTicks) { + Slot slot = menu.getSlot(this.slotIndex); + if (!this.icons.isEmpty() && !slot.hasItem()) { + float alphaProgress = (this.icons.size() > 1 && this.tick >= tickDelay) + ? (Math.min((this.tick % tickDelay) + partialTicks, 4.0F) / 4.0F) + : 1.0F; + if (alphaProgress < 1.0F) + extractIcon(slot, this.icons.get(Math.floorMod(this.iconIndex - 1, this.icons.size())), + 1.0F - alphaProgress, graphics); + + + extractIcon(slot, this.icons.get(this.iconIndex), alphaProgress, graphics); + } + + } + + private void extractIcon(Slot slot, ImageGui image, float alphaProgress, GuiGraphicsExtractor graphics) { + image.color(ARGB.white(alphaProgress)).render(graphics); + } + +} \ No newline at end of file From 592869f1c5e0f9d8cd855c753fe1ee7347ea5de7 Mon Sep 17 00:00:00 2001 From: DevDyna Date: Mon, 18 May 2026 01:30:36 +0200 Subject: [PATCH 08/13] Update JEIFluidTankHelper.java --- .../devdyna/cakesticklib/api/compat/jei/JEIFluidTankHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/devdyna/cakesticklib/api/compat/jei/JEIFluidTankHelper.java b/src/main/java/com/devdyna/cakesticklib/api/compat/jei/JEIFluidTankHelper.java index 498f719..c2dd788 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/compat/jei/JEIFluidTankHelper.java +++ b/src/main/java/com/devdyna/cakesticklib/api/compat/jei/JEIFluidTankHelper.java @@ -49,7 +49,7 @@ public static JEIFluidTankHelper of() { public void build(BiFunction builder) { var height = (int) (Math.min(16, Math.max((int) ((fluids.getFirst().getAmount() + 256) * 0.016), 1)) * h); - builder.apply((int) (x0 * w), y0 - height) + builder.apply((int) (x0 * w), y0 - height)//TODO +16 .addIngredients(NeoForgeTypes.FLUID_STACK, fluids) .setFluidRenderer(fluids.getFirst().getAmount(), false, (int) (w * 16), height); } From 2cad5f93565d8b3fa1f021b9e767f1cab8005903 Mon Sep 17 00:00:00 2001 From: DevDyna Date: Mon, 18 May 2026 01:30:48 +0200 Subject: [PATCH 09/13] Update ClientUtils.java --- src/main/java/com/devdyna/cakesticklib/api/gui/ClientUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/devdyna/cakesticklib/api/gui/ClientUtils.java b/src/main/java/com/devdyna/cakesticklib/api/gui/ClientUtils.java index c314481..538479b 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/gui/ClientUtils.java +++ b/src/main/java/com/devdyna/cakesticklib/api/gui/ClientUtils.java @@ -11,7 +11,7 @@ public interface ClientUtils { - final Color defaultToolTipColor = ColorUtils.color(64, 64, 64); + final Color defaultToolTipColor = ColorUtils.color(64, 64, 64,255); default boolean hasShiftDown() { return Minecraft.getInstance().hasShiftDown(); From 6c21e200c41246756d06168bf6906d15bfb4c731 Mon Sep 17 00:00:00 2001 From: DevDyna Date: Mon, 18 May 2026 01:30:57 +0200 Subject: [PATCH 10/13] Update BaseRecipeCategory.java --- .../cakesticklib/api/compat/jei/BaseRecipeCategory.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/devdyna/cakesticklib/api/compat/jei/BaseRecipeCategory.java b/src/main/java/com/devdyna/cakesticklib/api/compat/jei/BaseRecipeCategory.java index a3c36df..ae97ecd 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/compat/jei/BaseRecipeCategory.java +++ b/src/main/java/com/devdyna/cakesticklib/api/compat/jei/BaseRecipeCategory.java @@ -100,10 +100,10 @@ public Size tickPos() { } /** - * Default : 0xA0A0A0 + * Default : 0xFFA0A0A0 */ public int tickColor() { - return 0xA0A0A0; + return 0xFFA0A0A0; } } \ No newline at end of file From ee6f0e7559362c1a0789192fb072ab51423866e7 Mon Sep 17 00:00:00 2001 From: DevDyna Date: Mon, 18 May 2026 01:32:43 +0200 Subject: [PATCH 11/13] Update CyclicImageGui.java --- .../api/animations/CyclicImageGui.java | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/devdyna/cakesticklib/api/animations/CyclicImageGui.java b/src/main/java/com/devdyna/cakesticklib/api/animations/CyclicImageGui.java index ec52fe0..a06d9f9 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/animations/CyclicImageGui.java +++ b/src/main/java/com/devdyna/cakesticklib/api/animations/CyclicImageGui.java @@ -2,9 +2,9 @@ import java.util.List; -import com.devdyna.cakesticklib.api.gui.ImageGui; - import net.minecraft.client.gui.GuiGraphicsExtractor; +import net.minecraft.client.renderer.RenderPipelines; +import net.minecraft.resources.Identifier; import net.minecraft.util.ARGB; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.Slot; @@ -16,21 +16,21 @@ public class CyclicImageGui { private final int slotIndex; - private List icons = List.of(); + private List icons = List.of(); private int tick; private int iconIndex; private int tickDelay = 30; public CyclicImageGui(int slotIndex, int delay) { - this.slotIndex = slotIndex; + this(slotIndex); this.tickDelay = delay; } - /** - * @param newIcons must contain a list of {@code ImageGui} that should an - * {@code Identifier} , SpriteSize , Offset and Texture Size - */ - public void tick(List newIcons) { + public CyclicImageGui(int slotIndex) { + this.slotIndex = slotIndex; + } + + public void tick(List newIcons) { if (!this.icons.equals(newIcons)) { this.icons = newIcons; this.iconIndex = 0; @@ -41,24 +41,33 @@ public void tick(List newIcons) { } - public void extractRenderState(AbstractContainerMenu menu, GuiGraphicsExtractor graphics, float partialTicks) { + public void render(AbstractContainerMenu menu, GuiGraphicsExtractor graphics, float partialTicks, + int top, int left, int width, int height, int u, int v, int textureX, int textureY) { Slot slot = menu.getSlot(this.slotIndex); if (!this.icons.isEmpty() && !slot.hasItem()) { float alphaProgress = (this.icons.size() > 1 && this.tick >= tickDelay) ? (Math.min((this.tick % tickDelay) + partialTicks, 4.0F) / 4.0F) : 1.0F; - if (alphaProgress < 1.0F) - extractIcon(slot, this.icons.get(Math.floorMod(this.iconIndex - 1, this.icons.size())), - 1.0F - alphaProgress, graphics); - + if (alphaProgress < 1.0F) + sprite(slot, + this.icons.get(Math.floorMod(this.iconIndex - 1, this.icons.size())), + 1.0F - alphaProgress, graphics, top, left, width, height, u, v, textureX, textureY); - extractIcon(slot, this.icons.get(this.iconIndex), alphaProgress, graphics); + sprite(slot, this.icons.get(this.iconIndex), alphaProgress, graphics, top, left, width, height, u, v, + textureX, textureY); } } - private void extractIcon(Slot slot, ImageGui image, float alphaProgress, GuiGraphicsExtractor graphics) { - image.color(ARGB.white(alphaProgress)).render(graphics); + private void sprite(Slot slot, Identifier image, float alphaProgress, + GuiGraphicsExtractor graphics, int top, int left, int width, int height, int u, int v, int textureX, + int textureY) { + graphics.blit(RenderPipelines.GUI_TEXTURED, image, + left + slot.x - 1, top + slot.y - 1, + u, v, + width, height, + textureX, textureY, + ARGB.white(alphaProgress)); } } \ No newline at end of file From 1a8ad6a8071ae042dd1d1219a967366750463be0 Mon Sep 17 00:00:00 2001 From: DevDyna Date: Mon, 18 May 2026 01:32:49 +0200 Subject: [PATCH 12/13] Update ImageGui.java --- .../com/devdyna/cakesticklib/api/gui/ImageGui.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java index 2694370..665097f 100644 --- a/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java +++ b/src/main/java/com/devdyna/cakesticklib/api/gui/ImageGui.java @@ -25,6 +25,8 @@ public class ImageGui { private int v = 0; private int color = -1;// default + private boolean flag_first_offset = true; + public ImageGui() { } @@ -52,8 +54,15 @@ public ImageGui uv(int u, int v) { } public ImageGui offset(int xo, int yo) { - this.xo = xo; - this.yo = yo; + if (flag_first_offset) { + this.xo = xo; + this.yo = yo; + flag_first_offset = false; + } else { + this.xo = this.xo + xo; + this.yo = this.yo + yo; + } + return this; } From d6f639bd0bbb378534120171bfa33c556be2e7cc Mon Sep 17 00:00:00 2001 From: DevDyna Date: Mon, 18 May 2026 01:36:06 +0200 Subject: [PATCH 13/13] Update gradle.properties --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 4c5db8b..3b6908b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,7 +12,7 @@ neo_version=26.1.2.44-beta mod_id=cakesticklib mod_name=CakeStickLib mod_license=Custom License -mod_version=1.10 +mod_version=1.10.1 mod_group_id=com.devdyna.cakestick mod_authors=DevDyna mod_description=A standalone port of Synergy API to unify most of the code