Skip to content

🐑 モブ停止と生物学的農場成長シミュレーション

📌 リポジトリソースコードに関する免責事項: このWikiのドキュメントはリポジトリ内の現在のソースコードの状態を反映しており、CurseForgeおよびModrinthでの公式リリース前の最新コミットや開発中の機能が含まれている場合があります。


🛡️ モブ停止(AI凍結)メカニズム

超高速タイムワープ中、移動速度の速い敵対モブ(ゾンビ、スケルトン、クリーパーなど)がプレイヤーの就寝中に拠点を急襲する危険性があります。

True Sleepは モブ停止 (Mob Stasis) を導入しています: truesleep:freeze_mobs が有効(初期値:ON)な場合、就寝中の敵対モブおよび環境モブのAI経路探索、移動、攻撃目標が完全に一時停止されます。

労働モブの凍結除外設定

村人 (Villager) およびアレイ (Allay) は #truesleep:worker_mobs タグとして分類されます。 初期設定では truesleep:freeze_workersOFFfalse)になっており、村人たちは夕暮れ時にスムーズにベッドや職場へ歩いて戻ることができます。


🌾 農場動物の生物学的成長シミュレーション

移動AIが停止していても、BiologicalStasisHelper を通じて動物の体内生体時計は正確に刻まれ続けます

1. 子供動物の成長と繁殖クールダウン進行

子牛、子羊、子豚、子鶏、子狼が睡眠時間中に順調に成長します:

java
if (mob instanceof AgeableMob ageable) {
    int currentAge = ageable.getAge();
    if (ageable.canAgeUp()) {
        ageable.setAge(Math.min(0, currentAge + strideTicks));
    } else if (currentAge > 0) {
        ageable.setAge(Math.max(0, currentAge - strideTicks));
    }
}

2. ニワトリの産卵タイマーの短縮

ニワトリの産卵タイマーが strideTicks 分だけ減算され、自動採卵機構が一晩中スムーズに稼働します: $$\text{eggTime} = \max(1, \text{eggTime} - \text{strideTicks})$$


3. 羊毛の再生(自然な草食いシミュレーション)

毛を刈られた羊が羊毛を再生するには通常草を食べるモーションが必要です。モブ停止中、True Sleepは草の消費を確率的にシミュレートします:

$$\text{grazeChance} = \min\left(1.0, \frac{\text{strideTicks}}{1000.0}\right)$$

毛を刈られた羊が minecraft:grass_block の上に立っている場合、ストライドごとに $\text{grazeChance}$ の確率で草ブロックが minecraft:dirt(土)に変化し、羊毛がふさふさに戻ります(sheep.setSheared(false))。


🧪 ポーション効果の持続時間進行

すべての生物に付与されているポーション効果は就寝中も時間通りに消費されます:

  • 有利な効果(攻撃力上昇、再生能力)も有害な効果(毒、衰弱)も strideTicks に応じて残り時間が減少します。
  • True Sleepはダックタイピング拡張 (MobEffectInstanceExtensions) を採用し、連鎖する隠し効果も無限ループなしに安全に消滅させます。

🎛️ 制御ゲームルール (GameRules)

  • truesleep:freeze_mobs(初期値:true):敵対モブおよび環境モブの動作を一時停止。
  • truesleep:freeze_workers(初期値:false):村人およびアレイを一時停止。
  • truesleep:biological_aging(初期値:true):動物の成長、産卵、羊毛再生を有効化。
  • truesleep:unfreeze_<namespace>_<path>:任意の特定エンティティに対する個別凍結解除ルール。

Official documentation & web portal for Dasik Igaijinn mods.