Package net.minecraftforge.common
Interface IExtensibleEnum
- All Known Implementing Classes:
BiomeSpecialEffects.GrassColorModifier,BlockPathTypes,EnchantmentCategory,HumanoidModel.ArmPose,ItemTransforms.TransformType,MobCategory,Raid.RaiderType,Rarity,RecipeBookCategories,RecipeBookType,SpawnPlacements.Type
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
-