五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Minecraft 21w05a 新更改+代碼簡析

2021-02-05 00:54 作者:Nickid2018  | 我要投稿

經(jīng)過Mojang兩周的努(g)力(ū)后,21w05a發(fā)布了。由于東西有點(diǎn)多,只會講一部分。

版本修改表:https://paste.ubuntu.com/p/MdkxXkCjF8/

注意:官方中文譯名還沒有發(fā)布,這里只是用中文直譯的結(jié)果

一.苔蘚方塊和苔蘚地毯(Moss Block&Moss Carpet)

這兩種方塊將在新的Lush Cave繁茂洞穴中生成,兩種方塊材質(zhì)相同,只是類型不一樣而已。

首先說說苔蘚方塊。官方對它的介紹也就寥寥幾筆,但是代碼中寫出:它可以施用骨粉催熟

Mojang,你忘寫的東西還要?jiǎng)e人查代碼才能發(fā)現(xiàn),真有你的

它施用骨粉時(shí)的行為如下:

首先是判定范圍,1x1到5x5不等的范圍。在范圍內(nèi)的方塊進(jìn)行下一步操作。

如果范圍內(nèi)的方塊具有l(wèi)ush_plants_replaceable標(biāo)簽,則替換為苔蘚方塊。

之后每個(gè)方塊會計(jì)算一次隨機(jī)數(shù)(就是概率的表現(xiàn))判斷是否進(jìn)行下一步操作,這個(gè)概率是0.8。

最后判定上方放置什么方塊,生成的東西如下:Flowering Azalea杜鵑花花叢(4%),Azalea杜鵑花樹叢(10%),Moss Carpet苔蘚地毯(25%),草(50%)和高草(11%)

判定生成方塊,不要問我為啥概率那么奇怪,Bugjump就是這么寫的

接下來,苔蘚地毯上場,它可以由苔蘚方塊合成。

它在代碼中和地毯共用一個(gè)類。等下,這是否意味著它能刷?——遺憾的是,不能。

嘗試用傳統(tǒng)地毯機(jī)結(jié)構(gòu)進(jìn)行復(fù)制,活塞推動一瞬間苔蘚地毯被摧毀

無法復(fù)制具體原因不詳(其實(shí)是懶得找),猜測為BlockBehaviour.Properties不同:苔蘚地毯為PLANT,而地毯為CLOTH_DECORATION。

二.洞穴藤蔓(Cave Vine)和熒光漿果(Glow Berries)

先說洞穴藤蔓,它是和垂淚藤一樣從上向下生長的植物,和海帶一樣分為Head(具有Age屬性)和Body部分。當(dāng)施用骨粉時(shí)會變?yōu)閹{果的藤蔓,亮度為14。

洞穴藤蔓

當(dāng)右鍵帶漿果的藤蔓會得到一個(gè)熒光漿果并且藤蔓的漿果清除。

執(zhí)行掉落

掉落物熒光漿果右鍵會種植洞穴藤蔓,同時(shí)它也是一種食物。它的飽食度為2,飽和度比例系數(shù)為0.1。

三.浮萍植物(Dripleaf)

浮萍植物分為小型和大型兩種,兩種的特性不同,先從小的說起。

小型浮萍植物和高草一樣屬于兩格高的植物,方塊生存條件為黏土上或者在水中的植物可生長方塊。

方塊生存條件檢查(至少沒像上次一樣光寫一個(gè)isFluid了)

在執(zhí)行骨粉催熟時(shí),小型浮萍植物會生長成為大型浮萍植物,高度為1-5格。但是,Mojang你怎么又把前置條件忘了??在成長判定放置方塊的時(shí)候,Mojang沒有判定將要生長的方塊,于是——基巖都被破掉了(MC-213971)。

這就是Mojang突然失去理智的代碼,應(yīng)該在for里面加一個(gè)判定,不過幸好你沒忘檢查建筑高度

大型浮萍植物和小型的不同,它分為兩部分:上面的葉子和下面的梗(Stem)

先說說它的梗,梗無法用骨粉,和葉子不同,所以不再細(xì)說。

而葉子部分就大有講究了。

首先是它與骨粉的交互,骨粉能讓它長高一格,同樣這個(gè)也沒檢查方塊。

另一個(gè)就是之前就說過要實(shí)現(xiàn)的特性:在上面站著會掉下來。

首先是前提條件:如果玩家潛行,那么就不會導(dǎo)致葉子傾斜(Tilt)。

判斷能否傾斜

傾斜的階段有4個(gè):NONE(不傾斜),UNSTABLE(不穩(wěn)定),PARTIAL(部分傾斜),F(xiàn)ULL(完全傾斜)。其中,UNSTABLE階段能持續(xù)20tick(1s),PARTIAL階段持續(xù)10tick(0.5s),F(xiàn)ULL階段持續(xù)100tick(5s)。所以從玩家站上去開始至完全傾斜掉落只需要30tick(1.5s)。

P.S.Wiki上寫為40tick,在測試之后得到數(shù)據(jù)確實(shí)為30tick而非40tick,希望能快一點(diǎn)改過來。

傾斜的不同階段和持續(xù)時(shí)間

傾斜的開始是從實(shí)體進(jìn)入方塊內(nèi)部開始的(葉子上表面沒有全部高度,整好少一個(gè)像素,所以上方不刷怪),這時(shí)候會檢查前置條件,檢查之后開始傾斜過程,Tilt標(biāo)簽會從NONE變?yōu)閁NSTABLE。

實(shí)體進(jìn)入方塊時(shí)觸發(fā)

之后就是一系列的變化:不穩(wěn)定-》部分傾斜-》完全傾斜,這些都由計(jì)劃刻執(zhí)行。當(dāng)處于完全傾斜時(shí),整個(gè)方塊的碰撞箱就消失了(只有葉片有碰撞箱,梗只有包圍盒而沒有碰撞箱)

設(shè)置計(jì)劃刻執(zhí)行

在FULL階段持續(xù)5s后,它會自動恢復(fù)為NONE階段。

FULL結(jié)束,恢復(fù)成原樣

到這里,我們解釋了這個(gè)過程的基本內(nèi)容和潛行不會掉下去的原理,可是另外一個(gè)還沒有解釋:為什么跳來跳去也不會導(dǎo)致它傾斜。

原理如下:

在計(jì)劃刻執(zhí)行時(shí),會再次檢查是否有實(shí)體在上面,如果沒有,恢復(fù)原狀。這也是為什么跳來跳去的時(shí)候會有“Dripleaf Tilt Up”的聲音而潛行沒有。

tick,計(jì)劃刻執(zhí)行

最后,它可以被任何投擲物摧毀掉落。

被投擲物摧毀

四.銅類方塊銹蝕改變

之前說過銅類方塊是以計(jì)劃刻運(yùn)行的,現(xiàn)在則以隨機(jī)刻進(jìn)行判定。這個(gè)變化比之前要復(fù)雜一點(diǎn)。

首先是判定是否生效,每次隨機(jī)刻觸發(fā)都運(yùn)行判定,這個(gè)判定成功的概率是0.05688889(真搞不懂這啥玩意,可能是3/512?)

randomTick時(shí)調(diào)用此方法

這就完事了?不,下一步才是最主要的。

接下來還要進(jìn)行一次判定是否進(jìn)行變化,有關(guān)與附近曼哈頓距離小于等于4的所有方塊。首先將這些方塊遍歷,如果是同一類型方塊,總體方塊計(jì)數(shù)加一;如果這個(gè)方塊銹蝕程度比它還大,那么銹蝕計(jì)數(shù)加一。然后將這些數(shù)據(jù)集合起來,得到下面的概率公式:

a:周圍銹蝕程度更大的方塊量;b:周圍同類方塊量;c:改變比例,純銅塊為0.75,其他為1

通過公式看出:旁邊的方塊越少概率越大,最大取值為旁邊沒有任何方塊的暴露銅塊(Exposed)或銹蝕的銅塊,這些方塊的這個(gè)概率為100%;最小取值是周圍全都是銅塊的銅塊,這個(gè)方塊的這個(gè)概率為3/66564(0.045%)

applyChangeOverTime,變化調(diào)用

最后,更新方塊,我們才能看到一個(gè)成功銹蝕的銅塊。

五.細(xì)雪方塊的變化

細(xì)雪方塊在這個(gè)版本中可以被活塞推拉,這里沒有什么好講的,主要是下面兩個(gè)。

第一個(gè):帶火的箭射過細(xì)雪方塊時(shí)火焰熄滅

和在水、雨中一樣,現(xiàn)在帶火的箭穿過細(xì)雪方塊的時(shí)候火焰熄滅。

實(shí)現(xiàn)的代碼

但是有的時(shí)候這個(gè)不起效果,原因是:MC計(jì)算移動時(shí)只考慮前進(jìn)路徑上是否有碰撞,之后會直接將實(shí)體移動到計(jì)算的點(diǎn)而不考慮中間過程,所以有的時(shí)候穿過細(xì)雪方塊是沒有計(jì)算到它在細(xì)雪方塊里面所以火焰不熄滅。

第二個(gè):骷髏小白變流浪者(流髑)

現(xiàn)在骷髏進(jìn)入細(xì)雪方塊會變化為流浪者,一共耗時(shí)900tick(45s),但是如果它在細(xì)雪里面已經(jīng)呆了超過600tick(30s),則變化不可逆轉(zhuǎn),即使現(xiàn)在立刻從細(xì)雪里面出來最終也會變?yōu)榱骼苏摺?strong>

骷髏每刻運(yùn)行的代碼

六.發(fā)光苔蘚沒法變水了

上一個(gè)版本發(fā)光苔蘚能把巖漿變?yōu)楹陌l(fā)光苔蘚,導(dǎo)致下界能夠產(chǎn)生水?,F(xiàn)在已經(jīng)修復(fù)了(修復(fù)花了3天)

七.世界凍結(jié)bug MC-213788 在2月4日晚21:15修復(fù)?

代碼源:基于Mojang官方混淆表的反混淆+反編譯(CFK、JD-Core)

反混淆器:正在努力開發(fā)中的MCDynamicExchanger beta 7

發(fā)布版本為beta 6 ONLY REMAPPING DECOMPILING COMPARING

項(xiàng)目地址 https://github.com/Nickid2018/MCDynamicExchanger

文章中出現(xiàn)了錯(cuò)誤?歡迎留言在下面!

Minecraft 21w05a 新更改+代碼簡析的評論 (共 條)

分享到微博請遵守國家法律
木里| 枣庄市| 宁明县| 铁岭市| 黄石市| 临海市| 敦化市| 布尔津县| 嵩明县| 新建县| 江西省| 清河县| 平邑县| 汉阴县| 历史| 余江县| 博乐市| 罗城| 苏尼特左旗| 河曲县| 辽阳县| 凤翔县| 左贡县| 内江市| 高安市| 兴宁市| 桂东县| 普宁市| 涟水县| 济南市| 通化县| 中山市| 屏边| 宁化县| 含山县| 厦门市| 和顺县| 三明市| 东台市| 贵德县| 偏关县|