Class RegisterRenderStateModifiersEvent

java.lang.Object
net.neoforged.bus.api.Event
net.neoforged.neoforge.client.renderstate.RegisterRenderStateModifiersEvent
All Implemented Interfaces:
net.neoforged.fml.event.IModBusEvent

public class RegisterRenderStateModifiersEvent extends net.neoforged.bus.api.Event implements net.neoforged.fml.event.IModBusEvent
Fired for registering modifier functions for various render state objects. Useful for gathering context for custom rendering with objects that are not your own.

This event is fired on the mod-specific event bus, only on the logical client.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    private static final record 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    private static void
    ensureParametersMatchBounds(com.google.common.reflect.TypeToken<? extends net.minecraft.client.renderer.entity.EntityRenderer<? extends net.minecraft.world.entity.Entity,? extends net.minecraft.client.renderer.entity.state.EntityRenderState>> baseRenderer)
     
    <E extends net.minecraft.world.entity.Entity, S extends net.minecraft.client.renderer.entity.state.EntityRenderState>
    void
    registerEntityModifier(com.google.common.reflect.TypeToken<? extends net.minecraft.client.renderer.entity.EntityRenderer<? extends E,? extends S>> baseRenderer, BiConsumer<E,S> modifier)
    Registers a render state modifier for EntityRenderStates which are run after all vanilla data is extracted.
    <E extends net.minecraft.world.entity.Entity, S extends net.minecraft.client.renderer.entity.state.EntityRenderState>
    void
    registerEntityModifier(Class<? extends net.minecraft.client.renderer.entity.EntityRenderer<? extends E,? extends S>> baseRenderer, BiConsumer<E,S> modifier)
    Convenience method for cases where generics are not present.
    void
    registerMapDecorationModifier(net.minecraft.resources.ResourceKey<net.minecraft.world.level.saveddata.maps.MapDecorationType> mapDecorationTypeKey, MapDecorationRenderStateModifier modifier)
    Registers a render state modifier for MapRenderState.MapDecorationRenderStates which are run after vanilla map decoration data has been set.
    void
    registerMapModifier(BiConsumer<net.minecraft.world.level.saveddata.maps.MapItemSavedData,net.minecraft.client.renderer.state.MapRenderState> modifier)
    Registers a render state modifier for MapRenderStates which are run after the texture has been set and before decorations have been added.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RegisterRenderStateModifiersEvent

      @Internal public RegisterRenderStateModifiersEvent()
  • Method Details

    • registerEntityModifier

      public <E extends net.minecraft.world.entity.Entity, S extends net.minecraft.client.renderer.entity.state.EntityRenderState> void registerEntityModifier(com.google.common.reflect.TypeToken<? extends net.minecraft.client.renderer.entity.EntityRenderer<? extends E,? extends S>> baseRenderer, BiConsumer<E,S> modifier)
      Registers a render state modifier for EntityRenderStates which are run after all vanilla data is extracted. Can add custom data to the map using BaseRenderState.setRenderData(ContextKey, Object). Any subclasses of the passed renderer class will also have this modifier applied.
       
           event.registerEntityModifier(new TypeTokeninvalid input: '<'LivingEntityRendererinvalid input: '<'LivingEntity, LivingEntityRenderState, ?>>() {}, (entity, renderState) -> {
               . . .
           });
       
       
      Type Parameters:
      E - The type of the entity
      S - The specific render state type
      Parameters:
      baseRenderer - Entity renderer class. Any subclasses will also apply this modifier.
      modifier - The function for modifying the EntityRenderState and adding custom render data.
    • registerEntityModifier

      public <E extends net.minecraft.world.entity.Entity, S extends net.minecraft.client.renderer.entity.state.EntityRenderState> void registerEntityModifier(Class<? extends net.minecraft.client.renderer.entity.EntityRenderer<? extends E,? extends S>> baseRenderer, BiConsumer<E,S> modifier)
      Convenience method for cases where generics are not present. Registers a render state modifier for EntityRenderStates which are run after all vanilla data is extracted. Can add custom data to the map using BaseRenderState.setRenderData(ContextKey, Object). Any subclasses of the passed renderer class will also have this modifier applied.
       
           event.registerEntityModifier(PlayerRenderer.class, (entity, renderState) -> {
               . . .
           });
       
       
      Type Parameters:
      E - The type of the entity
      S - The specific render state type
      Parameters:
      baseRenderer - Entity renderer class. Any subclasses will also apply this modifier.
      modifier - The function for modifying the EntityRenderState and adding custom render data.
    • registerMapModifier

      public void registerMapModifier(BiConsumer<net.minecraft.world.level.saveddata.maps.MapItemSavedData,net.minecraft.client.renderer.state.MapRenderState> modifier)
      Registers a render state modifier for MapRenderStates which are run after the texture has been set and before decorations have been added. Can add custom data to the map using IRenderStateExtension.setRenderData(ContextKey, Object).
      Parameters:
      modifier - The function for modifying the MapRenderState and adding custom render data.
    • registerMapDecorationModifier

      public void registerMapDecorationModifier(net.minecraft.resources.ResourceKey<net.minecraft.world.level.saveddata.maps.MapDecorationType> mapDecorationTypeKey, MapDecorationRenderStateModifier modifier)
      Registers a render state modifier for MapRenderState.MapDecorationRenderStates which are run after vanilla map decoration data has been set. Can add custom data to the map using IRenderStateExtension.setRenderData(ContextKey, Object).
      Parameters:
      mapDecorationTypeKey - Key for the registered MapDecorationType
      modifier - The function for modifying the MapRenderState.MapDecorationRenderState and adding custom render data.
    • ensureParametersMatchBounds

      private static void ensureParametersMatchBounds(com.google.common.reflect.TypeToken<? extends net.minecraft.client.renderer.entity.EntityRenderer<? extends net.minecraft.world.entity.Entity,? extends net.minecraft.client.renderer.entity.state.EntityRenderState>> baseRenderer)