- Description
- Constructor Summary
- Method Summary
- Constructor Details
- Method Details
- performBlockDamage(Vector3i, ItemStack, ItemTool, float, int, boolean, Ref, ComponentAccessor, ComponentAccessor)
- performBlockDamage(Ref, Ref, Vector3i, ItemStack, ItemTool, String, boolean, float, int, boolean, Ref, ComponentAccessor, ComponentAccessor)
- performBlockDamage(Ref, Ref, List, Vector3i, ItemStack, ItemTool, String, boolean, float, int, boolean, boolean, ComponentAccessor, ComponentAccessor)
- performBlockBreak(Ref, ItemStack, Vector3i, Ref, ComponentAccessor, ComponentAccessor)
- performBlockBreak(Ref, ItemStack, List, int, ComponentAccessor, ComponentAccessor)
- performBlockBreak(Ref, ItemStack, Vector3i, int, Ref, ComponentAccessor, ComponentAccessor)
- performBlockBreak(Ref, Ref, ItemStack, Vector3i, int, Ref, ComponentAccessor, ComponentAccessor)
- performBlockBreak(Vector3i, BlockType, ItemStack, int, String, String, int, Ref, Ref, ComponentAccessor, ComponentAccessor)
- performBlockBreak(Vector3i, BlockType, ItemStack, int, String, String, int, Ref, Ref, Ref, ComponentAccessor, ComponentAccessor)
- naturallyRemoveBlockByPhysics(Vector3i, BlockType, int, int, Ref, ComponentAccessor, ComponentAccessor)
- naturallyRemoveBlock(Vector3i, BlockType, int, int, String, String, int, Ref, ComponentAccessor, ComponentAccessor)
- shouldPickupByInteraction(BlockType)
- performPickupByInteraction(Ref, Vector3i, BlockType, int, Ref, BlockSection, ComponentAccessor, ComponentAccessor)
- getDrops(BlockType, int, String, String)
- fireOnBreakInteraction(Ref, Ref, BlockType, Vector3i, int, int, ComponentAccessor)
- queueOnBreakImpactInteraction(Ref, BlockType, Vector3i, int, CommandBuffer)
Class BlockHarvestUtils
The performBlockDamage, performBlockBreak and performPickupByInteraction
methods are the entry points; the rest support them with drops, durability, sounds, filler-block
resolution and low-level block removal.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidfireOnBreakInteraction(Ref<EntityStore> breakerRef, Ref<EntityStore> impactRef, BlockType blockType, org.joml.Vector3i blockPosition, int rotationIndex, int setBlockSettings, ComponentAccessor<EntityStore> entityStore) Fires theInteractionType.OnBreakinteraction chain defined on the broken block type, if any.Builds the list of item stacks to drop for a broken block.static voidnaturallyRemoveBlock(org.joml.Vector3i blockPosition, BlockType blockType, int filler, int quantity, String itemId, String dropListId, int setBlockSettings, Ref<ChunkStore> sectionReference, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) Removes the block at the given position and spawns its drops, resolving filler blocks back to their origin.static voidnaturallyRemoveBlockByPhysics(org.joml.Vector3i blockPosition, BlockType blockType, int filler, int setBlockSettings, Ref<ChunkStore> sectionReference, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) Deprecated.static voidperformBlockBreak(Ref<EntityStore> ref, Ref<EntityStore> impactRef, ItemStack heldItemStack, org.joml.Vector3i targetBlock, int setBlockSettings, Ref<ChunkStore> sectionReference, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) Breaks the block at the given position and attributes the break separately from the entity that physically reached it.static intperformBlockBreak(Ref<EntityStore> ref, ItemStack heldItemStack, List<org.joml.Vector3i> targetBlocks, int setBlockSettings, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) Breaks a collection of blocks (which may span multiple chunks) using a single item, for example a creative-mode shaped break.static voidperformBlockBreak(Ref<EntityStore> ref, ItemStack heldItemStack, org.joml.Vector3i targetBlock, int setBlockSettings, Ref<ChunkStore> sectionReference, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) Breaks the block at the given position, resolving filler blocks so that breaking any cell of a multi-block structure breaks the whole structure.static voidperformBlockBreak(Ref<EntityStore> ref, ItemStack heldItemStack, org.joml.Vector3i targetBlock, Ref<ChunkStore> sectionReference, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) Convenience overload ofperformBlockBreak(Ref, ItemStack, Vector3i, int, Ref, ComponentAccessor, ComponentAccessor)that breaks the block withSetBlockSettings.NONE.static voidperformBlockBreak(org.joml.Vector3i blockPosition, BlockType targetBlockTypeKey, ItemStack heldItemStack, int dropQuantity, String dropItemId, String dropListId, int setBlockSettings, Ref<EntityStore> ref, Ref<ChunkStore> sectionReference, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) Convenience overload ofperformBlockBreak(Vector3i, BlockType, ItemStack, int, String, String, int, Ref, Ref, Ref, ComponentAccessor, ComponentAccessor)for a break where the instigating entity reached the block itself.static voidperformBlockBreak(org.joml.Vector3i blockPosition, BlockType targetBlockTypeKey, ItemStack heldItemStack, int dropQuantity, String dropItemId, String dropListId, int setBlockSettings, Ref<EntityStore> ref, Ref<EntityStore> impactRef, Ref<ChunkStore> sectionReference, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) The core block-break implementation: removes the block and spawns its drops, firing a cancellableBreakBlockEventwhen an instigating entity is present.static intperformBlockDamage(Ref<EntityStore> ref, Ref<EntityStore> impactRef, List<org.joml.Vector3i> targetBlocks, org.joml.Vector3i anchorBlock, ItemStack itemStack, ItemTool tool, String toolId, boolean matchTool, float damageScale, int setBlockSettings, boolean isExplosion, boolean durabilityPerBlock, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) Applies block damage to a collection of blocks (which may span multiple chunks) using a single item, for example a shaped break.static booleanperformBlockDamage(Ref<EntityStore> ref, Ref<EntityStore> impactRef, org.joml.Vector3i targetBlockPos, ItemStack itemStack, ItemTool tool, String toolId, boolean matchTool, float damageScale, int setBlockSettings, boolean isExplosion, Ref<ChunkStore> sectionReference, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) Damages the single block at the given position, breaking it once its health reaches zero.static booleanperformBlockDamage(org.joml.Vector3i targetBlock, ItemStack itemStack, ItemTool tool, float damageScale, int setBlockSettings, boolean isExplosion, Ref<ChunkStore> sectionReference, ComponentAccessor<EntityStore> componentAccessor, ComponentAccessor<ChunkStore> chunkStore) Convenience overload ofperformBlockDamage(Ref, Ref, Vector3i, ItemStack, ItemTool, String, boolean, float, int, boolean, Ref, ComponentAccessor, ComponentAccessor)for damage with no instigating entity (for example explosion damage): noref, no tool id and no tool match.static voidperformPickupByInteraction(Ref<EntityStore> ref, org.joml.Vector3i targetBlock, BlockType blockType, int filler, Ref<ChunkStore> sectionReference, BlockSection blockSection, ComponentAccessor<EntityStore> entityStore, ComponentAccessor<ChunkStore> chunkStore) Harvests (picks up) the block at the given position straight into the entity's inventory, as used by harvest interactions.static voidqueueOnBreakImpactInteraction(Ref<EntityStore> attributedRef, BlockType blockType, org.joml.Vector3i blockPosition, int rotationIndex, CommandBuffer<EntityStore> commandBuffer) Queues theInteractionType.OnBreakImpactinteraction chain defined on the block type, if any.static booleanshouldPickupByInteraction(BlockType blockType) Determines whether the given block type can be picked up via interaction.
-
Constructor Details
-
BlockHarvestUtils
public BlockHarvestUtils()
-
-
Method Details
-
performBlockDamage
public static boolean performBlockDamage(@Nonnull org.joml.Vector3i targetBlock, @Nullable ItemStack itemStack, @Nullable ItemTool tool, float damageScale, int setBlockSettings, boolean isExplosion, @Nonnull Ref<ChunkStore> sectionReference, @Nonnull ComponentAccessor<EntityStore> componentAccessor, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Convenience overload ofperformBlockDamage(Ref, Ref, Vector3i, ItemStack, ItemTool, String, boolean, float, int, boolean, Ref, ComponentAccessor, ComponentAccessor)for damage with no instigating entity (for example explosion damage): noref, no tool id and no tool match.- Parameters:
targetBlock- The position of the block to damage.itemStack- The item stack responsible for the damage, ornull.tool- The item tool to reference, ornull.damageScale- A multiplier applied to the calculated damage.setBlockSettings- TheSetBlockSettingsto apply.isExplosion- Whether the damage originates from an explosion.sectionReference- The reference of the target block's chunk section entity.componentAccessor- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.- Returns:
trueif the block was broken,falseotherwise.
-
performBlockDamage
public static boolean performBlockDamage(@Nullable Ref<EntityStore> ref, @Nullable Ref<EntityStore> impactRef, @Nonnull org.joml.Vector3i targetBlockPos, @Nullable ItemStack itemStack, @Nullable ItemTool tool, @Nullable String toolId, boolean matchTool, float damageScale, int setBlockSettings, boolean isExplosion, @Nonnull Ref<ChunkStore> sectionReference, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Damages the single block at the given position, breaking it once its health reaches zero.Tool durability is always consumed for the hit (subject to the usual gating in
applyItemDurabilityLoss(Ref, ItemStack, Item, BlockType, ActiveSlotInventoryComponent, ComponentAccessor)).To damage several blocks from one action, prefer the
List-based overload.- Parameters:
ref- The instigating entity, ornull.impactRef- The entity that physically reached the block, which is the projectile when one acts for its shooter. Passrefwhen they are the same entity.targetBlockPos- The position of the block to damage.itemStack- The item stack of the held item, ornull.tool- The item tool to reference, ornullto derive it from the item.toolId- The tool id to break as, ornull.matchTool- Whether the block must match the configured tool to be damaged.damageScale- A multiplier applied to the calculated damage.setBlockSettings- TheSetBlockSettingsto apply.isExplosion- Whether the damage originates from an explosion.sectionReference- The reference of the target block's chunk section entity.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.- Returns:
trueif the block was broken,falseotherwise.
-
performBlockDamage
public static int performBlockDamage(@Nullable Ref<EntityStore> ref, @Nullable Ref<EntityStore> impactRef, @Nonnull List<org.joml.Vector3i> targetBlocks, @Nonnull org.joml.Vector3i anchorBlock, @Nullable ItemStack itemStack, @Nullable ItemTool tool, @Nullable String toolId, boolean matchTool, float damageScale, int setBlockSettings, boolean isExplosion, boolean durabilityPerBlock, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Applies block damage to a collection of blocks (which may span multiple chunks) using a single item, for example a shaped break.When
durabilityPerBlockisfalsethe whole set is treated as a single swing: tool durability is charged once, againstanchorBlock(the aimed-at block), no matter how many blocks the set contains or how many break. When it istrue, every damaged block consumes durability independently.- Parameters:
ref- The instigating entity, ornull.impactRef- The entity that physically reached the block, which is the projectile when one acts for its shooter. Passrefwhen they are the same entity.targetBlocks- The blocks to damage.anchorBlock- The aimed-at block; the per-swing durability cost is charged against it.itemStack- The item stack used, ornull.tool- The item tool to reference, ornullto derive from the item.toolId- The tool id to break as, ornull.matchTool- Whether the block must match the configured tool to be damaged.damageScale- A multiplier applied to the calculated damage.setBlockSettings- TheSetBlockSettingsto apply.isExplosion- Whether the damage originates from an explosion.durabilityPerBlock- Whether every broken block consumes durability, or only the primary.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.- Returns:
- The number of blocks that were broken.
-
performBlockBreak
public static void performBlockBreak(@Nullable Ref<EntityStore> ref, @Nullable ItemStack heldItemStack, @Nonnull org.joml.Vector3i targetBlock, @Nonnull Ref<ChunkStore> sectionReference, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Convenience overload ofperformBlockBreak(Ref, ItemStack, Vector3i, int, Ref, ComponentAccessor, ComponentAccessor)that breaks the block withSetBlockSettings.NONE.- Parameters:
ref- The instigating entity, ornull.heldItemStack- The item stack of the held item, ornull.targetBlock- The position of the block to break.sectionReference- The reference of the target block's chunk section entity.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.
-
performBlockBreak
public static int performBlockBreak(@Nullable Ref<EntityStore> ref, @Nullable ItemStack heldItemStack, @Nonnull List<org.joml.Vector3i> targetBlocks, int setBlockSettings, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Breaks a collection of blocks (which may span multiple chunks) using a single item, for example a creative-mode shaped break.- Parameters:
ref- The entity reference of the instigating entity, ornull.heldItemStack- The item stack of the held item, if any.targetBlocks- The positions of the blocks to break.setBlockSettings- Determines the block breaking behavior.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.- Returns:
- The number of blocks that were processed for breaking.
-
performBlockBreak
public static void performBlockBreak(@Nullable Ref<EntityStore> ref, @Nullable ItemStack heldItemStack, @Nonnull org.joml.Vector3i targetBlock, int setBlockSettings, @Nonnull Ref<ChunkStore> sectionReference, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Breaks the block at the given position, resolving filler blocks so that breaking any cell of a multi-block structure breaks the whole structure.- Parameters:
ref- The instigating entity, ornull.heldItemStack- The item stack of the held item, ornull.targetBlock- The position of the block to break.setBlockSettings- TheSetBlockSettingsthat determine the break behavior.sectionReference- The reference of the target block's chunk section entity.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.
-
performBlockBreak
public static void performBlockBreak(@Nullable Ref<EntityStore> ref, @Nullable Ref<EntityStore> impactRef, @Nullable ItemStack heldItemStack, @Nonnull org.joml.Vector3i targetBlock, int setBlockSettings, @Nonnull Ref<ChunkStore> sectionReference, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Breaks the block at the given position and attributes the break separately from the entity that physically reached it. Resolves filler cells to the base cell of a multi-block structure.- Parameters:
ref- The instigating entity, ornull.impactRef- The entity that physically reached the block, ornull.heldItemStack- The item stack of the held item, ornull.targetBlock- The position of the block to break.setBlockSettings- TheSetBlockSettingsthat determine the break behavior.sectionReference- The reference of the target block's chunk section entity.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.
-
performBlockBreak
public static void performBlockBreak(@Nonnull org.joml.Vector3i blockPosition, @Nonnull BlockType targetBlockTypeKey, @Nullable ItemStack heldItemStack, int dropQuantity, @Nullable String dropItemId, @Nullable String dropListId, int setBlockSettings, @Nullable Ref<EntityStore> ref, @Nonnull Ref<ChunkStore> sectionReference, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Convenience overload ofperformBlockBreak(Vector3i, BlockType, ItemStack, int, String, String, int, Ref, Ref, Ref, ComponentAccessor, ComponentAccessor)for a break where the instigating entity reached the block itself.- Parameters:
blockPosition- The position of the block to break.targetBlockTypeKey- The block type being broken.heldItemStack- The item stack of the held item, ornull.dropQuantity- The quantity of items to drop on breaking.dropItemId- The id of the item to drop, ornull.dropListId- The id of the drop list to roll, ornull.setBlockSettings- TheSetBlockSettingsthat determine the break behavior.ref- The instigating entity, ornull.sectionReference- The reference of the target block's chunk section entity.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.
-
performBlockBreak
public static void performBlockBreak(@Nonnull org.joml.Vector3i blockPosition, @Nonnull BlockType targetBlockTypeKey, @Nullable ItemStack heldItemStack, int dropQuantity, @Nullable String dropItemId, @Nullable String dropListId, int setBlockSettings, @Nullable Ref<EntityStore> ref, @Nullable Ref<EntityStore> impactRef, @Nonnull Ref<ChunkStore> sectionReference, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) The core block-break implementation: removes the block and spawns its drops, firing a cancellableBreakBlockEventwhen an instigating entity is present.- Parameters:
blockPosition- The position of the block to break.targetBlockTypeKey- The block type being broken.heldItemStack- The item stack of the held item, ornull.dropQuantity- The quantity of items to drop on breaking.dropItemId- The id of the item to drop, ornull.dropListId- The id of the drop list to roll, ornull.setBlockSettings- TheSetBlockSettingsthat determine the break behavior.ref- The instigating entity, ornull.impactRef- The entity that physically reached the block, which is the projectile when one acts for its shooter. Passrefwhen they are the same entity.sectionReference- The reference of the target block's chunk section entity.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.
-
naturallyRemoveBlockByPhysics
@Deprecated public static void naturallyRemoveBlockByPhysics(@Nonnull org.joml.Vector3i blockPosition, @Nonnull BlockType blockType, int filler, int setBlockSettings, @Nonnull Ref<ChunkStore> sectionReference, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Deprecated.PrefernaturallyRemoveBlock(Vector3i, BlockType, int, int, String, String, int, Ref, ComponentAccessor, ComponentAccessor)with explicit drop parameters.Removes the block at the given position as a physics-driven break, deriving its drops from the block's own gathering data.- Parameters:
blockPosition- The position of the block to remove.blockType- The block type being removed.filler- The packed filler offset of the block.setBlockSettings- TheSetBlockSettingsthat determine the removal behavior.sectionReference- The reference of the target block's chunk section entity.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.
-
naturallyRemoveBlock
public static void naturallyRemoveBlock(@Nonnull org.joml.Vector3i blockPosition, @Nullable BlockType blockType, int filler, int quantity, String itemId, String dropListId, int setBlockSettings, @Nonnull Ref<ChunkStore> sectionReference, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Removes the block at the given position and spawns its drops, resolving filler blocks back to their origin.- Parameters:
blockPosition- The position of the block to remove.blockType- The block type being removed, ornullfor a no-op.filler- The packed filler offset of the block.quantity- The quantity of items to drop.itemId- The id of the item to drop, ornull.dropListId- The id of the drop list to roll, ornull.setBlockSettings- TheSetBlockSettingsthat determine the removal behavior.sectionReference- The reference of the target block's chunk section entity.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.
-
shouldPickupByInteraction
Determines whether the given block type can be picked up via interaction.- Parameters:
blockType- The block type to check.- Returns:
trueif it can be picked up via interaction,falseotherwise.
-
performPickupByInteraction
public static void performPickupByInteraction(@Nonnull Ref<EntityStore> ref, @Nonnull org.joml.Vector3i targetBlock, @Nonnull BlockType blockType, int filler, @Nonnull Ref<ChunkStore> sectionReference, @Nonnull BlockSection blockSection, @Nonnull ComponentAccessor<EntityStore> entityStore, @Nonnull ComponentAccessor<ChunkStore> chunkStore) Harvests (picks up) the block at the given position straight into the entity's inventory, as used by harvest interactions.- Parameters:
ref- The instigating entity.targetBlock- The position of the block to harvest.blockType- The block type of the target block.filler- The packed filler offset of the block.sectionReference- The reference of the target block's chunk section entity.blockSection- TheBlockSectionof the target block's chunk section.entityStore- TheComponentAccessor<EntityStore>for component access.chunkStore- TheComponentAccessor<ChunkStore>for component access.
-
getDrops
@Nonnull public static List<ItemStack> getDrops(@Nonnull BlockType blockType, int quantity, @Nullable String itemId, @Nullable String dropListId) Builds the list of item stacks to drop for a broken block.- Parameters:
blockType- The block type that was broken.quantity- The quantity to drop.itemId- The id of an explicit item to drop, ornull.dropListId- The id of the drop list to roll, ornull.- Returns:
- A new list of
ItemStacks to drop, possibly empty.
-
fireOnBreakInteraction
public static void fireOnBreakInteraction(@Nullable Ref<EntityStore> breakerRef, @Nullable Ref<EntityStore> impactRef, @Nonnull BlockType blockType, @Nonnull org.joml.Vector3i blockPosition, int rotationIndex, int setBlockSettings, @Nonnull ComponentAccessor<EntityStore> entityStore) Fires theInteractionType.OnBreakinteraction chain defined on the broken block type, if any. Does nothing when the break has no instigator, when the break setSetBlockSettings.NO_FIRE_ON_BREAK, or when the break happens outside a tick, where noCommandBufferis available to queue the chain with.- Parameters:
breakerRef- The entity the break is attributed to, ornullif the break has no instigator. This is the shooter when a projectile broke the block.impactRef- The entity that physically reached the block, which is the projectile when one acts for its shooter. The chain runs for this entity, so distance checks measure from it. PassbreakerRefwhen they are the same entity.blockType- The block type that was broken.blockPosition- The position where the block was broken.rotationIndex- The rotation index the block had before being removed.setBlockSettings- TheSetBlockSettingsflags the block was removed with.entityStore- The entity store for component access.
-
queueOnBreakImpactInteraction
public static void queueOnBreakImpactInteraction(@Nonnull Ref<EntityStore> attributedRef, @Nonnull BlockType blockType, @Nonnull org.joml.Vector3i blockPosition, int rotationIndex, @Nonnull CommandBuffer<EntityStore> commandBuffer) Queues theInteractionType.OnBreakImpactinteraction chain defined on the block type, if any. Fired for blocks broken by impact (e.g. a falling block landing) rather than by direct damage or gathering.- Parameters:
attributedRef- The reference the break is attributed to. A falling block holds no interaction manager and is removed on impact, so those breaks run on a host instead.blockType- The block type that was broken.blockPosition- The position where the block was broken.rotationIndex- The rotation index the block had before being removed.commandBuffer- The command buffer for the current tick.
-
naturallyRemoveBlock(Vector3i, BlockType, int, int, String, String, int, Ref, ComponentAccessor, ComponentAccessor)with explicit drop parameters.