public class bobl extends EntityFX
{
private static final ResourceLocation texture = new ResourceLocation("mercury:textures/particle/bubble.png");
private static float alpha;
private static boolean faze;
public voronka(World par1World, double x, double y, double z) {
super(par1World, x, y, z, 0.0D, 0.0D, 0.0D);
setGravity(-1);
setMaxAge(10);
}
public void renderParticle(Tessellator tess, float ticks, float par3, float par4, float par5, float par6, float par7){
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
glDepthMask(false);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glAlphaFunc(GL_GREATER, 0.003921569F);
tess.startDrawingQuads();
tess.setBrightness(getBrightnessForRender(ticks));
float scale = 0.5F * particleScale;
float x = (float)(prevPosX + (posX - prevPosX) * ticks - interpPosX);
float y = (float)(prevPosY + (posY - prevPosY) * ticks - interpPosY);
float z = (float)(prevPosZ + (posZ - prevPosZ) * ticks - interpPosZ);
tess.addVertexWithUV(x - par3 * scale - par6 * scale, y - par4 * scale, z - par5 * scale - par7 * scale, 0, 0);
tess.addVertexWithUV(x - par3 * scale + par6 * scale, y + par4 * scale, z - par5 * scale + par7 * scale, 1, 0);
tess.addVertexWithUV(x + par3 * scale + par6 * scale, y + par4 * scale, z + par5 * scale + par7 * scale, 1, 1);
tess.addVertexWithUV(x + par3 * scale - par6 * scale, y - par4 * scale, z + par5 * scale - par7 * scale, 0, 1);
tess.draw();
glDisable(GL_BLEND);
glDepthMask(true);
glAlphaFunc(GL_GREATER, 0.1F);
}
public void onUpdate()
{
this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
if (this.particleAge++ >= this.particleMaxAge)
{
this.setDead();
}
this.motionY -= 0.0D * (double)this.particleGravity;
this.moveEntity(this.motionX, this.motionY, this.motionZ);
this.motionX *= 0.0D;
this.motionY *= 0.0D;
this.motionZ *= 0.0D;
if (this.onGround)
{
this.motionX *= 0.0D;
this.motionZ *= 0.0D;
}
if(faze) {
if(alpha < 1.0F) {
alpha += 0.025F;
} else {
faze = false;
alpha = 1.0F;
}
} else if(alpha > 0.0F) {
alpha -= 0.05F;
} else {
faze = true;
alpha = 0.0F;
}
glColor4f(1.0F, 1.0F, 1.0F, alpha);
}
public int getFXLayer(){
return 3;
}
public voronka setMaxAge(int maxAge){
particleMaxAge = maxAge;
return this;
}
public voronka setScale(float scale){
particleScale = scale;
return this;
}
public voronka setGravity(float gravity){
particleGravity = gravity;
return this;
}
}
Изменить кол-во партиклов которые спавнятсяsvk2140 написал(а):
А зачем мне спавнить их рандомно?AlexSocol написал(а):обожемойтыхотьсампонялчтосказал?
Код:randomDispalyTick(bla-bla-bla) { if (random.nextInt(100) == 0) world.spawnParticle-bla-bla-bla; }
float f7 = (float)par2 + 0.5F;
float f2 = (float)par3 + 0.1F;
float f3 = (float)par4 + 0.5F;
Minecraft.getMinecraft().effectRenderer.addEffect(new bobl(par1World, (double)(f7), (double)f2, (double)(f3)));
Совсем глупый?mercury написал(а):> А зачем мне спавнить их рандомно?
> randomDisplayTick
Берёшь и меняешь. Я тебе написал как.mercury написал(а):Как изменить кол-во партиклов которые спавнятся?
Про это вообще молчу. Сначала дабл конвертируешь во флоат, а потом флоат снова в дабл. Зачем?mercury написал(а):Код:float f7 = (float)par2 + 0.5F; (double)(f7)
Что? Какие кусочки? Как исчезнувшие? Ты о чём? :silly:svk2140 написал(а):Ты про кусочки текстуры? Со временем они типо исчезают, и тебе надо, что-бы они спавнились уже полуисчезнувшими?
Лол, это ты глупый Я написал что мне каждые десять секунд нужно спавнить "кусочек текстуры" а не РАНДОМНО в 100 ТИКОВ. Про дабл и флоат не заметилAlexSocol написал(а):Совсем глупый?mercury написал(а):> А зачем мне спавнить их рандомно?
> randomDisplayTick
Берёшь и меняешь. Я тебе написал как.mercury написал(а):Как изменить кол-во партиклов которые спавнятся?
Про это вообще молчу. Сначала дабл конвертируешь во флоат, а потом флоат снова в дабл. Зачем?mercury написал(а):Код:float f7 = (float)par2 + 0.5F; (double)(f7)
Что? Какие кусочки? Как исчезнувшие? Ты о чём? :silly:svk2140 написал(а):Ты про кусочки текстуры? Со временем они типо исчезают, и тебе надо, что-бы они спавнились уже полуисчезнувшими?
Именно.Но с временем жизни партиклей maxAge я разобрался.svk2140 написал(а):Ты про кусочки текстуры? Со временем они типо исчезают, и тебе надо, что-бы они спавнились уже полуисчезнувшими?
Алекс, количество партиклов изменяется , но еще раз повторю что мне не нужно через рандомное кол-во тиков их спавнить, а только через 200( к примеру ) тиков. Как я понял randomDisplayTick это и есть цикл на каждый тик??
Сначала разберись, что за код тебе дают и что ты используешь сам, а потом отвергай помощь. Самый умный? Тогда зачем сюда пришёл?mercury написал(а):каждые десять секунд нужно спавнить "кусочек текстуры" а не РАНДОМНО в 100 ТИКОВ.
Ладно, спасибо за помощь. Ну просто я же написал что через определенное время.AlexSocol написал(а):Сначала разберись, что за код тебе дают и что ты используешь сам, а потом отвергай помощь. Самый умный? Тогда зачем сюда пришёл?mercury написал(а):каждые десять секунд нужно спавнить "кусочек текстуры" а не РАНДОМНО в 100 ТИКОВ.
Если нужно чётко каждые 10 сек - спаунь партиклы в тайлэнтити по таймеру (там же).
[merge_posts_bbcode]Добавлено: 23.06.2016 23:04:49[/merge_posts_bbcode]
Каждый тик - onUpdate или updateBlock