Repository navigation
Utilities
satisfy edited this page Oct 21, 2026
·
2 revisions
RegistryUtil.registerWithItem(BLOCKS, BLOCK_REGISTRAR, ITEMS, ITEM_REGISTRAR, MyMod.identifier("oak_table"), () -> new TableBlock(props));
RegistryUtil.registerWithoutItem(BLOCKS, BLOCK_REGISTRAR, MyMod.identifier("wall_banner"), () -> new CompletionistWallBannerBlock(props, BANNER));
RegistryUtil.registerItem(ITEMS, ITEM_REGISTRAR, MyMod.identifier("knife"), () -> new SwordItem(...));VoxelShape east = ShapeUtil.rotateShape(Direction.NORTH, Direction.EAST, northShape);
ShapeUtil.isFaceFull(level, pos); ShapeUtil.isSolid(level, pos); ShapeUtil.isFullAndSolid(level, pos);
ShapeUtil.getRelativeHitCoordinatesForBlockFace(hit, facing, blockedFaces); // x/y 0..1 on the clicked facetracking(level, pos) (players that see a chunk), fillBucket / emptyBucket, popResourceFromFace,
putBlockPos / putBlockPoses / readBlockPoses (NBT), isFire(damageSource), isDamageType(...),
convertStackAfterFinishUsing(...) (bowls/bottles after eating), getInPercent, isIndexInRange.
// in useItemOn, with a DyeItem in hand – recolours the block, consumes the dye, plays sound + dye splash
return DyeHelper.dye(stack, dye.getDyeColor(), state, COLOR, level, pos, player);DisplayItemRenderer.renderFlat(stack, poseStack, buffers, light, overlay, level, x, y, z, yaw, scale, seed); // lying down
DisplayItemRenderer.renderUpright(stack, poseStack, buffers, light, overlay, level, x, y, z, yaw, scale, seed); // standingThe short wobble of stacks and food, for your own block entity renderers:
long start = myBlockEntity.getWobbleStart();
WobbleAnimation.apply(poseStack, level, start, partialTick, WobbleAnimation.seed(pos.asLong()));Store level.getGameTime() as start time on the client when something changes. isActive(level, start) tells you whether it still runs (10 ticks), angle(...) gives the raw angle, the optional last argument strength scales it.
| Class | Use |
|---|---|
util.ImplementedInventory |
Container from a NonNullList in two lines |
util.StreamCodecUtil |
stream codec helpers |
render.ClientUtil |
light level at a position, GUI item rendering |
text.TextEditableBlockEntity + SetTextPacket
|
blocks with editable text (signs, bowls): implement the interface, send SetTextPacket.sendToServer(...)
|
client.render.FluidBoxRenderer |
renderWaterBox(...): biome tinted water inside a block entity (tubs, tanks, basins) |
fabric.datagen.ModelGenHelper (Fabric module) |
datagen shortcuts: blockId, variantIds, slabFromTexture … |
advancement.SimplePlayerTrigger |
"player did X" advancement trigger: register one per event, call trigger(player)
|