Confirmedusers
1,783
edits
(Updating to match new version of source page) |
(Created page with "Но это не обязательно при создании нового мода, так как команда <code>dotnet new vsmod</code> установить новую версию шаблона, если она доступна.") |
||
(36 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
== Программное обеспечение == | == Программное обеспечение == | ||
Когда вы будете готовы приступить к кодированию модов для Vintage Story, вы, вероятно, захотите настроить среду разработки, которая упростит процесс кодирования и тестирования ваших творений. Vintage Story разрабатывается на C# и начиная с версии 1.18.8 мы перешли на .NET 7. | |||
Когда вы будете готовы приступить к кодированию модов для Vintage Story, вы, вероятно, захотите настроить среду разработки, которая упростит процесс кодирования и тестирования ваших творений. | |||
Есть несколько приложений, которые помогут вам в разработке модов. Вот некоторые из них, поддерживающие наш шаблон: | |||
* [https://www.visualstudio.com/ru/vs/community/ Visual Studio Community] — это бесплатная и очень мощная среда разработки от Microsoft и, возможно, имеет наилучшую поддержу С# и .NET, которые в свою очередь тоже разработаны Microsoft. Это также инструмент, который команда Vintage Story использует при билде игры. Она также имеет [https://www.visualstudio.com/vs/mac/ MacOS версию]. При использовании установите пакет <code>.NET desktop development</code>. | |||
* [https://www.visualstudio.com/ | |||
</ | |||
* [https://www.jetbrains.com/rider/ Jetbrains Rider] — это платная, мощная и удобная среда разработки специально спроектированная для .NET. Поскольку она создана для .NET, она также имеет очень хорошую поддержку всех функций, которые могут вам понадобиться, и при этом является полностью кроссплатформенной. Она также используется командой Vintage Story при разработке игры. | |||
* [https://www.jetbrains.com/rider/ Jetbrains Rider] — это | |||
* [https://code.visualstudio.com/ Visual Studio Code] — это бесплатный, лёгкий и универсальный редактор кода, разработанный Microsoft. Он поддерживает множество языков программирования и предлагает широкий выбор функциональных расширений. Расширение для поддержки C# — отличный выбор для начала создания модов. Этот редактор широко используется нашим сообществом мододелов. | |||
* [https://code.visualstudio.com/ Visual Studio Code] | |||
Хоть вы и можете использовать любой редактор для работы с исходном кодом, мы настоятельно рекомендуем использовать один из вышеперечисленных инструментов, чтобы ваши процессы стали гораздо удобнее. | |||
Выберите одну из вышеперечисленных IDE или другие альтернативы. Мы предлагаем использовать '''Visual Studio Community''' для Windows. Для Linux вы можете использовать '''Visual Studio Code''' или '''Rider'''. | |||
Примечание: Если вы используете Linux и собираетесь ставить Visual Studio Code или Rider из '''Flatpak''' или '''snap'''? имейте в виду, что могут возникнуть некоторые проблемы с использованием .NET или переменных среды. Так что, по возможности используйте нативные методы установки. | |||
Далее вам нужно будет установить [https://dotnet.microsoft.com/en-us/download/dotnet/7.0 .NET 7 SDK] (Комплект для разработки программного обеспечения), который также будет включать .NET 7 Dekstop Runtime, необходимый для запуска игры начиная с версии 1.18.8-rc.1. | |||
Убедитесь, что .NET 7 SDK установился правильно, выполнив следующую команду в терминале: | |||
''В Windows откройте приложение Windows PowerShell, которое предустановлено во всех современных версиях Windows (10 / 11).'' | |||
'' | |||
<syntaxhighlight lang=shell> | <syntaxhighlight lang=shell> | ||
dotnet --list-sdks | dotnet --list-sdks | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Она выведет список установленных SDK, одна из которых, должна иметь <code>7.0.xxx</code>. Если это так, то можете продолжать. | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 68: | Line 42: | ||
</div> | </div> | ||
=== Windows === | === Windows === | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 124: | Line 96: | ||
== Создание мода == | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 155: | Line 125: | ||
==== Visual Studio ==== | ==== Visual Studio ==== | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 177: | Line 145: | ||
</div> | </div> | ||
==== Rider ==== | ==== Rider ==== | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 197: | Line 163: | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Note: Unfortunately as of writing this Rider does not support those template options as Visual Studio in the UI yet but you can check this [https://youtrack.jetbrains.com/issue/RIDER-16759/Support-parameters-in-custom-project-templates issue] for updates. | Note: Unfortunately as of writing this Rider does not support those template options as Visual Studio in the UI yet but you can check this [https://youtrack.jetbrains.com/issue/RIDER-16759/Support-parameters-in-custom-project-templates issue] for updates. | ||
For now you can make use of those options using the CLI see the [[Visual Studio Code]] section for how to use it. | For now you can make use of those options using the CLI see the [[#Visual Studio Code|Visual Studio Code]] section for how to use it. | ||
</div> | </div> | ||
==== Visual Studio Code ==== | ==== Visual Studio Code ==== | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 265: | Line 229: | ||
</div> | </div> | ||
<br> | <br> | ||
---- | ---- | ||
<br> | <br> | ||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 276: | Line 238: | ||
</div> | </div> | ||
==== Обновление шаблонов ==== | |||
==== | |||
Чтобы обновить все установленные шаблоны, выполните команду: | |||
<syntaxhighlight lang=shell> | <syntaxhighlight lang=shell> | ||
dotnet new update | dotnet new update | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Но это не обязательно при создании нового мода, так как команда <code>dotnet new vsmod</code> установить новую версию шаблона, если она доступна. | |||
==== Структура папок ==== | |||
==== | |||
<div class=" | Вот обзор того, где находятся файлы в вашем моде. | ||
== | <table id="treeviewtable" class="table table-bordered tt-table" style='table-layout: fixed'> | ||
</div> | <tr style=''> | ||
<th width='300' align='left'>Название</th> | |||
<th width='600' align='left'>Описание</th> | |||
</tr> | |||
<tr> | |||
<td><div class="tt" data-tt-id="root">mytestmod</div></td> | |||
<td></td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_vscode" data-tt-parent="root">.vscode</div></td> | |||
<td>Если вы указали --IncludeVSCode, то эта папка будет содержать всё необходимое для запуска, упаковки и дебага вашего мода в Visual Studio Code.</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_cakebuild" data-tt-parent="root">CakeBuild</div></td> | |||
<td>Этот проект содержит код, который билдит mytestmod_x.x.x.zip. Вы можете выполнить его, выбрав CakeBuild в Run Configuration.</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_mytestmod" data-tt-parent="root">mytestmod</div></td> | |||
<td>Это ваш проект. Он содержит весь ваш код, ассеты и modinfo.json</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_releases_assets" data-tt-parent="p_mytestmod">assets</div></td> | |||
<td>Ваши ассеты. Смотри '''{{pll|Modding:Asset System|nsp=0}}'''</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_releases_modinfo" data-tt-parent="p_mytestmod">modinfo.json</div></td> | |||
<td>Описывает ваш мод. Автор, зависимости, название и многое другое. Смотри '''{{pll|Modinfo}}'''</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_releases_properties" data-tt-parent="p_mytestmod">Properties</div></td> | |||
<td></td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_releases_launchsettings" data-tt-parent="p_releases_properties">launchSettings.json</div></td> | |||
<td>Здесь содержится информация о том, как запустить ваш мод (Visual Studio, Rider). Вы можете добавить пользовательские параметры запуска, чтобы, например, при старте запускаться прямо в мир. Запустите Vintagestory.exe -h, чтобы увидеть все параметры из терминала, открытого в папке Vintagestory.</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_releases_csproj" data-tt-parent="p_mytestmod">mymod.csproj</div></td> | |||
<td>csproj вашего мода. Содержит информацию о версии .NET и зависимостях (например, VintagestoryAPI).</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_releases" data-tt-parent="root">Releases</div></td> | |||
<td>Будет содержать релиз вашего мода после выполнения CakeBuild.</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_releases_mymtestmod" data-tt-parent="p_releases">mytestmod</div></td> | |||
<td>Файлы мода перед упаковкой в .zip архив.</td> | |||
</tr> | |||
<tr> | |||
<td scope="row"><div class="tt" data-tt-id="p_releases_zip" data-tt-parent="p_releases">mytestmod_x.x.x.zip</div></td> | |||
<td>Готовый к релизу мод в виде zip-архива.</td> | |||
</tr> | |||
</table> | </table> | ||
=== Проект-шаблон мода === | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 390: | Line 391: | ||
</div> | </div> | ||
=== Запуск мода === | |||
=== | |||
==== Запуск мода в Visual Studio ==== | |||
==== Visual Studio | [[File:Vs-cp-start.png|600px|frameless|center|alt=Запуск мода в Visual Studio|Запуск мода в Visual Studio]] | ||
[[File:Vs-cp-start.png|600px|frameless|center|alt=Visual Studio | |||
==== Запуск мода в Rider ==== | |||
==== Rider | |||
<gallery mode="packed-hover" widths=500px heights=100px> | <gallery mode="packed-hover" widths=500px heights=100px> | ||
File:Rider-cp-start-new-ui.png|Rider | File:Rider-cp-start-new-ui.png|Запуск мода в Rider (Новый UI) | ||
File:Rider-cp-start.png|Rider | File:Rider-cp-start.png|Запуск мода в Rider | ||
</gallery> | </gallery> | ||
==== Visual Studio Code | ==== Запуск мода в Visual Studio Code ==== | ||
[[File:Vsc-cp-start.png|400px|frameless|center|alt=Visual Studio Code | [[File:Vsc-cp-start.png|400px|frameless|center|alt=Запуск мода в Visual Studio Code|Запуск мода в Visual Studio Code]] | ||
Если у вас возникли проблемы, вы можете узнать больше из проекта [https://github.com/anegostudios/vsmodexamples vsmodexamples] | |||
Если у вас возникли проблемы, вы можете узнать из проекта [https://github.com/anegostudios/vsmodexamples vsmodexamples] | |||
== Упаковка мода == | |||
= | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Line 437: | Line 428: | ||
= Дальнейшее продвижение = | = Дальнейшее продвижение = | ||
Если вам удалось настроить среду разработки и запустить Vintage Story через проект мода в вашей IDE, то пришло время приступить к работе над своим первым модом кода. На данный момент есть много вариантов, которые вы можете выбрать, поскольку моды кода могут изменить практически любой аспект игры. Тем не менее, лучше всего начать с блоков и элементов (поскольку к этому моменту вы уже должны быть знакомы с их созданием используя JSON-ы). | |||
Если вам удалось настроить среду разработки и запустить Vintage Story через проект | |||
Перейдите на страницу '''[[Modding:Advanced Blocks/ru| | Перейдите на страницу '''[[Modding:Advanced Blocks/ru|Продвинутые блоки]]''', чтобы создать свой первый продвинутый блок кода. | ||
Или перейдите на страницу ''' | Или перейдите на страницу '''{{Not translated|Modding:Advanced Items/ru|Продвинутые предметы|Modding:Advanced Items}}''', чтобы создать свой первый продвинутый предмет кода. | ||
{{Navbox/modding}} | {{Navbox/modding}} |