soiz1's picture
Upload folder using huggingface_hub
d46f4a3 verified
package net.minecraft.client.particle;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.core.particles.SimpleParticleType;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
public class CampfireSmokeParticle extends TextureSheetParticle {
CampfireSmokeParticle(
ClientLevel p_105856_, double p_105857_, double p_105858_, double p_105859_, double p_105860_, double p_105861_, double p_105862_, boolean p_105863_
) {
super(p_105856_, p_105857_, p_105858_, p_105859_);
this.scale(3.0F);
this.setSize(0.25F, 0.25F);
if (p_105863_) {
this.lifetime = this.random.nextInt(50) + 280;
} else {
this.lifetime = this.random.nextInt(50) + 80;
}
this.gravity = 3.0E-6F;
this.xd = p_105860_;
this.yd = p_105861_ + (double)(this.random.nextFloat() / 500.0F);
this.zd = p_105862_;
}
@Override
public void tick() {
this.xo = this.x;
this.yo = this.y;
this.zo = this.z;
if (this.age++ < this.lifetime && !(this.alpha <= 0.0F)) {
this.xd = this.xd + (double)(this.random.nextFloat() / 5000.0F * (float)(this.random.nextBoolean() ? 1 : -1));
this.zd = this.zd + (double)(this.random.nextFloat() / 5000.0F * (float)(this.random.nextBoolean() ? 1 : -1));
this.yd = this.yd - (double)this.gravity;
this.move(this.xd, this.yd, this.zd);
if (this.age >= this.lifetime - 60 && this.alpha > 0.01F) {
this.alpha -= 0.015F;
}
} else {
this.remove();
}
}
@Override
public ParticleRenderType getRenderType() {
return ParticleRenderType.PARTICLE_SHEET_TRANSLUCENT;
}
@OnlyIn(Dist.CLIENT)
public static class CosyProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprites;
public CosyProvider(SpriteSet p_105878_) {
this.sprites = p_105878_;
}
public Particle createParticle(
SimpleParticleType p_105889_,
ClientLevel p_105890_,
double p_105891_,
double p_105892_,
double p_105893_,
double p_105894_,
double p_105895_,
double p_105896_
) {
CampfireSmokeParticle campfiresmokeparticle = new CampfireSmokeParticle(
p_105890_, p_105891_, p_105892_, p_105893_, p_105894_, p_105895_, p_105896_, false
);
campfiresmokeparticle.setAlpha(0.9F);
campfiresmokeparticle.pickSprite(this.sprites);
return campfiresmokeparticle;
}
}
@OnlyIn(Dist.CLIENT)
public static class SignalProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet sprites;
public SignalProvider(SpriteSet p_105899_) {
this.sprites = p_105899_;
}
public Particle createParticle(
SimpleParticleType p_105910_,
ClientLevel p_105911_,
double p_105912_,
double p_105913_,
double p_105914_,
double p_105915_,
double p_105916_,
double p_105917_
) {
CampfireSmokeParticle campfiresmokeparticle = new CampfireSmokeParticle(
p_105911_, p_105912_, p_105913_, p_105914_, p_105915_, p_105916_, p_105917_, true
);
campfiresmokeparticle.setAlpha(0.95F);
campfiresmokeparticle.pickSprite(this.sprites);
return campfiresmokeparticle;
}
}
}