Minecraft 21w03a 新特性+代码浅析

在Mojang不懈努力的咕咕咕下,在我们等待了整整一个月之后,我们终于迎来了新一周的1.17快照。话不多说,代码,来吧!
20w49a->21w03a文件修改表:https://paste.ubuntu.com/p/cTNBVx7hpz
一.发光苔藓(或叫发光地衣?名称未定)
->类:net.minecraft.world.level.block.GlowLichenBlock
这种新的方块类似于藤蔓,是一种多表面方块(MultifaceBlock,刚加入的一个类),亮度为7,刚好能刷怪,是建筑党的福音。现在在地下已经能看到它的身影。

这种方块能通过骨粉催熟,向四周随机方向延伸一格。

这个方块是一个含水方块,但是有一个特性就有关于它的含水性,这个特性使我们能在地狱放水。
首先,说一下为什么地狱无法正常放置水。当我们使用水桶时,水桶会判断维度,如果为地狱,直接清空水桶,不放置方块,只在位置上产生粒子效果,所以地狱里理论上是用不了水桶,而不是放不了水。

接下来说说怎么实现这个特性:你只需要对准岩浆成功放置它就可以,就像下面这样——

那么这是为什么呢?从它自己本身定义的类确实看不出来,但是它的上一级就找到了原因:

从这段代码中间部分我们能看到它怎么执行的:如果本身方块可含水(对于这里是true)并且原方块为流体,那么放置的方块就含水。
但是仔细看看这个流程,是不是发现了问题?岩浆也是流体,当放置的时候就会判定为含水,这样。。我们就创造了一个水源方块。
通过对这个的解析,我们不难发现这个应该不是特性,实际上它已经在Bug Tracker报告,报告为MC-212117,状态是处理中,也就是下一个快照就不会存在这个特性了。
二.发光鱿鱼(Glow Squid)
->类:net.minecraft.world.entity.GlowSquid,为什么不把它放到下面的animal包是一个迷,难道Mojang不把它当动物看?
这是去年投票产生的赢家,现在终于被加入到游戏之中,但是还没有完善。目前它还不能自然生成。
它的父类就是Squid鱿鱼,和普通鱿鱼的行为基本相同。下面主要说说它的特性:

首先就是它能在它自己周围能产生粒子效果,这个粒子效果每tick产生一次。

第二点就是它在受到攻击之后,在随后的100tick都是暗色,经历之后才能恢复发光。

那么它的发光效果是怎么实现的呢?其实是通过修改他所认为受到的方块光,公式如下:
clamp(15 - darkTicksRemaining, 0, 15)
也就是说,它无视旁边方块光的干扰发出15级下的光亮,所以才显得更亮

当杀死它时,会掉落1-3个发光墨囊。
三.发光墨囊(Glow Squid Inc)
这个新物品可以让我们的告示牌和物品展示框更亮。

首先是告示牌。当使用发光墨囊时告示牌字变亮,当使用普通墨囊会变成本来的样子。这是因为告示牌增加了lit属性标识是否是发亮状态。

在修改lit属性之后,SignRenderer会将它的亮度调高,就呈现了变亮的效果(代码语法高亮又错误了,就不贴图了)

然后就是物品展示框。发光墨囊能与物品展示框合成为发光的物品展示框。放下之后可以看到我们的物品或地图在里面会更亮。这个的原理类似于告示牌,这里也就不说了。

四.简单说说b(特)u(性)g修复
这个版本修了不少bug,主要都是潜影贝。比如刷怪笼刷出的潜影贝是白色(MC-111196),不能被推动(MC-108717,MC-113177)这样的。还有就是1.16.5修复的那个POI一键崩服可用于切门的bug(Mojang:你还对这个bug有期待?By the way,这个bug的详解我以后出一期POI的专栏讲吧)
那么这周的快照讲解就到这里,希望Mojang下周管一管美西螈的一大堆bug!

代码:Mojang官方混淆表+反混淆+反编译
反混淆器:MCDynamicExchanger beta 7(开发进度:50%)
beta 6 ONLY REMAPPING DECOMPILING COMPARING 版本在GitHub上可用, 网址https://github.com/Nickid2018/MCDynamicExchanger
反编译器:Eclipse插件, JD-Core/CFK
文章中出现了错误?快来下方留言吧!
发现了新特性?也可以在这里提出哟!