Структура мода — различия между версиями

(Created page with " Моды в Core Engine представляют собой папку с кодом, изображениями и текстурами, подхватываемых дви...")
 
 
(не показано 6 промежуточных версий 3 участников)
Строка 2: Строка 2:
 
Моды в Core Engine представляют собой папку с кодом, изображениями и текстурами, подхватываемых движком.
 
Моды в Core Engine представляют собой папку с кодом, изображениями и текстурами, подхватываемых движком.
  
== Общее ==
 
  
В папке с модом находятся следующие объекты:
+
<div class="mw-parser-output"><h2> Общее </h2><p>В папке с модом находятся следующие объекты:
 
+
</p>
*main.js - содержит весь код мода целиком.  
+
<ul><li>main.js - содержит весь код мода целиком. </li>
*launcher.js - выполняется при загрузке мода, позволяет подключить сторонние моды, управлять ресурсами.  
+
<li>launcher.js - выполняется при загрузке мода, позволяет подключить сторонние моды, управлять ресурсами. </li>
*config.json - файл конфигурации мода, по умолчанию содержит только две опции:  
+
<li>config.json - файл конфигурации мода, по умолчанию содержит только две опции:  
*enabled - по умолчанию true, определяет возможность загрузки мода.  
+
<ul><li>enabled - по умолчанию true, определяет возможность загрузки мода. </li>
*advanced_api - не используется самим движком, но может быть использована модом для расширения API.  
+
<li>advanced_api - не используется самим движком, но может быть использована модом для расширения API.   </li></ul></li>
*mod.info - не используется самим движком, но позволяет моду самоиндифицироваться.  
+
<li>mod.info - не используется самим движком, но позволяет моду самоиндифицироваться. </li>
*resources.zip - текстурпак, содержит текстуры блоков, предметов, мобов. Разработчикам настоятельно рекомендуется собирать данный архив из содержимого папки resources.  
+
<li>resources.zip - текстурпак, содержит текстуры блоков, предметов, мобов. Разработчикам настоятельно рекомендуется собирать данный архив из содержимого папки resources. </li>
*resources.json - содержит список загружаемых движком текстурпаком. По умолчанию содержит только resources.zip со значением true.  
+
<li>resources.json - содержит список загружаемых движком текстурпаком. По умолчанию содержит только resources.zip со значением true. </li>
*dev - см. Структура скриптов  
+
<li>dev - см. Структура скриптов </li>
*gui - папка, содержит текстуры для интерфейса, загружаются автоматически.  
+
<li>gui - папка, содержит текстуры для интерфейса, загружаются автоматически. </li>
*lib - см. Подключение библиотек.  
+
<li>lib - см. Подключение библиотек. </li>
*resources - необязательна, разработчик может собирать из нее текстурпак для мода.  
+
<li>resources - необязательна, разработчик может собирать из нее текстурпак для мода.</li></ul>
 +
</div>
  
 +
<div class="mw-parser-output">
 
== Структура скриптов ==
 
== Структура скриптов ==
  
Строка 24: Строка 25:
  
 
Во время загрузки мода, если имеется dev, движок читает специальный файл-"манифест" .includes внутри dev, содержащий список файлов, подлежащих сборке. Добавлять скрипты в этот манифест очень легко. Для этого введите его путь и сохраните файл.
 
Во время загрузки мода, если имеется dev, движок читает специальный файл-"манифест" .includes внутри dev, содержащий список файлов, подлежащих сборке. Добавлять скрипты в этот манифест очень легко. Для этого введите его путь и сохраните файл.
<pre>lol.js //движок будет искать файл %папка мода%/dev/lol.js
+
<pre>lol.js //движок будет искать файл&nbsp;%папка мода%/dev/lol.js //а тут путь&nbsp;%папка мода%/dev/bezmata
syka/blyad.js //а тут путь %папка мода%/dev/syka/blyad.js
+
//кстати, эти комментарии будут находиться прямо в main.js(!), так что используйте это, если не хотите заблудиться там&nbsp;;)</pre>
//кстати, эти комментарии будут находиться прямо в main.js(!), так что используйте это, если не хотите заблудиться там ;)</pre>
+
</div>
  
 
== <br/> Подключение библиотек ==
 
== <br/> Подключение библиотек ==

Текущая версия на 16:32, 3 мая 2020

Моды в Core Engine представляют собой папку с кодом, изображениями и текстурами, подхватываемых движком.


Общее

В папке с модом находятся следующие объекты:

  • main.js - содержит весь код мода целиком.
  • launcher.js - выполняется при загрузке мода, позволяет подключить сторонние моды, управлять ресурсами.
  • config.json - файл конфигурации мода, по умолчанию содержит только две опции:
    • enabled - по умолчанию true, определяет возможность загрузки мода.
    • advanced_api - не используется самим движком, но может быть использована модом для расширения API.
  • mod.info - не используется самим движком, но позволяет моду самоиндифицироваться.
  • resources.zip - текстурпак, содержит текстуры блоков, предметов, мобов. Разработчикам настоятельно рекомендуется собирать данный архив из содержимого папки resources.
  • resources.json - содержит список загружаемых движком текстурпаком. По умолчанию содержит только resources.zip со значением true.
  • dev - см. Структура скриптов
  • gui - папка, содержит текстуры для интерфейса, загружаются автоматически.
  • lib - см. Подключение библиотек.
  • resources - необязательна, разработчик может собирать из нее текстурпак для мода.

Структура скриптов[править]

Весь код, конечно, можно писать и в main.js. Но это неудобно, к тому же при малейшем расширении кодовой базы большинство текстовых редакторов начинают тупить.
Для удобной работы с кодом можно распределить его по нескольким файлам, а потом склеивать содержимое и сохранять все в main.js.
Core Engine делает это автоматически. Все нужные файлы кода должны лежать в папке dev. В отличие от аддонов Factorization, можно распределять части скрипта по подпапкам.

Во время загрузки мода, если имеется dev, движок читает специальный файл-"манифест" .includes внутри dev, содержащий список файлов, подлежащих сборке. Добавлять скрипты в этот манифест очень легко. Для этого введите его путь и сохраните файл.

lol.js //движок будет искать файл %папка мода%/dev/lol.js //а тут путь %папка мода%/dev/bezmata
//кстати, эти комментарии будут находиться прямо в main.js(!), так что используйте это, если не хотите заблудиться там ;)


Подключение библиотек
[править]

В Core Engine существует система особых скриптов — библиотек. Они загружаются вместе с первым модом, который использует данную библиотеку, и доступны в коде других модов с этим же скриптом.
Все библиотеки хранятся в папке lib.

Чтобы создать свою библиотеку, напишите обычный скрипт и засуньте его в папку lib. В конце файла добавьте:
registerAPIUnit(псевдоним, значение)
Псевдоним - имя, под которым значение будет доступно в модах, использующих библиотеку.
Значение - тут все, что угодно - метод библиотеки, объект, просто число или строка.
Повторите этот метод для всех нужных значений.

Для подключения библиотеки к вашему моду закиньте ее в папку lib. Пропишите в нужном месте мода метод:
importLib(название библиотеки, псевдоним);
Название библиотеки - название файла скрипта с ней без js в кавычках.
Псевдоним - нужный вам псевдоним из указанной библиотеки в кавычках. Если вам нужно все ее содержимое, пропишите универсальный псевдоним "*".