Interface IExtensibleEnum

All Known Implementing Classes:
BiomeSpecialEffects.GrassColorModifier, DamageEffects, DamageScaling, DeathMessageType, FireworkExplosion.Shape, Gui.HeartType, HumanoidModel.ArmPose, ItemDisplayContext, MobCategory, Raid.RaiderType, Rarity, RecipeBookCategories, RecipeBookType, 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.