Package net.neoforged.neoforge.common
Interface IExtensibleEnum
- All Known Implementing Classes:
 BiomeSpecialEffects.GrassColorModifier,BlockPathTypes,DamageEffects,DamageScaling,DeathMessageType,EnchantmentCategory,FireworkRocketItem.Shape,HumanoidModel.ArmPose,ItemDisplayContext,MobCategory,Raid.RaiderType,Rarity,RecipeBookCategories,RecipeBookType,SpawnPlacements.Type,VertexFormatElement.Usage
public interface IExtensibleEnum
To be implemented on vanilla enums that should be enhanced with ASM to be
 extensible. If this is implemented on a class, the class must define a static
 method called "create" which takes a String (enum name), and the rest of the
 parameters matching a constructor.
 
 For example, an enum with the constructor MyEnum(Object foo) would
 require the method:
 
 public static MyEnum create(String name, Object foo) {
     throw new IllegalStateException("Enum not extended");
 }
 
 The method contents will be replaced with ASM at runtime. Multiple
 create methods can be defined as long as each
 matches a constructor.- 
Method Summary
Modifier and TypeMethodDescriptionstatic <E extends Enum<E> & StringRepresentable>
com.mojang.serialization.Codec<E>createCodecForExtensibleEnum(Supplier<E[]> valuesSupplier, Function<? super String, ? extends E> enumValueFromNameFunction) Use this instead ofStringRepresentable.fromEnum(Supplier)for extensible enums because this not cache the enum values on constructiondefault voidinit()Deprecated. 
- 
Method Details
- 
init
Deprecated.Called by generated factory code to do any post-constructor setup required by the enum. Should not be called manually. - 
createCodecForExtensibleEnum
static <E extends Enum<E> & StringRepresentable> com.mojang.serialization.Codec<E> createCodecForExtensibleEnum(Supplier<E[]> valuesSupplier, Function<? super String, ? extends E> enumValueFromNameFunction) Use this instead ofStringRepresentable.fromEnum(Supplier)for extensible enums because this not cache the enum values on construction 
 -