我的世界NEI物品管理器mod詳細(xì)圖文使用教程
NEI算是一個(gè)功能非常雜的mod了,但是很多人對NEI的了解甚至還只局限于作弊上,然而實(shí)際上NEI的功能對無論是生存還是創(chuàng)造都有很大的幫助。
NEI完全開源,作者為Chickenbones,如果想要貢獻(xiàn)代碼可以去:https://github.com/Chicken-Bones/NotEnoughItems
安裝的時(shí)候注意一點(diǎn),NEI在客戶端和服務(wù)器都能安裝,而且推薦兩端同時(shí)安裝。
在下面我會詳細(xì)列出NEI的絕大部分功能,不過可能還有遺漏,如果發(fā)現(xiàn)請告訴我,回來慢慢翻源碼看看能不能再發(fā)現(xiàn)什么。
寬屏模式下效果更佳
合成配方篇
NEI查看合成配方非常方便,最基礎(chǔ)的操作就是鼠標(biāo)懸停在一個(gè)物品上方按下R鍵就行了。當(dāng)然,除此之外還有很多其他的功能,總結(jié)在下面這個(gè)列表:
查看選中物品的合成配方:懸停物品上方按R,或Recipe模式右側(cè)物品欄左鍵
查看選中物品的用途:懸停在物品上方U,或者懸停物品上Shift+R,或者Recipe模式右側(cè)物品欄右鍵
查看指向方塊的合成配方(Waila):指向方塊按小鍵盤3,注意這一條是Waila的功能,Creative+模式下有Bug
查看指向方塊的用途(Waila):指向方塊按小鍵盤4,注意這一條是Waila的功能,Creative+模式下有Bug
下面是一張合成表的截圖:
介紹一下界面:
點(diǎn)擊上方的箭頭可以切換不同的配方類型(有序合成,無序合成,機(jī)器等)
點(diǎn)擊合成表中間的箭頭可查看該類型的所有配方
左鍵任意物品或懸停按R能夠查看物品的配方
右鍵任意物品或Shift+R或U鍵能夠查看物品的用途
如果你在合成表界面里查看了其他物品的合成表,可以用Backspace鍵退回上一級合成表
如果合成表使用了Ore Dictionary,匹配的物品會輪流顯示,按住Shift鍵可以停止變換
右下角有個(gè)"?"的按鈕,3x3配方在工作臺中查看配方才會顯示,2x2及以下背包內(nèi)就有顯示
直接單擊它會在工作臺內(nèi)投影出選中的配方
如果你包里已經(jīng)有了配方所需所有的物品,Shift+點(diǎn)擊它會自動在工作臺中擺放選中的配方(不支持包含武器或工具的配方)
搜索篇
背包里面最下面那條黑色的框框就是搜索框,單擊一下或者按一下F鍵就能輸入了。
NEI的搜索是支持正則表達(dá)式的!如果你不喜歡正則表達(dá)式搜索,可以把Options>Inventory>Search Mode調(diào)成Plain。搜索是不分大小寫的,也就是說Apple和apple效果一樣的。另外,搜索會匹配物品的ToolTips(就是有些物品下面的說明),比如如果你搜索"No effects"就能搜索到那幾個(gè)無效果的藥水。
一些小技巧:
輸入"@x.y.z"格式能匹配到上方Item Subsets的物品選項(xiàng)卡,比如匹配Items>Potions>Neutral內(nèi)物品,直接輸入"@Items.Potions.Neutral"(上面一條也是這個(gè)原理)
右鍵搜索框能直接清空
雙擊搜索框能切換到高亮模式,他會將你背包所有格子變暗,之后將背包里匹配搜索內(nèi)容的物品高亮。再次雙擊可取消
關(guān)于@標(biāo)簽搜索:
標(biāo)簽的下一項(xiàng)用"."來表示,比如搜索Items>Potions>Neutral標(biāo)簽內(nèi)物品,可以輸入"@Items.Potions.Neutral"
必須使用@符號開頭的字符串搜索才能開啟分類搜索功能,也就是說如果你輸入"dark iron | @Factorization"并不會切換到Factorization的選項(xiàng)卡
分類標(biāo)簽只輸入其中一項(xiàng)也是可以的,比如說想要搜索Items>Potions>Neutral可以直接輸"@Neutral",也就是說Mod選項(xiàng)卡里的內(nèi)容只要輸入"@mod名字"就行了
分類標(biāo)簽匹配的內(nèi)容如果在只輸入一項(xiàng)的情況下可以不輸入完全,比如Mod>BuildCraft標(biāo)簽直接輸入"@BuildCr也可以,但是如果匹配到了多個(gè)標(biāo)簽,NEI會將它們都顯示出來
在標(biāo)簽搜索的過程中,也會同時(shí)進(jìn)行普通的搜索,也就是說如果有一個(gè)物品叫做Factorization,那么搜索"@Factorization"的同時(shí)這個(gè)物品也會匹配上
怎樣搜索某個(gè)Mod下的所有物品?
搜索mod的名字,注意這個(gè)名字是與mcmod.info文件里的name項(xiàng)目對應(yīng)的
搜索mod添加的創(chuàng)造模式選項(xiàng)卡的名字(比如BuildCraft某些物品因?yàn)閯?chuàng)造模式選項(xiàng)卡才能搜索到,否則只能搜BC)
上面兩項(xiàng)不但是不沖突的,而且是互補(bǔ)的
下面簡單講一下三種Search Mode的區(qū)別:
簡單(Plain):什么特殊功能都沒有,匹配的是包含輸入內(nèi)容的物品
正則表達(dá)式(Regex):使用正則表達(dá)式進(jìn)行匹配,使用的是java.util.regex.Pattern進(jìn)行的匹配
拓展(Extended):默認(rèn)就是這個(gè),在正則匹配基礎(chǔ)上添加通配符(Wildcards)匹配,它的原理就是通過將輸入內(nèi)容的
"."替換為""
"?"替換為"."
"*"替換為".+?"
從而實(shí)現(xiàn)通配符,之后進(jìn)行正則匹配
詳細(xì)說一下拓展和正則模式:
拓展
本模式添加了兩個(gè)通配符,分別為"*"和"?"。"*"代表任意字符串(不限長度),"?"代表一個(gè)任意字符。
比如說你如果要搜索蘋果,但是你忘了怎么拼了,只記得幾個(gè)字母,那么可以這樣:
a*le:匹配任意以a開頭的以le結(jié)尾的字符串,比如說apple,acble,afcle
ap?le:匹配任意以ap開頭以le結(jié)尾的長度為5的字符串,比如說apple,apele
該模式支持正則表達(dá)式支持的所有語法,詳細(xì)見下。
正則表達(dá)式
本模式支持正則表達(dá)式的所有語法,并且沒有拓展模式中通配符,用起來更清爽,個(gè)人更喜歡這個(gè)模式。
由于正則表達(dá)式規(guī)則太多這里只列幾個(gè)常用的,其他的請自己谷歌百度找個(gè)正則表達(dá)式教程學(xué)習(xí)(這里隨便找到一個(gè),可以點(diǎn)擊這里學(xué)習(xí))
[abc]pple:匹配apple,bpple,cpple
[a-c]pple:同上
ap{2}le:匹配apple,{2}代表重復(fù)兩次,{2,}代表重復(fù)兩次以上,{2,5}表示重復(fù)2到5次
^apple:匹配以apple開頭的物品
apple$:匹配以apple結(jié)尾的物品。不推薦使用,因?yàn)槲锲返拿职锲吩镜拿?nbsp;+" "+ ID +"#"+ ToolTips,一個(gè)"#"代表一個(gè)回車。也就是說名字的末尾是ToolTips,即使沒有ToolTips也需要關(guān)掉ID顯示才能正常使用
stone|diamond:匹配stone或者diamond,這條語句可以很方便搜索多個(gè)內(nèi)容
(?=.*diamond)(?=.*armor):匹配既包含diamond又包含armor的物品,可以彌補(bǔ)diamond armor搜索不到Diamond Horse Armor的問題
這里說一下NEI內(nèi)部的物品名字,比如說這樣一個(gè)物品:
它實(shí)際的名字是:
"Potion of Swiftness 373:8194#Speed (3:00)##When Applied:#+20% Speed"
但是如果你要在Regex或Extended模式搜索全稱,需要搜索:
"Potion of Swiftness 373:8194#Speed \(3:00\)##When Applied:#\+20% Speed"
因?yàn)橛行┳址赗egex中有特殊作用,要用轉(zhuǎn)義符才能匹配。當(dāng)然啦,估計(jì)沒有人會要搜索到這種程度/w\
另外如果加上Waila的話,如果在NEI搜索會匹配上Waila顯示的那條mod名稱,但是這條mod名不在物品的名字里,是作為單獨(dú)的一條的。
也就是說直接搜索
"^BuildCraft$" (嚴(yán)格匹配"BuildCraft")
也會匹配到所有mod名顯示為BuildCraft的物品。
特殊字符一共有:
\
^
$
.
|
?
*
+
(
)
[
{
想要搜索的話請?jiān)谇懊婕覾,比如匹配"\"就輸入"\\"
背包操作篇
這應(yīng)該算是NEI知道的人最少的功能了吧,但是這個(gè)絕對是輔助生存模式非常棒的一類功能,注意以下內(nèi)容可能會和某些mod沖突,請自行檢查。
具體有以下幾點(diǎn):
合成物品時(shí)右擊產(chǎn)出框:使用輸入原料合成多次物品,直到滿組或者原料用光,如果已經(jīng)拿著物品了,合成出來的物品會堆疊到拿起的那個(gè)物品上(原理是連續(xù)處理64次合成事件orz)
打開一個(gè)容器的時(shí)候,鼠標(biāo)懸在物品上滑動滾輪:會將物品傳輸?shù)饺萜鳟?dāng)中,或從容器取出(絕對是最棒的一個(gè)功能)
打開一個(gè)容器的時(shí)候,拿起一個(gè)物品,按住Shift并點(diǎn)擊同類物品:傳輸所有同類物品到容器里
作弊模式下Ctrl+左擊物品:補(bǔ)滿當(dāng)前堆物品,如果已經(jīng)滿了,則再給一組
作弊模式下Ctrl+右擊物品:補(bǔ)充一個(gè)物品
作弊模式下懸浮物品上方Ctrl+Q:給一個(gè)當(dāng)前物品(這是原版中的扔出當(dāng)前格子所有物品,被NEI覆蓋)
生存模式下懸浮物品上方Shift+Q:扔出當(dāng)前種類所有物品,注意這個(gè)是分容器的,比如懸浮在箱子里的物品上只會扔箱子里的物品(對應(yīng)原版類似功能Ctrl+Q)
創(chuàng)造模式+(Creative+)下 Ctrl+滾輪:滾動切換工具欄的物品
物品分類篇
物品的分類(Item Subsets)就是背包NEI界面最上面的那個(gè)大大的按鈕,左鍵點(diǎn)擊后會出現(xiàn)一個(gè)下拉菜單,里面可以通過不同的分類瀏覽物品。
如果你在任意一個(gè)分類或子分類上Shift+左擊,下面搜索框會自動輸入分類名稱,并匹配該分類下所有物品。
如果你任意右擊一個(gè)分類或物品,那么這個(gè)物品將會被右側(cè)的物品面板排除,如果重新左鍵一下就能重新選中,你可以利用這個(gè)功能排除ForgeMultipart數(shù)量眾多的小方塊。
雙擊任意一個(gè)分類能夠關(guān)閉除該分類以外所有物品,注意這與Shift+左擊不同,這個(gè)是隱藏了多余物品,Shift+左擊是匹配了當(dāng)前類別下的物品。
之前版本能夠右擊分類的按鈕保存設(shè)置好的分類,但是新版本這個(gè)功能好像還沒實(shí)現(xiàn)。
工具篇
這里的工具指的是Data Dumps,進(jìn)入方法為Options>Tools>Data Dumps。這個(gè)小工具能夠?qū)С鲇螒虻暮芏鄶?shù)據(jù),特別是藥水,附魔,生物群系這三項(xiàng)對于整合包制作者的幫助非常大,因?yàn)檫@三項(xiàng)會存在id沖突,請整合包作者隨時(shí)檢查這三項(xiàng)內(nèi)容。輸出的文件在.minecraft/dumps文件夾里。
下面解釋具體每一項(xiàng)的作用:
物品(Items):導(dǎo)出所有注冊過的物品,文件名為item.csv。輸出的內(nèi)容包括:名字(非本地化),ID,是否是方塊,所屬mod,所屬類
方塊(Blocks):導(dǎo)出所有注冊過的方塊,文件名為block.csv。輸出的內(nèi)容包括:名字(非本地化),ID,是否有對應(yīng)物品,所屬mod,所屬類
藥水(Potions):導(dǎo)出所有的藥水,文件名為potion.csv。輸出內(nèi)容包括:ID,名字(非本地化),所屬類。包含三個(gè)選項(xiàng):
All:輸出所有id的藥水(0-31)
Free:輸出空閑的id
Used:輸出已用id的藥水
附魔(Enchantments):導(dǎo)出所有的附魔,文件名為enchantment.csv。輸出內(nèi)容包括:ID,名字(非本地化),附魔物種類,最小等級,最高等級,所屬類。包含三個(gè)選項(xiàng):
All:輸出所有id的附魔(0-255)
Free:輸出空閑的id
Used:輸出已用id的附魔
生物群系(Biomes):導(dǎo)出所有的生物群系,文件名為biome.csv。輸出內(nèi)容包括:ID,名字,氣溫,降雨,生成幾率,基礎(chǔ)高度,高度變化,種類,所屬類。包含三個(gè)選項(xiàng):
All:輸出所有id的生物群系(0-255)
Free:輸出空閑的id
Used:輸出已用id的生物群系
物品面板(Item Panel):導(dǎo)出當(dāng)前物品面板(右側(cè)面板)中物品的信息,包含四個(gè)選項(xiàng):
CSV:輸出物品信息為CSV格式,文件名為itempanel.csv。輸出內(nèi)容包括:物品ID(字符串),內(nèi)部ID,metadata,是否包含NBT信息,顯示名字
NBT:輸出物品的NBT信息,文件名為itempanel.nbt。輸出的內(nèi)容是一個(gè)包含了NBTTagList的NBTTagCompound,NBTTagList里面包含的內(nèi)容有ID,數(shù)量,傷害值(即metadata)還有物品的NBT數(shù)據(jù),不過好像想不出來有什么用途。它使用CompressedStreamTools.writeCompressed()輸出,如果開發(fā)者想要讀取輸出的信息可以用CompressedStreamTools.readCompressed()來讀取。簡單寫了一個(gè)讀取的演示,代碼見這里
JSON:輸出物品信息為JSON格式,文件名為itempanel.json。這個(gè)實(shí)際上就是上邊NBT數(shù)據(jù)轉(zhuǎn)化成了JSON形式,輸出內(nèi)容包括物品id(id),物品傷害值(damage, 即metadata),和NBT數(shù)據(jù)(tag)
PNG:輸出物品面板內(nèi)所有物品為PNG圖片,文件輸出到itempanel_icons文件夾。功能類似于Item Render,并且可以選擇輸出大小,最小為16x16,最大為256x256。如果想用這個(gè)輸出物品圖片傳到MCMOD百科也是可以的。
作弊操作篇
這部分內(nèi)容比較多,分開說,這一部分對Mod解說者來說非常強(qiáng)大,如果想要解說Mod視頻請務(wù)必要安裝NEI。本篇所有內(nèi)容請保證模式為Cheat Mode。另外,各位請一定要克制住自己/w\。
首先來看下總體的界面吧:
一. 工具面板(左上角那個(gè))
這個(gè)面板里的東西都是非常常用的一些選項(xiàng),下面分別介紹他們,順序?yàn)閺淖笸,從上往下?/strong>
刪除模式(Delete Mode):單擊啟用。使用請左擊背包內(nèi)的物品,被左擊到的物品就會被刪除。Shift+左擊物品會刪除同類所有物品(批量刪除都包括打開的容器)。右擊或Shift+右擊物品會減少該堆物品的1個(gè)。Shift+單擊刪除模式的按鈕會清空背包。拿著物品左擊刪除模式按鈕會刪除該堆物品。拿著物品右擊刪除模式按鈕會刪除一個(gè)。拿著物品Shift+左擊刪除模式按鈕會刪除同類所有物品
下雨(Rain):單擊切換世界的下雨?duì)顟B(tài),右擊按鈕直接禁用下雨(也就是世界不會下雨了),禁用狀態(tài)下左擊啟用下雨。如果按鈕變成藍(lán)色,則世界正在下雨中(有時(shí)候有Bug)
游戲模式(Gamemode):一共有4個(gè)模式(Spectator在1.8版本里也沒有),分別為Survival,Creative,Creative+,Adventure,每次單擊都往下切換一個(gè)。其中Creative+并不是一個(gè)真正的游戲模式,它只在NEI內(nèi)部有標(biāo)明,實(shí)際上對應(yīng)的原版GameType都是Creative,沒有區(qū)別。注意這個(gè)設(shè)置的只是玩家的游戲模式,而不是設(shè)置的世界的游戲模式
Creative+:這個(gè)模式在原版背包的基礎(chǔ)上新增了54個(gè)格子,相當(dāng)于一個(gè)大箱子的容量。還有一個(gè)非常特別的特性,關(guān)閉背包的時(shí)候Ctrl+滾輪能來回切換工具欄的物品。注意背包滿了之后撿起的物品不會拾到到拓展的背包里。非常適合建筑黨來使用
磁鐵模式(Magnet Mode):服務(wù)器上只有服務(wù)端也安裝了NEI才能使用。這個(gè)功能會吸引半徑為16x8x16(x,y,z)的掉落物.注意如果你的背包滿了(C+的拓展背包不能拾起物品),磁鐵模式不會主動吸引物品,范圍恢復(fù)到原始,但是如果是創(chuàng)造模式你仍然可以撿起物品,不過會自動刪除
時(shí)間(Time):一共有四個(gè)時(shí)間分別為6:00(Dawn),12:00(Noon),18:00(Dusk),0:00(Midnight),一小時(shí)為1000ticks,即時(shí)間點(diǎn)分別為6000,12000,18000,0。為了保證時(shí)間是永遠(yuǎn)向前運(yùn)行的,每次切換會切換到第二天的該時(shí)間點(diǎn),所以如果你切換頻繁了,游戲天數(shù)會不斷上漲。右鍵點(diǎn)擊圖標(biāo)會禁用該時(shí)間段,最多只能禁用三個(gè),禁用之后到達(dá)該時(shí)間段會直接跳過到該時(shí)間段的結(jié)束,左鍵可以重新啟用
治療(Heal):點(diǎn)擊之后會恢復(fù)玩家20點(diǎn)生命值,恢復(fù)飽食度,并熄滅身上的火
二. 保存背包(左邊那個(gè))
這里的功能對Mod解說者非常有用,你們可以保存解說所需要的所有東西,身上亂了之后直接Load一下就能復(fù)原了。
NEI提供了7個(gè)保存槽(代碼里寫死了!),每個(gè)槽都可以保存一個(gè)背包狀態(tài),這個(gè)保存狀態(tài)是可以跨世界甚至是跨服的。注意這個(gè)功能是能夠保存C+模式的背包的,即使不在C+模式加載的背包,換成C+模式仍然會顯示剛剛加載的物品!
下面是對槽的操作:
保存:直接點(diǎn)擊任何一個(gè)包含有Save字樣的槽就行了
讀。褐苯狱c(diǎn)擊任何一個(gè)包含有Load字樣的槽就行了
重命名:右擊任意一個(gè)槽就行了,不管有沒有保存東西,右擊之后會提示你輸入字符,按回車確認(rèn)
刪除:已經(jīng)保存過的槽右邊會有一個(gè)X字按鈕,點(diǎn)一下就刪除了
三. 附魔
NEI提供了一個(gè)附魔的功能,在背包里按X鍵打開,界面會是這樣的:
忽略那個(gè)青金石的物品框,不需要的。
點(diǎn)擊上面的Level左右按鈕能夠切換等級,最高等級為10級,點(diǎn)擊右邊附魔就能添加了,添加之后再點(diǎn)擊一次就能取消附魔。
那個(gè)Locked選項(xiàng)表示檢測沖突附魔及附魔工具種類,比如劍只能附和劍有關(guān)的附魔(鋒利,節(jié)肢殺手等),而且鋒利和節(jié)肢殺手這種沖突附魔不能共存。
點(diǎn)擊一下那個(gè)Locked按鈕就能解鎖附魔,Unlocked模式下不會檢測沖突和種類,所以劍就能夠附裝備的附魔,并且也能附?jīng)_突的附魔。
四. 藥水
藥水和附魔功能類似,按P鍵打開面板,大概是這樣的:
在下面那個(gè)藥水槽里放入除水瓶以外任意藥水就行了。
如果要添加效果,左擊右邊的效果就行了,點(diǎn)擊Level的左右箭頭能夠調(diào)整等級,最大值為4級。
點(diǎn)擊上面的Duration能夠編輯持久,右擊Duration可以清空,Duration最大只能夠填27:18。
如果要取消效果,右擊效果就行了。
最上面有一排收藏藥水,你可以把制作好的藥水放到上面標(biāo)記。標(biāo)記過后可以源源不斷地拿,Shift+左擊可以拿無限數(shù)量的藥水,Ctrl+左擊可以直接將藥水傳送背包,想要取消標(biāo)記右擊對應(yīng)藥水就行了。
五. 物品面板(右邊那個(gè))
大家應(yīng)該都很熟悉這個(gè)面板了,這么明顯,并且都見過這么多次了。點(diǎn)擊上方的箭頭或者用滾輪或者PageUp和PageDown按鈕能夠翻頁。
對物品一共有這些操作:
獲取一組:左擊物品
獲取一個(gè):右擊物品
獲取特定數(shù)量:在下面那個(gè)輸入框指定數(shù)量,之后左擊物品
獲取無限物品:Shift+左擊物品,無限物品能夠無限放置無限扔出,顯示為111個(gè)
輸入框的編輯:
左擊:激活輸入框,直接輸入數(shù)字就行了
右擊:清零
左擊加號:添加1個(gè)
左擊減號:減少1個(gè)
Shift+左擊加號:添加10個(gè)
Shift+左擊減號:減少10個(gè)
Ctrl+左擊加號:添加64個(gè)
Ctrl+左擊減號:減少64個(gè)
刷物品的時(shí)候記得一定不要超過背包剩余容積,會崩潰的,這個(gè)Bug到現(xiàn)在還沒修復(fù)。Not Enough Issues
其它
一. 顯示/關(guān)閉NEI
按下O鍵即可隱藏側(cè)邊框,如果要完全禁用NEI,去設(shè)置設(shè)置NEI Disabled并按下O鍵就行了。
二. 方塊高亮
按下小鍵盤0鍵能切換方塊高亮的開關(guān)。如果想要調(diào)節(jié)位置的話去Options>World>Highlight Tooltips里面,在中間按鈕為Shown的時(shí)候拖動高亮的方框,如果中間按鈕為Hidden點(diǎn)擊一下按鈕就能變成Shown了。不過仍然建議安裝Waila,不推薦使用NEI的方塊高亮。
另外,Waila和NEI的方塊高亮是獨(dú)立的!也就是說你可以同時(shí)開啟Waila的高亮和NEI的高亮(兩個(gè)方框)。注意小鍵盤0這個(gè)按鍵如果裝了Waila打開的是Waila的設(shè)置,如果想要調(diào)節(jié)Waila高亮的,按0之后點(diǎn)擊Waila>Configure aspect...之后就可以拖動方框調(diào)節(jié)了。選項(xiàng)Alpha是透明度,Scale是縮放比例。
三. 怪物生成指示
按下F7鍵開始,再次按下結(jié)束,打開之后地面上會出現(xiàn)紅色和黃色的網(wǎng)格。
黃色的網(wǎng)格表示該格怪物只在夜間生成,白天不會生成。
紅色網(wǎng)格表示該格怪物會在白天和夜間都生成。
看到這兩個(gè)標(biāo)示就趕快插火把吧!
四. Chunk指示
按下F9開始,第一次按下顯示Chunk的頂點(diǎn),第二次按下顯示Chunk的范圍邊界,再按一下就停止。
顯示會是這樣子的:
綠色標(biāo)示邊界,紅色標(biāo)示頂點(diǎn)。
五. asm文件夾
如果你安裝了NEI,運(yùn)行之后你會發(fā)現(xiàn)在.minecraft文件夾下多出來一個(gè)asm文件夾。
這個(gè)文件夾其實(shí)是由NEI的前置CodeChickenLib輸出的。由于NEI需要注入原版代碼,大量地使用了ASM,并且用的是CCL的ModularASMTransformer。這個(gè)類會自動輸出轉(zhuǎn)換過的結(jié)果到文件里用來debug,所以就成了現(xiàn)在的asm文件夾里面的文件。注意并不只有NEI用到了這個(gè)類,其他還有很多Mod也都用到了。
所以如果你想刪除這個(gè)文件夾,當(dāng)然可以,這個(gè)只是debug用的,代碼里看到個(gè)選項(xiàng)能關(guān)閉生成,但是一直沒找到那個(gè)選項(xiàng)在哪設(shè)置。
六. NEI插件
NEI由于提供了API,許多mod都對NEI進(jìn)行了支持。在Forge Mods列表里你能看到加載的NEI插件:
目前還有很多專門的NEI插件,現(xiàn)在還在更新比較推薦的有:
NEI Addons
NEI Integration
設(shè)置篇
NEI本身還是有很多可以設(shè)置的選項(xiàng)的,本部分分兩塊來說。第一部分是Options里的選項(xiàng),第二部分是config文件。注意NEI客戶端的config文件在.minecraft/config/NEI下,服務(wù)端的在world/NEI下。
一. 選項(xiàng)(Options)
選項(xiàng)分為Global和World兩種模式,點(diǎn)擊右上角的按鈕可以切換。Global模式下的設(shè)置是全局的,所有世界都能共享,而World模式則是對當(dāng)前世界特定的,不會影響到其他世界的設(shè)定。在World模式下左邊會出來一排W的按鈕,左鍵選中右鍵取消,更改選項(xiàng)自動選中,選中代表該項(xiàng)采取World的設(shè)置,未選中代表直接繼承Global模式下的設(shè)定。
首先我們來看Inventory下的幾個(gè)選項(xiàng):
NEI Enabled/NEI Disabled:關(guān)閉NEI,與O鍵不同,這個(gè)關(guān)掉之后左下角還是有個(gè)Options按鈕,但是NEI功能完全禁用了,不像O鍵只是隱藏側(cè)邊框
模式(Mode):一共有三種模式,分別為Cheat Mode,Recipe Mode和Utility Mode,下面分別介紹一下。另外不知道什么原因,單機(jī)在這里的設(shè)置要調(diào)到World模式更改才能更改成功,或直接在World模式中把W按鈕右鍵關(guān)掉。在服務(wù)器模式會根據(jù)玩家是否是Op自動更新,沒有Op自動Recipe Mode,有了Op作弊的按鈕自動出來(其實(shí)只是改了功能而已,沒改模式)
作弊模式(Cheat Mode):擁有所有的功能,刷物品,調(diào)整世界設(shè)置等
合成模式(Recipe Mode):推薦生存使用的模式,只有查看合成表和搜索的功能
實(shí)用模式(Utility Mode):介于作弊模式和合成模式中間的一個(gè)模式,點(diǎn)擊右邊的物品面板里的物品只能查看合成表,但是你可以自定義放在左上角的那些工具,并且可以使用
實(shí)用模式功能(Utilities):左擊按鈕就能啟用功能,右擊按鈕就能關(guān)閉,這樣可以自定義實(shí)用模式的工具面板,注意最后一個(gè)Items指的是背包狀態(tài)保存功能
游戲模式(Gamemodes):選擇游戲模式按鈕能切換的游戲模式,生存模式不可關(guān),左擊打開右擊關(guān)閉
布局風(fēng)格(Layout Style):分為TMI和Minecraft兩種,TMI風(fēng)格是為了滿足一些TMI老用戶的需求
物品排序(Item Sorting):里面有各種不同的排序因素,可以拖動排序,按照優(yōu)先級排序。里面的因素分別為:
Minecraft:原版物品最先篩選
Mod:將Mod物品組合到一起,并按照Mod名稱排序
Item ID:按照物品ID大小排序
Default:保持物品狀態(tài)自然不變
Item Damage:按照物品的耐久(Metadata)排序
Display Name:按照顯示名字排序
物品ID(Item IDs):有三種模式:Auto,Shown和Hidden
Auto:在NEI禁用或隱藏的時(shí)候不顯示ID,在NEI顯示的時(shí)候顯示ID
Shown:一直顯示
Hidden:一直隱藏
搜索模式(Search Mode):在搜索篇已經(jīng)講過了
合成查閱性能分析(Profile Recipes):在物品合成表后面會多一個(gè)Crafting Profiling界面,記錄查詢的耗時(shí),debug使用,一般不需要開啟:
World選項(xiàng)里面只有一個(gè)Highlight Tooltips的功能,你可以調(diào)整高亮提示框的位置與是否顯示,具體見其它里的方塊高亮。
Command選項(xiàng)里面是針對一些特殊的服務(wù)器使用的指令。
Keybindings就是調(diào)整鍵位的地方,不多說了。
二. Config文件
能在客戶端里找到的選項(xiàng)我這里就省略了,自己去客戶端調(diào)。
客戶端下client.cfg文件:
# 檢查更新
checkUpdates=true
#對于那些自控力低的人
#把下面這條改成對應(yīng)的模式,這樣你就在游戲里改不了了,可用選項(xiàng):0(生存),1(創(chuàng)造),2(創(chuàng)造+),3(冒險(xiǎn)),-1(禁用)
inventory.lockmode=-1
服務(wù)端下server.cfg文件:
#使用權(quán)限
permissions
{
adventure=OP
creative=OP
creative+=OP
delete=OP
enchant=OP
heal=OP
item=OP
magnet=OP
#這一條是刷物品的時(shí)候會得到提示
notify-item=CONSOLE, OP
potion=OP
rain=OP
save-state=OP
time=OP
}
后面一共可以填:
玩家名:例如,time=CodeChicken, Friend1
OP:僅限OP使用
CONSOLE:僅限控制臺使用
ALL:全體玩家都能使用
服務(wù)端下banneditems.cfg文件:
{name:"minecraft:command_block"}=[NONE]
這個(gè)前面是一個(gè)JSON字符串,代表一個(gè)NBT數(shù)據(jù),Tag一共可以有四個(gè):
name:名字,注意是modid:name這種形式的
Count:個(gè)數(shù),不填默認(rèn)為1
Damage:傷害值(metadata),不填默認(rèn)為0
tag:NBTTagCompound數(shù)據(jù),不填則為空
是不是感覺很熟悉呢?沒錯(cuò),結(jié)合CSV和JSON導(dǎo)出的信息就能很方便地填寫這一項(xiàng)了!
后面是允許的玩家或群體,簡單來講就是白名單,一共可以填:
NONE:不允許任何人
玩家名:例如{name:"minecraft:bedrock"}=[RebirthIsHope, Meow_J]
OP:允許OP
CONSOLE:允許控制臺(基本沒用)
ALL:無限制
插件編寫篇
由于這塊內(nèi)容靈活度太大,我不可能將每一個(gè)方法都介紹到,所以我只會挑選出幾個(gè)常用的來講。如果你是普通玩家那么這部分你可以跳過。
一. 依賴
第一步當(dāng)然就是添加依賴了。首先,打開你的build.gradle文件,在文件的下面添加這樣幾行:
repositories {
maven {
name = "chickenbones"
url = "http://chickenbones.net/maven"
}
}
dependencies {
compile "codechicken:CodeChickenLib:1.8-1.1.2.139:dev"
compile "codechicken:CodeChickenCore:1.8-1.0.5.36:dev"
compile "codechicken:NotEnoughItems:1.8-1.0.5.104:dev"
}
當(dāng)然,dependencies里面的版本請自己選擇合適的,這里可能不是最新的,如果你要是1.7.10的mod就選擇1.7.10的版本,具體的版本號請到這里(CCC, NEI)和這里(CCL)查看。
接下來,把那幾個(gè)dev的mod文件下載下來,加到你IDE的依賴?yán),這里很簡單就不說了。
二. IConfigureNEI
我們需要先創(chuàng)建一個(gè)類實(shí)現(xiàn)(Implements) IConfigureNEI,名稱隨意,我在這里將其命名為NEIConfig。這個(gè)類的作用相當(dāng)于是一個(gè)入口,當(dāng)NEI需要載入插件的時(shí)候會搜索到這個(gè)類,從而加載你的插件。
你一共需要實(shí)現(xiàn)三個(gè)方法:
loadConfig:這個(gè)方法是用來注冊Handler或者設(shè)置一些其它東西的,經(jīng)常使用的有API.registerRecipeHandler(),API.registerUsageHandler(),API.setGuiOffset()
getName:這里只需要返回你設(shè)定的NEI插件名字就行了,它會顯示在NEI已加載插件那里
getVersion:返回你設(shè)定的版本號
三. RecipeHandler
RecipeHandler是編寫插件最重要的一部分了,當(dāng)然它也非常復(fù)雜。不過還好,Chickenbones給我們提供了一個(gè)TemplateRecipeHandler,你可以直接繼承這個(gè)類而不用寫很多重復(fù)性的代碼。這個(gè)類本身其實(shí)就相當(dāng)于一個(gè)教程,里面每個(gè)方法基本都有文檔,你可以參考它來寫你自己的Handler。
這里我們首先新建一個(gè)類繼承TemplateRecipeHandler,我這里命名為RecipeHandlerMeowMachine,作為喵嗚機(jī)的配方。之后去IConfigureNEI類,在loadConfig下加入這樣兩行:
API.registerRecipeHandler(new RecipeHandlerMeowMachine());
API.registerUsageHandler(new RecipeHandlerMeowMachine());
這兩行分別注冊了配方和用途的Handler,都是我們剛剛注冊的那個(gè)類。
接下來我們需要新建一個(gè)內(nèi)部類繼承CachedRecipe,這里是CachedMeowMachineRecipe。它作為NEI內(nèi)部的配方形式。
我們需要實(shí)現(xiàn)這兩個(gè)方法:
getIngredients:返回一個(gè)List,里面裝有該配方的原材料的PositionedStack
getResult:返回該配方產(chǎn)物的PositionedStack
當(dāng)然除此之外還有很多方法可以O(shè)verride,比如副產(chǎn)物可以用getOtherStacks之類的,大家可以自行探索。這里的PositionedStack為一個(gè)有固定坐標(biāo)的物品,注意在構(gòu)建PositionedStack時(shí)候那個(gè)Object可以是ItemStack或者是ItemStack的List/數(shù)組。
回到RecipeHandlerMeowMachine,我們實(shí)現(xiàn)這幾個(gè)方法:
getGuiClass:返回你機(jī)器Gui的類,如果Gui的偏移有問題,到IConfigureNEI的loadConfig方法里添加API.setGuiOffset()調(diào)整
getGuiTexture:返回你機(jī)器Gui材質(zhì)的地址
getRecipeName:返回顯示在配方最上方的配方名稱
recipiesPerPage:返回每頁顯示的配方數(shù)量,推薦寫1防止出問題
loadTransferRects:里面用transferRects.add()在Gui上添加一個(gè)區(qū)域可以點(diǎn)擊用來顯示當(dāng)前機(jī)器的所有配方,類似于工作臺那個(gè)箭頭
this.transferRects.add(new RecipeTransferRect(new Rectangle(起始x, 起始y, x長度, y長度), "過濾用ID"));
loadCraftingRecipes(String outputId, Object... results):覆蓋這個(gè)是用來加載所有配方的時(shí)候過濾ID的,基本想法就是,在outputId等于過濾ID時(shí)候在this.arecipes里添加所有的配方,除此以外按照默認(rèn)的來處理。注意this.arecipes代表匹配到的配方
loadCraftingRecipes(ItemStack result):根據(jù)產(chǎn)物搜索配方,基本想法是,遍歷所有注冊的配方,當(dāng)產(chǎn)物相同的時(shí)候添加配方到this.arecipes
loadUsageRecipes(ItemStack ingredient):根據(jù)原料搜索配方,基本想法是,遍歷所有注冊的配方,當(dāng)原料包含該物品的時(shí)候添加配方到this.arecipes 。
支持( 0 ) 蓋樓(回復(fù))
查看所有0條評論>>