Описание
Just Enough Dimensions позволяет регистрировать новые пользовательские измерения в игре, ИЛИ также может использоваться для простой настройки некоторых свойств существующих измерений.
Примерами таких настроек могут быть включение отдельных Мировых Границ для каждого измерения, чтобы граница в Нижнем мире могла быть в 1/8 размера границы основного мира, а не того же размера, или изменение цвета неба и/или тумана и/или облаков, либо высоты отрисовки облаков.
Начиная с версии 1.6.0 также стало возможным использовать JED для принудительного задания определенных настроек мира при его первом создании, таких как WorldType или настройки генератора (например, создание суперплоского мира или мира-пустоты [что также является формой суперплоского мира]), или установка некоторых правил игры (GameRules). (Это работало и до версии 1.6.0, но несколько иначе и не так чисто.)
Примечание: Из-за способа обработки идентификаторов измерений (и WorldProviders) в vanilla и Forge, а также из-за опций, связанных с настройкой рендеринга, этот мод также требуется на стороне клиента.
Краткий обзор
Вся регистрация измерений и конфигурация выполняется через простой JSON-файл конфигурации. Также существует внутриигровая команда 'dimbuilder' для создания/регистрации измерений или редактирования свойств ранее добавленного измерения, и она может изменять большинство значений, которые хранятся в конфигурационном файле, но не все. В основном, более сложные вещи, такие как таблица яркости света или цвета листвы биомов и т.д., могут быть добавлены и настроены только напрямую через конфигурационный файл dimensions.json.
Регистрация измерений и настройки для каждого измерения выполняются через глобальный файл config/justenoughdimensions/dimensions.json или файл worlddirectory/justenoughdimensions/dimensions.json, если он существует. Файл мира имеет приоритет, если он существует.
Помощь с JSON
Если вы не знакомы (или не являетесь «экспертом») с форматом JSON, или просто хотите проверить опечатки/ошибки в конфигурации при ручном редактировании, рекомендуется использовать один из множества онлайн-валидаторов или редакторов JSON. Некоторые примеры: https://jsonformatter.org/ и http://www.jsoneditoronline.org/ и https://www.cleancss.com/json-editor/ и https://jsonlint.com/ и https://www.freeformatter.com/json-validator.html.
Также использование правильного текстового редактора с поддержкой подсветки синтаксиса очень помогает. Лично я использую Sublime Text, но Notepad++ или Atom также являются хорошими альтернативами.
Изменения конфигурации в JED 1.6.0 и позднее
Если вы используете dev-версии JED 1.6.0 (что я настоятельно рекомендую вместо старых версий 1.5.x!), то есть ряд важных изменений в формате и некоторых опциях в конфигурационном файле dimension.json.
Самое важное изменение заключается в том, что пользовательский тег опций JED был перемещен и переименован, а также некоторые другие опции были переименованы.
Тег раньше назывался JED и находился внутри тега worldinfo, но в версии 1.6.0 он теперь в нижнем регистре jed и был перемещен вне тега worldinfo, непосредственно внутрь основного объекта для каждого измерения.
Полный список изменений и дополнений в dev-версии 1.6.0 можно найти здесь: https://pastebin.com/raw/28jeWZyv
Многочисленные примеры конфигураций для выполнения различных действий находятся на моем pastebin здесь: https://pastebin.com/u/masa-
Моя основная/общая конфигурация для разработки и тестирования с множеством используемых различных функций находится здесь: https://pastebin.com/m9xYSHZd
Опции конфигурации, базовая регистрация пользовательского измерения
В основной конфигурации мода есть несколько опций для включения определенной функциональности.
Примечание: Все они по умолчанию отключены на всякий случай!
- enableForcedGameModes - Включает автоматическое изменение игрового режима игрока на установленный для каждого измерения, если для этого измерения также установлена опция ForceGameMode.
- enableInitialSpawnDimensionOverride - Включает установку начального измерения появления (задается в initialSpawnDimensionId).
- enableLoggingInfo - Включает логирование типа INFO в консоль сервера. По умолчанию отключено для уменьшения спама. Если у вас возникли проблемы с модом, я предлагаю сначала включить это, чтобы увидеть, какие операции выполняются успешно и где может быть проблема!
- enableOverrideBiomeProvider - Если включено, то пара ключ-значение "biome": "name" в конфигурации измерения позволит переопределить BiomeProvider этого измерения на BiomeProviderSingle, используя указанный биом в качестве значения. Имя - это имя регистрации ResourceLocation биома, например, "minecraft:plains" (или просто "plains" также подойдет для ванильного биома).
- enableReplacingRegisteredDimensions - Если включено, то логическое значение "override": true для измерения в конфигурации dimensions.json может быть использовано для переопределения существующего измерения. Примечание: Для работы переопределения измерение не может быть загружено, когда JED пытается его зарегистрировать и переопределить!
- enableUnregisteringDimensions - Если включено, то логическое значение "unregister": true для измерения в конфигурации dimensions.json может быть использовано для отмены регистрации существующего измерения. Вы могли бы, например, отключить Нижний мир или Энд с помощью этого!
- enableSeparateWorldBorders - Если включено, добавляет пользовательскую синхронизацию Мировой Границы и удаляет стандартную привязку от других измерений к границе основного мира. Примечание: Для наличия отдельных Мировых Границ вам также необходимо иметь ключ "worldinfo" для измерения в конфигурации, который включает объект WorldInfo для каждого измерения. Даже пустой объект в качестве значения подойдет, например: "worldinfo": {}
- enableSeparateWorldInfo - Если включено, все измерения, которые существуют в dimensions.json и имеют присутствующий ключ "worldinfo", будут использовать отдельные экземпляры WorldInfo (отдельное время, погода, мировая граница, правила игры и т.д.). Достаточно пустого объекта, см. выше. Это работает, даже если измерение не зарегистрировано этим модом (потому что оно уже существует и не настроено на переопределение).
- initialSpawnDimensionId - Идентификатор измерения, в котором игроки будут появляться, когда они впервые присоединяются к миру/серверу.
Регистрация измерений и настройки для каждого измерения выполняются через глобальный файл config/justenoughdimensions/dimensions.json или файл worlddirectory/justenoughdimensions/dimensions.json, если он существует. Файл мира имеет приоритет, если он существует.
Вот пример простой регистрации некоторых пользовательских измерений, который вы сможете легко адаптировать:
Самая важная часть - это идентификатор измерения, указанный в целочисленном значении dim.
Объект dimensiontype содержит информацию, которая будет передана в ванильную регистрацию DimensionType:
- id - Идентификатор DimensionType. В ванильной игре это используется в некоторых местах, например, в коде порталов/телепортации, чтобы решить, может ли портал быть активирован и как сущность будет телепортирована.
- vanilladimensiontype - Если это значение существует, то используется существующий DimensionType с этим именем вместо создания нового. Остальные опции (перечисленные ниже) затем игнорируются.
- name - Значение является именем мира, оно отображается в консоли для сообщений о загрузке/выгрузке мира и используется некоторыми модами, связанными с телепортацией и т.д.
- suffix - Значение в основном используется для определенных имен файлов данных, поэтому не используйте в нем никаких причудливых символов или пробелов! Хороший суффикс, например, "_dim15".
- worldprovider - Значением может быть один из WorldProviderSurface (для обычных миров типа основного мира), WorldProviderHell (Нижний мир) или WorldProviderEnd для ванильных вариантов, или их аналоги из этого мода: WorldProviderSurfaceJED, WorldProviderHellJED, WorldProviderEndJED. Значением также может быть полное имя класса модифицированного WorldProvider.
Примечание: Использование вариантов JED вместо ванильных настоятельно рекомендуется, потому что они содержат определенные исправления и изменения, которые необходимы для работы некоторых вещей в этом моде (например, настройки цветов).
Другие ключи/значения на основном уровне записи измерения:
- "unregister": true - отменить регистрацию этого измерения, если оно в настоящее время зарегистрировано. Все другие опции бессмысленны, если эта опция истинна.
- "override": true - переопределить существующее измерение с этим id, если таковое имеется. Для успешного выполнения измерение не может быть загружено, когда JED пытается его отменить.
- "disableteleportingfrom": true - отключает всю телепортацию (которая учитывает событие Forge...) из этого измерения.
- "disableteleportingto": true - отключает всю телепортацию (которая учитывает событие Forge...) в это измерение.
- "biome": "name" - использовать один биом в этом измерении, переопределив BiomeProvider на BiomeProviderSingle с использованием этого биома.
- "colors":





