Minecraft 21w03a 新特性+代碼淺析

在Mojang不懈努力的咕咕咕下,在我們等待了整整一個月之后,我們終于迎來了新一周的1.17快照。話不多說,代碼,來吧!
20w49a->21w03a文件修改表:https://paste.ubuntu.com/p/cTNBVx7hpz
一.發(fā)光苔蘚(或叫發(fā)光地衣?名稱未定)
->類:net.minecraft.world.level.block.GlowLichenBlock
這種新的方塊類似于藤蔓,是一種多表面方塊(MultifaceBlock,剛加入的一個類),亮度為7,剛好能刷怪,是建筑黨的福音。現在在地下已經能看到它的身影。

這種方塊能通過骨粉催熟,向四周隨機方向延伸一格。

這個方塊是一個含水方塊,但是有一個特性就有關于它的含水性,這個特性使我們能在地獄放水。
首先,說一下為什么地獄無法正常放置水。當我們使用水桶時,水桶會判斷維度,如果為地獄,直接清空水桶,不放置方塊,只在位置上產生粒子效果,所以地獄里理論上是用不了水桶,而不是放不了水。

接下來說說怎么實現這個特性:你只需要對準巖漿成功放置它就可以,就像下面這樣——

那么這是為什么呢?從它自己本身定義的類確實看不出來,但是它的上一級就找到了原因:

從這段代碼中間部分我們能看到它怎么執(zhí)行的:如果本身方塊可含水(對于這里是true)并且原方塊為流體,那么放置的方塊就含水。
但是仔細看看這個流程,是不是發(fā)現了問題?巖漿也是流體,當放置的時候就會判定為含水,這樣。。我們就創(chuàng)造了一個水源方塊。
通過對這個的解析,我們不難發(fā)現這個應該不是特性,實際上它已經在Bug Tracker報告,報告為MC-212117,狀態(tài)是處理中,也就是下一個快照就不會存在這個特性了。
二.發(fā)光魷魚(Glow Squid)
->類:net.minecraft.world.entity.GlowSquid,為什么不把它放到下面的animal包是一個迷,難道Mojang不把它當動物看?
這是去年投票產生的贏家,現在終于被加入到游戲之中,但是還沒有完善。目前它還不能自然生成。
它的父類就是Squid魷魚,和普通魷魚的行為基本相同。下面主要說說它的特性:

首先就是它能在它自己周圍能產生粒子效果,這個粒子效果每tick產生一次。

第二點就是它在受到攻擊之后,在隨后的100tick都是暗色,經歷之后才能恢復發(fā)光。

那么它的發(fā)光效果是怎么實現的呢?其實是通過修改他所認為受到的方塊光,公式如下:
clamp(15 - darkTicksRemaining, 0, 15)
也就是說,它無視旁邊方塊光的干擾發(fā)出15級下的光亮,所以才顯得更亮

當殺死它時,會掉落1-3個發(fā)光墨囊。
三.發(fā)光墨囊(Glow Squid Inc)
這個新物品可以讓我們的告示牌和物品展示框更亮。

首先是告示牌。當使用發(fā)光墨囊時告示牌字變亮,當使用普通墨囊會變成本來的樣子。這是因為告示牌增加了lit屬性標識是否是發(fā)亮狀態(tài)。

在修改lit屬性之后,SignRenderer會將它的亮度調高,就呈現了變亮的效果(代碼語法高亮又錯誤了,就不貼圖了)

然后就是物品展示框。發(fā)光墨囊能與物品展示框合成為發(fā)光的物品展示框。放下之后可以看到我們的物品或地圖在里面會更亮。這個的原理類似于告示牌,這里也就不說了。

四.簡單說說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(開發(fā)進度:50%)
beta 6 ONLY REMAPPING DECOMPILING COMPARING 版本在GitHub上可用, 網址https://github.com/Nickid2018/MCDynamicExchanger
反編譯器:Eclipse插件, JD-Core/CFK
文章中出現了錯誤?快來下方留言吧!
發(fā)現了新特性?也可以在這里提出喲!