User Tools

Site Tools


zh_cn:tutorial:blockentity

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
zh_cn:tutorial:blockentity [2022/08/08 04:26] – external edit 127.0.0.1zh_cn:tutorial:blockentity [2023/09/03 01:37] (current) – [序列化数据] wjz_p
Line 28: Line 28:
 <code java> <code java>
     public static final BlockEntityType<DemoBlockEntity> DEMO_BLOCK_ENTITY = Registry.register(     public static final BlockEntityType<DemoBlockEntity> DEMO_BLOCK_ENTITY = Registry.register(
-        Registry.BLOCK_ENTITY_TYPE,+        Registries.BLOCK_ENTITY_TYPE,
         new Identifier("tutorial", "demo_block_entity"),         new Identifier("tutorial", "demo_block_entity"),
         FabricBlockEntityTypeBuilder.create(DemoBlockEntity::new, DEMO_BLOCK).build()         FabricBlockEntityTypeBuilder.create(DemoBlockEntity::new, DEMO_BLOCK).build()
Line 54: Line 54:
 ===== 序列化数据 ===== ===== 序列化数据 =====
  
-如果要将任何数据存储在 ''BlockEntity'' 则需要保存加载,或者仅加载 ''BlockEntity'' 时保只要您返回到它。幸运的是,保存和加载非常简单——只需要覆盖 ''writeNbt()'' 和 ''readNbt()'' 即可。+如果您想在 ''BlockEntity'' 存储任何数据必须保存加载否则数据只会在''BlockEntity''被加载时保每次你重进游戏时会重置。幸运的是,保存和加载非常简单——只需要覆盖 ''writeNbt()'' 和 ''readNbt()'' 即可。
  
 ''writeNbt()'' 将会修改其参数 ''nbt'' 的内容,这个 ''nbt'' 包含了方块实体中的所有数据。该方法通常不会修改方块实体本身。方块实体数据将会存储在磁盘中,并且如果您需要将 ''BlockEntity'' 数据与客户端同步,则会通过封包发送。调用 ''super.writeNbt()'' 非常重要,因为方块实体的坐标及其方块实体类型 id 保存到 nbt 中。否则,您尝试保存的所有其他数据都将丢失,因为它与位置和 ''BlockEntityType'' 不相关。 ''writeNbt()'' 将会修改其参数 ''nbt'' 的内容,这个 ''nbt'' 包含了方块实体中的所有数据。该方法通常不会修改方块实体本身。方块实体数据将会存储在磁盘中,并且如果您需要将 ''BlockEntity'' 数据与客户端同步,则会通过封包发送。调用 ''super.writeNbt()'' 非常重要,因为方块实体的坐标及其方块实体类型 id 保存到 nbt 中。否则,您尝试保存的所有其他数据都将丢失,因为它与位置和 ''BlockEntityType'' 不相关。
zh_cn/tutorial/blockentity.txt · Last modified: 2023/09/03 01:37 by wjz_p