- 6
- 1
- 1
На вики Fabric в теме о создании BlockEntity упоминается метод makeDirty(), который используется для сохранения данных на диске, для последующего их восстановления при запуске мира (могу ошибаться). Каким образом использовать этот метод, в каком фрагменте кода его вызывать? Я предполагаю, что его следует разместить внутри метода writeNbt.
Код:
public class DemoBlockEntity extends BlockEntity {
private int number = 7;
public DemoBlockEntity(BlockPos pos, BlockState state) {
super(ModBlockEntity.DEMO_BLOCK_ENTITY, pos, state);
}
// Сериализация (сохранение) параметра number у DemoBlockEntity
@Override
public void writeNbt(NbtCompound tag) {
// Сохранение настоящего значения number в tag
tag.putInt("number", number);
super.writeNbt(tag);
markDirty();
}
// Десериализация (чтение) параметра number у DemoBlockEntity
@Override
public void readNbt(NbtCompound tag) {
super.readNbt(tag);
// Получение значения number из tag
number = tag.getInt("number");
}
}