接口 IExtensibleEnum
- 所有已知实现类:
AnimalArmorItem.BodyType
,BiomeSpecialEffects.GrassColorModifier
,HumanoidModel.ArmPose
,ItemDisplayContext
,MobCategory
,PathType
,Raid.RaiderType
,RecipeBookType
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.-
方法概要
修饰符和类型方法说明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 constructiondefault void
init()
已过时。
-
方法详细资料
-
init
已过时。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
-