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

 
(не показано 7 промежуточных версий этого же участника)
Строка 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">ToolLib -&nbsp;Библиотека, предоставляющая универсальные типы инструментов и упрощающая создание инструментов.  
ToolAPI - API позваляющий&nbsp;регистрировать инструменты.<br/> ToolLib -&nbsp;Библиотека, предоставляющая универсальные типы инструментов и содержащая несколько вспомогательных методов для работы с инструментами и блоками.
 
 
 
 
== Загрузка ==
 
== Загрузка ==
  
Строка 26: Строка 24:
 
| style="width: 100px; text-align: center;" | 11.07.20
 
| style="width: 100px; text-align: center;" | 11.07.20
 
|}
 
|}
<div class="mw-parser-output">
+
 
 
== <br/> Документация ==
 
== <br/> Документация ==
  
Строка 44: Строка 42:
 
Так же вместо названия материала может напрямую быть передан объект с его свойствами.
 
Так же вместо названия материала может напрямую быть передан объект с его свойствами.
  
Для регистрации нового материала инструментов используется метод&nbsp;ToolAPI.addToolMaterial(toolMaterial, params)
+
Материалы инструментов регистрируются методом&nbsp;ToolAPI.addToolMaterial(toolMaterial, params), но библиотека добавляет поддержку свойства зачаровываемости.
 
<syntaxhighlight lang="JavaScript">ToolAPI.addToolMaterial("dirt", {
 
<syntaxhighlight lang="JavaScript">ToolAPI.addToolMaterial("dirt", {
    durability: 3, // Прочность (Сколько блоков можно сломать)
+
    durability: 15, // Прочность (сколько блоков можно сломать)
    level: 1, // Уровень инструмента, влияет на блоки которые инструмент может ломать
+
    level: 1, // Уровень инструмента - определяет, какие блоки инструмент может добыть.
 
    efficiency: 10, // Эффективность - модификатор скорости ломания блока
 
    efficiency: 10, // Эффективность - модификатор скорости ломания блока
 
    damage: 1, // Увеличение базового урона инструмента данным материалом
 
    damage: 1, // Увеличение базового урона инструмента данным материалом
Строка 53: Строка 51:
 
});
 
});
 
</syntaxhighlight>
 
</syntaxhighlight>
<div class="mw-parser-output">
 
=== Регистрация блока ===
 
  
Для регистрации блока используется метод&nbsp;ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);
+
=== Уровни добычи ===
<syntaxhighlight lang="JavaScript">ToolAPI.registerBlockMaterial(BlockID.myBlock, "stone", 1);</syntaxhighlight>
 
  
Уровни добычи блоков можно задавать как цифрами, так и&nbsp;через константы с уровнями:
+
Библиотека позволяет вместо чисел использовать константы для уровней блоков и инструментов:
  
 
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 - обсидиан
  
Для регистрации материала блока используется метод&nbsp;ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);
+
=== Стандартные типы инструментов ===
<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>
 
=== Типы инструментов ===
 
  
Cтандартные типы:
+
ToolType.sword - меч<br/> ToolType.shovel - лопата<br/> ToolType.pickaxe - кирка<br/> ToolType.axe - топор<br/> ToolType.hoe - мотыга
  
ToolType.sword - меч<br/> ToolType.shovel - лопата<br/> ToolType.pickaxe - кирка<br/> ToolType.axe - топор<br/> ToolType.hoe - мотыга
+
=== Создание своего типа инструментов ===
  
Создание своего типа инструментов
+
Тип инструмента - это объект, содержащий свойства&nbsp;и функции&nbsp;инструмента. Библиотека поддерживает все параметры инструмента, указываемые&nbsp;ToolAPI.registerTool, а также добавляет новые.&nbsp;
 
<syntaxhighlight lang="JavaScript">ToolType.myType = {
 
<syntaxhighlight lang="JavaScript">ToolType.myType = {
 
    enchantType: Native.EnchantType.pickaxe, //Тип чар для инструмента
 
    enchantType: Native.EnchantType.pickaxe, //Тип чар для инструмента
 
    damage: 2, // Базовый урон инструмента
 
    damage: 2, // Базовый урон инструмента
 
    blockTypes: ["dirt", "stone", "test"], // Материалы блоков, которые может ломать инструмент
 
    blockTypes: ["dirt", "stone", "test"], // Материалы блоков, которые может ломать инструмент
    onAttack: function(item) {
+
    useItem: function(coords, item, block, player) { // Функция клика по блоку
        if (item.data > Item.getMaxDamage(item.id)) {
+
        if (item.data > 0) {
            item.id = item.data = item.count = 0;
+
            Entity.setCarriedItem(player, item.id, 1, item.data - 1, item.extra); // Починить инструмент на 1
        }
+
        }
 
    }
 
    }
 
} </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>

Текущая версия на 00:23, 6 декабря 2021

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 // Зачаровываемость, чем выше, тем более хорошие чары будут при зачаровании
});

Уровни добычи[править]

Библиотека позволяет вместо чисел использовать константы для уровней блоков и инструментов:

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

Стандартные типы инструментов[править]

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

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

Тип инструмента - это объект, содержащий свойства и функции инструмента. Библиотека поддерживает все параметры инструмента, указываемые ToolAPI.registerTool, а также добавляет новые. 

ToolType.myType = {
    enchantType: Native.EnchantType.pickaxe, //Тип чар для инструмента
    damage: 2, // Базовый урон инструмента
    blockTypes: ["dirt", "stone", "test"], // Материалы блоков, которые может ломать инструмент
    useItem: function(coords, item, block, player) { // Функция клика по блоку
        if (item.data > 0) {
            Entity.setCarriedItem(player, item.id, 1, item.data - 1, item.extra); // Починить инструмент на 1
        }
    }
}

Все методы[править]

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