Стандартный шаблон модов — различия между версиями

Строка 37: Строка 37:
 
         }  
 
         }  
 
     ]  
 
     ]  
}</syntaxhighlight>
+
}</syntaxhighlight><div class="mw-parser-output"><div class="mw-highlight mw-content-ltr" dir="ltr">
 +
<pre><span></span><span class="p">{</span>    <span class="s2">"defaultConfig"</span><span class="o">:</span><span class="p">{</span>        <span class="s2">"buildType"</span><span class="o">:</span><span class="s2">"develop"</span><span class="p">,</span>        <span class="s2">"api"</span><span class="o">:</span><span class="s2">"CoreEngine"</span><span class="p">,</span>        <span class="s2">"libraryDir"</span><span class="o">:</span><span class="s2">"lib/"</span>    <span class="p">},</span>        <span class="s2">"resources"</span><span class="o">:</span><span class="p">[</span>        <span class="p">{</span>            <span class="s2">"path"</span><span class="o">:</span><span class="s2">"res/"</span><span class="p">,</span>            <span class="s2">"resourceType"</span><span class="o">:</span><span class="s2">"resource"</span>        <span class="p">},</span>        <span class="p">{</span>            <span class="s2">"path"</span><span class="o">:</span><span class="s2">"gui/"</span><span class="p">,</span>            <span class="s2">"resourceType"</span><span class="o">:</span><span class="s2">"gui"</span>        <span class="p">}</span>    <span class="p">],</span>        <span class="s2">"buildDirs"</span><span class="o">:</span><span class="p">[</span>        <span class="p">{</span>            <span class="s2">"targetSource"</span><span class="o">:</span><span class="s2">"main.js"</span><span class="p">,</span>            <span class="s2">"dir"</span><span class="o">:</span><span class="s2">"dev/"</span>        <span class="p">}</span>    <span class="p">],</span>        <span class="s2">"compile"</span><span class="o">:</span><span class="p">[</span>        <span class="p">{</span>            <span class="s2">"path"</span><span class="o">:</span><span class="s2">"main.js"</span><span class="p">,</span>            <span class="s2">"sourceType"</span><span class="o">:</span><span class="s2">"mod"</span>        <span class="p">},</span>        <span class="p">{</span>            <span class="s2">"path"</span><span class="o">:</span><span class="s2">"launcher.js"</span><span class="p">,</span>            <span class="s2">"sourceType"</span><span class="o">:</span><span class="s2">"launcher"</span>        <span class="p">}</span>    <span class="p">]</span> <span class="p">}</span></pre></div></div><div class="mceNonEditableOverlay"></div>
 +
 
 +
 
  
<span class="mw_htmlentity"></span>
 
  
 
==Структура мода==
 
==Структура мода==
Строка 46: Строка 48:
 
Если вам нужно подключить какие то библиотеки, вы можете создать директорию lib в директории мода и копировать их туда, после чего их можно будет подключить из любых исполняемых файлов мода.
 
Если вам нужно подключить какие то библиотеки, вы можете создать директорию lib в директории мода и копировать их туда, после чего их можно будет подключить из любых исполняемых файлов мода.
  
Все ресурсы мода должны находиться в директории res, если их нет, она должна быть пустой. Аналогично для текстур интерфейса, только они должны находиться в директории gui. Как конкретно работают ресурсы вы сможете прочитать [[InnerCore/Ресурсы|здесь ]].
+
Все ресурсы мода должны находиться в директории res, если их нет, она должна быть пустой. Аналогично для текстур интерфейса, только они должны находиться в директории gui. Как конкретно работают ресурсы вы сможете прочитать [[InnerCore/Ресурсы|здесь ]].
  
 
В директории мода должен присутствовать файл launcher.js, который по-умолчанию должен содержать только команду Launch(); Более подробная работа с лаунчером мода будет описана в другой главе.
 
В директории мода должен присутствовать файл launcher.js, который по-умолчанию должен содержать только команду Launch(); Более подробная работа с лаунчером мода будет описана в другой главе.
Строка 54: Строка 56:
  
 
Пример содержимого .includes:
 
Пример содержимого .includes:
<pre>// Предположим, что .includes находится в директории dev/ в моде<br class="mw_emptyline_first"><br class="mw_emptyline_first">// Этот файл должен находиться на пути dev/header.js
+
<pre>// Предположим, что .includes находится в директории dev/ в моде<br data-attributes="class=%22mw_emptyline_first%22"><br data-attributes="class=%22mw_emptyline_first%22">// Этот файл должен находиться на пути dev/header.js <br>header.js<br data-attributes="class=%22mw_emptyline_first%22"><br data-attributes="class=%22mw_emptyline_first%22">// Эти файлы соответсвенно должны находиться в dev/source/<br>source/blocks.js<br>source/items.js</pre>Все эти файлы будут собраны в файл main.js и запущены, как основной код мода.
header.js<br class="mw_emptyline_first"><br class="mw_emptyline_first">// Эти файлы соответсвенно должны находиться в dev/source/
 
source/blocks.js
 
source/items.js</pre>
 
Все эти файлы будут собраны в файл main.js и запущены, как основной код мода.
 
  
 
==Заключение==
 
==Заключение==
 
<p class="mw_paragraph">Как говорилось в начале данная структура подходит для большинства модов и если вам не нужно ничего особенного, то оптимально использовать именно её.
 
<p class="mw_paragraph">Как говорилось в начале данная структура подходит для большинства модов и если вам не нужно ничего особенного, то оптимально использовать именно её.

Версия 20:35, 19 марта 2018

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

Здесь приведено содержимое файла build.config:

{ 
    "defaultConfig":{ 
        "buildType":"develop", 
        "api":"CoreEngine", 
        "libraryDir":"lib/" 
    }, 
    
    "resources":[ 
        { 
            "path":"res/", 
            "resourceType":"resource" 
        }, 
        { 
            "path":"gui/", 
            "resourceType":"gui" 
        } 
    ], 
    
    "buildDirs":[ 
        { 
            "targetSource":"main.js", 
            "dir":"dev/" 
        } 
    ], 
    
    "compile":[ 
        { 
            "path":"main.js", 
            "sourceType":"mod" 
        }, 
        { 
            "path":"launcher.js", 
            "sourceType":"launcher" 
        } 
    ] 
}
<span></span><span class="p">{</span>     <span class="s2">"defaultConfig"</span><span class="o">:</span><span class="p">{</span>         <span class="s2">"buildType"</span><span class="o">:</span><span class="s2">"develop"</span><span class="p">,</span>         <span class="s2">"api"</span><span class="o">:</span><span class="s2">"CoreEngine"</span><span class="p">,</span>         <span class="s2">"libraryDir"</span><span class="o">:</span><span class="s2">"lib/"</span>     <span class="p">},</span>         <span class="s2">"resources"</span><span class="o">:</span><span class="p">[</span>         <span class="p">{</span>             <span class="s2">"path"</span><span class="o">:</span><span class="s2">"res/"</span><span class="p">,</span>             <span class="s2">"resourceType"</span><span class="o">:</span><span class="s2">"resource"</span>         <span class="p">},</span>         <span class="p">{</span>             <span class="s2">"path"</span><span class="o">:</span><span class="s2">"gui/"</span><span class="p">,</span>             <span class="s2">"resourceType"</span><span class="o">:</span><span class="s2">"gui"</span>         <span class="p">}</span>     <span class="p">],</span>         <span class="s2">"buildDirs"</span><span class="o">:</span><span class="p">[</span>         <span class="p">{</span>             <span class="s2">"targetSource"</span><span class="o">:</span><span class="s2">"main.js"</span><span class="p">,</span>             <span class="s2">"dir"</span><span class="o">:</span><span class="s2">"dev/"</span>         <span class="p">}</span>     <span class="p">],</span>         <span class="s2">"compile"</span><span class="o">:</span><span class="p">[</span>         <span class="p">{</span>             <span class="s2">"path"</span><span class="o">:</span><span class="s2">"main.js"</span><span class="p">,</span>             <span class="s2">"sourceType"</span><span class="o">:</span><span class="s2">"mod"</span>         <span class="p">},</span>         <span class="p">{</span>             <span class="s2">"path"</span><span class="o">:</span><span class="s2">"launcher.js"</span><span class="p">,</span>             <span class="s2">"sourceType"</span><span class="o">:</span><span class="s2">"launcher"</span>         <span class="p">}</span>     <span class="p">]</span> <span class="p">}</span>



Структура мода

Начнем с API, он един для всего мода - это Core Engine. Основная часть дальнейшей документации будет как раз по нему, т.к. это самый распространенный и удобный вид API в большинстве случаев.

Если вам нужно подключить какие то библиотеки, вы можете создать директорию lib в директории мода и копировать их туда, после чего их можно будет подключить из любых исполняемых файлов мода.

Все ресурсы мода должны находиться в директории res, если их нет, она должна быть пустой. Аналогично для текстур интерфейса, только они должны находиться в директории gui. Как конкретно работают ресурсы вы сможете прочитать здесь .

В директории мода должен присутствовать файл launcher.js, который по-умолчанию должен содержать только команду Launch(); Более подробная работа с лаунчером мода будет описана в другой главе.

Исходный код мода

Так же в моде обязана присутствовать директория построения dev, в которой должен быть файл построения .includes, в нем прописаны все локальные пути файлов, которые участвуют в построении в нужном порядке, так же он может содержать комментарии (// или #) и пустые строки

Пример содержимого .includes:

// Предположим, что .includes находится в директории dev/ в моде<br data-attributes="class=%22mw_emptyline_first%22"><br data-attributes="class=%22mw_emptyline_first%22">// Этот файл должен находиться на пути dev/header.js <br>header.js<br data-attributes="class=%22mw_emptyline_first%22"><br data-attributes="class=%22mw_emptyline_first%22">// Эти файлы соответсвенно должны находиться в dev/source/<br>source/blocks.js<br>source/items.js
Все эти файлы будут собраны в файл main.js и запущены, как основной код мода.

Заключение

Как говорилось в начале данная структура подходит для большинства модов и если вам не нужно ничего особенного, то оптимально использовать именно её.