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

Строка 1: Строка 1:
<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"><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"><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"><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"><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">
 
ToolAPI - API позваляющий&nbsp;регистрировать инструменты.<br/> ToolLib -&nbsp;Библиотека, предоставляющая универсальные типы инструментов и содержащая несколько вспомогательных методов для работы с инструментами и блоками.
 
ToolAPI - API позваляющий&nbsp;регистрировать инструменты.<br/> ToolLib -&nbsp;Библиотека, предоставляющая универсальные типы инструментов и содержащая несколько вспомогательных методов для работы с инструментами и блоками.
  
{| border="1" cellpadding="1" cellspacing="1" style="width: 223px;"
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 579px;"
 
|-
 
|-
| style="width: 83px; text-align: center;" | '''Версия'''
+
| style="width: 68px; text-align: center;" | '''Версия'''
| style="width: 127px; text-align: center;" | '''Скачать'''
+
| style="width: 81px; text-align: center;" | '''Скачать'''
 +
| style="width: 305px; text-align: center;" | '''Изменения'''
 +
| style="width: 100px; text-align: center;" | '''Дата выхода'''
 
|-
 
|-
| style="width: 83px; text-align: center;" | '''20'''
+
| style="width: 68px; text-align: center;" | '''23'''
| style="width: 127px; text-align: center;" | [https://drive.google.com/file/d/1obV7as1BOKHV04U6D3st6JXeSraWl54H/view?usp=sharing Скачать]
+
| style="width: 81px; text-align: center;" | [https://github.com/MineExplorer/IC_Libraries/releases/tag/toollib-v23 Скачать]
 +
| style="width: 305px;" | - Поддержка мультиплеера
 +
| style="width: 100px; text-align: center;" | 27.12.20
 +
|-
 +
| style="width: 68px; text-align: center;" | '''22'''
 +
| style="width: 81px; text-align: center;" | -
 +
| style="width: 305px;" | - Топоры могут делать обтёсанную древесину<br/> -&nbsp;Исправления ошибок
 +
| style="width: 100px; text-align: center;" | 24.08.20
 +
|-
 +
| style="width: 68px; text-align: center;" | '''21'''
 +
| style="width: 81px; text-align: center;" | -
 +
| style="width: 305px;" | - Добавлен enum&nbsp;MiningLevel
 +
| style="width: 100px; text-align: center;" | 11.07.20
 
|}
 
|}
 
&nbsp;
 
 
<div class="mw-parser-output">
 
<div class="mw-parser-output">
== Документация ==
+
== <br/> Документация ==
  
 
=== Подключение ===
 
=== Подключение ===
Строка 24: Строка 36:
 
=== Добавление инструмента ===
 
=== Добавление инструмента ===
  
Для регистрации инструмента используется метод ToolAPI.setTool(ItemID, toolMaterial, toolType)
+
Для регистрации инструмента используется метод ToolLib.setTool(ItemID, toolMaterial, toolType)
<syntaxhighlight lang="JavaScript">ToolAPI.setTool(ItemID.myTool, "wood", ToolType.axe);
+
<syntaxhighlight lang="JavaScript">ToolLib.setTool(ItemID.myTool, "wood", ToolType.axe);
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Строка 39: Строка 51:
 
});
 
});
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
=== Регистрация блока ===
 
=== Регистрация блока ===
Строка 46: Строка 57:
 
<syntaxhighlight lang="JavaScript">ToolAPI.registerBlockMaterial(BlockID.myBlock, "stone", 1);</syntaxhighlight>
 
<syntaxhighlight lang="JavaScript">ToolAPI.registerBlockMaterial(BlockID.myBlock, "stone", 1);</syntaxhighlight>
  
Уровни блоков:<br/> 1 - камень<br/> 2 - железная руда<br/> 3 - алмазная руда<br/> 4 - обсидиан
+
Уровни добычи блоков можно задавать как цифрами, так и&nbsp;через константы с уровнями:
 +
 
 +
MiningLevel.STONE&nbsp;=&nbsp;1 - камень<br/> MiningLevel.IRON&nbsp;=&nbsp;2 - железная руда<br/> MiningLevel.DIAMOND&nbsp;=&nbsp;3 - алмазная руда<br/> MiningLevel.OBSIDIAN&nbsp;=&nbsp;4 - обсидиан
  
 
Для регистрации материала блока используется метод&nbsp;ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);
 
Для регистрации материала блока используется метод&nbsp;ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);
 
<syntaxhighlight lang="JavaScript">ToolAPI.addBlockMaterial("test", 3);</syntaxhighlight>
 
<syntaxhighlight lang="JavaScript">ToolAPI.addBlockMaterial("test", 3);</syntaxhighlight>
<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 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>  
 
 
 
=== Типы инструментов ===
 
=== Типы инструментов ===
  
Строка 63: Строка 75:
 
    damage: 2, // Базовый урон инструмента
 
    damage: 2, // Базовый урон инструмента
 
    blockTypes: ["dirt", "stone", "test"], // Материалы блоков, которые может ломать инструмент
 
    blockTypes: ["dirt", "stone", "test"], // Материалы блоков, которые может ломать инструмент
    onAttack: function(item){
+
    onAttack: function(item) {
        if(item.data > Item.getMaxDamage(item.id)){
+
        if (item.data > Item.getMaxDamage(item.id)) {
 
            item.id = item.data = item.count = 0;
 
            item.id = item.data = item.count = 0;
 
        }
 
        }
 
    }
 
    }
 
} </syntaxhighlight>
 
} </syntaxhighlight>
</div> </div> </div></div>
+
</div> </div> </div> </div>  
 
 
 
=== Все методы ===
 
=== Все методы ===
  
 
// Скоро будут добавлены
 
// Скоро будут добавлены
</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div>
+
</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div>

Версия 14:45, 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: 3, // Прочность (Сколько блоков можно сломать)
    level: 1, // Уровень инструмента, влияет на блоки которые инструмент может ломать
    efficiency: 10, // Эффективность - модификатор скорости ломания блока
    damage: 1, // Увеличение базового урона инструмента данным материалом
    enchantability: 14 // Зачаровываемость, чем выше, тем более хорошие чары будут при зачаровании
});

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

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

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

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

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

Для регистрации материала блока используется метод ToolAPI.addBlockMaterial(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;
        }
    }
}

Все методы

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