Level block notifications and cracks
From the modding book of arismoko/horizonbfbda6a
level.send_block_updated(host, pos) tells clients to read the current block again. It does not change that block or mark the chunk unsaved. Repeated notifications of one position are coalesced until the update log is consumed. Inside a transaction, notification waits for the outermost commit; aborting sends nothing. A stale, parked, unloaded or out-of-height write returns false and queues nothing.
level.set_break_progress(host, breaker, pos, stage) broadcasts a server crack. Use a stable negative breaker ID for a machine. Stages 0..=9 draw a crack; any other stage clears it. This is distinct from level.set_client_break_progress(client_host, breaker, pos, stage), which draws only in the local client's view and requires &mut dyn ClientHost, not a server host. Local cracks expire after 400 ticks without an update and clear when the client changes levels or disconnects.
level.block_break_speed(host, pos, tool) reads the tool's destroy speed on that block, including its minecraft:tool component rules and default speed. It does not include Efficiency, player attributes, effects, fluid/airborne penalties or block hardness. Bare hands return 1.0; an unavailable position returns None. This read takes an immutable host and does not modify blocks or tools.
Edit this page on GitHub · Spotted something wrong? Open an issue .