问题描述
我正在尝试创建一个基本块实体,该实体具有一个整数变量,每次玩家单击该块时该变量都会增加。我还想将变量的值保存到实体的标签复合中,以便我可以再次加载它。
点击部分工作正常,但保存/加载部分似乎根本不起作用。我实现了 toTag 和 fromTag 方法,但是当我重新进入世界并使用 /data 检查值时,它是 0。我还注意到,当我进入世界而不是退出世界时,会调用 toTag,这似乎违反直觉我。任何帮助表示赞赏,这是我到目前为止的代码:
主模组类:
form
块类:
public class MyMod implements ModInitializer{
@Override
public void onInitialize() {
Registry.register(Registry.BLOCK,identifier("my_block"),BlockList.myBlock);
BlockEntityTypeList.myBlockEntityType = Registry.register(Registry.BLOCK_ENTITY_TYPE,identifier("my_block_entity_type"),BlockEntityType.Builder.create(MyBlockEntityType::new,BlockList.myBlock).build(null));
}
public Identifier identifier(String name) {
return new Identifier(References.modId,name);
}
}
块实体类:
public class MyBlock extends Block implements BlockEntityProvider{
private MyBlockEntity entity;
public MyBlock() {
super(Settings.of(Material.WOOD));
}
@Override
public BlockEntity createBlockEntity(BlockView view) {
entity = new MyBlockEntity();
return entity;
}
@Override
public ActionResult onUse(BlockState state,World world,BlockPos pos,PlayerEntity player,Hand hand,BlockHitResult hit) {
entity.increaseCount();
return ActionResult.SUCCESS;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)