VmodExtras/src/main/java/space/eptaproject/vmodextras/trackwork/IController.java

40 lines
1.3 KiB
Java

package space.eptaproject.vmodextras.trackwork;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.Tag;
import org.joml.Vector3d;
import org.joml.Vector3dc;
public interface IController {
float getSuspensionStiffness();
void setSuspensionStiffness(float val);
Vector3dc getSuspensionAdjust();
void setSuspensionAdjust(Vector3dc vector3d);
default void encode(CompoundTag root) {
root.putFloat("SuspensionStiffness", this.getSuspensionStiffness());
{
CompoundTag suspensionAdjust = new CompoundTag();
Vector3dc vec = this.getSuspensionAdjust();
suspensionAdjust.putDouble("x", vec.x());
suspensionAdjust.putDouble("y", vec.y());
suspensionAdjust.putDouble("z", vec.z());
root.put("suspensionAdjust", suspensionAdjust);
}
}
default void decode(CompoundTag root) {
if (root.contains("SuspensionStiffness", Tag.TAG_FLOAT)) {
this.setSuspensionStiffness(root.getFloat("SuspensionStiffness"));
}
if (root.contains("suspensionAdjust", Tag.TAG_COMPOUND)) {
CompoundTag sus = root.getCompound("suspensionAdjust");
this.setSuspensionAdjust(new Vector3d(sus.getDouble("x"), sus.getDouble("y"), sus.getDouble("z")));
}
}
}