From 3dae27581a01402ca3bb33ddcdeefbeb233dcd2d Mon Sep 17 00:00:00 2001 From: LatvianModder Date: Sat, 20 Apr 2024 08:12:55 +0300 Subject: [PATCH] Added Codecs to Easing and EasingGroup --- src/main/java/dev/latvian/mods/kmath/util/Easing.java | 8 ++++++++ .../java/dev/latvian/mods/kmath/util/EasingGroup.java | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/src/main/java/dev/latvian/mods/kmath/util/Easing.java b/src/main/java/dev/latvian/mods/kmath/util/Easing.java index fe7e9ea..da5cfd6 100644 --- a/src/main/java/dev/latvian/mods/kmath/util/Easing.java +++ b/src/main/java/dev/latvian/mods/kmath/util/Easing.java @@ -1,7 +1,9 @@ package dev.latvian.mods.kmath.util; +import com.mojang.serialization.Codec; import dev.latvian.mods.kmath.KMath; import it.unimi.dsi.fastutil.doubles.Double2DoubleFunction; +import net.minecraft.util.dynamic.Codecs; import net.minecraft.util.math.Vec3d; import java.util.LinkedHashMap; @@ -12,6 +14,7 @@ */ public final class Easing { public static final Map FUNCTIONS = new LinkedHashMap<>(); + public static final Codec CODEC = Codecs.idChecked(Easing::toString, FUNCTIONS::get); public static Easing add(String id, Double2DoubleFunction function) { var easing = add(id, function); @@ -99,4 +102,9 @@ public Vec3d lerp(double t, Vec3d a, Vec3d b) { var e = function.get(t); return new Vec3d(KMath.lerp(e, a.x, b.x), KMath.lerp(e, a.y, b.y), KMath.lerp(e, a.z, b.z)); } + + @Override + public String toString() { + return id; + } } diff --git a/src/main/java/dev/latvian/mods/kmath/util/EasingGroup.java b/src/main/java/dev/latvian/mods/kmath/util/EasingGroup.java index 82b7eab..a8bb1f7 100644 --- a/src/main/java/dev/latvian/mods/kmath/util/EasingGroup.java +++ b/src/main/java/dev/latvian/mods/kmath/util/EasingGroup.java @@ -1,10 +1,14 @@ package dev.latvian.mods.kmath.util; +import com.mojang.serialization.Codec; +import net.minecraft.util.dynamic.Codecs; + import java.util.LinkedHashMap; import java.util.Map; public class EasingGroup { public static final Map GROUPS = new LinkedHashMap<>(); + public static final Codec CODEC = Codecs.idChecked(EasingGroup::toString, GROUPS::get); public static EasingGroup add(String id, Easing in, Easing out, Easing inOut) { var group = new EasingGroup(id, in, out, inOut); @@ -42,4 +46,9 @@ private EasingGroup(String id, Easing in, Easing out, Easing inOut) { this.out = out; this.inOut = inOut; } + + @Override + public String toString() { + return id; + } }