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

Строка 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">ToolAPI - это API, позваляющий&nbsp;регистрировать инструменты и добываемые ими блоки.  
+
<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;регистрировать инструменты и добываемые ими блоки.  
== Добавление инструмента ==
+
=== Добавление инструмента ===
  
 
Для регистрации инструмента используется метод ToolAPI.registerTool(id, toolMaterial, blockMaterials, params)<br/> ''toolMaterial ''- название материала инструмента&nbsp;или объект его описания<br/> ''blockMaterials ''- массив с типами блоков, которые может добыть инструмент<br/> ''params ''- дополнительные параметры и функции инструмента
 
Для регистрации инструмента используется метод ToolAPI.registerTool(id, toolMaterial, blockMaterials, params)<br/> ''toolMaterial ''- название материала инструмента&nbsp;или объект его описания<br/> ''blockMaterials ''- массив с типами блоков, которые может добыть инструмент<br/> ''params ''- дополнительные параметры и функции инструмента
 
<syntaxhighlight lang="JavaScript">ToolAPI.registerTool(ItemID.myPickaxe, "wood", ["stone"], {
 
<syntaxhighlight lang="JavaScript">ToolAPI.registerTool(ItemID.myPickaxe, "wood", ["stone"], {
     damage: 1 // базовый урон инструмента
+
     damage: 1, // базовый урон инструмента,
 +
   brokenId: 0, // id предмета, который установится вместо инструмента при ломании
 +
   isWeapon: false, // является ли инструмент оружием (влияет на уменьшение прочности)
 +
    onAttack: function(item, victim, attacker) { // действие при атаке
 +
       return true; // возврат true предотвращает ломание иснутрумента
 +
   }
 +
   onDestroy: function(item, coords, block, player) { // действие при ломании блока
 +
       return true;
 +
   }
 +
    // расчёт времени ломания блока инструментом
 +
   calcDestroyTime: function(toolData, coords, block, params, destroyTime, enchantData) {
 +
       return 0;
 +
   }
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 17: Строка 29:
 
});</syntaxhighlight>
 
});</syntaxhighlight>
  
== Регистрация блоков ==
+
=== Регистрация блоков ===
  
 
Для регистрации блока используется метод&nbsp;ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);<br/> ''blockMaterial ''- материал блока.<br/> ''level ''- уровень добычи
 
Для регистрации блока используется метод&nbsp;ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);<br/> ''blockMaterial ''- материал блока.<br/> ''level ''- уровень добычи
Строка 29: Строка 41:
 
Для регистрации материала блока используется метод&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>
 
<syntaxhighlight lang="JavaScript">ToolAPI.addBlockMaterial("test", 3);</syntaxhighlight>
</div> </div> </div> </div> </div> </div> </div> </div> </div>
+
</div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div>

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

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

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

Для регистрации инструмента используется метод ToolAPI.registerTool(id, toolMaterial, blockMaterials, params)
toolMaterial - название материала инструмента или объект его описания
blockMaterials - массив с типами блоков, которые может добыть инструмент
params - дополнительные параметры и функции инструмента

ToolAPI.registerTool(ItemID.myPickaxe, "wood", ["stone"], {
    damage: 1, // базовый урон инструмента,
    brokenId: 0, // id предмета, который установится вместо инструмента при ломании
    isWeapon: false, // является ли инструмент оружием (влияет на уменьшение прочности)
    onAttack: function(item, victim, attacker) { // действие при атаке
       return true; // возврат true предотвращает ломание иснутрумента
    }
    onDestroy: function(item, coords, block, player) { // действие при ломании блока
       return true;
    }
    // расчёт времени ломания блока инструментом
    calcDestroyTime: function(toolData, coords, block, params, destroyTime, enchantData) {
        return 0;
    }
}

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

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

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

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

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

Уровни добычи блоков из майнкрафта:
1 - камень
2 - железная руда
3 - алмазная руда
4 - обсидиан

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

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

ToolAPI.addBlockMaterial("test", 3);