User Tools

Site Tools


zh_cn:tutorial:blockentity_modify_data

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_modify_data [2025/06/11 15:58] – [序列化数据] 更新有关的写法 solidblockzh_cn:tutorial:blockentity_modify_data [2025/06/11 16:02] (current) – [使用数据组件] solidblock
Line 133: Line 133:
    
   @Override   @Override
-  public NbtCompound toInitialChunkDataNbt() { +  public NbtCompound toInitialChunkDataNbt(RegistryWrapper.WrapperLookup registries) { 
-    return createNbt();+    return createNbt(registries);
   }   }
 </code> </code>
Line 147: Line 147:
     }     }
    
 +    // 以下两个方法,在 1.21.6 中有所改变,参见上面的示例。
     @Override     @Override
     public void writeNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup registries) {     public void writeNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup registries) {
 +        super.writeNbt(nbt, registries);
         nbt.putInt("number", number);         nbt.putInt("number", number);
-  
-        super.writeNbt(nbt, registries); 
     }     }
          
Line 247: Line 247:
   }   }
  
 +  // 仅限 1.21.5 及之前的版本:
   @Override   @Override
   public void removeFromCopiedStackNbt(NbtCompound nbt) {   public void removeFromCopiedStackNbt(NbtCompound nbt) {
     nbt.remove("number");     nbt.remove("number");
 +  }
 +  
 +  // 对于 1.21.6 及之后的版本:
 +  @Override
 +  public void removeFromCopiedStackData(WriteView view) {
 +    view.remove("number");
   }   }
 </code> </code>
  
-''removeFromCopiedStackNbt'' 的用途是,复制物品堆时,因为数据组件已经被复制,所以 NBT 就不再需要了。如果拾取物品(按下 ''Ctrl'' 的同时按下鼠标中键),组件会转移到物品堆。如果需要在不按下 ''Ctrl'' 的情况下就转移这些组件(就像原版旗帜的行为),请看 [[blockentity_sync_itemstack]]。+''removeFromCopiedStackNbt''/''removeFromCopiedStackData'' 的用途是,复制物品堆时,因为数据组件已经被复制,所以 NBT 就不再需要了。如果拾取物品(按下 ''Ctrl'' 的同时按下鼠标中键),组件会转移到物品堆。如果需要在不按下 ''Ctrl'' 的情况下就转移这些组件(就像原版旗帜的行为),请看 [[blockentity_sync_itemstack]]。
zh_cn/tutorial/blockentity_modify_data.1749657504.txt.gz · Last modified: 2025/06/11 15:58 by solidblock