基底與分類架構:原版 Minecraft 物品自動分類系統
Minecraft 1.17 更新,迫不急待的開了一個原版生存地圖。當已經受過物流系統的模組益處薰陶的我實在難以接受沒有一個完整的物流收納系統,如何利用原版 Minecraft 既有的東西拼湊出想要的一套完整系統,這或許是模組無法給予的強制創造力。
值得一提的是,原版 Minecraft 只有一種紅石訊號,利用這些現有的訊號處理做到能夠控制每個子機構能正確運作是我碰到最大的難題。所以,這篇文章會充滿大量的紅石設計,以及當初設計時的發想過程。
然而,單單做出分類系統豈不是無法發會自動化的精神?所以,真正在地圖中實作的整個機構其實不只做物品分類,還整合了熔爐、高爐、煙燻爐的精煉、燒製、烤食物的功能。這個端倪可以在上方的封面圖裡的烤馬鈴薯看到,這套系統除了能把烤馬鈴薯分出來之外,還可以把存入的馬鈴薯放到煙燻爐中烤成烤馬鈴薯,最後存入那個箱子內。
不過,整合的部分不打算在這裡說明,在這一篇中說明。
單片分類架構
說穿了分類系統是由數個小架構組成的大系統,其中的小架構是以前就做得出來的結構。選用這個結構是因為他是目前占用體積最小的結構。比較器貼著的漏斗我稱為「篩選漏斗」,因為他是主要用來判斷該不該從上面把東西吸進來;篩選漏斗上面的漏斗我稱為「輸送漏斗」,他是由多個漏斗串接而成,用於運輸未分類的物品,與輸送帶的概念很像;篩選漏斗下面的漏斗我稱為「閥門漏斗」,他是用來控制篩選漏斗內物品數量的漏斗。
這種設計占用的體積小,又穩定,能夠有效的避免小架構互相影響。如果有需要影片,請點這裡觀看建造小架構過程的影片。
原理解說
- 漏斗特性:接收到訊號時,既不會吸入物品也不會輸出物品。會按照格子的順序從左至右、從上到下輸出、抽取。
- 比較器特性:按照偵測的儲存空間內含有的物品數量輸出相對應強度的訊號。
- 中繼器特性:接收到訊號時輸出最大的訊號。
- 紅石火把特性:提供最大的訊號,當有訊號在他插著的方塊上時會熄滅。
一組 64 個物品的東西放 45 個在篩選漏斗中可以讓比較器輸出 2 格訊號,而當超過 45 個時則會輸出 3 格訊號,若不小心放太多,即使放到 64 個滿了也只會輸出三格,這也是為甚麼小架構間不會相互影響的關鍵,只有當比較器訊號輸出 4 格時才會蔓延到旁邊小架構的紅石。
該機構中唯一的紅石火把是用來鎖住閥門漏斗的,因為篩選漏斗的輸出方向是比較器,比較器又沒有儲存空間,所以等同於篩選漏斗不會自主輸出物品,必須依靠閥門漏斗把裡面的東西抽出來。
在篩選漏斗內的設定是這樣的:由左至右編號,第一格放上 41 格目標篩選物品,其他格子放入填充物。舉例:若我的目標篩選物品是鐵,則在篩選漏斗中第一格我放上 41 個鐵,其他格子放入各一個的填充物,達成總共 45 個物品。
填充物的設計可以用手邊最多的物品,放到鐵砧中改名字讓同樣的物品不會堆疊,這樣拿來當作填充物的那樣物品也可以做分類。
所以,當輸送漏斗送來是指定篩選的物品時,篩選漏斗會先把該物品抽入儲存空間中,接著因為數量過了 45 的門檻後會觸發比較器加強訊號至 3 格,此時會讓最末端的紅石擁有訊號,而中繼器偵測到後方方塊有訊號時,會往前輸出最大的訊號給他指向的方塊,此時,紅石火把發現他插著的方塊有訊號,那紅石火把會熄滅。熄滅後的紅石火把不再輸出訊號後,閥門漏斗恢復正常運作,從篩選漏斗中抽出一個物品,同時,篩選漏斗又回到了 45 個物品的狀態,比較器訊號減弱至 2 格,最末端的紅石不再擁有訊號,回到最初的起點。
單片儲存空間擴充
當分類的小架構做好後,可以用額外的漏斗和箱子擴充儲存空間,拿取物品的地方在最左下角的箱子,原理是當下面的箱子還有空間時會將上層箱子內的東西往下送。這個缺點是拿東西的時候馬上會有東西填滿拿走的數量,所以如果需要收回去則需要透過系統的存入口才可以放到後面的額外儲存空間。
圖片中底部黑色的磚塊是這個系統的地板,而黑橡木階梯我設計成用來貼物品展示框的地方,直接用物品展示框標記底下箱子儲存的內容物是甚麼。這個空間擴充方案可以依照東西的多寡進行擴充,並不一定都要放滿箱子。
如此一來,單一一個小結構就製作完成囉。接著就可以複製這樣的結構排列起來變成一長排的小結構陣列。
串接小結構
把上面的傳輸漏斗串接起來,這樣只要從一端輸入物品就可以讓物品經過像輸送帶那樣的漏斗逐一造訪每個不同分類物品的篩選漏斗,遇到符合的就存入下方的儲存空間。不過呢,每次輸入物品都要從傳輸漏斗的頭輸入,這樣才能確保每個篩選漏斗都有經過。因為傳輸漏斗在小結構的最上面,如果每次送東西進去都要爬那麼高太沒有效率了,所以接下來要製作系統的存入口。
分類系統存入口
Minecraft 中,漏斗只能很方便的做到橫向和向下傳輸,對於向上傳輸實在沒有便利的東西,畢竟是在生存模式下,為了使成本最低且盡量減少體積的占用,我選擇用礦車運輸。
我設計的存入口軌道很簡單,東西放完後按下按鈕送出礦車,當礦車走到最上面時,卸貨,卸完貨才下來。礦車往上爬的斜坡鐵軌鋪設我想不難就不寫了。重點在於,怎麼讓礦車在卸完貨後被送下來。這裡我使用的設計也非常簡單。
系統礦車卸貨區
右邊動力鐵軌的地方就是礦車的卸貨區,動力鐵軌的下面有一個漏斗(下稱卸貨漏斗),他接到輸送漏斗的起頭處。
運作的原理是:使用比較器偵測下面的那個卸貨漏斗,如果卸貨漏斗有吸到東西代表礦車內有貨物,比較器輸出訊號,熄滅左邊的紅石火把,少了訊號的中繼器也不再輸出訊號,右邊的動力鐵軌失去動力。
失去動力的動力鐵軌成為礦車的煞車器,礦車會停在動力鐵軌上直到裡面儲存的東西全部被抽出且下方的卸貨漏斗也把東西全部送出去清空後,比較器偵測到漏斗為空,停止輸出訊號,左邊紅石火把點亮,中繼器收到訊號往前輸出,動力鐵軌觸發,回到圖片中的狀態。此時,礦車因為動力鐵軌而發車,回到下面的存入口等待下一次的運送。
這樣的系統非常簡潔,而且還可以往上堆疊,圖片中所拍攝之結構的上面還有一個卸貨區,那是用來卸下從熔爐、高爐、煙燻爐加工完畢的產品。
未分類的項目
如果存入系統還沒有實作的分類怎麼辦?別擔心,只要在輸送漏斗的終點接上一個箱子,就可以把無法分類的東西全部存到那個箱子裡,除了存無法分類的東西之外,也可以儲存儲存空間滿的可分類物品。
如此一來,基礎的物品自動分類系統就建造完成。下一次更新應該是寫有關於將自動燒製的功能整合至系統內。
可替代的設施
生存初期,難免遇到資源缺乏的情況,上面的輸送漏斗鏈如果鐵不夠做到,可以用儲物箱礦車來回刷取代。相對的輸送效率會下降很多;除了使用礦車在篩選漏斗上來回刷之外,也可以用水流的方式推送物品。
如果遊玩的是水有浮力的版本那更好,垂直運輸物品可以透過水道來讓物品往上浮,若底下能使用靈魂沙製造氣泡讓物品上浮時有推力更完美。資源不足時,也可以不做儲存空間擴充方案,節省漏斗的使用。