Алгоритмы сортировки

RimSort предлагает два алгоритма. С v1.0.10 по умолчанию — топологическая сортировка.

Разные алгоритмы могут дать разные, но «корректные» порядки.

Корректный порядок — без предупреждений о порядке в RimSort. Проблемы в игре часто означают недостающее правило — задайте его в редакторе правил и сообщите автору мода и в community rules DB.


Алфавитная сортировка

Алгоритм Alphabetical: список делится на уровни и сортируется по имени.

Шаги как в RimPy Autosorting Wiki:

  1. Сортировка по имени мода
  2. Правила из About.xml и внешних метаданных принудительно применяются

Итог: в основном алфавитный список с корректировками по правилам.

Что значит принудительно?

Пример: список [A, B, C, D, E]. Mod B с loadAfter: [D, E]D и E вставляются перед B после A. При вложенных зависимостях алгоритм рекурсивно размещает зависимости.

Что гарантируется?

При отсутствии конфликтов правил — все правила порядка соблюдаются.


Топологическая сортировка

По умолчанию (v1.0.10)

Алгоритм Topological использует топологическую сортировку (Toposort): уровни — моды без зависимостей, затем следующий уровень и т.д.

loadAfter / loadBefore образуют направленный граф. Внутри уровня — алфавитный порядок.

Что гарантируется?

Без конфликтов — математически оптимальный порядок. Результат часто отличается от RimPy — это нормально.