Ice and Fire — Ultimate Optimization
Copyright (C) 2026 anderlyer

This mod is a derivative work of Ice and Fire. It alters Ice and Fire's own classes at load
time through SpongePowered Mixin. No Ice and Fire code, assets, textures, data or other files
are copied into this jar: the jar contains only this mod's own classes plus its resources, and
the injections are applied by the Mixin runtime to the Ice and Fire classes the player already
has installed.


Upstream work
=============

Ice and Fire
  https://github.com/AlexModGuy/Ice_and_Fire
  Copyright (C) Alexthe666 (AlexModGuy), TheBv and contributors
  Licensed under the GNU Lesser General Public License, Version 3 (LGPL-3.0).

  Verified rather than assumed: Ice and Fire's META-INF/mods.toml declares
  license = "GNU LESSER GENERAL PUBLIC LICENSE", and the LICENSE file in its repository is
  the 7652-byte LGPL-3.0 text. The declaration and the file agree, so the mods.toml field is
  not a template leftover.

Citadel
  Required at runtime by Ice and Fire, and by the same author. This mod's code does not
  reference, link against, or modify any Citadel class. It appears here only because this
  mod registers Citadel's presence as a dependency of Ice and Fire.


Why this mod is distributed under GPL-3.0
=========================================

LGPL-3.0 section 2(b) allows a modified version of the Library to be conveyed "under the GNU
GPL, with none of the additional permissions of this License applicable to that copy", and
section 3 allows a Combined Work to be conveyed provided the Library's terms are met.

Because this mod injects into Ice and Fire's classes, it is a modified version of that Library
rather than an independent Application using the Library's interface. It is therefore conveyed
here under the GNU General Public License, version 3. The full text is in the LICENSE file
beside this one.


What this mod changes
=====================

Every change is a throttle, a de-duplication, or a cache in front of work Ice and Fire already
does; none of them adds, removes or reworks content. Each is an independent switch in
config/iceandfireultimateoptimization-common.toml and every switch restores stock behaviour exactly.

  Dragon Forge
    TileEntityDragonforgeInput.lureDragons      - 100x100x100 entity scan, throttled to an interval
    TileEntityDragonforge.assembled             - four multiblock walks per tick, de-duplicated

  Pathfinding
    Pathfinding.getExecutor                     - thread pool rebuilt so the configured thread
                                                  count is actually used; jobs are never rejected

  Myrmex
    MyrmexAIForage.getEdibleBlocks              - 33x17x33 block scan, cached
    MyrmexAIStoreItems.getNearbyCocoon          - 31x15x31 block scan, cached

  Dragon breath
    IafDragonDestructionManager.getMobGriefingEvent - per-tick lookup cache
    IafDragonDestructionManager.destroyAreaBreath   - optional per-tick ceiling (off by default)

  Dragon flight
    DragonUtils.getBlockInView / getWaterBlockInView - wander target cached for a few ticks
