ToolLib — различия между версиями

Строка 56: Строка 56:
 
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">&nbsp;</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div>
 
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">&nbsp;</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div>
  
=== Регистрация блока ===
+
<div class="mw-parser-output"><div class="mw-parser-output">
 +
=== Регистрация блоков ===
  
Для регистрации блока используется метод&nbsp;ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);
+
Для регистрации блока используется метод&nbsp;ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);<br/> ''blockMaterial ''- материал блока.<br/> ''level ''- уровень добычи
<syntaxhighlight lang="JavaScript">ToolAPI.registerBlockMaterial(BlockID.myBlock, "stone", 1);</syntaxhighlight>
 
  
 
Уровни добычи блоков можно задавать числами или используя константы из списка MiningLevel, добавляемого библиотекой:
 
Уровни добычи блоков можно задавать числами или используя константы из списка MiningLevel, добавляемого библиотекой:
  
 
MiningLevel.STONE&nbsp;=&nbsp;1 - камень<br/> MiningLevel.IRON&nbsp;=&nbsp;2 - железная руда<br/> MiningLevel.DIAMOND&nbsp;=&nbsp;3 - алмазная руда<br/> MiningLevel.OBSIDIAN&nbsp;=&nbsp;4 - обсидиан
 
MiningLevel.STONE&nbsp;=&nbsp;1 - камень<br/> MiningLevel.IRON&nbsp;=&nbsp;2 - железная руда<br/> MiningLevel.DIAMOND&nbsp;=&nbsp;3 - алмазная руда<br/> MiningLevel.OBSIDIAN&nbsp;=&nbsp;4 - обсидиан
 +
 +
Пример:
 +
<syntaxhighlight lang="JavaScript">ToolAPI.registerBlockMaterial(BlockID.myBlock, "stone", 1);
 +
ToolAPI.registerBlockMaterial(BlockID.myBlock2, "stone", MiningLevel.STONE);
 +
</syntaxhighlight>
 +
 +
По умолчанию доступны следующие материалы:<br/> "stone" - каменные блоки,<br/> "wood" - деревянные,<br/> "dirt" - земляные,<br/> "plant" - растения,<br/> "fibre" - паутина,<br/> "unbreaking" - неломаемые
  
 
Для регистрации материала блока используется метод&nbsp;ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);<br/> ''blockMaterial ''- название материала.<br/> ''breakingMultiplier ''- модификатор времени ломания блока при добыче без подходящего инструмента.
 
Для регистрации материала блока используется метод&nbsp;ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);<br/> ''blockMaterial ''- название материала.<br/> ''breakingMultiplier ''- модификатор времени ломания блока при добыче без подходящего инструмента.
  
 
Пример:
 
Пример:
<syntaxhighlight lang="JavaScript">ToolAPI.addBlockMaterial("test", 3);
+
<syntaxhighlight lang="JavaScript">ToolAPI.addBlockMaterial("test", 3);</syntaxhighlight>
</syntaxhighlight>
+
</div> </div>
</div> </div> </div> </div> </div> </div> </div> </div> </div></div></div>
 
  
 
=== Типы инструментов ===
 
=== Типы инструментов ===

Версия 16:27, 27 декабря 2020

ToolAPI - API позваляющий регистрировать инструменты.
ToolLib - Библиотека, предоставляющая универсальные типы инструментов и содержащая несколько вспомогательных методов для работы с инструментами и блоками.

Загрузка

Версия Скачать Изменения Дата выхода
23 Скачать - Поддержка мультиплеера 27.12.20
22 - - Топоры могут делать обтёсанную древесину
- Исправления ошибок
24.08.20
21 - - Добавлен enum MiningLevel 11.07.20


Документация

Подключение

Чтобы подключить библиотеку, необходимо расположить файл библиотеки в папку lib в корне мода написать следующее в начале вашего кода:

IMPORT("ToolLib");

После этого вам станет доступен весь функционал библиотеки.

Добавление инструмента

Для регистрации инструмента используется метод ToolLib.setTool(ItemID, toolMaterial, toolType)

ToolLib.setTool(ItemID.myTool, "wood", ToolType.axe);

Так же вместо названия материала может напрямую быть передан объект с его свойствами.

Для регистрации нового материала инструментов используется метод ToolAPI.addToolMaterial(toolMaterial, params)

ToolAPI.addToolMaterial("dirt", {
    durability: 15, // Прочность (Сколько блоков можно сломать)
    level: 1, // Уровень инструмента - определяет, какие блоки инструмент может добыть.
    efficiency: 10, // Эффективность - модификатор скорости ломания блока
    damage: 1, // Увеличение базового урона инструмента данным материалом
    enchantability: 14 // Зачаровываемость, чем выше, тем более хорошие чары будут при зачаровании
});
 

Регистрация блоков

Для регистрации блока используется метод ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);
blockMaterial - материал блока.
level - уровень добычи

Уровни добычи блоков можно задавать числами или используя константы из списка MiningLevel, добавляемого библиотекой:

MiningLevel.STONE = 1 - камень
MiningLevel.IRON = 2 - железная руда
MiningLevel.DIAMOND = 3 - алмазная руда
MiningLevel.OBSIDIAN = 4 - обсидиан

Пример:

ToolAPI.registerBlockMaterial(BlockID.myBlock, "stone", 1);
ToolAPI.registerBlockMaterial(BlockID.myBlock2, "stone", MiningLevel.STONE);

По умолчанию доступны следующие материалы:
"stone" - каменные блоки,
"wood" - деревянные,
"dirt" - земляные,
"plant" - растения,
"fibre" - паутина,
"unbreaking" - неломаемые

Для регистрации материала блока используется метод ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);
blockMaterial - название материала.
breakingMultiplier - модификатор времени ломания блока при добыче без подходящего инструмента.

Пример:

ToolAPI.addBlockMaterial("test", 3);

Типы инструментов

Cтандартные типы:

ToolType.sword - меч
ToolType.shovel - лопата
ToolType.pickaxe - кирка
ToolType.axe - топор
ToolType.hoe - мотыга

Создание своего типа инструментов

ToolType.myType = {
    enchantType: Native.EnchantType.pickaxe, //Тип чар для инструмента
    damage: 2, // Базовый урон инструмента
    blockTypes: ["dirt", "stone", "test"], // Материалы блоков, которые может ломать инструмент
    onAttack: function(item) {
        if (item.data > Item.getMaxDamage(item.id)) {
            item.id = item.data = item.count = 0;
        }
    }
}

Все методы

// Скоро будут добавлены