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

 
Строка 1: Строка 1:
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">ToolAPI - это API, позваляющий&nbsp;регистрировать инструменты и добываемые ими блоки.  
+
<div class="mw-parser-output">ToolAPI - это API, позваляющий&#160;регистрировать инструменты и добываемые ими блоки.<h3> Добавление инструмента </h3>
=== Добавление инструмента ===
+
<p>Для регистрации инструмента используется метод ToolAPI.registerTool(id, toolMaterial, blockMaterials, params)<br /> <i>toolMaterial </i>- название материала инструмента&#160;или объект его описания<br /> <i>blockMaterials </i>- массив с типами блоков, которые может добыть инструмент<br /> <i>params </i>- дополнительные параметры и функции инструмента
 
+
<pre class="fck_mw_syntaxhighlight"><syntaxhighlight lang="JavaScript">ToolAPI.registerTool(ItemID.myPickaxe, &quot;wood&quot;, [&quot;stone&quot;], {
Для регистрации инструмента используется метод ToolAPI.registerTool(id, toolMaterial, blockMaterials, params)<br/> ''toolMaterial ''- название материала инструмента&nbsp;или объект его описания<br/> ''blockMaterials ''- массив с типами блоков, которые может добыть инструмент<br/> ''params ''- дополнительные параметры и функции инструмента
 
<syntaxhighlight lang="JavaScript">ToolAPI.registerTool(ItemID.myPickaxe, "diamond", ["stone"], {
 
 
     damage: 1, // Базовый урон инструмента,
 
     damage: 1, // Базовый урон инструмента,
 
   brokenId: 0, // Id предмета, который установится вместо инструмента при ломании
 
   brokenId: 0, // Id предмета, который установится вместо инструмента при ломании
 
   isWeapon: false, // Является ли инструмент оружием (влияет на уменьшение прочности)
 
   isWeapon: false, // Является ли инструмент оружием (влияет на уменьшение прочности)
   // Действие при ломании инструмента
 
   onBroke: function(item, player) {
 
       return false; // возврат true предотвращает ломание инструмента
 
   },
 
 
     // Действие при атаке
 
     // Действие при атаке
 
     onAttack: function(item, victim, attacker) {
 
     onAttack: function(item, victim, attacker) {
       return false; // возврат true предотвращает повреждение инструмента
+
       return true; // возврат true предотвращает повреждение инструмента
 
   },
 
   },
 
     // Действие при разрушении блока
 
     // Действие при разрушении блока
 
   onDestroy: function(item, coords, block, player) {
 
   onDestroy: function(item, coords, block, player) {
       return false; // возврат true предотвращает повреждение инструмента
+
       return true;
 
   },
 
   },
 
     // Расчёт времени разрушения блока инструментом
 
     // Расчёт времени разрушения блока инструментом
Строка 24: Строка 18:
 
   }
 
   }
 
}
 
}
</syntaxhighlight>
+
</syntaxhighlight></pre>
 
+
</p><p>Для регистрации нового материала инструментов используется метод&#160;ToolAPI.addToolMaterial(toolMaterial, params)
Для регистрации нового материала инструментов используется метод&nbsp;ToolAPI.addToolMaterial(toolMaterial, params)
+
<pre class="fck_mw_syntaxhighlight"><syntaxhighlight lang="JavaScript">ToolAPI.addToolMaterial(&quot;dirt&quot;, {
<syntaxhighlight lang="JavaScript">ToolAPI.addToolMaterial("dirt", {
 
 
     durability: 15, // Прочность (сколько блоков можно сломать)
 
     durability: 15, // Прочность (сколько блоков можно сломать)
 
     level: 1, // Уровень инструмента - определяет, какие блоки инструмент может добыть.
 
     level: 1, // Уровень инструмента - определяет, какие блоки инструмент может добыть.
 
     efficiency: 10, // Эффективность - модификатор скорости ломания блока
 
     efficiency: 10, // Эффективность - модификатор скорости ломания блока
 
     damage: 1 // Урон от материала (складывается с базовым уроном)
 
     damage: 1 // Урон от материала (складывается с базовым уроном)
});</syntaxhighlight>
+
});</syntaxhighlight></pre>
 
+
</p>
=== Регистрация блоков ===
+
<h3> Регистрация блоков </h3>
 
+
<p>Для регистрации блока используется метод&#160;ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);<br /> <i>blockMaterial </i>- материал блока.<br /> <i>level </i>- уровень добычи
Для регистрации блока используется метод&nbsp;ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);<br/> ''blockMaterial ''- материал блока.<br/> ''level ''- уровень добычи
+
<pre class="fck_mw_syntaxhighlight"><syntaxhighlight lang="JavaScript">ToolAPI.registerBlockMaterial(BlockID.myBlock, &quot;stone&quot;, 1);
<syntaxhighlight lang="JavaScript">ToolAPI.registerBlockMaterial(BlockID.myBlock, "stone", 1);
+
</syntaxhighlight></pre>
</syntaxhighlight>
+
</p><p>Уровни добычи блоков из майнкрафта:<br /> 1 - камень<br /> 2 - железная руда<br /> 3 - алмазная руда<br /> 4 - обсидиан
 
+
</p><p>По умолчанию доступны следующие материалы:<br /> "stone" - каменный,<br /> "wood" - деревянный,<br /> "dirt" - земляной,<br /> "plant" - растения,<br /> "fibre" - паутина,<br /> "unbreaking" - неломаемый
Уровни добычи блоков из майнкрафта:<br/> 1 - камень<br/> 2 - железная руда<br/> 3 - алмазная руда<br/> 4 - обсидиан
+
</p><p>Для регистрации материала блока используется метод&#160;ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);<br /> <i>blockMaterial </i>- название материала.<br /> <i>breakingMultiplier </i>- модификатор времени ломания блока при добыче без подходящего инструмента.
 
+
<pre class="fck_mw_syntaxhighlight"><syntaxhighlight lang="JavaScript">ToolAPI.addBlockMaterial(&quot;test&quot;, 3);</syntaxhighlight></pre>
По умолчанию доступны следующие материалы:<br/> "stone" - каменный,<br/> "wood" - деревянный,<br/> "dirt" - земляной,<br/> "plant" - растения,<br/> "fibre" - паутина,<br/> "unbreaking" - неломаемый
+
</p></div>
 
 
Для регистрации материала блока используется метод&nbsp;ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);<br/> ''blockMaterial ''- название материала.<br/> ''breakingMultiplier ''- модификатор времени ломания блока при добыче без подходящего инструмента.
 
<syntaxhighlight lang="JavaScript">ToolAPI.addBlockMaterial("test", 3);</syntaxhighlight>
 
</div> </div> </div>
 

Текущая версия на 04:19, 11 сентября 2023

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

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

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

<syntaxhighlight lang="JavaScript">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;
    }
}
</syntaxhighlight>

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

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

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

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

<syntaxhighlight lang="JavaScript">ToolAPI.registerBlockMaterial(BlockID.myBlock, "stone", 1);
</syntaxhighlight>

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

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

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

<syntaxhighlight lang="JavaScript">ToolAPI.addBlockMaterial("test", 3);</syntaxhighlight>