Page history
24 March 2024
Created page with "Теперь мы можем реализовать <code>OnBlockBroken</code> довольно легко, позаботившись обо всех возможных осях, с которыми может столкнуться игрок: <syntaxhighlight lang="c#"> public override bool OnBlockBrokenWith(IWorldAccessor world, Entity byEntity, ItemSlot itemslot, BlockSelection blockSel, float dropQuantityMultiplier = 1) { if (base.OnBlockBrokenWith(world, byEnt..."
+67
Created page with "<syntaxhighlight lang="c#"> public void DestroyBlocks(IWorldAccessor world, BlockPos min, BlockPos max, IPlayer player) { BlockPos tempPos = new BlockPos(); for (int x = min.X; x <= max.X; x++) { for (int y = min.Y; y <= max.Y; y++) { for (int z = min.Z; z <= max.Z; z++) { tempPos.Set(x, y, z); if (player.WorldData.CurrentGameMode == EnumGameMode.Creative) world.BlockA..."
−56
Created page with "Нам нужно знать, с какой стороны стоит игрок (на какую сторону он ориентируется) и находится ли он в творческом режиме или режиме выживания (нужно ли бросать предметы или нет). Прежде чем переопределять <code>OnBlockBrokenWith</code>, мы должны создать метод, который уничтож..."
+281
Created page with "В нашем конкретном случае мы можем переопределить метод <code>bool OnBlockBrokenWith(IWorldAccessor world, Entity byEntity, ItemSlot itemslot, BlockSelection blockSel, float dropQuantityMultiplier = 1)</code>."
−1
Created page with "Как обычно, мы можем обратиться к [https://apidocs.vintagestory.at/api/Vintagestory.API.Common.Item.html#methods item api docs], чтобы найти функцию, которую мы можем использовать. Хотя сам класс item не содержит соответствующей функции, мы также можем обратиться к [https://apidocs.vintagestory.at/api/Vintagestory.API.Common.Collectible..."
+123
Created page with "'''Так что же должен делать наш инструмент?''' Когда игрок добывает блок с помощью этого инструмента, все блоки вокруг него также должны быть добыты."
+86
Created page with "Это должно решить все синтаксические ошибки."
−10
Created page with "} </syntaxhighlight>"
−112
Created page with "При наименовании скриптов предметов рекомендуется называть их в формате "{Name}Item". В случае с тоннельной киркой мы назовем наш скрипт <code>TunnlerItem.cs</code>. Любой itemclass должен расширять Item, предоставляя ему необходимую нам функциональность:"
+114
Created page with "=== Класс Предмета ==="
−43
Created page with "Это должно быть отмечено как синтаксическая ошибка, потому что класса <code>TunnlerItem</code> пока не существует."
+38
Created page with "<syntaxhighlight lang="c#"> public class TunnlerMod : ModSystem { public override void Start(ICoreAPI api) { base.Start(api); api.RegisterItemClass("tunnler", typeof(TunnlerItem)); } } </syntaxhighlight>"
−56
no edit summary
+2
no edit summary
+27
no edit summary
+22
no edit summary
+80
no edit summary
+25
no edit summary
−7
no edit summary
−18
Created page with "Переопределив метод <code>Start(ICoreAPI)</code>, мы можем зарегистрировать наш класс. Функция <code>RegisterItemClass</code> имеет два параметра: первый - идентификатор класса элемента, поскольку именно так мы будем ссылаться на этот класс в наших json-файлах itemtype. Убедитесь, что он иден..."
+239
Created page with "<syntaxhighlight lang="c#"> public class TunnlerMod : ModSystem { } </syntaxhighlight>"
−56
Created page with "=== Система Модов === Для того чтобы зарегистрировать класс предмета, нам нужно создать мод, который представляет собой класс, расширяющий ModSystem:"
+81
Created page with "Если вы уже читали руководство - Продвинутые Блоки, это должно быть вам знакомо."
+4
Created page with "Создание нашего элемента требует создания пары новых файлов <code>*.cs</code> в нашем проекте."
+24
Created page with "== Класс Предмета =="
−43
Created page with "Мы создадим этот класс, чтобы придать элементу желаемую функциональность."
+11
Created page with "В json вашего itemtype есть только одно новое свойство, <code>class</code>. Это свойство указывает нашему новому элементу, что он будет управляться определенным классом C#. <syntaxhighlight lang="json"> class: "tunnler", </syntaxhighlight>"
+84
no edit summary
Created page with "Как и в случае с Простым предметом, нам нужно создать активы (ассеты) для нашего предмета, включая тип предмета, текстуру и lang-файл. Эти активы довольно просты, и вы можете скачать их [https://wiki.vintagestory.at/images/c/cd/Tunnler_-_No_CS_File.zip здесь]. Распакуйте файл в папку mods, и вы г..."
+152
no edit summary
no edit summary
+18
no edit summary
Created page with "== Item Assets =="
−56
Created page with "В этом уроке мы создадим предмет с более продвинутой функциональностью: кирка, которая позволяет вырыть туннель 3x3, добыв всего один блок."
+51
Created page with "= Создание тоннельной кирки ="
−33
no edit summary
+53
Created page with " __FORCETOC__ {{GameVersion|1.19.3}}"
−55
Created page with "Это руководство по ''code mod'' требует наличия среды разработки. Если у вас её нет, перейдите на страницу Setting up your Development Environment и следуйте инструкции. Также настоятельно рекомендуется прочитать и закончить руководство по Basic Item."
+11,849