package net.minecraft.client.particle; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.texture.TextureAtlasSprite; @Environment(EnvType.CLIENT) public abstract class TextureSheetParticle extends SingleQuadParticle { protected TextureAtlasSprite sprite; protected TextureSheetParticle(ClientLevel level, double x, double y, double z) { super(level, x, y, z); } protected TextureSheetParticle(ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { super(level, x, y, z, xSpeed, ySpeed, zSpeed); } protected void setSprite(TextureAtlasSprite sprite) { this.sprite = sprite; } @Override protected float getU0() { return this.sprite.getU0(); } @Override protected float getU1() { return this.sprite.getU1(); } @Override protected float getV0() { return this.sprite.getV0(); } @Override protected float getV1() { return this.sprite.getV1(); } public void pickSprite(SpriteSet sprite) { this.setSprite(sprite.get(this.random)); } public void setSpriteFromAge(SpriteSet sprite) { if (!this.removed) { this.setSprite(sprite.get(this.age, this.lifetime)); } } }