49 lines
1.5 KiB
Java
49 lines
1.5 KiB
Java
package at.petrak.hexcasting.common.blocks.circles;
|
|
|
|
import at.petrak.hexcasting.api.block.HexBlockEntity;
|
|
import at.petrak.hexcasting.client.render.HexPatternPoints;
|
|
import at.petrak.hexcasting.api.casting.math.HexPattern;
|
|
import at.petrak.hexcasting.common.lib.HexBlockEntities;
|
|
import net.minecraft.core.BlockPos;
|
|
import net.minecraft.nbt.CompoundTag;
|
|
import net.minecraft.nbt.Tag;
|
|
import net.minecraft.world.level.block.state.BlockState;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
public class BlockEntitySlate extends HexBlockEntity {
|
|
public static final String TAG_PATTERN = "pattern";
|
|
|
|
@Nullable
|
|
public HexPattern pattern;
|
|
|
|
public HexPatternPoints points;
|
|
|
|
public BlockEntitySlate(BlockPos pos, BlockState state) {
|
|
super(HexBlockEntities.SLATE_TILE, pos, state);
|
|
}
|
|
|
|
@Override
|
|
protected void saveModData(CompoundTag tag) {
|
|
if (this.pattern != null) {
|
|
tag.put(TAG_PATTERN, this.pattern.serializeToNBT());
|
|
} else {
|
|
tag.put(TAG_PATTERN, new CompoundTag());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void loadModData(CompoundTag tag) {
|
|
if (tag.contains(TAG_PATTERN, Tag.TAG_COMPOUND)) {
|
|
CompoundTag patternTag = tag.getCompound(TAG_PATTERN);
|
|
if (HexPattern.isPattern(patternTag)) {
|
|
this.pattern = HexPattern.fromNBT(patternTag);
|
|
} else {
|
|
this.pattern = null;
|
|
}
|
|
} else {
|
|
this.pattern = null;
|
|
}
|
|
}
|
|
|
|
}
|