Skip to main content
Version: GeckoLib5

New Generic Types

Traditionally, GeckoLib's GeoRenderer has a single generic type; the type of animatable it renders.

With 5.0 and the advent of RenderStates, this changed. Now, GeoRenderers have three generic types:

  • T: The type of animatable it renders
  • O: The type of associated data the renderer uses when extracting the render state (or Void if not applicable)
  • R: The base type of RenderState the renderer uses

This also extends to GeoRenderLayers, and so it can pay to be wary of the generic types that the base renderers use.

Because of this change, when creating a new GeoBlockRenderer, GeoArmorRenderer, or GeoEntityRenderer class, you'll need to explicitly define the RenderState generic type.

For example:

public class MyEntityRenderer<R extends LivingEntityRenderState & GeoRenderState> extends GeoEntityRenderer<MyEntity, R> {
// Note the generic type ^
}