此特性为Java版独有。
随机序列(Random Sequences)是用于生成战利品表和计算/random命令
NBT结构
随机序列信息存储于每个存档的/data/random_sequences.dat中,它是一个以GZip压缩的NBT文件。
- 根标签
- data:随机序列数据。
- DataVersion:数据版本。
应用
随机序列影响所有未指定种子的战利品表生成。世界生成的容器内的战利品不受随机序列影响(但受到世界种子的直接影响),而其他战利品表则受到随机序列影响,例如破坏方块时的掉落物、杀死实体时的掉落物、钓鱼时可以钓上的物品和猪灵的以物易物。
当第一次使用一个随机序列或随机序列被/return reset重置
- 设置初始值为 salt的值
[新增:JE 1.20.2]/世界种子 [失效:JE 1.20.2]。 - 如果 include_world_seed为true,则值与世界种子进行异或。如果为false,则代表随机序列与世界种子无关。
[新增:JE 1.20.2] - 将值扩展为128位,其中低64位是值与
0x6a09e667f3bcc909进行异或,高64位是低64位与0x61c8864680b583eb相加。 - 如果 include_sequence_id为true,
[新增:JE 1.20.2]将值与随机序列命名空间ID的MD5值进行异或。如果为false,则对于世界中的每个随机序列都会初始化为同一个种子。 [新增:JE 1.20.2] - 对值低64位和高64位分别进行如下计算,计算后的值即为随机数发生器的种子。
public static long mixStafford13(long v) {
v = (v ^ v >>> 30) * 0xbf58476d1ce4e5b9L;
v = (v ^ v >>> 27) * 0x94d049bb133111ebL;
return v ^ v >>> 31;
}
随机序列使用Xoroshiro128++随机数发生器。
历史
| Java版 | |||||
|---|---|---|---|---|---|
| 1.20 | pre1 | 加入了随机序列。 | |||
| 1.20.2 | 23w31a | 修改了随机序列的初始化方式。 | |||
| 版本 | |||||||
|---|---|---|---|---|---|---|---|
| 开发周期 |
| ||||||
| 技术 |
| ||||||
| 多人游戏 | |||||||
| 游戏订制 | |||||||