From 6f7467526dccdbd80ec8e84503157f5cc0543606 Mon Sep 17 00:00:00 2001 From: WakelessSloth56 Date: Thu, 11 Aug 2022 08:17:22 +0800 Subject: [PATCH] feat(utils): methods for operating vec3 nbt --- .../mcmod/arnicalib/utils/game/NbtUtils.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/org/auioc/mcmod/arnicalib/utils/game/NbtUtils.java b/src/main/java/org/auioc/mcmod/arnicalib/utils/game/NbtUtils.java index 5eefaa66..31458d97 100644 --- a/src/main/java/org/auioc/mcmod/arnicalib/utils/game/NbtUtils.java +++ b/src/main/java/org/auioc/mcmod/arnicalib/utils/game/NbtUtils.java @@ -4,6 +4,7 @@ import net.minecraft.nbt.DoubleTag; import net.minecraft.nbt.ListTag; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; public class NbtUtils { @@ -46,4 +47,18 @@ public static AABB getAABB(CompoundTag nbt, String key) { return readAABB(getDoubleListTag(nbt, key)); } + + public static ListTag writeVec3(Vec3 vec) { + return writeDoubleArray(vec.x, vec.y, vec.z); + } + + public static Vec3 readVec3(ListTag nbt) { + double[] p = readDoubleArray(nbt); + return new Vec3(p[0], p[1], p[2]); + } + + public static Vec3 getVec3(CompoundTag nbt, String key) { + return readVec3(getDoubleListTag(nbt, key)); + } + }