Confirmedusers
409
edits
(Created page with "Нам нужно знать, с какой стороны стоит игрок (на какую сторону он ориентируется) и находится ли он в творческом режиме или режиме выживания (нужно ли сбрасывать добытые предметы или нет). Прежде чем переопределять <code>OnBlockBrokenWith</code>, мы должны создать метод, кото...") |
No edit summary |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 75: | Line 75: | ||
{ | { | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 118: | Line 117: | ||
<!--T:27--> | <!--T:27--> | ||
Теперь мы можем реализовать <code>OnBlockBroken</code> довольно легко, позаботившись обо всех возможных осях, с которыми может столкнуться игрок: | |||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
public override bool OnBlockBrokenWith(IWorldAccessor world, Entity byEntity, ItemSlot itemslot, BlockSelection blockSel, float dropQuantityMultiplier = 1) | public override bool OnBlockBrokenWith(IWorldAccessor world, Entity byEntity, ItemSlot itemslot, BlockSelection blockSel, float dropQuantityMultiplier = 1) | ||
Line 152: | Line 149: | ||
<!--T:29--> | <!--T:29--> | ||
Если вы всё сделали правильно, то ваш файл должен быть похож на: | |||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
using Vintagestory.API.Common; | using Vintagestory.API.Common; | ||
Line 160: | Line 155: | ||
using Vintagestory.API.MathTools; | using Vintagestory.API.MathTools; | ||
namespace ExampleMods | namespace ExampleMods | ||
{ | { | ||
Line 166: | Line 160: | ||
{ | { | ||
public override void Start(ICoreAPI api) | public override void Start(ICoreAPI api) | ||
{ | { | ||
Line 173: | Line 166: | ||
} | } | ||
} | } | ||
public class TunnlerItem : Item | public class TunnlerItem : Item | ||
{ | { | ||
public void DestroyBlocks(IWorldAccessor world, BlockPos min, BlockPos max, IPlayer player) | public void DestroyBlocks(IWorldAccessor world, BlockPos min, BlockPos max, IPlayer player) | ||
{ | { | ||
Line 200: | Line 190: | ||
} | } | ||
public override bool OnBlockBrokenWith(IWorldAccessor world, Entity byEntity, ItemSlot itemslot, BlockSelection blockSel, float dropQuantityMultiplier = 1) | public override bool OnBlockBrokenWith(IWorldAccessor world, Entity byEntity, ItemSlot itemslot, BlockSelection blockSel, float dropQuantityMultiplier = 1) | ||
{ | { | ||
Line 226: | Line 215: | ||
} | } | ||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:38--> | <!--T:38--> | ||
Вы также можете скачать файл напрямую: [https://wiki.vintagestory.at/images/a/ad/Tunnler.cs Tunnler.cs]. | |||
== Тестирование == <!--T:39--> | |||
= | |||
<!--T:40--> | <!--T:40--> | ||
Вот как это выглядит в игре: | |||
<!--T:41--> | <!--T:41--> | ||
<youtube>2MRzYKguVFY</youtube> | <youtube>2MRzYKguVFY</youtube> | ||
== Распространение == <!--T:42--> | |||
= | |||
=== Использование нового Шаблона Мода === <!--T:43--> | |||
Если вы используете шаблон мода, следуйте инструкциям [[Modding:Setting up your Development Environment#Packaging the Mod|Настройка среды разработки]], чтобы упаковать ваш мод для дальнейшего распространения. | |||
=== Использование Modtools (старый способ) === <!--T:44--> | |||
Если вы используете программу modtools, откройте её и введите <code>pack <your mod id></code>. Теперь вы можете взять zip-файл и поделиться им с другими людьми. Он будет работать так же, как и обычные моды, вы можете установить его, скопировав в папку <code>mods</code>. | |||
= Скачать Мод = | |||
<!--T:45--> | <!--T:45--> | ||
Варианты мода из этого руководства: | |||
* for VS v1.9: [https://wiki.vintagestory.at/images/7/7b/Tunnler_vs1.9_v1.0.0.zip Tunnler_vs1.9_v1.0.0.zip] | * for VS v1.9: [https://wiki.vintagestory.at/images/7/7b/Tunnler_vs1.9_v1.0.0.zip Tunnler_vs1.9_v1.0.0.zip] | ||
* for VS v1.8: [https://wiki.vintagestory.at/images/6/66/Tunnler.zip Tunnler.zip] | * for VS v1.8: [https://wiki.vintagestory.at/images/6/66/Tunnler.zip Tunnler.zip] |