blockTextureEntity

A packet based ItemDisplay sent to players who have customBlockTextures enabled.

You can override getBlockTextureProperties if you have any custom block state properties you want to expose to resource packs for custom models/textures. If those properties change you can call refreshBlockTextureItem to update the model accordingly.

Upon initialization the entity is set up by setupBlockTexture (which can be overridden), and modifications afterward can be done using updateBlockTexture.

Being lazily initialized, if you do not access the entity directly it will only be created when a player with customBlockTextures comes within range for the first time. This is to avoid unnecessary entity creation, memory usage, and entity update overhead when no players can actually see it.