mirror of
https://github.com/Sollace/Unicopia.git
synced 2024-11-28 15:38:00 +01:00
48 lines
1.1 KiB
Java
48 lines
1.1 KiB
Java
package com.minelittlepony.unicopia.util;
|
|
|
|
import net.minecraft.nbt.CompoundTag;
|
|
import net.minecraft.util.math.BlockPos;
|
|
|
|
public interface NbtSerialisable {
|
|
/**
|
|
* Called to save this to nbt to persist state on file or to transmit over the network
|
|
*
|
|
* @param compound Compound tag to write to.
|
|
*/
|
|
default void toNBT(CompoundTag compound) {
|
|
|
|
}
|
|
|
|
/**
|
|
* Called to load this state from nbt
|
|
*
|
|
* @param compound Compound tag to read from.
|
|
*/
|
|
default void fromNBT(CompoundTag compound) {
|
|
|
|
}
|
|
|
|
default CompoundTag toNBT() {
|
|
CompoundTag compound = new CompoundTag();
|
|
toNBT(compound);
|
|
return compound;
|
|
}
|
|
|
|
static CompoundTag writeBlockPos(BlockPos pos) {
|
|
CompoundTag dest = new CompoundTag();
|
|
|
|
dest.putInt("X", pos.getX());
|
|
dest.putInt("Y", pos.getY());
|
|
dest.putInt("Z", pos.getZ());
|
|
|
|
return dest;
|
|
}
|
|
|
|
static BlockPos readBlockPos(CompoundTag compound) {
|
|
return new BlockPos(
|
|
compound.getInt("X"),
|
|
compound.getInt("Y"),
|
|
compound.getInt("Z")
|
|
);
|
|
}
|
|
}
|