區塊載入[]
由於一個世界極大並且包含極多區塊,因此遊戲僅載入部分區塊以使遊戲可玩,遊戲不會運算已卸載的區塊。
Java版[]
載入標籤[]
每個區塊的載入都來源於一個「載入標籤」。
每個載入標籤具有3個屬性:載入等級,標籤類型和存活時間(可選屬性)。
載入等級[]
載入等級用於決定了這個區塊中哪些遊戲內容能夠被運算。
載入等級的範圍是22-44。只會在22-33的範圍裡有常規的遊戲運算。理論上小於22的載入等級是可能的(不過在原版中不可行)
一個區塊如果獲得多個載入等級,只有最小的載入等級是有效的。載入等級越小,遊戲會運算更多內容。
載入等級可以分為以下有四種載入等級類型:
| 類型 | 等級 | 屬性 |
|---|---|---|
| 強載入 | 31及以下 | 所有遊戲內容都能夠被運算。 |
| 弱載入 | 32 | 除了區塊刻以及實體不會運算(例如不會移動),所有的遊戲內容都正常執行, |
| 載入邊界 | 33 | 只有少部分遊戲內容會正常執行(紅石元件和指令方塊等都不能執行)。 |
| 不可訪問 | 34及以上 | 各種遊戲內容都不會運算,但世界生成會在這些區塊中執行。 |
等級傳播[]
帶有載入標籤的區塊,會相鄰(8個)的區塊傳播載入等級。對於每張「標籤」使用「flood fills」算法從「標籤」的位置傳播,每向外傳播一次就載入等級增加一,直到達到上限44。
| 34 | 34 | 34 | 34 | 34 | 34 | 34 |
| 34 | 33 | 33 | 33 | 33 | 33 | 34 |
| 34 | 33 | 32 | 32 | 32 | 33 | 34 |
| 34 | 33 | 32 | 31 | 32 | 33 | 34 |
| 34 | 33 | 32 | 32 | 32 | 33 | 34 |
| 34 | 33 | 33 | 33 | 33 | 33 | 34 |
| 34 | 34 | 34 | 34 | 34 | 34 | 34 |
| IN | IN | IN | IN | IN | IN | IN |
| IN | BO | BO | BO | BO | BO | IN |
| IN | BO | TI | TI | TI | BO | IN |
| IN | BO | TI | ET | TI | BO | IN |
| IN | BO | TI | TI | TI | BO | IN |
| IN | BO | BO | BO | BO | BO | IN |
| IN | IN | IN | IN | IN | IN | IN |
標籤類型[]
不同來源的標籤有不同的類型,用於確定不同載入等級。
玩家[]
由玩家載入的標籤。「玩家」標籤的載入等級為31。玩家的載入範圍內的區塊都會獲得「玩家」標籤。
玩家的模擬距離會生成模擬標籤,模擬標籤與玩家標籤不同,獨立計算。
- 玩家的載入範圍:
- 玩家標籤的範圍是一個以玩家為中心的正方形。
- 正方形內的標籤等級為31,正方形外按照標籤傳播規律傳播直到等級達到45。
- 單人遊戲中,正方形的邊長取決於選項中的「顯示距離」:邊長 = (顯示距離 - 1) × 2 + 1.
- 多人遊戲中,正方形的邊長取決於server.properties裡的「view-distance」:邊長 = (view-distance-1) × 2 + 1.
- 模擬標籤的強度為max(0,31-模擬距離),位於玩家所在區塊。
- 向外按照標籤傳播規律傳播。
- 兩個標籤取數值較大者作為玩家的區塊載入情況,與其他標籤取小者不同。
- 例如,玩家附近某區塊的玩家標籤等級為31,模擬標籤為35,則該區塊的載入情況為不可訪問。
根據以上闡述可以得出,玩家載入的強載入區塊的正方形半徑為min(顯示距離 - 1,模擬距離) × 2 + 1,向外一圈是弱載入區塊,再向外是載入邊界。外圍是不可訪問級別區塊。
強制[]
使用/forceload指令可以讓區塊獲得「強制」類型的載入標籤。載入等級為31。
「強制」類型的載入標籤在遊戲重啟後依然有效。
重生點[]
「重生點」載入標籤的等級傳播
世界重生點所在的區塊會獲得「重生點」載入標籤。使用/setworldspawn改變世界重生點時,載入標籤會同時改變。載入等級為22,是遊戲中最小的載入等級。
傳送門[]
當實體透過地獄傳送門傳送時,在即將到達的地獄傳送門所在的區塊會獲得傳送門標籤,載入等級為30。
「傳送門」載入標籤本身沒有「存活時間」,不過如果傳送門300遊戲刻(不卡頓則300遊戲刻=15秒)內沒有使用過,傳送門系統會移除這個的載入標籤。
終界龍[]
「終界龍」載入類型的載入等級為24。在開始攻擊終界龍時,在終界的(0,0)區塊建立,並在停止或結束後移除。
瞬移後[]
實體瞬移後在瞬移到的區塊建立的載入標籤,包括使用/tp指令、/spreadplayers指令,透過終界傳送門。對於/tp指令,載入等級為32,而/spreadplayers指令和終界傳送門的載入等級為33。
具有「存活時間」屬性,為5gt,也就是說它在5個遊戲刻後失效。
臨時 [需要更多資訊][]
在任意遊戲代碼調用「getChunk」方法時建立的標籤。如果遊戲認為這個區塊應該被載入,它就會把這個「臨時」標籤賦給那個區塊(可能在建立它之後)。
載入等級與區塊是否已經完成世界生成有關。它的等級至少會是33,但在許多情況下會大於33。
例如:生物遊蕩AI執行時,它將會檢查某個方塊是否有完整上表面。作為檢查的一部分,這個區塊會獲得等級為33的「臨時」類型的載入標籤。
它的「存活時間」為1遊戲刻。
光 [需要更多資訊][]
未知,可能與世界生成有關。
局限性[]
- 閒置逾時
- 在載入區塊中並不是所有遊戲內容永遠會運算,因為它們可能還有其他條件,其中包括:
特殊情況[]
一個區塊中的事件可能會影響外部的區塊。如果外部的區塊處於非活動狀態,則在大多數情況下會立即暫停。特別地,
- 弱載入區塊邊緣的方塊發生變化,可以將方塊更新傳播到弱載入區塊外部的方塊,並使它們做出適當的響應。更新可以一個方塊接一個方塊地傳播,直到傳播到載入邊界之外,這時它會建立一個「臨時」載入標籤並且繼續傳播。
- 載入等級為33的區塊中的方塊可以請求一個計劃刻,但是直到該區塊獲得32及以下的等級時才進行處理。
- 流動的水或熔岩可以擴散到弱載入區塊之外的第一個相鄰方塊,但流動會暫停,直到外部區塊獲得更高的等級。
- 火可以傳播到弱載入區塊外的第一個相鄰的可燃方塊。像水和熔岩那樣,也會暫停;直到外部區塊獲得33及以下的等級。
- 草和菌絲可以傳播到弱載入區塊外的第一個相鄰方塊。
- 在強載入區塊邊緣生長的南瓜和西瓜梗可將其果實放置在外面區塊的相鄰方塊上。
- 嘗試移動到弱載入區塊的實體(例如生物、礦車和箭)在離開強載入區塊後會即刻停止所有活動。當這個弱載入區塊獲得更高的載入等級時,實體會繼續移動。
- 強載入區塊中的點燃的TNT會摧毀弱載入區塊內的方塊。
基岩版[]
在已載入區塊裡,所有遊戲內容都能夠被運算。在未載入的區塊裡幾乎各種遊戲內容都不會運算。
種類[]
- 玩家載入
- 近似圓形
[需要更多資訊]。 - 在玩家模擬距離內的區塊會被載入。
- 近似圓形
- 指令載入
- 使用
/tickingarea指令載入的區塊。
- 使用
局限性 [需要更多資訊][]
- 實體
- 生物生成遵循相同的規則。
特殊情況[]
一個區塊中的事件可能會影響外部的區塊。如果外部的區塊處於非活動狀態,則在大多數情況下會立即暫停。特別地,
- 已載入區塊邊緣的方塊發生變化,可以將方塊更新傳播到未載入區塊內的方塊,並使它們做出適當的響應。
- 流動的水或熔岩可以擴散到外部區塊中的第一個相鄰方塊,但流動會暫停,直到外部區塊被載入。
- 火可以傳播到載入區塊外的第一個相鄰的易燃方塊。像水和熔岩那樣,也會暫停;雖然是可見的,但動畫不會被播放並且在區塊活躍前不再繼續傳播。
- 草和菌絲可以傳播到外部區域的第一個相鄰方塊,但受影響的方塊在其區塊變為活躍之前不會真正改變其外觀,之後會即刻改變。
- 在載入區塊邊緣生長的南瓜和莖可將其果實放置在外面區塊的相鄰方塊上。
- 嘗試移動到外部區塊的實體(例如生物、礦車和箭)在離開載入區塊後會即刻停止所有活動。它仍然可見但會一動不動。當外部區塊被載入時,實體會繼續移動。
- 點燃的TNT會摧毀未載入區塊內的方塊,並且不像其他事件那樣,其效果不限於相鄰的方塊。在外部區塊的第二效果會暫停直到外部區塊變得活躍。例如,如果爆炸破壞了支撐沙或礫石的方塊,則沙或礫石不會立即掉落。附著在被摧毀的方塊上的物品也會發生同樣的事情,例如物品展示框和紅石火把,它們在區塊載入前不會掉落。
- 點燃的TNT被發射到未載入的區塊時會暫停在外部空中的第一個方塊。直到外部區塊變為載入狀態,它才將恢復其飛行和倒計時。