Interface DynamicBlockStateModel

All Superinterfaces:
net.minecraft.client.renderer.block.model.BlockStateModel, BlockStateModelExtension
All Known Implementing Classes:
CompositeBlockModel

public interface DynamicBlockStateModel extends net.minecraft.client.renderer.block.model.BlockStateModel
Convenience interface for block state models that wish to support the NeoForge-added context in BlockStateModelExtension.collectParts(BlockAndTintGetter, BlockPos, BlockState, RandomSource, List).
  • Nested Class Summary

    Nested classes/interfaces inherited from interface net.minecraft.client.renderer.block.model.BlockStateModel

    net.minecraft.client.renderer.block.model.BlockStateModel.SimpleCachedUnbakedRoot, net.minecraft.client.renderer.block.model.BlockStateModel.Unbaked, net.minecraft.client.renderer.block.model.BlockStateModel.UnbakedRoot
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    collectParts(net.minecraft.util.RandomSource random, List<net.minecraft.client.renderer.block.model.BlockModelPart> parts)
    Deprecated.
    void
    collectParts(net.minecraft.world.level.BlockAndTintGetter level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.util.RandomSource random, List<net.minecraft.client.renderer.block.model.BlockModelPart> parts)
    Collects the parts of the model that should be rendered.

    Methods inherited from interface net.minecraft.client.renderer.block.model.BlockStateModel

    collectParts, particleIcon

    Methods inherited from interface net.neoforged.neoforge.client.extensions.BlockStateModelExtension

    collectParts, createGeometryKey, particleIcon
  • Method Details

    • collectParts

      @Deprecated default void collectParts(net.minecraft.util.RandomSource random, List<net.minecraft.client.renderer.block.model.BlockModelPart> parts)
      Deprecated.
      Specified by:
      collectParts in interface net.minecraft.client.renderer.block.model.BlockStateModel
    • collectParts

      void collectParts(net.minecraft.world.level.BlockAndTintGetter level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.util.RandomSource random, List<net.minecraft.client.renderer.block.model.BlockModelPart> parts)
      Description copied from interface: BlockStateModelExtension
      Collects the parts of the model that should be rendered.

      Typically called on a meshing worker thread, with a snapshot of world state. To access block entity data, use IBlockGetterExtension.getModelData(BlockPos) on the passed level. Avoid accessing or manipulating the block entities directly as they are not thread safe. Other world state is safe to access.

      The parameters passed to this method might not be what the model expects. For example, the model data might be missing or coming from a different/outdated block entity, the block state in the level might be different from the one passed in, and so on... The model should handle these cases gracefully and return the best model it can (e.g. by returning a completely unconnected model, in the case of connected textures).

      Calling IBlockStateExtension.getAppearance(net.minecraft.world.level.BlockAndTintGetter, net.minecraft.core.BlockPos, net.minecraft.core.Direction, net.minecraft.world.level.block.state.BlockState, net.minecraft.core.BlockPos) before accessing the block state is recommended.

      Specified by:
      collectParts in interface BlockStateModelExtension
      Parameters:
      level - a level to query block entity data or other world state
      pos - the position of the block being rendered
      state - the state of the block being rendered
      random - a random source for random model variations
      parts - the list that should receive all parts to be rendered