ToolAPI
Index
Interfaces
Functions
- addBlockMaterial
- addToolMaterial
- dropExpOrbs
- dropOreExp
- fortuneDropModifier
- getBlockData
- getBlockDestroyLevel
- getBlockMaterial
- getBlockMaterialName
- getCarriedToolData
- getCarriedToolLevel
- getDestroyTimeViaTool
- getEnchantExtraData
- getToolData
- getToolLevel
- getToolLevelViaBlock
- refresh
- registerBlockDiggingLevel
- registerBlockMaterial
- registerBlockMaterialAsArray
- registerSword
- registerTool
- resetEngine
Interfaces
BlockData
Object used to store all of the ToolAPI block data.
readonlyisNative
Specifies whether the block was added as vanilla item or as a custom
block. true
, if the block is vanilla, false
if the block is custom.
Should not generally be changed.
level
Digging level of the block. If digging level of tool is higher then block's one, the block is dropped.
material
Material data used for this block.
BlockMaterial
Object used to describe block material.
multiplier
Multiplier used to calculate block breaking speed.
name
Block material name.
EnchantData
Object containing some of the enchants that are used to calculate block destroy time.
all
Type declaration
[id number]: number
efficiency
Specifies the level of Efficiency enchantment, or 0
if the item
doesn't have this enchant.
experience
Specifies the amount of additional experience that is dropped when player breaks block with specified item.
fortune
Specifies the level of Fortune enchantment, or 0
if the item doesn't
have this enchant.
silk
If true
, the item has Silk Touch enchantment.
unbreaking
Specifies the level of Unbreaking enchantment, or 0
if the item
doesn't have this enchant.
ToolMaterial
Object used to describe tool material type.
optionaldamage
Additional damage for the instruments, this value is added to the base tool damage. If damage is not integer, it is rounded to the higher integer with the chance of the fractional part, e.g. if the value is 3.3, the damage will be 4 with the chance of 30%.
optionaldurability
Durability of the tool, 33 is a default value for golden tools and 1562 is a default value for diamond tools.
optionalefficiency
Divider used to calculate block breaking speed. 2 is a default value for wooden instruments and 12 is a default value for golden instruments.
optionallevel
Block breaking level, 1 is wooden instruments, 4 is diamond instruments. If block's breaking level is less or equal to the tool's level, block will be dropped when broken.
ToolParams
Object containing additional parameters and functions used by Core Engine to work with the tool.
optionalblockMaterials
List of block material names that can be broken by this instrument. Defined by ToolAPI.registerTool,
Type declaration
[key string]: boolean
optionalbrokenId
Numeric ID of the item that replaces tool item when it's broken. By default the tool disappears.
optionalcalcDestroyTime
Function used to recalculate block destroy time based on some custom logic.
Type declaration
Parameters
tool: ItemInstance
Tool item.
coords: ItemUseCoordinates
Coordinates where the block is being broken.
block: Tile
Block that is being broken.
timeData: { base: number; devider: number; modifier: number }
Some time properties that can be used to calculate destroy time for the tool and block.
base: number
Base destroy time of the block.
devider: number
Tool material devider.
modifier: number
Divider applied due to efficiency enchantment.
defaultTime: number
Default block destroy time, calculated as
base / divider / modifier
.optionalenchantData: EnchantData
Tool's enchant data.
Returns number
optionaldamage
Base damage of the instrument, is added to the material damage to calculate the tool's final damage.
optionalisNativeinternal
If true
, the tool is vanilla Minecraft tool. Generally used within
Core Engine code and should not be used within mods until you really
know what you're doing.
optionalisWeapon
If true, breaking blocks with this tool makes it break 2x faster, otherwise attacking mobs breaks tool 2x faster.
optionalmodifyEnchant
Function that is used to change enchant data object before all the calculations. Can be used to add some enchantment properties, such as silk touch, efficiency, unbreaking or fortune.
Type declaration
Parameters
enchantData: EnchantData
Tool's enchant data.
item: ItemInstance
Tool item.
optionalcoords: ItemUseCoordinates
Coordinates where the block is being broken. Passed only if the block is destroyed.
optionalblock: Tile
Destroyed block data. Passed only if the block is destroyed.
Returns void
optionalonAttack
Function that is called when players attacks some entity with the tool.
Type declaration
Parameters
item: ItemInstance
Tool item.
victim: number
Unique numeric ID of the entity that is attacked.
attacker: number
Entity UID of the player that attacked victim.
Returns boolean
optionalonBroke
Function that is called when the instrument is broken.
Type declaration
Parameters
item: ItemInstance
Tool item.
Returns boolean
optionalonDestroy
Function that is called when the block is destroyed.
Type declaration
Parameters
item: ItemInstance
Tool item.
coords: ItemUseCoordinates
Coordinates where the block is destroyed.
block: Tile
Block that is destroyed.
player: number
Entity UID of the player that destroyed the block.
Returns boolean
optionalonMineBlock
Function that is called when the block that has a destroy function is destroyed.
Type declaration
Parameters
coords: ItemUseCoordinates
Coordinates where the block is destroyed.
carried: ItemInstance
An item in player's hand.
fullTile: Tile
Block that was destroyed.
blockSource: BlockSource
BlockSource object of the world where the block was destroyed.
player: number
Entity UID of the player that destroyed the block.
Returns void
optionaltoolMaterial
Properties of the tool material. Defined by ToolAPI.registerTool,
Functions
addBlockMaterial
Creates new material with specified breaking speed multiplier. Some of the materials are already registered:
stone - used for pickaxes
wood - used for axes
dirt - used for shovels
plant - used for all plants (no vanilla tool supports this material)
fibre - used for swords (to break web)
cobweb - currently not used
unbreaking - used for unbreaking blocks, liquids, end portal, etc.
Parameters
name: string
new (or existing) material name
breakingMultiplier: number
multiplier used to calculate block breaking speed. 1 is a default value for dirt and 3 is a default value for stone
Returns void
addToolMaterial
Creates new tool material with specified parameters. Some of the tool materials are already registered:
wood - used for wooden instruments
stone - used for stone instruments
iron - used for iron instruments
golden - used for golden instruments
diamond - used for diamond instruments
Parameters
name: string
new (or existing) material name
material: ToolMaterial
parameters describing material properties
Returns void
dropExpOrbs
Spawns experience orbs on the specified coordinate.
Parameters
x: number
y: number
z: number
value: number
amount of experience to spawn
Returns void
dropOreExp
Spawns random amount of experience on the specified block coordinates.
Parameters
coords: Vector
block coordinates
minVal: number
minimum amount of orbs to be spawned
maxVal: number
maximum amount of orbs to be spawned
modifier: number
additional experiences, usually passed from ToolAPI.EnchantData.experience field
Returns void
fortuneDropModifier
Applies fortune drop modifier to the drop array.
Parameters
drop: ItemInstanceArray[]
drop array containing number of the arrays
level: number
enchantment level
Returns ItemInstanceArray[]
getBlockData
Parameters
blockID: number
numeric tile ID
Returns BlockData | undefined
Object containing ToolAPI block data or undefined if no block data was specified for this block.
getBlockDestroyLevel
Parameters
blockID: number
numeric tile ID
Returns number
Destroy level of the block with specified ID or
0
, if no block data was specified for this block.
getBlockMaterial
Parameters
blockID: number
numeric tile ID
Returns Nullable<BlockMaterial>
Object containing block material information or
null
, if no block data was specified for this block.
getBlockMaterialName
Parameters
blockID: number
numeric tile ID
Returns Nullable<string>
getCarriedToolData
Returns any
Carried tool information stored in slightly modified ToolAPI.ToolParams object or null if no tool data was specified.
getCarriedToolLevel
Returns number
Carried tool's breaking level or
0
if no tool data was provided.
getDestroyTimeViaTool
Calculates destroy time for the block that is being broken with specified tool at the specified coords. Used mostly by Core Engine to apply break. time
Parameters
fullBlock: Tile
toolItem: ItemInstance
coords: ItemUseCoordinates
optionalignoreNative: boolean
if block and item are native items, and this parameter is set to true, all the calculations will still be performed
Returns number
getEnchantExtraData
Parameters
optionalextra: ItemExtraData
item extra instance, if not specified, method uses carried item's extra
Returns EnchantData
Enchant data object, containing enchants used for blocks destroy speed calculations.
getToolData
Parameters
itemID: number
numeric item ID
Returns Nullable<ToolParams>
Tool information stored in slightly modified ToolAPI.ToolParams object or null if no tool data was specified.
getToolLevel
Parameters
itemID: number
numeric item ID
Returns number
Tool's breaking level or 0 if no tool data was provided.
getToolLevelViaBlock
Parameters
itemID: number
numeric item ID
blockID: number
numeric tile ID
Returns number
Digging level if specified tool can mine specified block,
0
if data for the tool or for the block was not specified or if specified tool cannot mine specified block.
refresh
Returns void
registerBlockDiggingLevel
Sets digging level for block. If digging level of tool is higher then block's one, the block is dropped.
Parameters
uid: number
numeric tile ID
level: number
block's digging level
Returns void
registerBlockMaterial
Registers material and digging level for the specified block.
Parameters
uid: number
numeric tile ID
materialName: string
material name
optionallevel: number
block's digging level
optionalisNative: boolean
used to mark vanilla blocks data. Generally used within Core Engine code and should not be used within mods until you really know what you're doing
Returns void
registerBlockMaterialAsArray
Registers material and digging level for the specified blocks.
Parameters
materialName: string
material name
UIDs: number[]
an array of numeric tiles IDs
isNative: boolean
used to mark vanilla blocks data. Generally used within Core Engine code and should not be used within mods until you really know what you're doing
Returns void
registerSword
Registers item as a sword.
Parameters
id: number
numeric item ID
toolMaterial: string | ToolMaterial
registered tool material name or tool material object used to register the sword
optionalparams: ToolParams
additional tool parameters
Returns void
registerTool
Registers item as a tool.
Parameters
id: number
numeric item ID
toolMaterial: string | ToolMaterial
registered tool material name or tool material object used to register the tool
blockMaterials: string[]
block material names that can be broken by this instrument. For example, you can use ["stone"] for the pickaxes
optionalparams: ToolParams
additional tool parameters
Returns void
resetEngine
- internal
Returns void
Module used to manage block and tools material and create tools with all required properties.