@SideOnly(Side.CLIENT)
public void SpawnReplicateParticles(int startTime) {
double time = (double) (startTime) / (double) (REPLICATION_ANIMATION_TIME);
double gravity = MOMathHelper.easeIn(time, 0.02, 0.2, 1);
int age = (int) Math.round(MOMathHelper.easeIn(time, 2, 10, 1));
int count = (int) Math.round(MOMathHelper.easeIn(time, 1, 20, 1));
for (int i = 0; i < count; i++) {
float speed = 0.05f;
Vector3f pos = MOMathHelper.randomSpherePoint(this.getPos().getX() + 0.5D, this.getPos().getY() + 0.5D, this.getPos().getZ() + 0.5D, new Vec3d(0.5, 0.5, 0.5), this.world.rand);
Vector3f dir = new Vector3f(random.nextFloat() * 2 - 1, (random.nextFloat() * 2 - 1) * 0.05f, random.nextFloat() * 2 - 1);
dir.scale(speed);
ReplicatorParticle replicatorParticle = new ReplicatorParticle(this.world, pos.getX(), pos.getY(), pos.getZ(), dir.getX(), dir.getY(), dir.getZ());
replicatorParticle.setCenter(this.getPos().getX() + 0.5D, this.getPos().getY() + 0.5D, this.getPos().getZ() + 0.5D);
replicatorParticle.setParticleAge(age);
replicatorParticle.setPointGravityScale(gravity);
Minecraft.getMinecraft().effectRenderer.addEffect(replicatorParticle);
}
}