Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
Мод под Inner Core представляет из себя директорию с файлом построения build.config, так же могут присутствовать несколько дополнительных файлов, таких как файл описания и стандартный файл конфигурации. Последний будет создан автоматически. | Мод под Inner Core представляет из себя директорию с файлом построения build.config, так же могут присутствовать несколько дополнительных файлов, таких как файл описания и стандартный файл конфигурации. Последний будет создан автоматически. | ||
− | Если вы не хотите вдаваться в подробности построения модов, вы можете использовать стандартный шаблон мода, который описан [[InnerCore/Стандартный_шаблон_модов|здесь | + | Если вы не хотите вдаваться в подробности построения модов, вы можете использовать стандартный шаблон мода, который описан [[InnerCore/Стандартный_шаблон_модов|здесь ]]. |
==Конфиг и описание== | ==Конфиг и описание== | ||
Файл конфига - config.json - задается в формате JSON и генерируется, либо исправляется автоматически. Всегда будет присутствовать значение enabled, которое включает/выключает весь мод. Содержимое этого файла будет визуализировано в меню мода, которое открывается через меню Inner Core. Работа с этим файлом производистся целиком из кода. | Файл конфига - config.json - задается в формате JSON и генерируется, либо исправляется автоматически. Всегда будет присутствовать значение enabled, которое включает/выключает весь мод. Содержимое этого файла будет визуализировано в меню мода, которое открывается через меню Inner Core. Работа с этим файлом производистся целиком из кода. | ||
Строка 62: | Строка 62: | ||
# custom - Выполняется только с помощью специального метода - runCustomSource(), вызванного из остальных типов исполняемых файлов. Может принимать параметры. | # custom - Выполняется только с помощью специального метода - runCustomSource(), вызванного из остальных типов исполняемых файлов. Может принимать параметры. | ||
− | Подробнее про каждый тип файлов и их специальные методы и значения будет рассказано в [[InnerCore/Базовые_методы_и_переменные_исполняемых_файлов|отдельной главе | + | Подробнее про каждый тип файлов и их специальные методы и значения будет рассказано в [[InnerCore/Базовые_методы_и_переменные_исполняемых_файлов|отдельной главе ]]. |
Строка 91: | Строка 91: | ||
− | <pre>// Предположим, что .includes находится в директории dev/ в моде<br | + | |
− | header.js<br | + | <pre>// Предположим, что .includes находится в директории dev/ в моде<br/><br/>// Этот файл должен находиться на пути dev/header.js |
+ | header.js<br/><br/>// Эти файлы соответсвенно должны находиться в dev/source/ | ||
source/blocks.js | source/blocks.js | ||
source/items.js</pre>Важно понимать, что каждый из этих файлов должен быть завершенным куском кода, потому что каждый из них компилируется по отдельности. Т.е. нельзя начать блок в одном файле и закончить в следующем. | source/items.js</pre>Важно понимать, что каждый из этих файлов должен быть завершенным куском кода, потому что каждый из них компилируется по отдельности. Т.е. нельзя начать блок в одном файле и закончить в следующем. | ||
Строка 98: | Строка 99: | ||
==Ресурсы== | ==Ресурсы== | ||
− | Ресурсы модов делятся на две группы - текстуры интерфейса (GUI) и остальные (блоки, предметы, текстуры для моделей и т.п.). Какие бывают типы ресурсов будет рассказано в [[InnerCore/Ресурсы|отдельной главе | + | Ресурсы модов делятся на две группы - текстуры интерфейса (GUI) и остальные (блоки, предметы, текстуры для моделей и т.п.). Какие бывают типы ресурсов будет рассказано в [[InnerCore/Ресурсы|отдельной главе ]]. |
Директории ресурсов описываются в разделе resources, их может быть сколько угодно много: | Директории ресурсов описываются в разделе resources, их может быть сколько угодно много: | ||
<syntaxhighlight lang="javascript">{ | <syntaxhighlight lang="javascript">{ | ||
Строка 115: | Строка 116: | ||
<div class="mw-parser-output"><div class="mw-highlight mw-content-ltr" dir="ltr"> | <div class="mw-parser-output"><div class="mw-highlight mw-content-ltr" dir="ltr"> | ||
− | <pre>{ "defaultConfig": { ... }, ... "resources": [ { "path":"resource/dir/", #Директория ресурсов, должна заканчиваться символом / "resourceType":"resource|gui", #Тип подгрузки ресурсов: resource - внутриигровые ресурсы, gui - текстуры интерфейса }, ... ]}</pre></div></div><div class="mceNonEditableOverlay"></div>Подробно о ресурсах и их использовании будет рассказано [[InnerCore/Ресурсы|отдельно | + | <pre>{ "defaultConfig": { ... }, ... "resources": [ { "path":"resource/dir/", #Директория ресурсов, должна заканчиваться символом / "resourceType":"resource|gui", #Тип подгрузки ресурсов: resource - внутриигровые ресурсы, gui - текстуры интерфейса }, ... ]}</pre></div></div><div class="mceNonEditableOverlay"></div>Подробно о ресурсах и их использовании будет рассказано [[InnerCore/Ресурсы|отдельно ]].<brclass="single_linebreak"> |
Мод под Inner Core представляет из себя директорию с файлом построения build.config, так же могут присутствовать несколько дополнительных файлов, таких как файл описания и стандартный файл конфигурации. Последний будет создан автоматически.
Если вы не хотите вдаваться в подробности построения модов, вы можете использовать стандартный шаблон мода, который описан здесь .
Файл конфига - config.json - задается в формате JSON и генерируется, либо исправляется автоматически. Всегда будет присутствовать значение enabled, которое включает/выключает весь мод. Содержимое этого файла будет визуализировано в меню мода, которое открывается через меню Inner Core. Работа с этим файлом производистся целиком из кода.
Файл информации - mod.info - задается в формате JSON и может не пристуствовать, однако тогда информации о моде в меню Inner Core не будет, название мода будет по имени директории и т.д.
Формат файла mod.info:
{
"name":"Имя мода",
"author":"Автор мода",
"version":"Версия мода в любом формате",
"description":"Краткое описание мода"
}
Так же директоря мода может содержать файл mod_icon.png, который будет являться иконкой мода в меню Inner Core. Важен только формат - png - размер может быть любым.
Файл построения задается в формате JSON и имеет несколько разделов, в которых описываются различные настройки и элементы мода.
Первый раздел - defaultConfig - является обязательным и описывает основные параметры построения мода. С ним содержимое файла построения будет выглядеть следующим образом (комментарии, помеченные символом #, присутствовать не должны):
{
"defaultConfig": {
"api":"CoreEngine", #API, которое будет использовано для всех выполняемых файлов по-умолчанию, варианты API будут перечислены далее
"buildType":"develop", #Этот параметр при разработке должен быть develop, далее он будет изменяться с помощью Inner Core
"libraryDir":"lib/", #Необязательный параметр, который задает стандартную директорию, откуда будут загружаться библиотеки.
}
}
API задает абсолютное большинство методов, которые могут использовать исполняемые файлы мода. Однако есть набор базовых методов, которые доступны для конкретных типов выполняемых файлов.
Виды API:
Исполняемые файлы
Исполняемые файлы содержат исходный код мода, написаный под нужный вариант API на JavaScript, которые будут выполняться в различные моменты, зависящие от их типа. Так же их можно строить из отдельных директорий и компилировать в байт-код из меню Inner Core для быстродействия и лучшего дебага (релизные версии мода).
Исполняемые файлы описываются в разделе compile, который является массивом. Их может быть сколько угодно много:
{
"defaultConfig": {
...
},
...
"compile": [
{
"path":"Локальный путь к файлу, к примеру main.js, source/logger.js",
"sourceType":"Тип исполняемого файла, они будут перечислены далее",
"sourceName":"Имя, необязательный параметр, будет использовано при выводе ошибок",
"api":"Тип API, если вы хотите выбрать не тот тип, который вы указали в defaultConfig конкретно для этого файла, иначе этот параметр не нужен"
},
...
]
}
Типы исполняемых файлов:
Подробнее про каждый тип файлов и их специальные методы и значения будет рассказано в отдельной главе .
Исполняемым файлам можно задавать построение из отдельных директорий. Построение происходит из многих файлов, которые описываются в файле построения. Этот метод позволяет разбивать код на части и группировать их, а не писать один огромный файл. Это дает не только читабельность, но так же позволяет более оптимально компилировать моды и дебажить их в продакшине.
Директории построения задаются в разделе buildDirs, который является массивом:
{
"defaultConfig": {
...
},
...
"buildDirs": [
{
"dir":"dir/to/build/", #Директория, из которой будет выполняться построение, должна заканчиваться символом /
"targetSource":"dir/to/source/file", #Файл, в который будет выполняться построение. ВАЖНО: содержимое файла будет полностью перезаписываться при каждом построении, так что не стоит там что либо писать.
},
...
]
}
Директория построения задается следующим образом:
Пример содержимого .includes:
// Предположим, что .includes находится в директории dev/ в моде<br/><br/>// Этот файл должен находиться на пути dev/header.js header.js<br/><br/>// Эти файлы соответсвенно должны находиться в dev/source/ source/blocks.js source/items.jsВажно понимать, что каждый из этих файлов должен быть завершенным куском кода, потому что каждый из них компилируется по отдельности. Т.е. нельзя начать блок в одном файле и закончить в следующем.
Ресурсы модов делятся на две группы - текстуры интерфейса (GUI) и остальные (блоки, предметы, текстуры для моделей и т.п.). Какие бывают типы ресурсов будет рассказано в отдельной главе . Директории ресурсов описываются в разделе resources, их может быть сколько угодно много:
{
"defaultConfig": {
...
},
...
"resources": [
{
"path":"resource/dir/", #Директория ресурсов, должна заканчиваться символом /
"resourceType":"resource|gui", #Тип подгрузки ресурсов: resource - внутриигровые ресурсы, gui - текстуры интерфейса
},
...
]
}
{ "defaultConfig": { ... }, ... "resources": [ { "path":"resource/dir/", #Директория ресурсов, должна заканчиваться символом / "resourceType":"resource|gui", #Тип подгрузки ресурсов: resource - внутриигровые ресурсы, gui - текстуры интерфейса }, ... ]}