Package-level declarations
Custom blocks on note-block states (EffectiveBlock): generated model and blockstates, own hardness, tool types and tiers, sounds, drops, onPlace / onBreak hooks; EffectiveBlockWithEntity adds a marker entity per block for per-block data.
Types
Base class for a custom block backed by a note-block state. ⚠️ Work in progress. Mining, drops and sounds are less battle-tested than items; getCustomBlocks goes through the internal world block cache, which has known bugs. The API may change.
An EffectiveBlock that carries a Marker entity at its centre — a place to keep per-block data.
Material tier of a tool, ordered by level — a tool harvests a block only if its tier is at least the block's.
Tool type that mines a block faster and, if the block requires it, is one of those that can drop its item.