Skip to content

デスポーンタイマーと寿命継承 (MC 26.1.2)

本書では、Minecraft 26.1.2 におけるデスポーンのライフサイクル、時間計算、最新寿命継承ルール、トラップ保護機能を解説します。


📊 機能情報ボックス

項目仕様
システム名最新寿命デスポーン保護システム
バニラの消滅時間$6,000\text{ ティック}$ ($300\text{ 秒} = 5.0\text{ 分}$)
寿命継承ルール$\text{age}_{\text{merged}} = \min(\text{age}_A, \text{age}_B)$ (最も新しいアイテムを継承)
拾得遅延ルール$\text{pickupDelay}_{\text{merged}} = \max(\text{pickupDelay}_A, \text{pickupDelay}_B)$ (長い方を維持)
対象フィールドItemEntity.age および ItemEntity.pickupDelay

⏳ ティックから秒への換算計算

Minecraftでは、エンティティのタイマーは毎秒20ティックで動作します:

$$1\text{ second} = 20\text{ ticks}$$ $$1\text{ minute} = 60\text{ seconds} = 1,200\text{ ticks}$$ $$5\text{ minutes} = 300\text{ seconds} = 6,000\text{ ticks}$$

バニラでは、ItemEntity の内部フィールド age が毎tick $+1$ 加算されます。$\text{age} \ge 6000$ に達するとアイテムは消滅 (デスポーン) します。


🛡️ 最も新しいアイテムの保護ルール

Item Clumps で2つのアイテムが結合すると、残ったエンティティは以下を実行します:

$$\text{age}{\text{merged}} = \min(\text{age}{\text{this}}, \text{age}_{\text{other}})$$

稼働中のトラップ等でアイテムがドロップし続ける限り、寿命タイマーは 0 に更新され続けます。アイテムの生成が続く限り、消失することは絶対にありません

生成が停止するとアイテムは地上に留まり、タイマーが6000ティックまで進行して5分後に安全に消滅します。


💻 実際のJavaソースコード実装

Minecraft 26.1.2 の ItemEntityMixin.java より:

java
// Complete Merge: larger stack absorbs the smaller stack
if (otherCount < thisCount) {
    thisStack.setCount(thisCount + otherCount);
    this.setItem(thisStack);
    this.pickupDelay = Math.max(this.pickupDelay, ((ItemEntityMixin)(Object)other).pickupDelay);
    this.age = Math.min(this.age, ((ItemEntityMixin)(Object)other).age);
    other.discard();
} else {
    otherStack.setCount(thisCount + otherCount);
    other.setItem(otherStack);
    ((ItemEntityMixin)(Object)other).pickupDelay = Math.max(((ItemEntityMixin)(Object)other).pickupDelay, this.pickupDelay);
    ((ItemEntityMixin)(Object)other).age = Math.min(((ItemEntityMixin)(Object)other).age, this.age);
    this.discard();
}

🔗 関連ドキュメント (MC 26.1.2)

Official documentation & web portal for Dasik Igaijinn mods.