Interface VariantHolder<BedrockVariant extends VariantHolder.BuiltIn>
- Type Parameters:
BedrockVariant- the enum of Bedrock variants.
- All Known Subinterfaces:
VariantIntHolder
- All Known Implementing Classes:
CatEntity,ChickenEntity,CowEntity,FrogEntity,MooshroomEntity,PigEntity,TemperatureVariantAnimal,WolfEntity,ZombieNautilusEntity
public interface VariantHolder<BedrockVariant extends VariantHolder.BuiltIn>
Interface to help set up data-driven entity variants for mobs.
Data-driven variants are sent as an int ID of their variant registry by Java, but can be a metadata ID or entity property on bedrock. This interface helps translate data-driven variants to built-in bedrock ones.
Implementations usually have to implement variantRegistry() and setBedrockVariant(BuiltIn), and should also
have an enum with built-in variants on bedrock (implementing VariantHolder.BuiltIn).
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceShould be implemented on an enum within the entity class. -
Method Summary
Modifier and TypeMethodDescriptionstatic <BuiltInVariant extends Enum<? extends VariantHolder.BuiltIn>>
RegistryCache.RegistryReader<BuiltInVariant> Creates a registry reader for this mob's variants.voidsetBedrockVariant(BedrockVariant bedrockVariant) Should set the variant for bedrock.default voidsetVariant(org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.IntEntityMetadata variant) default voidsetVariantFromJavaId(int variant) Sets the variant of the entity.JavaRegistryKey<? extends BedrockVariant> The registry inJavaRegistriesfor this mob's variants.
-
Method Details
-
setVariant
default void setVariant(org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.IntEntityMetadata variant) -
setVariantFromJavaId
default void setVariantFromJavaId(int variant) Sets the variant of the entity. -
getSession
GeyserSession getSession() -
variantRegistry
JavaRegistryKey<? extends BedrockVariant> variantRegistry()The registry inJavaRegistriesfor this mob's variants. The registry can utilise thereader(Class, Enum)method to create a reader to be used inRegistryCache. -
setBedrockVariant
Should set the variant for bedrock. -
reader
static <BuiltInVariant extends Enum<? extends VariantHolder.BuiltIn>> RegistryCache.RegistryReader<BuiltInVariant> reader(Class<BuiltInVariant> clazz, BuiltInVariant fallback) Creates a registry reader for this mob's variants.This reader simply matches the identifiers of registry entries with built-in variants. If no built-in variant matches, the fallback/default is returned.
-