diff --git a/common/src/main/java/org/saturnclient/common/minecraft/MinecraftProvider.java b/common/src/main/java/org/saturnclient/common/minecraft/MinecraftProvider.java index 367acf1..6da5180 100644 --- a/common/src/main/java/org/saturnclient/common/minecraft/MinecraftProvider.java +++ b/common/src/main/java/org/saturnclient/common/minecraft/MinecraftProvider.java @@ -2,6 +2,9 @@ package org.saturnclient.common.minecraft; import java.io.File; +import org.saturnclient.common.minecraft.bindings.SaturnIdentifier; +import java.awt.image.BufferedImage; + public abstract class MinecraftProvider { public static MinecraftProvider PROVIDER; @@ -12,4 +15,6 @@ public abstract class MinecraftProvider { public abstract File getRunDirectory(); public abstract int getWidth(String text, int font); + + public abstract void registerBufferedImageTexture(SaturnIdentifier i, BufferedImage bi); } diff --git a/common/src/main/java/org/saturnclient/common/minecraft/bindings/SaturnIdentifier.java b/common/src/main/java/org/saturnclient/common/minecraft/bindings/SaturnIdentifier.java index bd7a77e..45971ef 100644 --- a/common/src/main/java/org/saturnclient/common/minecraft/bindings/SaturnIdentifier.java +++ b/common/src/main/java/org/saturnclient/common/minecraft/bindings/SaturnIdentifier.java @@ -12,6 +12,12 @@ public class SaturnIdentifier extends MinecraftBinding { return new SaturnIdentifier(namespace, path); } + public static SaturnIdentifier of(String fullPath) { + String[] p = fullPath.split(":", 2); + + return new SaturnIdentifier(p[0], p[1]); + } + public static SaturnIdentifier ofVanilla(String path) { return new SaturnIdentifier("minecraft", path); } diff --git a/common/src/main/java/org/saturnclient/ui/elements/ImageTexture.java b/common/src/main/java/org/saturnclient/ui/elements/ImageTexture.java index 573dc4f..8173d8d 100644 --- a/common/src/main/java/org/saturnclient/ui/elements/ImageTexture.java +++ b/common/src/main/java/org/saturnclient/ui/elements/ImageTexture.java @@ -5,18 +5,11 @@ import org.saturnclient.ui.Element; import org.saturnclient.ui.ElementContext; import org.saturnclient.ui.RenderScope; -import net.minecraft.client.MinecraftClient; -import net.minecraft.util.Identifier; - public class ImageTexture extends Element { - Identifier sprite; - - public ImageTexture(Identifier sprite) { - this.sprite = sprite; - } + SaturnIdentifier sprite; public ImageTexture(SaturnIdentifier sprite) { - this.sprite = (Identifier) sprite.inner; + this.sprite = sprite; } @Override diff --git a/common/src/main/java/org/saturnclient/ui/resources/SvgTexture.java b/common/src/main/java/org/saturnclient/ui/resources/SvgTexture.java index 08988f5..1724a5b 100644 --- a/common/src/main/java/org/saturnclient/ui/resources/SvgTexture.java +++ b/common/src/main/java/org/saturnclient/ui/resources/SvgTexture.java @@ -9,16 +9,11 @@ import java.util.List; import com.kitfox.svg.SVGDiagram; import com.kitfox.svg.SVGUniverse; - -import org.jetbrains.annotations.Nullable; -import org.saturnclient.cosmetics.cloak.utils.IdentifierUtils; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.util.Identifier; +import org.saturnclient.common.minecraft.bindings.SaturnIdentifier; public class SvgTexture { - private static List svgCache = new ArrayList<>(); + private static List svgCache = new ArrayList<>(); private static BufferedImage renderSvg(InputStream svgStream, int width, int height) throws Exception { // Load SVG @@ -52,9 +47,8 @@ public class SvgTexture { return image; } - @Nullable - public static Identifier getSvg(MinecraftClient client, Identifier svgImage, int width, int height) { - Identifier id = Identifier + public static SaturnIdentifier getSvg(MinecraftClient client, SaturnIdentifier svgImage, int width, int height) { + SaturnIdentifier id = SaturnIdentifier .of(svgImage.toString().replaceAll("\\.svg$", (width + "_" + height).toString() + ".png")); if (svgCache.contains(id)) { diff --git a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/Animation.java b/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/Animation.java deleted file mode 100644 index 55982ac..0000000 --- a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/Animation.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.saturnclient.ui.anim; - -import java.util.function.Function; - -import org.saturnclient.config.AnimationConfig; -import org.saturnclient.ui.Element; - -public abstract class Animation { - public int duration; - public int delay = 0; - public Function curve = Curve::easeInOutCubic; - - Animation(AnimationConfig config) { - this.duration = config.duration.value; - switch (config.curve.value) { - case 0: - this.curve = Curve::easeInOutCubic; - break; - case 1: - this.curve = Curve::easeOutCubic; - break; - case 2: - this.curve = Curve::easeInOutBack; - break; - default: - break; - } - } - - Animation(int duration) { - this.duration = duration; - } - - public abstract void tick(double progress, Element element); - - public abstract void init(Element element); -} diff --git a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/Curve.java b/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/Curve.java deleted file mode 100644 index e19d503..0000000 --- a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/Curve.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.saturnclient.ui.anim; - -public class Curve { - public static double easeOutCubic(double x) { - return 1 - Math.pow(1 - x, 3); - } - - public static double easeInOutCubic(double x) { - return (x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2); - } - - public static double easeInOutBack(double x) { - double c1 = 2.5; - double c2 = c1 * 1.525; - - if (x < 0.5) { - return (Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2)) / 2; - } else { - return (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (2 * x - 2) + c2) + 2) / 2; - } - } -} diff --git a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/Fade.java b/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/Fade.java deleted file mode 100644 index 9a5ecef..0000000 --- a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/Fade.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.saturnclient.ui.anim; - -import org.saturnclient.config.AnimationConfig; -import org.saturnclient.ui.Element; - -public class Fade extends Animation { - float targetOpacity; - - public Fade(int duration) { - super(duration); - } - - public Fade(AnimationConfig config) { - super(config); - } - - @Override - public void tick(double progress, Element element) { - element.opacity = Math.max(0.1f, targetOpacity * (float) progress); - } - - @Override - public void init(Element element) { - targetOpacity = element.opacity; - element.opacity = 0.1f; - } -} diff --git a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/FadeOut.java b/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/FadeOut.java deleted file mode 100644 index 4172883..0000000 --- a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/FadeOut.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.saturnclient.ui.anim; - -import org.saturnclient.config.AnimationConfig; -import org.saturnclient.ui.Element; - -public class FadeOut extends Animation { - float targetOpacity; - - public FadeOut(int duration) { - super(duration); - } - - public FadeOut(AnimationConfig config) { - super(config); - } - - @Override - public void tick(double progress, Element element) { - element.opacity = targetOpacity - (float) progress; - } - - @Override - public void init(Element element) { - targetOpacity = element.opacity; - // element.opacity = 1.0f; - } -} diff --git a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/SlideFade.java b/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/SlideFade.java deleted file mode 100644 index 1318287..0000000 --- a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/SlideFade.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.saturnclient.ui.anim; - -import org.saturnclient.config.AnimationConfig; -import org.saturnclient.ui.Element; - -public class SlideFade extends Animation { - public Fade fade; - public SlideY slideY; - - public SlideFade(int duration, int offset) { - super(duration); - this.fade = new Fade(duration); - this.slideY = new SlideY(duration, offset); - } - - public SlideFade(AnimationConfig config, int offset) { - super(config); - this.fade = new Fade(duration); - this.slideY = new SlideY(duration, offset); - } - - @Override - public void tick(double progress, Element element) { - fade.delay = this.delay; - fade.duration = this.duration; - - slideY.delay = this.delay; - slideY.duration = this.duration; - - fade.tick(progress, element); - slideY.tick(progress, element); - } - - @Override - public void init(Element element) { - fade.init(element); - slideY.init(element); - } -} diff --git a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/SlideX.java b/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/SlideX.java deleted file mode 100644 index 82792ba..0000000 --- a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/SlideX.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.saturnclient.ui.anim; - -import org.saturnclient.config.AnimationConfig; -import org.saturnclient.ui.Element; - -public class SlideX extends Animation { - int offset = 20; - double startX; - - public SlideX(AnimationConfig config) { - super(config); - } - - public SlideX(AnimationConfig config, int offset) { - super(config); - this.offset = offset; - } - - public SlideX(int duration) { - super(duration); - } - - public SlideX(int duration, int offset) { - super(duration); - this.offset = offset; - } - - @Override - public void init(Element element) { - startX = element.x - offset; - element.x = (int) startX; - } - - @Override - public void tick(double progress, Element element) { - double currentX = startX + offset * progress; - element.x = (int) currentX; - } -} diff --git a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/SlideY.java b/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/SlideY.java deleted file mode 100644 index 0c0aa8a..0000000 --- a/versions/1.21.4/src/main/java/org/saturnclient/ui/anim/SlideY.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.saturnclient.ui.anim; - -import org.saturnclient.config.AnimationConfig; -import org.saturnclient.ui.Element; - -public class SlideY extends Animation { - int offset = 20; - double startY; - - public SlideY(AnimationConfig config) { - super(config); - } - - public SlideY(AnimationConfig config, int offset) { - super(config); - this.offset = offset; - } - - public SlideY(int duration) { - super(duration); - } - - public SlideY(int duration, int offset) { - super(duration); - this.offset = offset; - } - - @Override - public void init(Element element) { - startY = element.y - offset; - element.y = (int) startY; - } - - @Override - public void tick(double progress, Element element) { - double currentY = startY + offset * progress; - element.y = (int) currentY; - } -}