Class ParticleDescriptionProvider
- All Implemented Interfaces:
DataProvider
- Direct Known Subclasses:
DataGeneratorTest.ParticleDescriptions
ParticleDescriptions.
To use this provider, extend this class and implement addDescriptions().
Then, register an instance using DataGenerator.addProvider(boolean, Factory)
via the GatherDataEvent on the mod event bus.
A description can be added to a ParticleType which uses a sprite
or sprite set.
@Override
protected void addDescriptions() {
// Single sprite
this.sprite(ParticleTypes.DRIPPING_LAVA, new ResourceLocation("drip_hang"));
// Multiple sprites
this.spriteSet(ParticleTypes.CLOUD, new ResourceLocation("generic"), 8, true);
}
A particle description holds a list of textures used when rendering the
particle to the screen. All registered particle descriptions are stitched
together into a texture atlas called TextureAtlas.LOCATION_PARTICLES.
A ParticleType whose particle uses the texture atlas, typically via
the ParticleRenderType, can then reference
the necessary texture during rendering.
Particles with a particle description must have their particle providers
attached to a ParticleType as a sprite
or sprite set
consumer.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.minecraft.data.DataProvider
DataProvider.Factory<T extends DataProvider> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Map<ResourceLocation, List<String>> protected final ExistingFileHelperprivate final PackOutput.PathProviderFields inherited from interface net.minecraft.data.DataProvider
FIXED_ORDER_FIELDS, KEY_COMPARATOR, LOGGER -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedParticleDescriptionProvider(PackOutput output, ExistingFileHelper fileHelper) Creates an instance of the data provider. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract voidRegisters the particle descriptions generated bysprite(ParticleType, ResourceLocation)or one of thesprite set methods.getName()run(CachedOutput cache) protected voidsprite(ParticleType<?> type, ResourceLocation texture) Creates a new particle description that contains a single texture for the associatedParticleType.protected voidspriteSet(ParticleType<?> type, Iterable<ResourceLocation> textures) Creates a new particle description that contains multiple textures for the associatedParticleType.protected voidspriteSet(ParticleType<?> type, ResourceLocation baseName, int numOfTextures, boolean reverse) Creates a new particle description that contains multiple textures for the associatedParticleType.protected voidspriteSet(ParticleType<?> type, ResourceLocation texture, ResourceLocation... textures) Creates a new particle description that contains multiple textures for the associatedParticleType.
-
Field Details
-
particlesPath
-
fileHelper
-
descriptions
-
-
Constructor Details
-
ParticleDescriptionProvider
Creates an instance of the data provider.- Parameters:
output- the expected root directory the data generator outputs tofileHelper- the helper used to validate a texture's existence
-
-
Method Details
-
addDescriptions
protected abstract void addDescriptions()Registers the particle descriptions generated bysprite(ParticleType, ResourceLocation)or one of thesprite set methods. -
sprite
Creates a new particle description that contains a single texture for the associatedParticleType.Particle types with this description should be attached to a particle provider via
RegisterParticleProvidersEvent.registerSprite(ParticleType, ParticleProvider.Sprite).- Parameters:
type- the particle type the textures are applied fortexture- the texture to render for the particle type- Throws:
NullPointerException- if the particle type is not registeredIllegalArgumentException- if a texture does not have an associated PNG file, or the particle type has already been provided
-
spriteSet
protected void spriteSet(ParticleType<?> type, ResourceLocation baseName, int numOfTextures, boolean reverse) Creates a new particle description that contains multiple textures for the associatedParticleType. The textures are generated from a common name and appended with a number representing the state of the animation.minecraft:generic_0 minecraft:generic_1 minecraft:generic_2 // ...Particle types with this description should be attached to a particle provider via
RegisterParticleProvidersEvent.registerSpriteSet(ParticleType, ParticleEngine.SpriteParticleRegistration).- Parameters:
type- the particle type the textures are applied forbaseName- the common name of all the texturesnumOfTextures- the number of textures within the setreverse- whentrue, the textures will be listed in descending order- Throws:
NullPointerException- if the particle type is not registeredIllegalArgumentException- if a texture does not have an associated PNG file, or the particle type has already been provided
-
spriteSet
protected void spriteSet(ParticleType<?> type, ResourceLocation texture, ResourceLocation... textures) Creates a new particle description that contains multiple textures for the associatedParticleType. The textures are passed as varargs with at least one texture present.Particle types with this description should be attached to a particle provider via
RegisterParticleProvidersEvent.registerSpriteSet(ParticleType, ParticleEngine.SpriteParticleRegistration).- Parameters:
type- the particle type the textures are applied fortexture- the first texture in the descriptiontextures- a list of subsequent textures to render for the particle type- Throws:
NullPointerException- if the particle type is not registeredIllegalArgumentException- if a texture does not have an associated PNG file, or the particle type has already been provided
-
spriteSet
Creates a new particle description that contains multiple textures for the associatedParticleType. The textures are passed as an iterable.Particle types with this description should be attached to a particle provider via
RegisterParticleProvidersEvent.registerSpriteSet(ParticleType, ParticleEngine.SpriteParticleRegistration).- Parameters:
type- the particle type the textures are applied fortextures- a list of textures to render for the particle type- Throws:
NullPointerException- if the particle type is not registeredIllegalArgumentException- if there are no textures provided, a texture does not have an associated PNG file, or the particle type has already been provided
-
run
- Specified by:
runin interfaceDataProvider
-
getName
- Specified by:
getNamein interfaceDataProvider
-