最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

Crafttweaker(1.12.2)基礎(chǔ)1:ZenGetter,ZenSetter,ZenMethod

2022-11-20 13:50 作者:IChixiao  | 我要投稿

哈,熬過了入門部分,好玩的來啦!


zs腳本有三個特有的術(shù)語:ZenGetter,ZenSetter與ZenMethod。ZenGetter用于獲取特定對象的某種信息,ZenSetter用于設(shè)定特定對象的某種數(shù)據(jù),ZenMethod其實就是方法,既可能獲取信息又可能設(shè)定數(shù)據(jù)。


么說可能還是過于抽象了,我們跟著wiki慢慢來看:


、ZenGetter

https://docs.blamejared.com/1.12/en/Vanilla/Variable_Types/IIngredient#command-string

這里介紹的commandString就是典型的ZenGetter,在wiki中看到此類用法一要注意對什么對象使用,二要注意返回了什么類型——以此處的commandString為例,可以看到其位于IIngredient頁面下,因此顯然要對一個材料對象使用,形如:

舉個例子(如wiki所示):

那么返回了什么類型呢?wiki也講得很清楚了,返回的是一個字符串。


、ZenSetter

https://docs.blamejared.com/1.12/en/Vanilla/Items/IItemStack#zengetterszensetters

這里則用表格的形式展示了一系列ZenGetter,ZenSetter。我們先關(guān)注ZenSetter,在wiki中看到此類用法一要注意對什么對象使用,二要注意賦值為什么類型——以表內(nèi)的maxStackSize為例,可以看到其位于IItemStack頁面下,因此顯然要對一個物品堆對象使用,形如:

舉個例子:

那么賦值為什么類型呢?wiki也講得很清楚了,賦值為一個整型。


、ZenMethod

而關(guān)于ZenMethod,我們在之前的章節(jié)其實已經(jīng)多次見過了,入門2列出的一系列方法都是ZenMethod,在wiki中看到此類用法一要注意對什么對象使用;二要注意有無傳入?yún)?shù),若有參數(shù)則要注意需要多少參數(shù)、參數(shù)的類型是什么、參數(shù)是否可省略以及省略后默認是什么值,無參數(shù)則一定要注意不要忘了結(jié)尾的那對括號;三要注意有無返回值,若有返回值則要注意返回了什么類型,無返回值則說明這個ZenMethod可能用于設(shè)置數(shù)據(jù)(類似于ZenSetter),也可能用于引發(fā)一些“變化”或“事件”。


像……還是少了點什么?想必有人在看wiki時已經(jīng)敏銳的注視到了,maxStackSize既是ZenSetter,又是ZenGetter,那么用起來的時候不會搞混嗎?

答案是不會:

這里的前一個鐵錠.最大堆疊數(shù)是ZenSetter,后一個鐵錠.最大堆疊數(shù)是ZenGetter,在賦值時等號右邊的ZenGetter先返回值64(即鐵錠原本的最大堆疊數(shù)),等號左邊的ZenSetter再賦值為32(即64-32),兩者雖然同名但不會發(fā)生邏輯上的悖論。當然了,實際寫的時候大可不必這么麻煩,直接寫成:

即可,最終進入游戲后就可以發(fā)現(xiàn)鐵錠的最大堆疊數(shù)變了。


,那么接下來我們簡單地實戰(zhàn)一下:

如何修改某種方塊使之無法被左鍵采掘(已知這樣的方塊硬度為-1)?

首先既然要改方塊,那當然是在wiki > Vanilla > Blocks里尋找(不會還有人以為Vanilla是香草的意思吧),最終不難在IBlockDefinition處找到:

根據(jù)https://docs.blamejared.com/1.12/en/Vanilla/Blocks/IBlockDefinition#zengetterszensetters

不難發(fā)現(xiàn)有hardness這一ZenSetter,于是有:

但是這里的對象需要我們得到一個IBlockDefinition的實例,怎么獲得呢?我們需要找找有沒有相關(guān)的ZenGetter或ZenMethod能夠返回一個IBlockDefinition。

根據(jù)https://docs.blamejared.com/1.12/en/Vanilla/Blocks/IBlock#zengetters

不難發(fā)現(xiàn)有definition這一ZenGetter,于是有:

但是這里的對象需要我們得到一個IBlock的實例,所以我們還得找找有沒有相關(guān)的ZenGetter或ZenMethod能夠返回一個IBlock。

根據(jù)https://docs.blamejared.com/1.12/en/Vanilla/Items/IItemStack#block-casting

不難發(fā)現(xiàn)有asBlock()這一ZenMethod,于是有:

怎么返回一個IItemStack,相信你已經(jīng)熟得不能再熟了吧。假設(shè)我們要修改的方塊是仙人掌(仙人掌好扎手的),那么最終的答案就是:

進入游戲后就發(fā)現(xiàn)仙人掌無法再用左鍵采掘了(其實可以通過挖掉根部的沙子獲得)。


么基礎(chǔ)1就到此為止了,到此為止你已經(jīng)能夠脫離本系列直接根據(jù)wiki寫腳本了,請根據(jù)自己的需求大膽嘗試吧。

Crafttweaker(1.12.2)基礎(chǔ)1:ZenGetter,ZenSetter,ZenMethod的評論 (共 條)

分享到微博請遵守國家法律
丰都县| 仪陇县| 盐亭县| 丹巴县| 昌平区| 榕江县| 旬邑县| 乐陵市| 桦南县| 富裕县| 咸丰县| 东台市| 桃源县| 锡林郭勒盟| 闵行区| 夏河县| 林芝县| 阿瓦提县| 台中县| 建宁县| 拜城县| 盱眙县| 资兴市| 甘泉县| 白玉县| 徐州市| 石城县| 甘南县| 汾西县| 广水市| 永福县| 莱阳市| 衡阳县| 天镇县| 积石山| 金湖县| 长汀县| 松原市| 临漳县| 阜新市| 十堰市|