40 lines
1.3 KiB
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")));
|
|
}
|
|
}
|
|
}
|