Just Enough Dimensions avatar

Just Enough Dimensions [1.12.2] [1.11.2] [1.10.2]

Описание

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": - Данные для настройки цвета листвы, травы и/или воды (см. раздел после WorldInfo).

    Вот пример, если вы хотите отключить/отменить регистрацию измерения, допустим, вы хотите отключить Энд:
    Примечание: Для работы этого также необходимо включить опцию конфигурации enableUnregisteringDimensions!



    Вот один из моих тестовых конфигов из моей среды разработки. В нем есть несколько типов примеров для создания различных типов настроенных измерений:
    http://pastebin.com/LpRYUNyi.

    Конфигурация - WorldInfo для каждого измерения

    Благодаря отдельному объекту WorldInfo (по сути, отдельным файлам level.dat для каждого измерения) возможно использовать для каждого измерения свой сид мира, тип уровня, настройки генератора и т.д.
    Вы можете, например, создать измерение Biomes O' Plenty, даже если ваш основной мир - ванильный, RTG или любой другой.

    Примечание: Без WorldInfo для каждого измерения команда телепортации /tpj , которая переносит вас в точку появления измерения, часто будет приводить в опасные места. Это происходит потому, что без отдельного WorldInfo каждое измерение будет наследовать/использовать точно такие же координаты появления, как и основной мир. И они могут находиться где угодно по отношению к ландшафту пользовательского измерения, часто внутри земли. Поэтому включение WorldInfo для каждого измерения рекомендуется в большинстве случаев (особенно если вам регулярно потребуется команда телепортации), если только это не вызывает каких-то конкретных проблем.

    ПРИМЕЧАНИЕ: Для работы настроек для каждого измерения, например, правил игры, есть два требования:

    • Вы должны включить опцию enableSeparateWorldInfo в основной конфигурации justenoughdimensions.cfg.
    • Каждое измерение, для которого вы хотите иметь отдельные настройки, должно иметь как минимум пустой объект worldinfo (или worldinfo_onetime) в конфигурации dimensions.json, см. пример ниже.

    Примечание: Для отдельных Мировых Границ вам также необходимо включить опцию конфигурации enableSeparateWorldBorders, потому что они должны использовать пользовательскую синхронизацию!

    Примечание: Мод RTG (Realistic Terrain Generation) в настоящее время жестко запрограммирован на работу только в измерении 0, т.е. в Основном мире. Таким образом, если вы хотите иметь мир RTG, это должен быть обычный "главный" основной мир! Затем вы можете создавать пользовательские измерения как обычные ванильные, Biomes O' Plenty или любые другие типы миров, которые вы хотите. Даже суперплоский, усиленный или отладочный тип мира отлично работают в пользовательских измерениях!

    Примечание о RTG: Если вы хотите использовать RTG в основном мире (измерение 0), и также включить переопределение WorldInfo для основного мира, то вам необходимо использовать WorldProviderSurfaceJED и также установить опцию "override": true для измерения 0, и использовать JED 1.3.6 или новее! В противном случае декорации RTG не будут работать, и у вас не будет деревьев/цветов/высокой травы и т.д. вообще.

    Вот пример того, что конфигурация dimensions.json должна содержать как минимум, если вы просто хотите включить настройки для каждого измерения для некоторых измерений, в этом примере для ванильных измерений Нижнего мира и Энда.
    Это essentially отделяет объекты WorldInfo Нижнего мира и Энда от Основного мира, что позволяет им иметь отдельное время, правила игры, Мировую Границу, сид и т.д. Обратите внимание, что вам также необходимо иметь соответствующие опции включенными в основном файле конфигурации JED (justenoughdimensions.cfg или через внутриигровое меню конфигурации в одиночной игре) для всего, для чего вы используете переопределение WorldInfo!


    Совет: Ключи для типа мира/уровня и сида: generatorName, RandomSeed. Именно так они сохраняются в файле level.dat.

    Вот полный список поддерживаемых ключей внутри объекта "worldinfo":


    ПРИМЕЧАНИЕ: Ключи чувствительны к регистру! Поэтому вы ДОЛЖНЫ использовать их точно так, как указано здесь, иначе они не сработают!

    Примечание: Любые значения, установленные в объекте worldinfo, будут всегда переопределять соответствующие значения из файла level.dat для каждого измерения при загрузке измерения! Так что, скорее всего, вы не захотите устанавливать там такие вещи, как мировое время, если только вы по какой-то причине не хотите, чтобы оно всегда сбрасывалось к определенному значению при загрузке измерения.

    Вместо этого, ванильные настройки обычно следует устанавливать в объекте worldinfo_onetime, а не в обычном объекте worldinfo (через команды это делается с использованием варианта "-onetime" команд dimbuilder set/remove/list). Таким образом, они будут установлены только один раз при первом создании измерения, вместо того чтобы устанавливаться/переопределяться каждый раз при загрузке измерения. Конечно, если вы действительно хотите устанавливать/переопределять их каждый раз при загрузке измерения, то вы можете установить их в обычном объекте/разделе worldinfo.

    Настройка цвета листвы, травы и воды

    Начиная с версии 1.4.0 стало возможным настраивать множители цвета листвы, травы и воды для каждого измерения и каждого биома.
    Это не требует использования переопределения WorldInfo для этих измерений.
    Чтобы настроить цвета, добавьте имена регистрации биомов и шестнадцатеричные коды цветов для вещей, которые вы хотите настроить, внутри объекта colors на основном уровне записи измерения, а затем массив объектов с именами FoliageColors, GrassColors и WaterColors внутри этого объекта colors. Каждый из этих объектов внутри массива будет затем содержать строковое значение с именем biome для точного имени регистрации биома, ИЛИ вы также можете нацелиться на несколько биомов одновременно, используя регулярное выражение, если вы используете имя biome_regex вместо этого. Другое значение внутри этого объекта - это шестнадцатеричная строка для цвета, называемая color.

    Примечание: Если вы используете регулярное выражение для нацеливания на несколько биомов, то порядок массива важен! Массив перебирается по порядку, и для каждой записи, будь то точное имя (biome) или регулярное выражение (biome_regex), цвет применяется для всего, что соответствует спецификации биома в это время. Это означает, что все, что идет позже в массиве, переопределит ранее установленное значение.

    И так как пример, вероятно, в десять раз легче понять: https://pastebin.com/eWrNcwiS

    В этом примере измерение 12 - это простой случай, когда затронуты только эти 4 биома. Однако в измерении 13 регулярное выражение заставляет цвет листвы изменяться на оттенок красного во ВСЕХ ванильных биомах, но затем последующие 4 записи переопределяют этот цвет для этих 4 биомов.

    Примечание: Вы можете указать только типы цветов, которые хотите изменить (листва, трава или вода). Пример конфигурации взят из моего тестирования, поэтому я устанавливал их все для всех 4 биомов, с которыми я это тестировал.

    Примечание: Событие множителя цвета воды в Forge не используется в 1.10.2, что означает, что настройка цвета воды, к сожалению, не будет работать в 1.10.2! Однако это было исправлено в Forge в 1.11.2, так что в 1.11.2 это работает.

    Примечание: Однако есть и другая проблема: событие цвета листвы не вызывается для биомов Меса и Болото, а событие цвета травы не вызывается для биомов Лес, Меса и Болото. Таким образом, цвета в этих биомах жестко запрограммированы, и переопределения не сработают, если это не будет исправлено в Forge в какой-то момент.

    Совет: Чтобы получить имена регистрации биомов, которые вы должны использовать для конфигурации, вы можете использовать мод TellMe (команда /tellme dump biomes). То, что вы ищете, это столбец Registry name. Вот готовый дамп всех ванильных биомов по состоянию на Minecraft 1.11.2: http://pastebin.com/raw/U5cvkdKz

    Настройка таблицы яркости света

    Начиная с версии 1.4.0 стало возможным настраивать таблицу яркости света для WorldProviders типа JED.
    Это делается путем добавления массива с именем LightBrightness внутри объекта JED, который находится внутри объекта worldinfo. Массив должен иметь ровно 16 числовых значений в нем, значения должны быть от 0...1, чтобы указывать яркость света для каждого значения блочного света от 0 до 15.
    Вот пара примеров конфигурации. Это значения, использованные для двух примеров скриншотов на странице Images: https://pastebin.com/nYfSE3Td

    Значения по умолчанию для миров типа основного мира - это значения во втором примере (измерение 11), но в обратном порядке (отсюда и название тестового измерения...).

    Правила игры для каждого измерения

    Вы можете установить правила игры для каждого измерения, добавив объект GameRules внутри объекта worldinfo_onetime (или worldinfo). Внутри этого объекта GameRules добавьте все правила игры, которые вы хотите установить для этого измерения.

    Вот пример установки правила игры для измерения в конфигурации:

Скачать Just Enough Dimensions

 
Тип Скачать Версия Загрузчик Обновлено Размер
Releasejustenoughdimensions-1.11.2-1.5.0.jar1.11.2Forge3 мая 2017142,1 КБ
Releasejustenoughdimensions-1.10.2-1.4.2.jar1.10.2Forge2 мая 2017141 КБ
Releasejustenoughdimensions-1.11.2-1.4.2.jar1.11.2Forge2 мая 2017141,1 КБ
Releasejustenoughdimensions-1.10.2-1.4.1.jar1.10.2Forge29 апреля 2017140,3 КБ
Releasejustenoughdimensions-1.11.2-1.4.1.jar1.11.2Forge29 апреля 2017140,4 КБ
Releasejustenoughdimensions-1.10.2-1.4.0.jar1.10.2Forge27 апреля 2017139,1 КБ
Releasejustenoughdimensions-1.11.2-1.4.0.jar1.11.2Forge27 апреля 2017139,2 КБ
Releasejustenoughdimensions-1.10.2-1.3.8.jar1.10.2Forge25 апреля 2017129,6 КБ
Releasejustenoughdimensions-1.11.2-1.3.8.jar1.11.2Forge25 апреля 2017129,7 КБ
Releasejustenoughdimensions-1.10.2-1.3.7.jar1.10.2Forge10 апреля 2017128,9 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.