简介
19w38a 是 1.15 升级以来代码改动最大的一个快照版本。Fabric 光更新反混淆数据就用了两个小时!19w38b 出了才刚更新完 38a!
Minecraft wiki 条目链接
它主要更新了渲染、指令储存、进度、战利品表条件(美其名曰“谓词”)。
指令
storage
我梦寐以求的 data storage 啊!赞赞赞!终于不要唱片机黑魔法了(注:唱片机里面放个唱片,指令从那个唱片的 NBT 里面读取数据,还要加载区块,读取储存都会影响性能,而且要方块,对原版模组不友好)
data storage 的用法大佬们都试过了,就是 /data modify storage <id> <path> set from storage <id> <path>
注意一下,id 是喜闻乐见的带 namespace 的标识符,加个冒号,不要用 minecraft 空间。游戏储存的时候是每个 namespace 有一个自己的 .dat 文件,比如 liach 的 namespace 会有 command_storage_liach.dat 文件。
还有 execute 现在也可以往 storage 里面存,直接 /execute store storage 就行。
/schedule
现在 schedule 可以把同一个命令函数安排多次了。方便啊。
/execute if predicate
这个请看后面的战利品表条件(对对对,你们一直说的谓词就是战利品表条件)。
进度
location 和 entity 这两个进度用的触发器条件选项更多了。虽然这个 Mojang 叫 predicate,实际上并不是那种命令和战利品表里面用的“谓语”(战利品表条件)。战利品表条件只是使用这种触发器选项。
同时 Mojang 也大大优化了进度触发器的代码,清爽了许多。
战利品表条件
Mojang 现在搞得玄乎,给战利品表条件起了个新名字叫 predicate(嗯嗯嗯,“谓语”),但是它就是原来的战利品表条件!
现在么……Mojang 允许你从数据包命名空间下的 predicates 文件夹里面读取战利品表条件 JSON,同时加了个新条件种类 minecraft:reference,里面有个 name 字段,允许你引用自己定义的战利品表条件。当然战利品表条件检查系统大修,避免某个熊孩子搞循环引用搞坏游戏。
loot table 的 type 啊……现在有个 minecraft:command,不知道以前有没有,总之英文 Wiki 上没有,应该是新的。现在 /execute if predicate 就使用这个 minecraft:command 的 loot table type 现制 loot table context 来检查 loot table condition(战利品表条件)。
渲染
这次 Mojang 开眼了,提升了方块实体的渲染性能(实际优化内容类似 Forge 以前的 FastTesr,就是画到 buffer 里面而不是直接渲染,虽然我也是两眼一抹黑)
方块么……1.7以来都没有变过的渲染层机制改了,取消了一个公开接口,mod友好度直线下滑。群众抗议……有毛用
嗯,这回渲染问题有点多……界面里面物品右边不亮左边亮,掉落在黑暗角落里的物品满亮度,经验球材质周围一个黑方块,水面上的海带周围一个没有水材质的方块,工具生存砸方块渲染崩溃(38b 修了)……嗯嗯,Blaze3D要有进展肯定是有点痛苦的吧……
来自群组: MC百科
SPGoding 发表于 2019-9-20 12:02
能把所有现有 predicate 列出来吗(跑
现在没有任何内置predicate,就像原版没有任何内置function一样
看代码的话,现在每个predicate json里面的内容就是和原来conditions数组里面的每个object一样,估计是这种
- {
- "condition": "minecraft:entity_properties",
- "predicate": {
- "flags": {
- "is_on_fire": true
- }
- },
- "entity": "this"
- }
如果这个叫 liach:on_fire 的话,使用应该是
- {
- "condition": "minecraft:reference",
- "name": "liach:on_fire"
- }
没实际操作过,需要实验……
SPGoding 发表于 2019-9-20 12:17
我意思就是把所有 predicate 当中能用到的 condition 及相关参数列出来…
和原来一样,除了多个 minecraft:reference。
详情请访问 wiki,我懒得打开ide写程序导出了
https://minecraft.gamepedia.com/Loot_table#Conditions
https://minecraft-zh.gamepedia.c ... #.E6.9D.A1.E4.BB.B6
终于优化渲染了,但如果原版就支持添加光影岂不美哉?
凌坤坤 发表于 2019-9-20 13:03
终于优化渲染了,但如果原版就支持添加光影岂不美哉?
还是要给渣机考虑一下下啊
本帖最后由 CHElover_C60 于 2019-9-20 13:48 编辑
data storage真心好用,不过predicate还要研究一下,昨天搞了一晚上还没搞明白(感觉官网讲的不太明白,也没有现成的格式)
data storage我觉得还有一个用途,就是获取某个实体/方块nbt数据后加以修饰,再放进另一个实体/方块里。以前这么做还需要生成一个辅助用的item我没有在暗示我的选择性死亡不掉落
不过挺好奇,以后这个storage的nbt会不会可以自定义命名空间,然后通过数据包加入
data storage真心好用,不过predicate还要研究一下,昨天搞了一晚上还没搞明白(感觉官网讲的不太明白,也没有现成的格式)
data storage我觉得还有一个用途,就是获取某个实体/方块nbt数据后加以修饰,再放进另一个实体/方块里。以前这么做还需要生成一个辅助用的item
不过挺好奇,以后这个storage的nbt会不会可以自定义命名空间,然后通过数据包加入
CHElover_C60 发表于 2019-9-20 13:38
data storage真心好用,不过predicate还要研究一下,昨天搞了一晚上还没搞明白(感觉官网讲的不太明白,也没 ...
storage就是让你省得为了处理nbt生成盔甲架这类的
storage的话现在和地图数据一样,是每个存档固定的。不过你可以考虑添加几个专门往storage里面塞你默认要用的nbt数据的function到minecraft:load tag里面,暂时能达到相同效果。
还是不能modify玩家的背包 哭哭
kongbaiyo 发表于 2019-9-20 21:44
还是不能modify玩家的背包 哭哭
不能data modify,暂时用loot和replaceitem弄进去吧。mojang说以后会有替代方法的。
好多术语,对于萌新来说,果然很高大尚
aepothocycyvuvuvuvuv
6666666666666666666