方塊更新感應器(Block Update Detector),英文縮寫為BUD,是一種利用遊戲中方塊的更新範圍不同來檢測附近方塊更新(狹義)的紅石裝置。有很多種方塊更新感應器的設計方案,它們都基於同一思想:將紅石電路置於一種本應不穩定的狀態,但是因為一些本應影響電路穩定的方塊並沒有對電路的變化產生反應,從而使整個電路保持穩定狀態。這些「懶惰」的方塊就將充當「傳感器」的作用。當相鄰方塊因某種原因變更了狀態時,這個(相鄰的發生變化的)方塊將發送一個訊號來「喚醒」傳感器方塊,使這個電路就表現出其他動作,然後回歸「休眠」狀態。
這個方法最早被Cored發現。[1] 之後被Etho公佈並被很多玩家共同發展。
比較器接受NC更新,因此製成方塊更新感應器的比較器可以擔當比較器更新感應器,比較器更新感應器也可以作為方塊更新感應器。
檢測項
方塊更新感應器可以檢測方塊ID或附加值的變更
當以下事件(被稱為NeighborChanged更新)在方塊更新感應器的傳感方塊旁發生時,可以被方塊更新感應器所感應到:
- 放置方塊
- 破壞方塊
- 水或熔岩的方塊狀態Level值的變化
- 霜冰、冰的形成或融化
- 受重力影響的方塊(例如沙)落到地面
- 被活塞移動嘅方塊,還有活塞本身的動作,黏着方塊開始縮回(不論是否拉動)的黏性活塞頭和到位時自更新的部分方塊除外。
- 終界使者拾取和放置方塊
- 樹苗長成樹木
- 蘑菇長成巨型蘑菇
- 植物的生長和傳播,包括:蘑菇、蔗、花、草叢、仙人掌、南瓜、西瓜(南瓜梗和西瓜梗長出南瓜或西瓜時,梗和南瓜或西瓜都會被方塊更新感應器所感應到)。(可可豆、南瓜梗、西瓜梗、地獄孢子、藤蔓、小麥、紅蘿蔔、薯仔、紅菜頭等除外)
- 樹葉的生長或枯萎
- 草的生長或死亡
- 泥土變成耕地,耕地重新成為泥土(但是這可以用充能的方法更簡單地檢測到)
- 火的點燃或熄滅
- 紅石礦開始或停止發光
- 紅石線或紅石火炬狀態的改變(包括充能等級,但不包括改變指向),其他傳輸元件、電源、觸發路軌、鐘、音符盒或動力路軌的啟動
- 設定紅石中繼器的延時
- 熔爐開始或停止熔煉
- 路軌改變方向
- TNT被點燃並成為實體
- 蠹魚鑽進方塊
- 草地變為泥徑
- 蛋糕被食用
- 打開或關上陷阱箱
- 線的啟動和取消啟動(即使線沒有連接到絆線鈎)
將不會被BUD檢測到(他們當中的一些可以被CUD或偵測器檢測到)的方塊與方塊的狀態改變(被稱為比較器更新和PostPlacement更新)包括:
- 藤蔓、瓜椗(南瓜梗和西瓜梗長出南瓜或西瓜時,梗和南瓜或西瓜都會被方塊更新感應器所感應到)、地獄孢子、可可豆、歌萊植株的生長
- 乾海綿吸收水
- 草地由於綿羊「吃」草而改變
- 龍蛋在傳送時替換空氣方塊
- 打開或關閉門、地板門或閘門
- 從唱片機中插入或移除唱片
- 將終界之眼置入終界傳送門框
- 樹的自然生長(使用骨粉使樹生長可以被檢測)
- 鍋水位的變化
- 打開或關閉儲物箱、終界箱、界伏盒
- 在釀造台上放置和拿走玻璃樽\藥水\烈焰粉
- 鐵砧被輕微損壞或嚴重損壞
- 改變積雪層的厚度
- 在牀上睡覺
- 容器內容物的改變(包括儲物箱,陷阱箱,界伏盒,終界箱,發射器,掟器,釀造台或熔爐。)
方塊更新感應器的種類
遊戲內置
偵測器是在1.11的16w39a快照中加入的內置方塊更新檢測器,但是要注意這種方塊更新檢測器與常規方塊更新檢測器的檢測方式並不相同,因此檢測內容也不完全吻合。
活塞BUD位充能
有很多方塊更新感應器設計方案都是基於活塞被啟動因而未傳遞給方塊更新訊號。[2] 活塞如若在受到訊號時並沒有接收到方塊更新(狹義)訊號,那麼它就會進入BUD態。
一次性活塞BUD做法如下:充能BUD位,更新活塞(手動更新,或者用紅石火炬、沉靈傳感器、紅石粉、觸發路軌、鐘、音符盒、活塞、動力路軌或路軌自動更新),拆掉自動更新活塞的元件和不該出現在BUD旁邊的方塊(除了對着拉不回的史萊姆方塊或蜜糖塊的黏性活塞頭),解除充能。
一種自復位BUD:取平行地面的黏性活塞,臉上放紅石磚,將紅石磚經紅石中繼器接到半連接啟動黏性活塞的實體方塊。紅石中繼器打1刻延時的是單穩態BUD,否則是雙穩態BUD。13w01a以前玩家需要用電源或傳輸元件充能實體方塊代替紅石磚。
活塞BUD位充能型單穩態BUD
在前兩個設計中,活塞只會在旁邊方塊更新時伸長,但是當伸長後又會因為活塞臂注意到其旁邊的紅石中繼器被關閉而立即縮回。這是活塞型方塊更新感應器重設的方法:透過對伸長的活塞臂旁邊的電路的變化。 這個設計方案可以拓展為多傳感器,所有的活塞都被設計為傳感器。
用紅石磚的單片可堆疊設計:
利用1.8之後的史萊姆方塊我們可以製作一些BUD,一般把利用了史萊姆方塊的BUD叫做史萊姆方塊BUD
一個極緊的自復位活塞BUD設計是向上對着頂上黏着紅石磚的史萊姆方塊或蜜糖塊的黏性活塞。它佔1×3(伸長時1×4),傳感器是黏性活塞。玩家需要注意史萊姆方塊是否黏到了牆上。
黏性活塞檢測到方塊更新時推出,推動紅石磚,失去訊號,但由於執行開始推出的動作時不能開始下一個動作,不會結束推出,此時若被更新會丟掉史萊姆方塊,表現為手動復位BUD。2遊戲刻後活塞頭到位,更新活塞,活塞在1遊戲刻的啟動延遲後開始收回,收回期間不響應方塊更新。再過2遊戲刻活塞和史萊姆方塊先到位,紅石磚到位時裝置復位為自動復位BUD。
活塞BUD位充能型雙穩態BUD
透過移除一個方塊更新感應器的復位裝置,這個方塊更新感應器就可以成為雙穩態方塊更新感應器。這個裝置有着兩種可以透過方塊更新來切換的穩定狀態。因此成為「雙穩態BUD」這相當於與T觸發器相連的普通方塊更新感應器。這種方塊更新感應器在檢測熔爐、草、泥土和牀的狀態時十分有用。
滿足活塞推出條件但並不給活塞更新訊號
如若將本不滿足推出條件的活塞滿足條件,並且不給予活塞方塊更新(狹義)訊號,那麼活塞將進入BUD態。這能由方塊到活塞面前自更新實現,但使較遠的方塊到位通常更簡便。 下一個設計方案是基於伸長的活塞並不能被其他活塞推動的事實。當活塞縮回時,它並不會啟動其他試圖推它的活塞。附加着一個方塊的黏性活塞是傳感器。這種方塊更新感應器的優點在於節約,並且其利用的遊戲特性不太可能在未來被改變。
中繼器延時為2刻。
右邊的設計中右側的活塞忽略紅石磚移動產生的下降沿將它推到位並阻止左側的活塞伸出後才縮回。為避免左側的活塞將紅石磚推到右側時出現同樣的情況,玩家可用紅石中繼器更新右側的活塞,或用竹棚使左側的活塞及時縮回。
右邊的設計收回時,移動嘅黏性活塞到位時,前面的偵測器還是移動中的活塞,因此沒有計劃方塊事件;然後移動嘅偵測器變成偵測器也沒有方塊更新,活塞就進BUD態了。
右邊的設計縮短時紅石磚到位後史萊姆方塊到位更新黏性活塞,此時鑽石磚沒到位,黏性活塞不打算伸出;鑽石磚到位時則更新不到黏性活塞。它和那個極緊的史萊姆方塊BUD一樣檢測方塊更新伸縮一次後再檢測下一個才是自復位BUD。
基於其他元件半連接性的方塊更新感應器
基於只有下半部分的門
只有下半部分的門很難製備並在上面放方塊,不過放上方塊之後很穩定
簡單的紅石粉指向方塊更新感應器
紅石導線指向BUG
此錯誤未必對所有版本有效。該錯誤被修復後,下文所述的資訊將不再適用。
請慎重對待。
利用紅石導線改變指向方向並不產生方塊更新(狹義)訊號的BUG,我們可以製作方塊更新感應器。
動力路軌型方塊更新感應器
動力路軌或觸發路軌如果同一側連續第1到8個同種路軌可被啟動,那麼也會被啟動,但是以這種方法被啟動或取消啟動時如果和能量源之間部分路軌不隨之啟動或取消啟動,並不能被正確地更新。這就可以被用來製作方塊更新感應器。動力路軌可以全部換成觸發路軌。部分設計對方向敏感。
除了與感壓路軌和礦車相組合,動力路軌型方塊更新感應器只能輸出NC更新和PP更新,但延遲和卡頓少,因此通常做成路軌鏈傳遞方塊更新。
感壓路軌型方塊更新感應器
可以透過感壓路軌和礦車來建造一個方塊更新感應器。下面是一個例子。
基於紅石火炬
在14w25a(修復了MC-56541)以後,一個燃盡的紅石火炬 可以用於製作BUD。一旦火炬燒毀,紅石火炬會在方塊更新(在Java版中,需要NC更新)下重新點亮。這是最小且最簡單的BUD,因為只需要一支紅石火炬和紅石線 (再加上兩個中繼器即可成為一個固態的訊號輸出)。
一支在方塊側面的紅石火炬,然後放置紅石線,使紅石訊號循環,它本身也是一個BUD。紅石火炬周圍 (包括上下兩面)是檢測區域,而紅石線部分則不是其檢測區域。這支紅石火炬會閃爍16刻,它最後會燃盡(熄滅)。然後會冷卻(熄滅)56刻。
基於液體
液體收到NC更新或PP更新時計算擴散方向,如果流向新的方向能被偵測器發現。
基於地板門
附着地板門的紅石粉、紅石中繼器、紅石比較器、動力路軌、感壓路軌、路軌、觸發路軌在地板門開啟後收到NC更新時脱落。這種方塊更新感應器若用在路軌複製機,由於路軌跌落後仍然會被移到位,可以自動復位。否則它需要手動復位。
玩家操作
命令方塊、鐘、發射器、掟器、音符盒和絆線鈎被放置時只更新毗鄰方塊,它們和二階毗鄰可以做成方塊更新感應器。界伏盒開閉和海綿在水邊放置時根本沒有NC更新。玩家操作還可以造成Java堆棧溢出,使多種方塊成為方塊更新感應器。
參見
參考
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









