liach
简介


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百科

liach
SPGoding 发表于 2019-9-20 12:02
能把所有现有 predicate 列出来吗(跑

现在没有任何内置predicate,就像原版没有任何内置function一样

看代码的话,现在每个predicate json里面的内容就是和原来conditions数组里面的每个object一样,估计是这种
  1. {
  2.   "condition": "minecraft:entity_properties",
  3.   "predicate": {
  4.     "flags": {
  5.     "is_on_fire": true
  6.     }
  7.   },
  8.   "entity": "this"
  9. }
复制代码


如果这个叫 liach:on_fire 的话,使用应该是

  1. {
  2.   "condition": "minecraft:reference",
  3.   "name": "liach:on_fire"
  4. }
复制代码


没实际操作过,需要实验……

liach
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

凌坤坤
终于优化渲染了,但如果原版就支持添加光影岂不美哉?

liach
凌坤坤 发表于 2019-9-20 13:03
终于优化渲染了,但如果原版就支持添加光影岂不美哉?

还是要给渣机考虑一下下啊

Chelover_C60
本帖最后由 CHElover_C60 于 2019-9-20 13:48 编辑

data storage真心好用,不过predicate还要研究一下,昨天搞了一晚上还没搞明白(感觉官网讲的不太明白,也没有现成的格式)
data storage我觉得还有一个用途,就是获取某个实体/方块nbt数据后加以修饰,再放进另一个实体/方块里。以前这么做还需要生成一个辅助用的item我没有在暗示我的选择性死亡不掉落
不过挺好奇,以后这个storage的nbt会不会可以自定义命名空间,然后通过数据包加入

liach
CHElover_C60 发表于 2019-9-20 13:38
data storage真心好用,不过predicate还要研究一下,昨天搞了一晚上还没搞明白(感觉官网讲的不太明白,也没 ...

storage就是让你省得为了处理nbt生成盔甲架这类的

storage的话现在和地图数据一样,是每个存档固定的。不过你可以考虑添加几个专门往storage里面塞你默认要用的nbt数据的function到minecraft:load tag里面,暂时能达到相同效果。

kongbaiyo
还是不能modify玩家的背包 哭哭

liach
kongbaiyo 发表于 2019-9-20 21:44
还是不能modify玩家的背包 哭哭

不能data modify,暂时用loot和replaceitem弄进去吧。mojang说以后会有替代方法的。

1141840659
好多术语,对于萌新来说,果然很高大尚

18369961185
aepothocycyvuvuvuvuv

1415656095
6666666666666666666

第一页 上一页 下一页 最后一页