Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | + | ||
− | == | + | == СТРУКТУРА МОДОВ == |
Мод под Inner Core представляет из себя директорию с файлом построения build.config, так же могут присутствовать несколько дополнительных файлов, таких как файл описания и стандартный файл конфигурации. Последний будет создан автоматически. | Мод под Inner Core представляет из себя директорию с файлом построения build.config, так же могут присутствовать несколько дополнительных файлов, таких как файл описания и стандартный файл конфигурации. Последний будет создан автоматически. | ||
− | Если вы не хотите вдаваться в подробности построения модов, вы можете использовать стандартный шаблон мода, который описан [ | + | Если вы не хотите вдаваться в подробности построения модов, вы можете использовать стандартный шаблон мода, который описан [здесь]. |
− | + | ||
− | == | + | == КОНФИГ И ОПИСАНИЕ == |
Файл конфига - config.json - задается в формате JSON и генерируется, либо исправляется автоматически. Всегда будет присутствовать значение enabled, которое включает/выключает весь мод. Содержимое этого файла будет визуализировано в меню мода, которое открывается через меню Inner Core. Работа с этим файлом производистся целиком из кода. | Файл конфига - config.json - задается в формате JSON и генерируется, либо исправляется автоматически. Всегда будет присутствовать значение enabled, которое включает/выключает весь мод. Содержимое этого файла будет визуализировано в меню мода, которое открывается через меню Inner Core. Работа с этим файлом производистся целиком из кода. | ||
− | Файл информации - mod.info - задается в формате JSON и может не пристуствовать, однако тогда информации о моде в меню Inner Core не будет, название мода будет по имени директории и т.д. | + | Файл информации - mod.info - задается в формате JSON и может не пристуствовать, однако тогда информации о моде в меню Inner Core не будет, название мода будет по имени директории и т.д. <br/> Формат файла mod.info: |
− | + | <pre>{ | |
− | Формат файла mod.info: | ||
− | |||
− | |||
− | < | ||
"name":"Имя мода", | "name":"Имя мода", | ||
"author":"Автор мода", | "author":"Автор мода", | ||
"version":"Версия мода в любом формате", | "version":"Версия мода в любом формате", | ||
"description":"Краткое описание мода" | "description":"Краткое описание мода" | ||
− | }</ | + | }</pre> |
− | + | Так же директоря мода может содержать файл mod_icon.png, который будет являться иконкой мода в меню Inner Core. Важен только формат - png - размер может быть любым. | |
− | == | + | == ОСНОВНЫЕ ПАРАМЕТРЫ == |
− | Файл построения задается в формате JSON и имеет несколько разделов, в которых описываются различные настройки и элементы мода. | + | Файл построения задается в формате JSON и имеет несколько разделов, в которых описываются различные настройки и элементы мода.<br/> Первый раздел - defaultConfig - является обязательным и описывает основные параметры построения мода. С ним содержимое файла построения будет выглядеть следующим образом (комментарии, помеченные символом #, присутствовать не должны): |
− | Первый раздел - defaultConfig - является обязательным и описывает основные параметры построения мода. С ним содержимое файла построения будет выглядеть следующим образом (комментарии, помеченные символом #, присутствовать не должны): | + | <pre>{ |
− | |||
− | < | ||
"defaultConfig": { | "defaultConfig": { | ||
"api":"CoreEngine", #API, которое будет использовано для всех выполняемых файлов по-умолчанию, варианты API будут перечислены далее | "api":"CoreEngine", #API, которое будет использовано для всех выполняемых файлов по-умолчанию, варианты API будут перечислены далее | ||
Строка 35: | Строка 29: | ||
"libraryDir":"lib/", #Необязательный параметр, который задает стандартную директорию, откуда будут загружаться библиотеки. | "libraryDir":"lib/", #Необязательный параметр, который задает стандартную директорию, откуда будут загружаться библиотеки. | ||
} | } | ||
− | }</ | + | }</pre> |
− | API задает абсолютное большинство методов, которые могут использовать исполняемые файлы мода. Однако есть набор базовых методов, которые доступны для конкретных типов выполняемых файлов. Виды API: | + | |
+ | API задает абсолютное большинство методов, которые могут использовать исполняемые файлы мода. Однако есть набор базовых методов, которые доступны для конкретных типов выполняемых файлов. | ||
+ | |||
+ | Виды API: | ||
+ | |||
*CoreEngine - Основной и самый объемный API для разработки модов. В основном вам нужно будет использовать его, остальные варианты более ситуативны и не нужны в большинстве случаев. | *CoreEngine - Основной и самый объемный API для разработки модов. В основном вам нужно будет использовать его, остальные варианты более ситуативны и не нужны в большинстве случаев. | ||
*AdaptedScript - Реализует основные возможности, однако не имеет различных реализаций, сильно упрощающих разработку, таких как Tile Entity. | *AdaptedScript - Реализует основные возможности, однако не имеет различных реализаций, сильно упрощающих разработку, таких как Tile Entity. | ||
− | == | + | == ИСПОЛНЯЕМЫЕ ФАЙЛЫ == |
Исполняемые файлы содержат исходный код мода, написаный под нужный вариант API на JavaScript, которые будут выполняться в различные моменты, зависящие от их типа. Так же их можно строить из отдельных директорий и компилировать в байт-код из меню Inner Core для быстродействия и лучшего дебага (релизные версии мода). | Исполняемые файлы содержат исходный код мода, написаный под нужный вариант API на JavaScript, которые будут выполняться в различные моменты, зависящие от их типа. Так же их можно строить из отдельных директорий и компилировать в байт-код из меню Inner Core для быстродействия и лучшего дебага (релизные версии мода). | ||
Исполняемые файлы описываются в разделе compile, который является массивом. Их может быть сколько угодно много: | Исполняемые файлы описываются в разделе compile, который является массивом. Их может быть сколько угодно много: | ||
− | < | + | <pre>{ |
"defaultConfig": { | "defaultConfig": { | ||
... | ... | ||
Строка 59: | Строка 57: | ||
... | ... | ||
] | ] | ||
− | }</ | + | }</pre> |
Типы исполняемых файлов: | Типы исполняемых файлов: | ||
Строка 67: | Строка 65: | ||
#library - Библиотека. Может с помощью специальных методов, доступных только этому типу файлов, регистрировать новые модули API, которые используются модами, если те эту библиотеку импортируют. Этот тип файлов не надо описывать, если он находится в директории, заданной в параметре libraryDir. | #library - Библиотека. Может с помощью специальных методов, доступных только этому типу файлов, регистрировать новые модули API, которые используются модами, если те эту библиотеку импортируют. Этот тип файлов не надо описывать, если он находится в директории, заданной в параметре libraryDir. | ||
#preloader - Отдельный специфический тип файла, который будет выполняться до загрузки MCPE после загрузки ресурсов и требуется для их создания и изменения. На момент написания данной документации, использует отдельный тип API, который еще плохо реализован. | #preloader - Отдельный специфический тип файла, который будет выполняться до загрузки MCPE после загрузки ресурсов и требуется для их создания и изменения. На момент написания данной документации, использует отдельный тип API, который еще плохо реализован. | ||
− | #custom - Выполняется только с помощью специального метода - runCustomSource(), вызванного из остальных типов исполняемых файлов. Может принимать параметры. | + | #custom - Выполняется только с помощью специального метода - runCustomSource(), вызванного из остальных типов исполняемых файлов. Может принимать параметры. |
− | Подробнее про каждый тип файлов и их специальные методы и значения будет рассказано в | + | Подробнее про каждый тип файлов и их специальные методы и значения будет рассказано в отдельной главе. |
− | + | == ПОСТРОЕНИЕ ИСПОЛНЯЕМЫХ ФАЙЛОВ == | |
− | |||
− | == | ||
Исполняемым файлам можно задавать построение из отдельных директорий. Построение происходит из многих файлов, которые описываются в файле построения. Этот метод позволяет разбивать код на части и группировать их, а не писать один огромный файл. Это дает не только читабельность, но так же позволяет более оптимально компилировать моды и дебажить их в продакшине. | Исполняемым файлам можно задавать построение из отдельных директорий. Построение происходит из многих файлов, которые описываются в файле построения. Этот метод позволяет разбивать код на части и группировать их, а не писать один огромный файл. Это дает не только читабельность, но так же позволяет более оптимально компилировать моды и дебажить их в продакшине. | ||
Директории построения задаются в разделе buildDirs, который является массивом: | Директории построения задаются в разделе buildDirs, который является массивом: | ||
− | < | + | <pre>{ |
"defaultConfig": { | "defaultConfig": { | ||
... | ... | ||
Строка 90: | Строка 86: | ||
... | ... | ||
] | ] | ||
− | }</ | + | }</pre> |
Директория построения задается следующим образом: | Директория построения задается следующим образом: | ||
Строка 96: | Строка 92: | ||
*Она должна содержать файлы с кодом, которые вы хотите объединить в исполняемый файл. Они могут находиться в дочерних директориях и иметь любые названия. | *Она должна содержать файлы с кодом, которые вы хотите объединить в исполняемый файл. Они могут находиться в дочерних директориях и иметь любые названия. | ||
*Она должна содержать файл построения .includes, в нем прописаны все локальные пути файлов, которые участвуют в построении в нужном порядке, так же он может содержать комментарии (// или #) и пустые строки | *Она должна содержать файл построения .includes, в нем прописаны все локальные пути файлов, которые участвуют в построении в нужном порядке, так же он может содержать комментарии (// или #) и пустые строки | ||
+ | <div>Пример содержимого .includes:</div> <pre>// Предположим, что .includes находится в директории dev/ в моде | ||
− | + | // Этот файл должен находиться на пути dev/header.js | |
− | + | header.js | |
− | header.js | + | |
+ | // Эти файлы соответсвенно должны находиться в dev/source/ | ||
source/blocks.js | source/blocks.js | ||
source/items.js</pre> | source/items.js</pre> | ||
Строка 105: | Строка 103: | ||
Важно понимать, что каждый из этих файлов должен быть завершенным куском кода, потому что каждый из них компилируется по отдельности. Т.е. нельзя начать блок в одном файле и закончить в следующем. | Важно понимать, что каждый из этих файлов должен быть завершенным куском кода, потому что каждый из них компилируется по отдельности. Т.е. нельзя начать блок в одном файле и закончить в следующем. | ||
− | + | == РЕСУРСЫ == | |
− | |||
− | == | ||
− | Ресурсы модов делятся на две группы - текстуры интерфейса (GUI) и остальные (блоки, предметы, текстуры для моделей и т.п.). Какие бывают типы ресурсов будет рассказано в | + | Ресурсы модов делятся на две группы - текстуры интерфейса (GUI) и остальные (блоки, предметы, текстуры для моделей и т.п.). Какие бывают типы ресурсов будет рассказано в отдельной главе. |
Директории ресурсов описываются в разделе resources, их может быть сколько угодно много: | Директории ресурсов описываются в разделе resources, их может быть сколько угодно много: | ||
− | < | + | <pre>{ |
"defaultConfig": { | "defaultConfig": { | ||
... | ... | ||
Строка 124: | Строка 120: | ||
... | ... | ||
] | ] | ||
− | }</ | + | }</pre> |
− | Подробно о ресурсах и их использовании будет рассказано | + | Подробно о ресурсах и их использовании будет рассказано отдельно.<br/> |
− | </ |