Редактирование:Структура модов

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
<div class="mw-parser-output"><div class="mw-parser-output">
+
 
 +
 
 
== Структура модов ==
 
== Структура модов ==
  
Строка 5: Строка 6:
  
 
Если вы не хотите вдаваться в подробности построения модов, вы можете использовать стандартный шаблон мода, который описан [[InnerCore/Стандартный_шаблон_модов|здесь]].
 
Если вы не хотите вдаваться в подробности построения модов, вы можете использовать стандартный шаблон мода, который описан [[InnerCore/Стандартный_шаблон_модов|здесь]].
</div>
+
 
 
== Конфиг и описание ==
 
== Конфиг и описание ==
  
 
Файл конфига - config.json - задается в формате JSON и генерируется, либо исправляется автоматически. Всегда будет присутствовать значение enabled, которое включает/выключает весь мод. Содержимое этого файла будет визуализировано в меню мода, которое открывается через меню Inner Core. Работа с этим файлом производистся целиком из кода.
 
Файл конфига - config.json - задается в формате JSON и генерируется, либо исправляется автоматически. Всегда будет присутствовать значение enabled, которое включает/выключает весь мод. Содержимое этого файла будет визуализировано в меню мода, которое открывается через меню Inner Core. Работа с этим файлом производистся целиком из кода.
  
Файл информации - mod.info - задается в формате JSON и может не пристуствовать, однако тогда информации о моде в меню Inner Core не будет, название мода будет по имени директории и т.д.
+
Файл информации - mod.info - задается в формате JSON и может не пристуствовать, однако тогда информации о моде в меню Inner Core не будет, название мода будет по имени директории и т.д.&nbsp;<br/> Формат файла mod.info:
 
+
<pre>{
Формат файла mod.info:
 
 
 
&nbsp;
 
<syntaxhighlight lang="javascript">{
 
 
     "name":"Имя мода",
 
     "name":"Имя мода",
 
     "author":"Автор мода",
 
     "author":"Автор мода",
 
     "version":"Версия мода в любом формате",
 
     "version":"Версия мода в любом формате",
 
     "description":"Краткое описание мода"
 
     "description":"Краткое описание мода"
}</syntaxhighlight>
+
}</pre>
  
Также директория мода может содержать файл mod_icon.png, который будет являться иконкой мода в меню Inner Core. Важен только формат - png - размер может быть любым.
+
Так же директоря мода может содержать файл mod_icon.png, который будет являться иконкой мода в меню Inner Core. Важен только формат - png - размер может быть любым.
  
 
== Основные параметры ==
 
== Основные параметры ==
  
Файл построения задается в формате JSON и имеет несколько разделов, в которых описываются различные настройки и элементы мода.
+
Файл построения задается в формате JSON и имеет несколько разделов, в которых описываются различные настройки и элементы мода.<br/> Первый раздел - defaultConfig - является обязательным и описывает основные параметры построения мода. С ним содержимое файла построения будет выглядеть следующим образом (комментарии, помеченные символом #, присутствовать не должны):
Первый раздел - defaultConfig - является обязательным и описывает основные параметры построения мода. С ним содержимое файла построения будет выглядеть следующим образом (комментарии, помеченные символом #, присутствовать не должны):  
+
<pre>{
&nbsp;
 
<syntaxhighlight lang="javascript">{
 
 
     "defaultConfig": {
 
     "defaultConfig": {
 
         "api":"CoreEngine", #API, которое будет использовано для всех выполняемых файлов по-умолчанию, варианты API будут перечислены далее
 
         "api":"CoreEngine", #API, которое будет использовано для всех выполняемых файлов по-умолчанию, варианты API будут перечислены далее
Строка 35: Строка 30:
 
         "libraryDir":"lib/", #Необязательный параметр, который задает стандартную директорию, откуда будут загружаться библиотеки.
 
         "libraryDir":"lib/", #Необязательный параметр, который задает стандартную директорию, откуда будут загружаться библиотеки.
 
     }
 
     }
}</syntaxhighlight>
+
}</pre>
API задает абсолютное большинство методов, которые могут использовать исполняемые файлы мода. Однако есть набор базовых методов, которые доступны для конкретных типов выполняемых файлов. Виды API:  
+
 
 +
API задает абсолютное большинство методов, которые могут использовать исполняемые файлы мода. Однако есть набор базовых методов, которые доступны для конкретных типов выполняемых файлов.
 +
 
 +
Виды API:
 +
 
 
*CoreEngine - Основной и самый объемный API для разработки модов. В основном вам нужно будет использовать его, остальные варианты более ситуативны и не нужны в большинстве случаев.  
 
*CoreEngine - Основной и самый объемный API для разработки модов. В основном вам нужно будет использовать его, остальные варианты более ситуативны и не нужны в большинстве случаев.  
 
*AdaptedScript - Реализует основные возможности, однако не имеет различных реализаций, сильно упрощающих разработку, таких как Tile Entity.  
 
*AdaptedScript - Реализует основные возможности, однако не имеет различных реализаций, сильно упрощающих разработку, таких как Tile Entity.  
Строка 45: Строка 44:
  
 
Исполняемые файлы описываются в разделе compile, который является массивом. Их может быть сколько угодно много:
 
Исполняемые файлы описываются в разделе compile, который является массивом. Их может быть сколько угодно много:
<syntaxhighlight lang="javascript">{
+
<pre>{
 
     "defaultConfig": {
 
     "defaultConfig": {
 
         ...
 
         ...
Строка 59: Строка 58:
 
         ...
 
         ...
 
     ]
 
     ]
}</syntaxhighlight>
+
}</pre>
  
 
Типы исполняемых файлов:
 
Типы исполняемых файлов:
Строка 67: Строка 66:
 
#library - Библиотека. Может с помощью специальных методов, доступных только этому типу файлов, регистрировать новые модули API, которые используются модами, если те эту библиотеку импортируют. Этот тип файлов не надо описывать, если он находится в директории, заданной в параметре libraryDir.  
 
#library - Библиотека. Может с помощью специальных методов, доступных только этому типу файлов, регистрировать новые модули API, которые используются модами, если те эту библиотеку импортируют. Этот тип файлов не надо описывать, если он находится в директории, заданной в параметре libraryDir.  
 
#preloader - Отдельный специфический тип файла, который будет выполняться до загрузки MCPE после загрузки ресурсов и требуется для их создания и изменения. На момент написания данной документации, использует отдельный тип API, который еще плохо реализован.  
 
#preloader - Отдельный специфический тип файла, который будет выполняться до загрузки MCPE после загрузки ресурсов и требуется для их создания и изменения. На момент написания данной документации, использует отдельный тип API, который еще плохо реализован.  
#custom - Выполняется только с помощью специального метода - runCustomSource(), вызванного из остальных типов исполняемых файлов. Может принимать параметры.  
+
#custom - Выполняется только с помощью специального метода - runCustomSource(), вызванного из остальных типов исполняемых файлов. Может принимать параметры.&nbsp;
  
Подробнее про каждый тип файлов и их специальные методы и значения будет рассказано в [[InnerCore/Базовые_методы_и_переменные_исполняемых_файлов|отдельной главе ]].
+
Подробнее про каждый тип файлов и их специальные методы и значения будет рассказано в отдельной главе.
 
 
&nbsp;
 
  
 
== Построение исполняемых файлов ==
 
== Построение исполняемых файлов ==
Строка 78: Строка 75:
  
 
Директории построения задаются в разделе buildDirs, который является массивом:
 
Директории построения задаются в разделе buildDirs, который является массивом:
<syntaxhighlight lang="javascript">{
+
<pre>{
 
     "defaultConfig": {
 
     "defaultConfig": {
 
         ...
 
         ...
Строка 90: Строка 87:
 
         ...
 
         ...
 
     ]
 
     ]
}</syntaxhighlight>
+
}</pre>
  
 
Директория построения задается следующим образом:
 
Директория построения задается следующим образом:
Строка 96: Строка 93:
 
*Она должна содержать файлы с кодом, которые вы хотите объединить в исполняемый файл. Они могут находиться в дочерних директориях и иметь любые названия.  
 
*Она должна содержать файлы с кодом, которые вы хотите объединить в исполняемый файл. Они могут находиться в дочерних директориях и иметь любые названия.  
 
*Она должна содержать файл построения .includes, в нем прописаны все локальные пути файлов, которые участвуют в построении в нужном порядке, так же он может содержать комментарии (// или #) и пустые строки  
 
*Она должна содержать файл построения .includes, в нем прописаны все локальные пути файлов, которые участвуют в построении в нужном порядке, так же он может содержать комментарии (// или #) и пустые строки  
 +
<div>Пример содержимого .includes:</div> <pre>// Предположим, что .includes находится в директории dev/ в моде
 +
 +
// Этот файл должен находиться на пути dev/header.js
 +
header.js
  
Пример содержимого .includes:
+
// Эти файлы соответсвенно должны находиться в dev/source/
<pre>// Предположим, что .includes находится в директории dev/ в моде<br class="mw_emptyline_first"><br class="mw_emptyline_first">// Этот файл должен находиться на пути dev/header.js
 
header.js<br class="mw_emptyline_first"><br class="mw_emptyline_first">// Эти файлы соответсвенно должны находиться в dev/source/
 
 
source/blocks.js
 
source/blocks.js
 
source/items.js</pre>
 
source/items.js</pre>
Строка 105: Строка 104:
 
Важно понимать, что каждый из этих файлов должен быть завершенным куском кода, потому что каждый из них компилируется по отдельности. Т.е. нельзя начать блок в одном файле и закончить в следующем.
 
Важно понимать, что каждый из этих файлов должен быть завершенным куском кода, потому что каждый из них компилируется по отдельности. Т.е. нельзя начать блок в одном файле и закончить в следующем.
  
&nbsp;
 
  
 
== Ресурсы ==
 
== Ресурсы ==
  
Ресурсы модов делятся на две группы - текстуры интерфейса (GUI) и остальные (блоки, предметы, текстуры для моделей и т.п.). Какие бывают типы ресурсов будет рассказано в [[InnerCore/Ресурсы|отдельной главе ]].
+
Ресурсы модов делятся на две группы - текстуры интерфейса (GUI) и остальные (блоки, предметы, текстуры для моделей и т.п.). Какие бывают типы ресурсов будет рассказано в отдельной главе.
  
 
Директории ресурсов описываются в разделе resources, их может быть сколько угодно много:
 
Директории ресурсов описываются в разделе resources, их может быть сколько угодно много:
<syntaxhighlight lang="javascript">{
+
<pre>{
 
     "defaultConfig": {
 
     "defaultConfig": {
 
         ...
 
         ...
Строка 124: Строка 122:
 
         ...
 
         ...
 
     ]
 
     ]
}</syntaxhighlight>
+
}</pre>
  
Подробно о ресурсах и их использовании будет рассказано [[InnerCore/Ресурсы|отдельно ]].
+
Подробно о ресурсах и их использовании будет рассказано [[InnerCore/Ресурсы|отдельно]].<br/> &nbsp;
</div>
 

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии GNU Free Documentation License 1.3 или более поздняя (см. Mineprogramming wiki:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!