Unloaded Activity
Симулирует блоки и сущности, чтобы догнать время после выгрузки на некоторое время.
- Загрузчики
- FabricNeoForgeForgeQuilt
- Скачиваний на Modrinth
- 310 тыс.
- Подписчиков на Modrinth
- 436
- версии
- 93
- Обновлён
- 21 сентября 202621 сент.
- Опубликован
- в 2023
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
Что делает этот мод?
В Minecraft, когда ты уходишь далеко от чанков, они перестают симулироваться. Потом, когда ты возвращаешься, урожай не вырастает, детёныши животных всё ещё детёныши, а еда в печке всё ещё готовится.
Этот мод исправляет это, симулируя блоки и сущности, как только они попадают в радиус симуляции, чтобы наверстать упущенное после выгрузки. Всё будет так, будто они симулировались всё это время!
Это также работает, когда ты пропускаешь ночь. Вместо того чтобы ждать, пока приготовится железо или вырастет урожай, ты можешь пропустить ночь, чтобы ускорить процесс!
Как именно это работает?
Каждый раз, когда чанк, сущность или блок-сущность тикает, он сохраняет текущее время, а также проверяет, сколько прошло с момента последнего тика. Если разница достаточно большая, мой мод начинает симулировать его, чтобы наверстать упущенное.
Но разве это не залагает игру, если придётся симулировать всё пропущенное время?
Не залагает, если подойти с умом! Вместо того чтобы раз за разом запускать функцию тика для каждого пропущенного тика, Unloaded Activity вместо этого напрямую вычисляет состояние блока исходя из количества пропущенных тиков. Так что если блок пропустил 24000 тиков (1 игровой день Minecraft), вместо попытки протикать его 24000 раз он сделает небольшие вычисления и на этом всё.
Это гораздо быстрее, но ценой тому — необходимость заново реализовать логику тика таким образом. Именно поэтому некоторые модовые культуры могут расти неправильно или вообще не расти. Если ты найдёшь модовый блок, который симулируется неправильно, ты можешь добавить его в чёрный список мода, но также, пожалуйста, создай баг-репорт!
А как насчёт random/precipitation тиков?
У блоков с random/precipitation тиками есть элемент случайности. Чтобы симулировать такие блоки, мод берёт случайное число из биномиального распределения и затем использует его для обновления состояния блока. Однако иногда вероятность успеха меняется. Тогда нам нужно брать случайные числа из отрицательного биномиального распределения, чтобы симулировать длительность каждого успеха.
Неподдерживаемые блоки и сущности
Не всё в ванильном Minecraft поддерживается. Вот что не поддерживается и почему:
Все блоки, связанные с Redstone
Логика Redstone слишком сложна для меня, и даже если бы я попытался её поддержать, я скорее всего сломал бы кучу существующих Redstone-схем.Варочные стойки
У варочных стоек только 1 слот для ингредиента. Из-за этого Unloaded Activity смог бы симулировать только 1 ингредиент, прежде чем остановиться, и я считаю, что варочные стойки и так достаточно быстрые, чтобы не нуждаться в поддержке. Если ты не улетаешь сразу на элитрах или не ложишься спать после включения варочной стойки, ты вряд ли заметишь отсутствие поддержки.Campfires
Та же причина, что и с варочными стойками.Исчезновение выпавших предметов
Мне кажется, это бы сломало игру. Если ты умрёшь далеко от базы, у тебя не будет способа вернуть свои вещи, даже если ты точно знаешь, где они лежали.Beehives
Этот блок не похож на другие поддерживаемые блоки, так как для работы ему требуются сущности (пчёлы), которые делают своё дело. Я также ещё не слишком глубоко в это вникал, так что в будущем он может получить поддержку.Sniffer egg
Яйца Sniffer используют запланированные тики для вылупления. Из-за того, как работают запланированные тики, точно воспроизвести их поведение было бы сложно. Мне было бы проще добавить настройку, чтобы яйца Sniffer работали со случайными тиками вместо запланированных, и затем поддержать их таким образом.- Dried ghast
Та же причина, что и с яйцами Sniffer.
Обо всех остальных блоках или сущностях, которые не поддерживаются и не перечислены здесь, я просто забыл. Так что, пожалуйста, дайте мне знать, если я что-то забыл!
Поддерживаемые моды
Farmer's Delight
Каждая культура в Farmer's Delight поддерживается, но ТОЛЬКО культуры. Всё остальное в моде не будет симулироваться Unloaded Activity.
Farmer's Delight Refabricated тоже должен работать, так как в нём лишь незначительные изменения для работы на Fabric. Однако [Deprecated] Farmer's Delight [Fabric] не совместим с Unloaded Activity и вылетит при входе в мир.
Supplementaries
В Supplementaries поддерживается только лён. Всё остальное в моде не поддерживается и не будет симулироваться Unloaded Activity.
No Man's Land
Поддерживает кран, цветущий кварцит и плодовые листья из No Man's Land. Эта поддержка предустановлена только в версии Unloaded Activity для 1.21.1. Если No Man's Land решит обновиться до более новой версии Minecraft или появится неофициальный порт на более новую версию, Unloaded Activity не будет симулировать его механики.
Immersive Engineering
В Immersive Engineering поддерживается только конопля. Всё остальное в моде не поддерживается и не будет симулироваться Unloaded Activity.
Biomes O' Plenty
В Biomes O' Plenty поддерживается только высокая трава. Всё остальное в моде не поддерживается и не будет симулироваться Unloaded Activity.
Neapolitan
Каждая культура в Neapolitan полностью поддерживается, кроме одной. Для ванильной лозы Unloaded Activity поддерживает только рост вверх и вниз. Она не симулирует боковой рост ванильной лозы.
Вдохновение
Я почерпнул эту идею из видео от DigiDigger, где он рассказывает о том, как Terraria обрабатывает все свои тайлы. Хотя видео не совсем точно отражает то, как на самом деле работает Terraria, он упомянул оптимизацию, которую, как мне кажется, можно было бы реализовать в Minecraft. Таймкод, где он говорит об этой оптимизации — 5:11.
Отзывы / Предложения
Если у вас есть отзывы или предложения по этому моду, присоединяйтесь к моему discord-серверу!
Частые вопросы
Как установить Unloaded Activity?
Установите Fabric под свою версию Minecraft, скачайте Unloaded Activity под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Unloaded Activity?
У Unloaded Activity есть сборки для Minecraft 1.19.2–26.3.
Нужен ли Unloaded Activity на сервере?
Ставится только на сервер; игрокам ставить не нужно