From d95a3f8b115003dd952f03a2ac4a0a798bdb60e3 Mon Sep 17 00:00:00 2001 From: Sen Date: Thu, 10 Jul 2025 18:24:08 +0200 Subject: [PATCH] more particle improvements --- .../java/client/network/ClientPlayer.java | 37 +-- .../java/client/renderer/EffectRenderer.java | 259 +++++++++--------- .../java/client/renderer/EntityRenderer.java | 4 +- .../main/java/client/world/WorldClient.java | 24 +- .../textures/{entity => world}/explosion.png | Bin .../src/main/java/common/ai/EntityAIMate.java | 5 +- .../block/artificial/BlockDragonEgg.java | 5 +- .../block/artificial/BlockFloorPortal.java | 5 +- .../common/block/artificial/BlockPortal.java | 7 +- .../common/block/foliage/BlockMycelium.java | 2 +- .../java/common/block/liquid/BlockLiquid.java | 4 +- .../common/block/natural/BlockBedrock.java | 2 +- .../java/common/block/natural/BlockFire.java | 12 +- .../block/natural/BlockRedstoneOre.java | 2 +- .../common/block/tech/BlockBrewingStand.java | 2 +- .../java/common/block/tech/BlockFurnace.java | 16 +- .../block/tech/BlockRedstoneRepeater.java | 2 +- .../common/block/tech/BlockRedstoneTorch.java | 4 +- .../common/block/tech/BlockRedstoneWire.java | 6 +- .../java/common/block/tech/BlockTorch.java | 8 +- .../common/block/tech/BlockWarpChest.java | 5 +- .../src/main/java/common/entity/Entity.java | 6 +- .../common/entity/animal/EntityDragon.java | 2 +- .../common/entity/animal/EntityHorse.java | 5 +- .../common/entity/animal/EntityMooshroom.java | 2 +- .../common/entity/animal/EntityRabbit.java | 10 +- .../java/common/entity/animal/EntityWolf.java | 2 +- .../java/common/entity/item/EntityBoat.java | 4 +- .../java/common/entity/item/EntityItem.java | 9 +- .../java/common/entity/item/EntityNuke.java | 2 +- .../java/common/entity/item/EntityOrb.java | 2 +- .../java/common/entity/item/EntityTnt.java | 2 +- .../common/entity/item/EntityTntCart.java | 2 +- .../java/common/entity/item/EntityXp.java | 6 +- .../common/entity/npc/EntityDarkMage.java | 2 +- .../common/entity/npc/EntityGargoyle.java | 4 +- .../java/common/entity/npc/EntityNPC.java | 29 +- .../java/common/entity/npc/EntitySlime.java | 2 +- .../common/entity/projectile/EntityArrow.java | 4 +- .../entity/projectile/EntityDynamite.java | 2 +- .../common/entity/projectile/EntityEgg.java | 2 +- .../common/entity/projectile/EntityHook.java | 17 +- .../entity/projectile/EntityMissile.java | 3 +- .../entity/projectile/EntityProjectile.java | 4 +- .../entity/projectile/EntitySnowball.java | 2 +- .../common/entity/types/EntityAnimal.java | 10 +- .../common/entity/types/EntityLiving.java | 22 +- .../common/entity/types/EntityTameable.java | 5 +- .../common/entity/types/EntityThrowable.java | 2 +- .../java/common/item/material/ItemDye.java | 5 +- .../java/common/item/tool/ItemBucket.java | 2 +- .../java/common/item/tool/ItemChargedOrb.java | 5 +- .../java/common/packet/SPacketParticles.java | 62 +---- .../main/java/common/world/AWorldServer.java | 6 +- .../src/main/java/common/world/Explosion.java | 22 +- common/src/main/java/common/world/World.java | 8 +- .../command/commands/CommandEffect.java | 9 +- .../main/java/server/world/WorldServer.java | 16 +- 58 files changed, 266 insertions(+), 444 deletions(-) rename client/src/main/resources/textures/{entity => world}/explosion.png (100%) diff --git a/client/src/main/java/client/network/ClientPlayer.java b/client/src/main/java/client/network/ClientPlayer.java index acb35161..bd82f50c 100755 --- a/client/src/main/java/client/network/ClientPlayer.java +++ b/client/src/main/java/client/network/ClientPlayer.java @@ -1846,42 +1846,13 @@ public class ClientPlayer implements IClientPlayer { NetHandler.checkThread(packetIn, this, this.gm, this.world); - if (packetIn.getParticleCount() == 0) + try { - double d0 = (double)(packetIn.getParticleSpeed() * packetIn.getXOffset()); - double d2 = (double)(packetIn.getParticleSpeed() * packetIn.getYOffset()); - double d4 = (double)(packetIn.getParticleSpeed() * packetIn.getZOffset()); - - try - { - this.world.spawnParticle(packetIn.getParticleType(), packetIn.getXCoordinate(), packetIn.getYCoordinate(), packetIn.getZCoordinate(), d0, d2, d4, packetIn.getParticleArg()); - } - catch (Throwable var17) - { - Log.RENDER.warn("Konnte Partikel-Effekt " + packetIn.getParticleType() + " nicht erzeugen"); - } + this.world.spawnParticle(packetIn.getParticleType(), packetIn.getXCoordinate(), packetIn.getYCoordinate(), packetIn.getZCoordinate(), packetIn.getParticleArg()); } - else + catch (Throwable var17) { - for (int i = 0; i < packetIn.getParticleCount(); ++i) - { - double d1 = this.rand.gaussian() * (double)packetIn.getXOffset(); - double d3 = this.rand.gaussian() * (double)packetIn.getYOffset(); - double d5 = this.rand.gaussian() * (double)packetIn.getZOffset(); - double d6 = this.rand.gaussian() * (double)packetIn.getParticleSpeed(); - double d7 = this.rand.gaussian() * (double)packetIn.getParticleSpeed(); - double d8 = this.rand.gaussian() * (double)packetIn.getParticleSpeed(); - - try - { - this.world.spawnParticle(packetIn.getParticleType(), packetIn.getXCoordinate() + d1, packetIn.getYCoordinate() + d3, packetIn.getZCoordinate() + d5, d6, d7, d8, packetIn.getParticleArg()); - } - catch (Throwable var16) - { - Log.RENDER.warn("Konnte Partikel-Effekt " + packetIn.getParticleType() + " nicht erzeugen"); - return; - } - } + Log.RENDER.warn("Konnte Partikel-Effekt " + packetIn.getParticleType() + " nicht erzeugen"); } } diff --git a/client/src/main/java/client/renderer/EffectRenderer.java b/client/src/main/java/client/renderer/EffectRenderer.java index d6a9f1b7..60b05e08 100755 --- a/client/src/main/java/client/renderer/EffectRenderer.java +++ b/client/src/main/java/client/renderer/EffectRenderer.java @@ -29,18 +29,13 @@ import common.world.State; import common.world.World; public class EffectRenderer { - private abstract class Effect { - protected int age; - protected int lifetime; - - public abstract boolean onUpdate(); - - public abstract void render(RenderBuffer rb, float partial, float rotX, float rotZ, float rotYZ, float rotXY, float rotXZ); - - public abstract int getLayer(); + private interface Effect { + boolean onUpdate(); + void render(RenderBuffer rb, float partial, float rotX, float rotZ, float rotYZ, float rotXY, float rotXZ); + int getLayer(); } - private abstract class Moveable extends Effect { + private abstract class Moveable implements Effect { protected double prevX; protected double prevY; protected double prevZ; @@ -51,6 +46,8 @@ public class EffectRenderer { protected double motionY; protected double motionZ; + protected int age; + protected int lifetime; protected float gravity; protected Moveable(double posXIn, double posYIn, double posZIn) { @@ -104,25 +101,25 @@ public class EffectRenderer { public final void render(RenderBuffer rb, float partial, float rotX, float rotZ, float rotYZ, float rotXY, float rotXZ) { this.setScale(partial); - float f = (float)this.textureU / 8.0F; - float f1 = f + 1.0f / 8.0f; - float f2 = (float)this.textureV / 4.0F; - float f3 = f2 + 1.0f / 4.0f; - float f4 = 0.1F * this.scale; - float f5 = (float)(this.prevX + (this.posX - this.prevX) * (double)partial - interpPosX); - float f6 = (float)(this.prevY + (this.posY - this.prevY) * (double)partial - interpPosY); - float f7 = (float)(this.prevZ + (this.posZ - this.prevZ) * (double)partial - interpPosZ); - int i = this.getBrightness(partial); - int j = i >> 16 & 65535; - int k = i & 65535; - rb.pos((double)(f5 - rotX * f4 - rotXY * f4), (double)(f6 - rotZ * f4), (double)(f7 - rotYZ * f4 - rotXZ * f4)) - .tex((double)f1, (double)f3).color(this.red, this.green, this.blue, 1.0f).lightmap(j, k).endVertex(); - rb.pos((double)(f5 - rotX * f4 + rotXY * f4), (double)(f6 + rotZ * f4), (double)(f7 - rotYZ * f4 + rotXZ * f4)) - .tex((double)f1, (double)f2).color(this.red, this.green, this.blue, 1.0f).lightmap(j, k).endVertex(); - rb.pos((double)(f5 + rotX * f4 + rotXY * f4), (double)(f6 + rotZ * f4), (double)(f7 + rotYZ * f4 + rotXZ * f4)).tex((double)f, (double)f2) - .color(this.red, this.green, this.blue, 1.0f).lightmap(j, k).endVertex(); - rb.pos((double)(f5 + rotX * f4 - rotXY * f4), (double)(f6 - rotZ * f4), (double)(f7 + rotYZ * f4 - rotXZ * f4)).tex((double)f, (double)f3) - .color(this.red, this.green, this.blue, 1.0f).lightmap(j, k).endVertex(); + float u1 = (float)this.textureU / 8.0F; + float u2 = u1 + 1.0f / 8.0f; + float v1 = (float)this.textureV / 4.0F; + float v2 = v1 + 1.0f / 4.0f; + float scale = 0.1F * this.scale; + float x = (float)(this.prevX + (this.posX - this.prevX) * (double)partial - interpPosX); + float y = (float)(this.prevY + (this.posY - this.prevY) * (double)partial - interpPosY); + float z = (float)(this.prevZ + (this.posZ - this.prevZ) * (double)partial - interpPosZ); + int light = this.getBrightness(partial); + int sky = light >> 16 & 65535; + int block = light & 65535; + rb.pos((double)(x - rotX * scale - rotXY * scale), (double)(y - rotZ * scale), (double)(z - rotYZ * scale - rotXZ * scale)) + .tex((double)u2, (double)v2).color(this.red, this.green, this.blue, 1.0f).lightmap(sky, block).endVertex(); + rb.pos((double)(x - rotX * scale + rotXY * scale), (double)(y + rotZ * scale), (double)(z - rotYZ * scale + rotXZ * scale)) + .tex((double)u2, (double)v1).color(this.red, this.green, this.blue, 1.0f).lightmap(sky, block).endVertex(); + rb.pos((double)(x + rotX * scale + rotXY * scale), (double)(y + rotZ * scale), (double)(z + rotYZ * scale + rotXZ * scale)).tex((double)u1, (double)v1) + .color(this.red, this.green, this.blue, 1.0f).lightmap(sky, block).endVertex(); + rb.pos((double)(x + rotX * scale - rotXY * scale), (double)(y - rotZ * scale), (double)(z + rotYZ * scale - rotXZ * scale)).tex((double)u1, (double)v2) + .color(this.red, this.green, this.blue, 1.0f).lightmap(sky, block).endVertex(); } public final int getLayer() { @@ -138,9 +135,9 @@ public class EffectRenderer { private class Aura extends Particle { private final boolean fullBright; - protected Aura(double xCoordIn, double yCoordIn, double zCoordIn, double xSpeedIn, double ySpeedIn, double speedIn, boolean fullBright, + protected Aura(double xCoordIn, double yCoordIn, double zCoordIn, boolean fullBright, int texture) { - super(xCoordIn, yCoordIn, zCoordIn, xSpeedIn, ySpeedIn, speedIn); + super(xCoordIn, yCoordIn, zCoordIn, 0.0D, 0.0D, 0.0D); float f = texture != 0 ? 1.0f : rng.floatv() * 0.1F + 0.2F; this.red = f; this.green = f; @@ -177,14 +174,14 @@ public class EffectRenderer { private class Crit extends Particle { private final float baseScale; - protected Crit(double xCoordIn, double yCoordIn, double zCoordIn, double p_i46285_8_, double p_i46285_10_, double p_i46285_12_) { + protected Crit(double xCoordIn, double yCoordIn, double zCoordIn) { super(xCoordIn, yCoordIn, zCoordIn, 0.0D, 0.0D, 0.0D); this.motionX *= 0.10000000149011612D; this.motionY *= 0.10000000149011612D; this.motionZ *= 0.10000000149011612D; - this.motionX += p_i46285_8_ * 0.4D; - this.motionY += p_i46285_10_ * 0.4D; - this.motionZ += p_i46285_12_ * 0.4D; + this.motionX += (double)(rng.floatv() * 2.0F - 1.0F) * 0.4D; + this.motionY += ((double)(rng.floatv() * 2.0F - 1.0F) + 0.2) * 0.4D; + this.motionZ += (double)(rng.floatv() * 2.0F - 1.0F) * 0.4D; this.blue = (float)(Math.random() * 0.30000001192092896D + 0.6000000238418579D); this.red = this.blue * 0.3f; this.green = this.blue * 0.8f; @@ -235,16 +232,10 @@ public class EffectRenderer { this.lifetime = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); } - protected Downfall(double xCoordIn, double yCoordIn, double zCoordIn, double xSpeedIn, double ySpeedIn, double zSpeedIn) { + protected Downfall(double xCoordIn, double yCoordIn, double zCoordIn) { this(xCoordIn, yCoordIn, zCoordIn, 0); this.gravity = 0.04F; this.setUV(1 + rng.zrange(3), 1); - - if(ySpeedIn == 0.0D && (xSpeedIn != 0.0D || zSpeedIn != 0.0D)) { - this.motionX = xSpeedIn; - this.motionY = ySpeedIn + 0.1D; - this.motionZ = zSpeedIn; - } } public boolean onUpdate() { @@ -290,15 +281,15 @@ public class EffectRenderer { private class Dust extends Particle { private final float baseScale; - protected Dust(double xCoordIn, double yCoordIn, double zCoordIn, float red, float green, float blue) { + protected Dust(double xCoordIn, double yCoordIn, double zCoordIn, int color) { super(xCoordIn, yCoordIn, zCoordIn, 0.0D, 0.0D, 0.0D); this.motionX *= 0.10000000149011612D; this.motionY *= 0.10000000149011612D; this.motionZ *= 0.10000000149011612D; float f = (float)Math.random() * 0.4F + 0.6F; - this.red = ((float)(Math.random() * 0.20000000298023224D) + 0.8F) * red * f; - this.green = ((float)(Math.random() * 0.20000000298023224D) + 0.8F) * green * f; - this.blue = ((float)(Math.random() * 0.20000000298023224D) + 0.8F) * blue * f; + this.red = ((float)(Math.random() * 0.20000000298023224D) + 0.8F) * ((float)((color >> 16) & 0xff) / 255.0f) * f; + this.green = ((float)(Math.random() * 0.20000000298023224D) + 0.8F) * ((float)((color >> 8) & 0xff) / 255.0f) * f; + this.blue = ((float)(Math.random() * 0.20000000298023224D) + 0.8F) * ((float)(color & 0xff) / 255.0f) * f; this.scale *= 0.75F; this.baseScale = this.scale; this.lifetime = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); @@ -335,11 +326,11 @@ public class EffectRenderer { } private class Explosion extends Particle { - protected Explosion(double xCoordIn, double yCoordIn, double zCoordIn, double xSpeedIn, double ySpeedIn, double zSpeedIn) { - super(xCoordIn, yCoordIn, zCoordIn, xSpeedIn, ySpeedIn, zSpeedIn); - this.motionX = xSpeedIn + (Math.random() * 2.0D - 1.0D) * 0.05000000074505806D; - this.motionY = ySpeedIn + (Math.random() * 2.0D - 1.0D) * 0.05000000074505806D; - this.motionZ = zSpeedIn + (Math.random() * 2.0D - 1.0D) * 0.05000000074505806D; + protected Explosion(double xCoordIn, double yCoordIn, double zCoordIn) { + super(xCoordIn, yCoordIn, zCoordIn, 0.0D, 0.0D, 0.0D); + this.motionX = (Math.random() * 2.0D - 1.0D) * 0.05000000074505806D; + this.motionY = (Math.random() * 2.0D - 1.0D) * 0.05000000074505806D; + this.motionZ = (Math.random() * 2.0D - 1.0D) * 0.05000000074505806D; this.red = this.green = this.blue = rng.floatv() * 0.3F + 0.7F; this.scale = rng.floatv() * rng.floatv() * 6.0F + 1.0F; this.lifetime = (int)(16.0D / ((double)rng.floatv() * 0.8D + 0.2D)) + 2; @@ -367,11 +358,11 @@ public class EffectRenderer { private class Flame extends Particle { private final float baseScale; - protected Flame(double xCoordIn, double yCoordIn, double zCoordIn, double xSpeedIn, double ySpeedIn, double zSpeedIn) { - super(xCoordIn, yCoordIn, zCoordIn, xSpeedIn, ySpeedIn, zSpeedIn); - this.motionX = this.motionX * 0.009999999776482582D + xSpeedIn; - this.motionY = this.motionY * 0.009999999776482582D + ySpeedIn; - this.motionZ = this.motionZ * 0.009999999776482582D + zSpeedIn; + protected Flame(double xCoordIn, double yCoordIn, double zCoordIn) { + super(xCoordIn, yCoordIn, zCoordIn, 0.0D, 0.0D, 0.0D); + this.motionX = this.motionX * 0.009999999776482582D; + this.motionY = this.motionY * 0.009999999776482582D; + this.motionZ = this.motionZ * 0.009999999776482582D; this.posX += (double)((rng.floatv() - rng.floatv()) * 0.05F); this.posY += (double)((rng.floatv() - rng.floatv()) * 0.05F); this.posZ += (double)((rng.floatv() - rng.floatv()) * 0.05F); @@ -504,7 +495,7 @@ public class EffectRenderer { float f = (float)this.age / (float)this.lifetime; if(rng.floatv() > f) { - world.spawnParticle(ParticleType.SMOKE, this.posX, this.posY, this.posZ, this.motionX, this.motionY, this.motionZ); + world.spawnParticle(ParticleType.SMOKE, this.posX, this.posY, this.posZ); } this.motionY -= 0.03D; @@ -522,11 +513,11 @@ public class EffectRenderer { private final double baseY; private final double baseZ; - protected Teleport(double xCoordIn, double yCoordIn, double zCoordIn, double xSpeedIn, double ySpeedIn, double zSpeedIn) { - super(xCoordIn, yCoordIn, zCoordIn, xSpeedIn, ySpeedIn, zSpeedIn); - this.motionX = xSpeedIn; - this.motionY = ySpeedIn; - this.motionZ = zSpeedIn; + protected Teleport(double xCoordIn, double yCoordIn, double zCoordIn) { + super(xCoordIn, yCoordIn, zCoordIn, 0.0, 0.0, 0.0); + this.motionX = (rng.floatv() - 0.5F) * 0.2F; + this.motionY = (rng.floatv() - 0.5F) * 0.2F; + this.motionZ = (rng.floatv() - 0.5F) * 0.2F; this.baseX = this.posX = xCoordIn; this.baseY = this.posY = yCoordIn; this.baseZ = this.posZ = zCoordIn; @@ -585,14 +576,11 @@ public class EffectRenderer { private class Smoke extends Particle { private final float baseScale; - protected Smoke(double xCoordIn, double yCoordIn, double zCoordIn, double p_i46348_8_, double p_i46348_10_, double p_i46348_12_) { + protected Smoke(double xCoordIn, double yCoordIn, double zCoordIn) { super(xCoordIn, yCoordIn, zCoordIn, 0.0D, 0.0D, 0.0D); this.motionX *= 0.10000000149011612D; this.motionY *= 0.10000000149011612D; this.motionZ *= 0.10000000149011612D; - this.motionX += p_i46348_8_; - this.motionY += p_i46348_10_; - this.motionZ += p_i46348_12_; this.red = this.green = this.blue = (float)(Math.random() * 0.30000001192092896D); this.scale *= 0.75F; this.baseScale = this.scale; @@ -633,11 +621,11 @@ public class EffectRenderer { private class Spell extends Particle { private final boolean effect; - protected Spell(double xCoordIn, double yCoordIn, double zCoordIn, double p_i1229_8_, double p_i1229_10_, double p_i1229_12_, ItemPotion potion) { - this(xCoordIn, yCoordIn, zCoordIn, p_i1229_8_, p_i1229_10_, p_i1229_12_, potion, rng.doublev() * 4.0D, rng.doublev() * Math.PI * 2.0D); + protected Spell(double xCoordIn, double yCoordIn, double zCoordIn, ItemPotion potion) { + this(xCoordIn, yCoordIn, zCoordIn, potion, rng.doublev() * 4.0D, rng.doublev() * Math.PI * 2.0D); } - private Spell(double xCoordIn, double yCoordIn, double zCoordIn, double p_i1229_8_, double p_i1229_10_, double p_i1229_12_, ItemPotion potion, + private Spell(double xCoordIn, double yCoordIn, double zCoordIn, ItemPotion potion, double d22, double d23) { super(xCoordIn + Math.cos(d23) * d22 * 0.1, yCoordIn + 0.3, zCoordIn + Math.sin(d23) * d22 * 0.1, 0.5 - rng.doublev(), 0.01 + rng.doublev() * 0.5, 0.5 - rng.doublev()); @@ -712,16 +700,16 @@ public class EffectRenderer { protected float green; protected float blue; - private Icon(double x, double y, double z, double xSpeed, double ySpeed, double zSpeed, float size, TextureAtlasSprite icon) { - super(x, y, z, xSpeed, ySpeed, zSpeed); + private Icon(double x, double y, double z, float size, TextureAtlasSprite icon) { + super(x, y, z, 0.0, 0.0, 0.0); this.size = (rng.floatv() * 0.5F + 0.5F) * size * 0.1f; this.icon = icon; this.offsetX = rng.floatv() * 3.0F; this.offsetY = rng.floatv() * 3.0F; } - protected Icon(double x, double y, double z, double xSpeed, double ySpeed, double zSpeed, State state, BlockPos pos, boolean hit) { - this(x, y, z, xSpeed, ySpeed, zSpeed, hit ? 0.6f : 1.0f, Client.CLIENT.getBlockRendererDispatcher().getModelManager().getTexture(state)); + protected Icon(double x, double y, double z, State state, BlockPos pos, boolean hit) { + this(x, y, z, hit ? 0.6f : 1.0f, Client.CLIENT.getBlockRendererDispatcher().getModelManager().getTexture(state)); this.gravity = 1.0F; this.red = this.green = this.blue = 0.6F; if(hit) { @@ -738,16 +726,13 @@ public class EffectRenderer { this.blue *= (float)(color & 255) / 255.0F; } - protected Icon(double x, double y, double z, double xSpeed, double ySpeed, double zSpeed, Item item) { - this(x, y, z, 0.0D, 0.0D, 0.0D, 1.0f, Client.CLIENT.getRenderItem().getItemModelMesher().getParticleIcon(item)); + protected Icon(double x, double y, double z, Item item) { + this(x, y, z, 1.0f, Client.CLIENT.getRenderItem().getItemModelMesher().getParticleIcon(item)); this.red = this.green = this.blue = 1.0F; this.gravity = 1.0F; this.motionX *= 0.10000000149011612D; this.motionY *= 0.10000000149011612D; this.motionZ *= 0.10000000149011612D; - this.motionX += xSpeed; - this.motionY += ySpeed; - this.motionZ += zSpeed; } public final int getLayer() { @@ -791,12 +776,14 @@ public class EffectRenderer { } } - private class Textured extends Effect { + private class Textured implements Effect { private static final VertexFormat VERTEX_FORMAT = (new VertexFormat()).addElement(DefaultVertexFormats.POSITION_3F) .addElement(DefaultVertexFormats.TEX_2F).addElement(DefaultVertexFormats.COLOR_4UB).addElement(DefaultVertexFormats.TEX_2S) .addElement(DefaultVertexFormats.NORMAL_3B).addElement(DefaultVertexFormats.PADDING_1B); private final String texture; + private final int texWidth; + private final int texHeight; private final float scale; private final float brightness; private final double posX; @@ -807,45 +794,46 @@ public class EffectRenderer { private int lifetime; private TextureManager manager; - protected Textured(TextureManager manager, double x, double y, double z, double scale, String texture) { + protected Textured(TextureManager manager, double x, double y, double z, float scale, String texture, int width, int height) { this.manager = manager; this.lifetime = 6 + rng.zrange(4); this.brightness = rng.floatv() * 0.6F + 0.4F; - this.scale = (float)scale; - this.texture = texture; + this.scale = scale; + this.texture = "textures/world/" + texture + ".png"; + this.texWidth = width; + this.texHeight = height; this.posX = x; this.posY = y; this.posZ = z; } public final void render(RenderBuffer rb, float partial, float rotX, float rotZ, float rotYZ, float rotXY, float rotXZ) { - int i = (int)(((float)this.age + partial) * 15.0F / (float)this.lifetime); - - if(i <= 15) { + int idx = (int)(((float)this.age + partial) * (float)(this.texWidth * this.texHeight - 1) / (float)this.lifetime); + if(idx < this.texWidth * this.texHeight) { this.manager.bindTexture(this.texture); - float f = (float)(i % 4) / 4.0F; - float f1 = f + 0.24975F; - float f2 = (float)(i / 4) / 4.0F; - float f3 = f2 + 0.24975F; - float f4 = 2.0F * (1.0F - this.scale * 0.5F); - float f5 = (float)(this.posX - interpPosX); - float f6 = (float)(this.posY - interpPosY); - float f7 = (float)(this.posZ - interpPosZ); + float u1 = (float)(idx % this.texWidth) / (float)this.texWidth; + float u2 = u1 + 1.0f / (float)this.texWidth; + float v1 = (float)(idx / this.texWidth) / (float)this.texHeight; + float v2 = v1 + 1.0f / (float)this.texHeight; + float scale = 2.0F * (1.0F - this.scale * 0.5F); + float x = (float)(this.posX - interpPosX); + float y = (float)(this.posY - interpPosY); + float z = (float)(this.posZ - interpPosZ); GlState.color(1.0F, 1.0F, 1.0F, 1.0F); GlState.disableLighting(); ItemRenderer.disableStandardItemLighting(); rb.begin(GL11.GL_QUADS, VERTEX_FORMAT); - rb.pos((double)(f5 - rotX * f4 - rotXY * f4), (double)(f6 - rotZ * f4), (double)(f7 - rotYZ * f4 - rotXZ * f4)) - .tex((double)f1, (double)f3).color(this.brightness, this.brightness, this.brightness, 1.0F).lightmap(0, 240) + rb.pos((double)(x - rotX * scale - rotXY * scale), (double)(y - rotZ * scale), (double)(z - rotYZ * scale - rotXZ * scale)) + .tex((double)u2, (double)v2).color(this.brightness, this.brightness, this.brightness, 1.0F).lightmap(0, 240) .normal(0.0F, 1.0F, 0.0F).endVertex(); - rb.pos((double)(f5 - rotX * f4 + rotXY * f4), (double)(f6 + rotZ * f4), (double)(f7 - rotYZ * f4 + rotXZ * f4)) - .tex((double)f1, (double)f2).color(this.brightness, this.brightness, this.brightness, 1.0F).lightmap(0, 240) + rb.pos((double)(x - rotX * scale + rotXY * scale), (double)(y + rotZ * scale), (double)(z - rotYZ * scale + rotXZ * scale)) + .tex((double)u2, (double)v1).color(this.brightness, this.brightness, this.brightness, 1.0F).lightmap(0, 240) .normal(0.0F, 1.0F, 0.0F).endVertex(); - rb.pos((double)(f5 + rotX * f4 + rotXY * f4), (double)(f6 + rotZ * f4), (double)(f7 + rotYZ * f4 + rotXZ * f4)) - .tex((double)f, (double)f2).color(this.brightness, this.brightness, this.brightness, 1.0F).lightmap(0, 240) + rb.pos((double)(x + rotX * scale + rotXY * scale), (double)(y + rotZ * scale), (double)(z + rotYZ * scale + rotXZ * scale)) + .tex((double)u1, (double)v1).color(this.brightness, this.brightness, this.brightness, 1.0F).lightmap(0, 240) .normal(0.0F, 1.0F, 0.0F).endVertex(); - rb.pos((double)(f5 + rotX * f4 - rotXY * f4), (double)(f6 - rotZ * f4), (double)(f7 + rotYZ * f4 - rotXZ * f4)) - .tex((double)f, (double)f3).color(this.brightness, this.brightness, this.brightness, 1.0F).lightmap(0, 240) + rb.pos((double)(x + rotX * scale - rotXY * scale), (double)(y - rotZ * scale), (double)(z + rotYZ * scale - rotXZ * scale)) + .tex((double)u1, (double)v2).color(this.brightness, this.brightness, this.brightness, 1.0F).lightmap(0, 240) .normal(0.0F, 1.0F, 0.0F).endVertex(); Tessellator.draw(); GlState.enableLighting(); @@ -863,8 +851,11 @@ public class EffectRenderer { } } - private abstract class Spawner extends Effect { - private final int amount; + private abstract class Spawner implements Effect { + protected final int amount; + protected final int lifetime; + + protected int age; protected Spawner(int amount, int lifetime) { this.amount = amount; @@ -906,7 +897,7 @@ public class EffectRenderer { if(x * x + y * y + z * z <= 1.0D) world.spawnParticle(ParticleType.CRIT, this.entity.posX + x * (double)this.entity.width / 4.0D, this.entity.getEntityBoundingBox().minY + (double)(this.entity.height / 2.0F) + y * (double)this.entity.height / 4.0D, - this.entity.posZ + z * (double)this.entity.width / 4.0D, x, y + 0.2D, z); + this.entity.posZ + z * (double)this.entity.width / 4.0D); } } @@ -926,12 +917,12 @@ public class EffectRenderer { double x = this.posX + (rng.doublev() - rng.doublev()) * 4.0D; double y = this.posY + (rng.doublev() - rng.doublev()) * 4.0D; double z = this.posZ + (rng.doublev() - rng.doublev()) * 4.0D; - world.spawnParticle(ParticleType.EXPLOSION_LARGE, x, y, z, (double)((float)this.age / (float)this.lifetime), 0.0D, 0.0D); + world.spawnParticle(ParticleType.EXPLOSION_LARGE, x, y, z, (int)(100.0f * (float)this.age / (float)this.lifetime)); } } private interface Creator { - Effect create(double x, double y, double z, double xSpeed, double ySpeed, double zSpeed, int data); + Effect create(double x, double y, double z, int data); } private static final String TEXTURE = "textures/world/particles.png"; @@ -960,33 +951,32 @@ public class EffectRenderer { } private void registerEffects() { - this.register(ParticleType.EXPLOSION_NORMAL, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Explosion(x, y, z, xSpeed, ySpeed, zSpeed)); - this.register(ParticleType.SPLASH, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Downfall(x, y, z, xSpeed, ySpeed, zSpeed)); - this.register(ParticleType.WATER_DROP, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Downfall(x, y, z, 0)); - this.register(ParticleType.DEPTH, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Aura(x, y, z, xSpeed, ySpeed, zSpeed, true, 0)); - this.register(ParticleType.CRIT, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Crit(x, y, z, xSpeed, ySpeed, zSpeed)); - this.register(ParticleType.SMOKE, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Smoke(x, y, z, xSpeed, ySpeed, zSpeed)); - this.register(ParticleType.POTION, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Spell(x, y, z, xSpeed, ySpeed, zSpeed, - ItemPotion.getPotionItem(data))); - this.register(ParticleType.GROW, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Aura(x, y, z, xSpeed, ySpeed, zSpeed, false, 1)); - this.register(ParticleType.SPORE, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Aura(x, y, z, xSpeed, ySpeed, zSpeed, false, 0)); - this.register(ParticleType.TELEPORT, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Teleport(x, y, z, xSpeed, ySpeed, zSpeed)); - this.register(ParticleType.FLAME, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Flame(x, y, z, xSpeed, ySpeed, zSpeed)); - this.register(ParticleType.LAVA, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new LavaPop(x, y, z)); - this.register(ParticleType.DUST, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Dust(x, y, z, (float)xSpeed, (float)ySpeed, (float)zSpeed)); - this.register(ParticleType.HEART, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Heart(x, y, z)); - this.register(ParticleType.ITEM_CRACK, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> { - Item item = ItemRegistry.byId(data); - return item == null ? null : new Icon(x, y, z, xSpeed, ySpeed, zSpeed, item); + this.register(ParticleType.EXPLOSION_NORMAL, (x, y, z, u) -> new Explosion(x, y, z)); + this.register(ParticleType.SPLASH, (x, y, z, u) -> new Downfall(x, y, z)); + this.register(ParticleType.WATER_DROP, (x, y, z, u) -> new Downfall(x, y, z, 0)); + this.register(ParticleType.DEPTH, (x, y, z, u) -> new Aura(x, y, z, true, 0)); + this.register(ParticleType.CRIT, (x, y, z, u) -> new Crit(x, y, z)); + this.register(ParticleType.SMOKE, (x, y, z, u) -> new Smoke(x, y, z)); + this.register(ParticleType.POTION, (x, y, z, id) -> new Spell(x, y, z, ItemPotion.getPotionItem(id))); + this.register(ParticleType.GROW, (x, y, z, u) -> new Aura(x, y, z, false, 1)); + this.register(ParticleType.SPORE, (x, y, z, u) -> new Aura(x, y, z, false, 0)); + this.register(ParticleType.TELEPORT, (x, y, z, u) -> new Teleport(x, y, z)); + this.register(ParticleType.FLAME, (x, y, z, u) -> new Flame(x, y, z)); + this.register(ParticleType.LAVA, (x, y, z, u) -> new LavaPop(x, y, z)); + this.register(ParticleType.DUST, (x, y, z, color) -> new Dust(x, y, z, color)); + this.register(ParticleType.HEART, (x, y, z, u) -> new Heart(x, y, z)); + this.register(ParticleType.ITEM_CRACK, (x, y, z, id) -> { + Item item = ItemRegistry.byId(id); + return item == null ? null : new Icon(x, y, z, item); }); - this.register(ParticleType.BLOCK_CRACK, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> { - State state = BlockRegistry.byId(data); - return state == null ? null : new Icon(x, y, z, xSpeed, ySpeed, zSpeed, state, null, false); + this.register(ParticleType.BLOCK_CRACK, (x, y, z, id) -> { + State state = BlockRegistry.byId(id); + return state == null ? null : new Icon(x, y, z, state, null, false); }); - this.register(ParticleType.EXPLOSION_HUGE, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new ExplosionSpawner(x, y, z)); + this.register(ParticleType.EXPLOSION_HUGE, (x, y, z, u) -> new ExplosionSpawner(x, y, z)); this.register(ParticleType.EXPLOSION_LARGE, - (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Textured(this.manager, x, y, z, xSpeed, "textures/entity/explosion.png")); - this.register(ParticleType.HAIL_CORN, (x, y, z, xSpeed, ySpeed, zSpeed, data) -> new Downfall(x, y, z, 1)); + (x, y, z, scale) -> new Textured(this.manager, x, y, z, (float)scale / 100.0f, "explosion", 4, 4)); + this.register(ParticleType.HAIL_CORN, (x, y, z, u) -> new Downfall(x, y, z, 1)); } public void setWorld(World world) { @@ -1079,10 +1069,10 @@ public class EffectRenderer { this.layers[i].add(effect); } - public void spawnParticle(ParticleType type, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed, int data) { + public void spawnParticle(ParticleType type, double x, double y, double z, int data) { Creator creator = this.types.get(type); if(creator != null) { - Effect effect = creator.create(x, y, z, xSpeed, ySpeed, zSpeed, data); + Effect effect = creator.create(x, y, z, data); if(effect != null) this.add(effect); } @@ -1099,8 +1089,7 @@ public class EffectRenderer { double d0 = (double)pos.getX() + ((double)j + 0.5D) / (double)i; double d1 = (double)pos.getY() + ((double)k + 0.5D) / (double)i; double d2 = (double)pos.getZ() + ((double)l + 0.5D) / (double)i; - this.add(new Icon(d0, d1, d2, d0 - (double)pos.getX() - 0.5D, d1 - (double)pos.getY() - 0.5D, d2 - (double)pos.getZ() - 0.5D, - state, pos, false)); + this.add(new Icon(d0, d1, d2, state, pos, false)); } } } @@ -1147,7 +1136,7 @@ public class EffectRenderer { d0 = (double)i + block.getBlockBoundsMaxX() + (double)f; } - this.add(new Icon(d0, d1, d2, 0.0D, 0.0D, 0.0D, iblockstate, pos, true)); + this.add(new Icon(d0, d1, d2, iblockstate, pos, true)); } } diff --git a/client/src/main/java/client/renderer/EntityRenderer.java b/client/src/main/java/client/renderer/EntityRenderer.java index cf4f01d9..5687df91 100755 --- a/client/src/main/java/client/renderer/EntityRenderer.java +++ b/client/src/main/java/client/renderer/EntityRenderer.java @@ -1133,7 +1133,7 @@ public class EntityRenderer { } } if(temp < 194.0f || this.random.chance(8)) - this.gm.world.spawnParticle(temp >= 194.0f && this.random.chance(20) ? ParticleType.LAVA : ParticleType.SMOKE, (double)blockpos1.getX() + d3, (double)((float)blockpos1.getY() + 0.1F) - block.getBlockBoundsMinY(), (double)blockpos1.getZ() + d4, 0.0D, 0.0D, 0.0D); + this.gm.world.spawnParticle(temp >= 194.0f && this.random.chance(20) ? ParticleType.LAVA : ParticleType.SMOKE, (double)blockpos1.getX() + d3, (double)((float)blockpos1.getY() + 0.1F) - block.getBlockBoundsMinY(), (double)blockpos1.getZ() + d4); } else if (block != Blocks.air) { @@ -1147,7 +1147,7 @@ public class EntityRenderer { d2 = (double)blockpos2.getZ() + d4; } - this.gm.world.spawnParticle(temp <= 5.0f ? ParticleType.HAIL_CORN : ParticleType.WATER_DROP, (double)blockpos2.getX() + d3, (double)((float)blockpos2.getY() + 0.1F) + block.getBlockBoundsMaxY(), (double)blockpos2.getZ() + d4, 0.0D, 0.0D, 0.0D); + this.gm.world.spawnParticle(temp <= 5.0f ? ParticleType.HAIL_CORN : ParticleType.WATER_DROP, (double)blockpos2.getX() + d3, (double)((float)blockpos2.getY() + 0.1F) + block.getBlockBoundsMaxY(), (double)blockpos2.getZ() + d4); } } } diff --git a/client/src/main/java/client/world/WorldClient.java b/client/src/main/java/client/world/WorldClient.java index b2cf45fd..6de831c7 100755 --- a/client/src/main/java/client/world/WorldClient.java +++ b/client/src/main/java/client/world/WorldClient.java @@ -297,7 +297,7 @@ public class WorldClient extends AWorldClient float x = ((float)posX) + (rand.floatv() - rand.floatv() - 0.5f) * 32.0f; float y = -64.0f + rand.floatv() * 65.0f; // * 68.0f; float z = ((float)posZ) + (rand.floatv() - rand.floatv() - 0.5f) * 32.0f; - this.spawnParticle(ParticleType.DEPTH, (double)x, (double)y, (double)z, 0.0D, 0.0D, 0.0D); + this.spawnParticle(ParticleType.DEPTH, (double)x, (double)y, (double)z); } // } } @@ -414,15 +414,14 @@ public class WorldClient extends AWorldClient // zOffset, data); // } - public void spawnParticle(ParticleType particle, double xCoord, double yCoord, double zCoord, double xOffset, double yOffset, - double zOffset, int data) { + public void spawnParticle(ParticleType particle, double xCoord, double yCoord, double zCoord, int data) { if (this.gm.getRenderViewEntity() != null) { double d0 = this.gm.getRenderViewEntity().posX - xCoord; double d1 = this.gm.getRenderViewEntity().posY - yCoord; double d2 = this.gm.getRenderViewEntity().posZ - zCoord; if(particle.isUnlimited() || d0 * d0 + d1 * d1 + d2 * d2 <= 256.0D) - this.gm.effectRenderer.spawnParticle(particle, xCoord, yCoord, zCoord, xOffset, yOffset, zOffset, data); + this.gm.effectRenderer.spawnParticle(particle, xCoord, yCoord, zCoord, data); } } @@ -574,6 +573,14 @@ public class WorldClient extends AWorldClient case 1025: MutableBlockPos pos = new MutableBlockPos(blockPosIn.getX(), blockPosIn.getY(), blockPosIn.getZ()); + for(int z = 0; z < 1000; z++) { + this.spawnParticle(ParticleType.EXPLOSION_HUGE, + (double)pos.getX() + this.rand.gaussian() * 128.0, (double)pos.getY() + this.rand.gaussian() * 2.0, (double)pos.getZ() + this.rand.gaussian() * 128.0); + } + for(int z = 0; z < 1000; z++) { + this.spawnParticle(ParticleType.EXPLOSION_NORMAL, + (double)pos.getX() + this.rand.gaussian() * 128.0, (double)pos.getY() + this.rand.gaussian() * 2.0, (double)pos.getZ() + this.rand.gaussian() * 128.0, 100); + } for(int z = 0; z < 30; z++) { this.playSoundAtPos(pos.set(blockPosIn.getX() + this.rand.range(-128, 128), blockPosIn.getY() + this.rand.range(-4, 4), blockPosIn.getZ() + this.rand.range(-128, 128)), @@ -594,10 +601,7 @@ public class WorldClient extends AWorldClient double d21 = d15 + (double)l * 0.01D + (this.rand.doublev() - 0.5D) * (double)i * 0.5D; double d4 = d17 + (this.rand.doublev() - 0.5D) * 0.5D; double d6 = d19 + (double)i * 0.01D + (this.rand.doublev() - 0.5D) * (double)l * 0.5D; - double d8 = (double)l * d20 + this.rand.gaussian() * 0.01D; - double d10 = -0.03D + this.rand.gaussian() * 0.01D; - double d12 = (double)i * d20 + this.rand.gaussian() * 0.01D; - this.spawnParticle(ParticleType.SMOKE, d21, d4, d6, d8, d10, d12); + this.spawnParticle(ParticleType.SMOKE, d21, d4, d6); } return; @@ -620,12 +624,12 @@ public class WorldClient extends AWorldClient for (int i1 = 0; i1 < 8; ++i1) { - this.spawnParticle(ParticleType.ITEM_CRACK, d13, d14, d16, this.rand.gaussian() * 0.15D, this.rand.doublev() * 0.2D, this.rand.gaussian() * 0.15D, ItemRegistry.getId(Items.water_bottle)); + this.spawnParticle(ParticleType.ITEM_CRACK, d13, d14, d16, ItemRegistry.getId(Items.water_bottle)); } for (int l1 = 0; l1 < 100; ++l1) { - this.spawnParticle(ParticleType.POTION, d13, d14, d16, 0.0, 0.0, 0.0, data); + this.spawnParticle(ParticleType.POTION, d13, d14, d16, data); } this.playSoundAtPos(blockPosIn, SoundEvent.GLASS, 1.0F); diff --git a/client/src/main/resources/textures/entity/explosion.png b/client/src/main/resources/textures/world/explosion.png similarity index 100% rename from client/src/main/resources/textures/entity/explosion.png rename to client/src/main/resources/textures/world/explosion.png diff --git a/common/src/main/java/common/ai/EntityAIMate.java b/common/src/main/java/common/ai/EntityAIMate.java index 20b2ee47..142eb18d 100755 --- a/common/src/main/java/common/ai/EntityAIMate.java +++ b/common/src/main/java/common/ai/EntityAIMate.java @@ -149,13 +149,10 @@ public class EntityAIMate extends EntityAIBase for (int i = 0; i < 7; ++i) { - double d0 = random.gaussian() * 0.02D; - double d1 = random.gaussian() * 0.02D; - double d2 = random.gaussian() * 0.02D; double d3 = random.doublev() * (double)this.theAnimal.width * 2.0D - (double)this.theAnimal.width; double d4 = 0.5D + random.doublev() * (double)this.theAnimal.height; double d5 = random.doublev() * (double)this.theAnimal.width * 2.0D - (double)this.theAnimal.width; - this.theWorld.spawnParticle(ParticleType.HEART, this.theAnimal.posX + d3, this.theAnimal.posY + d4, this.theAnimal.posZ + d5, d0, d1, d2); + this.theWorld.spawnParticle(ParticleType.HEART, this.theAnimal.posX + d3, this.theAnimal.posY + d4, this.theAnimal.posZ + d5); } if (entityplayer != null && Vars.breedingXP) // FIX xp diff --git a/common/src/main/java/common/block/artificial/BlockDragonEgg.java b/common/src/main/java/common/block/artificial/BlockDragonEgg.java index a99ced6a..ca1841a8 100755 --- a/common/src/main/java/common/block/artificial/BlockDragonEgg.java +++ b/common/src/main/java/common/block/artificial/BlockDragonEgg.java @@ -156,13 +156,10 @@ public class BlockDragonEgg extends Block for (int j = 0; j < 128; ++j) { double d0 = worldIn.rand.doublev(); - float f = (worldIn.rand.floatv() - 0.5F) * 0.2F; - float f1 = (worldIn.rand.floatv() - 0.5F) * 0.2F; - float f2 = (worldIn.rand.floatv() - 0.5F) * 0.2F; double d1 = (double)blockpos.getX() + (double)(pos.getX() - blockpos.getX()) * d0 + (worldIn.rand.doublev() - 0.5D) * 1.0D + 0.5D; double d2 = (double)blockpos.getY() + (double)(pos.getY() - blockpos.getY()) * d0 + worldIn.rand.doublev() * 1.0D - 0.5D; double d3 = (double)blockpos.getZ() + (double)(pos.getZ() - blockpos.getZ()) * d0 + (worldIn.rand.doublev() - 0.5D) * 1.0D + 0.5D; - worldIn.spawnParticle(ParticleType.TELEPORT, d1, d2, d3, (double)f, (double)f1, (double)f2); + worldIn.spawnParticle(ParticleType.TELEPORT, d1, d2, d3); } } else diff --git a/common/src/main/java/common/block/artificial/BlockFloorPortal.java b/common/src/main/java/common/block/artificial/BlockFloorPortal.java index 3233577a..2664e872 100755 --- a/common/src/main/java/common/block/artificial/BlockFloorPortal.java +++ b/common/src/main/java/common/block/artificial/BlockFloorPortal.java @@ -96,10 +96,7 @@ public class BlockFloorPortal extends Block double d0 = (double)((float)pos.getX() + rand.floatv()); double d1 = (double)((float)pos.getY() + 0.8F); double d2 = (double)((float)pos.getZ() + rand.floatv()); - double d3 = 0.0D; - double d4 = 0.0D; - double d5 = 0.0D; - worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2, d3, d4, d5); + worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2); } public Item getItem(World worldIn, BlockPos pos) diff --git a/common/src/main/java/common/block/artificial/BlockPortal.java b/common/src/main/java/common/block/artificial/BlockPortal.java index e5dfc367..4f681b68 100755 --- a/common/src/main/java/common/block/artificial/BlockPortal.java +++ b/common/src/main/java/common/block/artificial/BlockPortal.java @@ -224,23 +224,18 @@ public class BlockPortal extends Block double d0 = (double)((float)pos.getX() + rand.floatv()); double d1 = (double)((float)pos.getY() + rand.floatv()); double d2 = (double)((float)pos.getZ() + rand.floatv()); - double d3 = ((double)rand.floatv() - 0.5D) * 0.5D; - double d4 = ((double)rand.floatv() - 0.5D) * 0.5D; - double d5 = ((double)rand.floatv() - 0.5D) * 0.5D; int j = rand.zrange(2) * 2 - 1; if (worldIn.getState(pos.west()).getBlock() != this && worldIn.getState(pos.east()).getBlock() != this) { d0 = (double)pos.getX() + 0.5D + 0.25D * (double)j; - d3 = (double)(rand.floatv() * 2.0F * (float)j); } else { d2 = (double)pos.getZ() + 0.5D + 0.25D * (double)j; - d5 = (double)(rand.floatv() * 2.0F * (float)j); } - worldIn.spawnParticle(ParticleType.TELEPORT, d0, d1, d2, d3, d4, d5); + worldIn.spawnParticle(ParticleType.TELEPORT, d0, d1, d2); } } diff --git a/common/src/main/java/common/block/foliage/BlockMycelium.java b/common/src/main/java/common/block/foliage/BlockMycelium.java index 27ab2ec3..e8ce8f44 100755 --- a/common/src/main/java/common/block/foliage/BlockMycelium.java +++ b/common/src/main/java/common/block/foliage/BlockMycelium.java @@ -75,7 +75,7 @@ public class BlockMycelium extends Block if (rand.chance(10)) { - worldIn.spawnParticle(ParticleType.SPORE, (double)((float)pos.getX() + rand.floatv()), (double)((float)pos.getY() + 1.1F), (double)((float)pos.getZ() + rand.floatv()), 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SPORE, (double)((float)pos.getX() + rand.floatv()), (double)((float)pos.getY() + 1.1F), (double)((float)pos.getZ() + rand.floatv())); } } diff --git a/common/src/main/java/common/block/liquid/BlockLiquid.java b/common/src/main/java/common/block/liquid/BlockLiquid.java index 4cbf364c..8b60ced4 100755 --- a/common/src/main/java/common/block/liquid/BlockLiquid.java +++ b/common/src/main/java/common/block/liquid/BlockLiquid.java @@ -270,7 +270,7 @@ public abstract class BlockLiquid extends Block double d8 = d0 + (double)rand.floatv(); double d4 = d1 + this.maxY; double d6 = d2 + (double)rand.floatv(); - worldIn.spawnParticle(ParticleType.LAVA, d8, d4, d6, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.LAVA, d8, d4, d6); worldIn.playSound(d8, d4, d6, SoundEvent.LAVA_POP, 0.2F + rand.floatv() * 0.2F); } @@ -349,7 +349,7 @@ public abstract class BlockLiquid extends Block for (int i = 0; i < 8; ++i) { - worldIn.spawnParticle(ParticleType.SMOKE, d0 + Math.random(), d1 + 1.2D, d2 + Math.random(), 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d0 + Math.random(), d1 + 1.2D, d2 + Math.random()); } } diff --git a/common/src/main/java/common/block/natural/BlockBedrock.java b/common/src/main/java/common/block/natural/BlockBedrock.java index dc0f2bdd..7f8b8d7a 100755 --- a/common/src/main/java/common/block/natural/BlockBedrock.java +++ b/common/src/main/java/common/block/natural/BlockBedrock.java @@ -17,7 +17,7 @@ public class BlockBedrock extends Block { { if(/* worldIn.canShowVoidParticles() && */ pos.getY() <= 5 && rand.chance(8)) { worldIn.spawnParticle(ParticleType.DEPTH, (double)pos.getX() + rand.floatv(), (double)(pos.getY()+1) + (rand.floatv() * 0.5f), - (double)pos.getZ() + rand.floatv(), 0.0D, 0.0D, 0.0D); + (double)pos.getZ() + rand.floatv()); } } } diff --git a/common/src/main/java/common/block/natural/BlockFire.java b/common/src/main/java/common/block/natural/BlockFire.java index be5e567b..4a9390f4 100755 --- a/common/src/main/java/common/block/natural/BlockFire.java +++ b/common/src/main/java/common/block/natural/BlockFire.java @@ -364,7 +364,7 @@ public class BlockFire extends Block double d3 = (double)pos.getX() + rand.doublev() * 0.10000000149011612D; double d8 = (double)pos.getY() + rand.doublev(); double d13 = (double)pos.getZ() + rand.doublev(); - worldIn.spawnParticle(ParticleType.SMOKE, d3, d8, d13, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d3, d8, d13); } } @@ -375,7 +375,7 @@ public class BlockFire extends Block double d4 = (double)(pos.getX() + 1) - rand.doublev() * 0.10000000149011612D; double d9 = (double)pos.getY() + rand.doublev(); double d14 = (double)pos.getZ() + rand.doublev(); - worldIn.spawnParticle(ParticleType.SMOKE, d4, d9, d14, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d4, d9, d14); } } @@ -386,7 +386,7 @@ public class BlockFire extends Block double d5 = (double)pos.getX() + rand.doublev(); double d10 = (double)pos.getY() + rand.doublev(); double d15 = (double)pos.getZ() + rand.doublev() * 0.10000000149011612D; - worldIn.spawnParticle(ParticleType.SMOKE, d5, d10, d15, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d5, d10, d15); } } @@ -397,7 +397,7 @@ public class BlockFire extends Block double d6 = (double)pos.getX() + rand.doublev(); double d11 = (double)pos.getY() + rand.doublev(); double d16 = (double)(pos.getZ() + 1) - rand.doublev() * 0.10000000149011612D; - worldIn.spawnParticle(ParticleType.SMOKE, d6, d11, d16, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d6, d11, d16); } } @@ -408,7 +408,7 @@ public class BlockFire extends Block double d7 = (double)pos.getX() + rand.doublev(); double d12 = (double)(pos.getY() + 1) - rand.doublev() * 0.10000000149011612D; double d17 = (double)pos.getZ() + rand.doublev(); - worldIn.spawnParticle(ParticleType.SMOKE, d7, d12, d17, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d7, d12, d17); } } } @@ -419,7 +419,7 @@ public class BlockFire extends Block double d0 = (double)pos.getX() + rand.doublev(); double d1 = (double)pos.getY() + rand.doublev() * 0.5D + 0.5D; double d2 = (double)pos.getZ() + rand.doublev(); - worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2); } } } diff --git a/common/src/main/java/common/block/natural/BlockRedstoneOre.java b/common/src/main/java/common/block/natural/BlockRedstoneOre.java index 6ef6e66a..b40966a9 100755 --- a/common/src/main/java/common/block/natural/BlockRedstoneOre.java +++ b/common/src/main/java/common/block/natural/BlockRedstoneOre.java @@ -171,7 +171,7 @@ public class BlockRedstoneOre extends Block if (d1 < (double)pos.getX() || d1 > (double)(pos.getX() + 1) || d2 < 0.0D || d2 > (double)(pos.getY() + 1) || d3 < (double)pos.getZ() || d3 > (double)(pos.getZ() + 1)) { - worldIn.spawnParticle(ParticleType.DUST, d1, d2, d3, 1.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.DUST, d1, d2, d3, 0xff0000); } } } diff --git a/common/src/main/java/common/block/tech/BlockBrewingStand.java b/common/src/main/java/common/block/tech/BlockBrewingStand.java index 2a50e12a..35a27585 100755 --- a/common/src/main/java/common/block/tech/BlockBrewingStand.java +++ b/common/src/main/java/common/block/tech/BlockBrewingStand.java @@ -458,7 +458,7 @@ public class BlockBrewingStand extends BlockContainer double d0 = (double)((float)pos.getX() + 0.4F + rand.floatv() * 0.2F); double d1 = (double)((float)pos.getY() + 0.7F + rand.floatv() * 0.3F); double d2 = (double)((float)pos.getZ() + 0.4F + rand.floatv() * 0.2F); - worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2); } public void onBlockRemoved(AWorldServer worldIn, BlockPos pos, State state) diff --git a/common/src/main/java/common/block/tech/BlockFurnace.java b/common/src/main/java/common/block/tech/BlockFurnace.java index 548fd017..3caa80ac 100755 --- a/common/src/main/java/common/block/tech/BlockFurnace.java +++ b/common/src/main/java/common/block/tech/BlockFurnace.java @@ -98,23 +98,23 @@ public class BlockFurnace extends BlockContainer implements Rotatable switch (enumfacing) { case WEST: - worldIn.spawnParticle(ParticleType.SMOKE, d0 - d3, d1, d2 + d4, 0.0D, 0.0D, 0.0D); - worldIn.spawnParticle(ParticleType.FLAME, d0 - d3, d1, d2 + d4, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d0 - d3, d1, d2 + d4); + worldIn.spawnParticle(ParticleType.FLAME, d0 - d3, d1, d2 + d4); break; case EAST: - worldIn.spawnParticle(ParticleType.SMOKE, d0 + d3, d1, d2 + d4, 0.0D, 0.0D, 0.0D); - worldIn.spawnParticle(ParticleType.FLAME, d0 + d3, d1, d2 + d4, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d0 + d3, d1, d2 + d4); + worldIn.spawnParticle(ParticleType.FLAME, d0 + d3, d1, d2 + d4); break; case NORTH: - worldIn.spawnParticle(ParticleType.SMOKE, d0 + d4, d1, d2 - d3, 0.0D, 0.0D, 0.0D); - worldIn.spawnParticle(ParticleType.FLAME, d0 + d4, d1, d2 - d3, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d0 + d4, d1, d2 - d3); + worldIn.spawnParticle(ParticleType.FLAME, d0 + d4, d1, d2 - d3); break; case SOUTH: - worldIn.spawnParticle(ParticleType.SMOKE, d0 + d4, d1, d2 + d3, 0.0D, 0.0D, 0.0D); - worldIn.spawnParticle(ParticleType.FLAME, d0 + d4, d1, d2 + d3, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d0 + d4, d1, d2 + d3); + worldIn.spawnParticle(ParticleType.FLAME, d0 + d4, d1, d2 + d3); } } } diff --git a/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java b/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java index e98ea304..4669429b 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java @@ -126,7 +126,7 @@ public class BlockRedstoneRepeater extends BlockRedstoneDiode f = f / 16.0F; double d3 = (double)(f * (float)enumfacing.getFrontOffsetX()); double d4 = (double)(f * (float)enumfacing.getFrontOffsetZ()); - worldIn.spawnParticle(ParticleType.DUST, d0 + d3, d1, d2 + d4, 1.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.DUST, d0 + d3, d1, d2 + d4, 0xff0000); } } diff --git a/common/src/main/java/common/block/tech/BlockRedstoneTorch.java b/common/src/main/java/common/block/tech/BlockRedstoneTorch.java index 36769ad1..f24c09c7 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneTorch.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneTorch.java @@ -140,7 +140,7 @@ public class BlockRedstoneTorch extends BlockTorch double d0 = (double)pos.getX() + rand.doublev() * 0.6D + 0.2D; double d1 = (double)pos.getY() + rand.doublev() * 0.6D + 0.2D; double d2 = (double)pos.getZ() + rand.doublev() * 0.6D + 0.2D; - worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2); } worldIn.scheduleUpdate(pos, worldIn.getState(pos).getBlock(), 160); @@ -206,7 +206,7 @@ public class BlockRedstoneTorch extends BlockTorch d2 += 0.27D * (double)enumfacing1.getFrontOffsetZ(); } - worldIn.spawnParticle(ParticleType.DUST, d0, d1, d2, 1.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.DUST, d0, d1, d2, 0xff0000); } } diff --git a/common/src/main/java/common/block/tech/BlockRedstoneWire.java b/common/src/main/java/common/block/tech/BlockRedstoneWire.java index 5cf0e8c2..e6c5699f 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneWire.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneWire.java @@ -785,11 +785,7 @@ public class BlockRedstoneWire extends Block double d0 = (double)pos.getX() + 0.5D + ((double)rand.floatv() - 0.5D) * 0.2D; double d1 = (double)((float)pos.getY() + 0.0625F); double d2 = (double)pos.getZ() + 0.5D + ((double)rand.floatv() - 0.5D) * 0.2D; - float f = (float)i / 15.0F; - float f1 = f * 0.6F + 0.4F; - float f2 = Math.max(0.0F, f * f * 0.7F - 0.5F); - float f3 = Math.max(0.0F, f * f * 0.6F - 0.7F); - worldIn.spawnParticle(ParticleType.DUST, d0, d1, d2, (double)f1, (double)f2, (double)f3); + worldIn.spawnParticle(ParticleType.DUST, d0, d1, d2, this.colorMultiplier(i)); } } diff --git a/common/src/main/java/common/block/tech/BlockTorch.java b/common/src/main/java/common/block/tech/BlockTorch.java index a20d6184..17a384c2 100755 --- a/common/src/main/java/common/block/tech/BlockTorch.java +++ b/common/src/main/java/common/block/tech/BlockTorch.java @@ -229,13 +229,13 @@ public class BlockTorch extends Block implements DirectionalUp if (enumfacing.getAxis().isHorizontal()) { Facing enumfacing1 = enumfacing.getOpposite(); - worldIn.spawnParticle(ParticleType.SMOKE, d0 + d4 * (double)enumfacing1.getFrontOffsetX(), d1 + d3, d2 + d4 * (double)enumfacing1.getFrontOffsetZ(), 0.0D, 0.0D, 0.0D); - worldIn.spawnParticle(ParticleType.FLAME, d0 + d4 * (double)enumfacing1.getFrontOffsetX(), d1 + d3, d2 + d4 * (double)enumfacing1.getFrontOffsetZ(), 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d0 + d4 * (double)enumfacing1.getFrontOffsetX(), d1 + d3, d2 + d4 * (double)enumfacing1.getFrontOffsetZ()); + worldIn.spawnParticle(ParticleType.FLAME, d0 + d4 * (double)enumfacing1.getFrontOffsetX(), d1 + d3, d2 + d4 * (double)enumfacing1.getFrontOffsetZ()); } else { - worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2, 0.0D, 0.0D, 0.0D); - worldIn.spawnParticle(ParticleType.FLAME, d0, d1, d2, 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2); + worldIn.spawnParticle(ParticleType.FLAME, d0, d1, d2); } } diff --git a/common/src/main/java/common/block/tech/BlockWarpChest.java b/common/src/main/java/common/block/tech/BlockWarpChest.java index ad096529..ead1fe74 100755 --- a/common/src/main/java/common/block/tech/BlockWarpChest.java +++ b/common/src/main/java/common/block/tech/BlockWarpChest.java @@ -124,10 +124,7 @@ public class BlockWarpChest extends Block implements Rotatable double d0 = (double)pos.getX() + 0.5D + 0.25D * (double)j; double d1 = (double)((float)pos.getY() + rand.floatv()); double d2 = (double)pos.getZ() + 0.5D + 0.25D * (double)k; - double d3 = (double)(rand.floatv() * (float)j); - double d4 = ((double)rand.floatv() - 0.5D) * 0.125D; - double d5 = (double)(rand.floatv() * (float)k); - worldIn.spawnParticle(ParticleType.TELEPORT, d0, d1, d2, d3, d4, d5); + worldIn.spawnParticle(ParticleType.TELEPORT, d0, d1, d2); } } diff --git a/common/src/main/java/common/entity/Entity.java b/common/src/main/java/common/entity/Entity.java index 2311c51e..9e411c8c 100755 --- a/common/src/main/java/common/entity/Entity.java +++ b/common/src/main/java/common/entity/Entity.java @@ -1006,7 +1006,7 @@ public abstract class Entity { float f2 = (this.rand.floatv() * 2.0F - 1.0F) * this.width; float f3 = (this.rand.floatv() * 2.0F - 1.0F) * this.width; - this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX + (double)f2, (double)(f1 + 1.0F), this.posZ + (double)f3, this.motionX, this.motionY - (double)(this.rand.floatv() * 0.2F), this.motionZ); + this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX + (double)f2, (double)(f1 + 1.0F), this.posZ + (double)f3); } if(this.worldObj.getState(new BlockPos(this.posX, this.posY, this.posZ)).getBlock().getMaterial() == Material.WATER) { @@ -1014,7 +1014,7 @@ public abstract class Entity { float f4 = (this.rand.floatv() * 2.0F - 1.0F) * this.width; float f5 = (this.rand.floatv() * 2.0F - 1.0F) * this.width; - this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX + (double)f4, (double)(f1 + 1.0F), this.posZ + (double)f5, this.motionX, this.motionY, this.motionZ); + this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX + (double)f4, (double)(f1 + 1.0F), this.posZ + (double)f5); } } } @@ -1041,7 +1041,7 @@ public abstract class Entity if (block.getRenderType() != -1) { - this.worldObj.spawnParticle(ParticleType.BLOCK_CRACK, this.posX + ((double)this.rand.floatv() - 0.5D) * (double)this.width, this.getEntityBoundingBox().minY + 0.1D, this.posZ + ((double)this.rand.floatv() - 0.5D) * (double)this.width, -this.motionX * 4.0D, 1.5D, -this.motionZ * 4.0D, BlockRegistry.getId(iblockstate)); + this.worldObj.spawnParticle(ParticleType.BLOCK_CRACK, this.posX + ((double)this.rand.floatv() - 0.5D) * (double)this.width, this.getEntityBoundingBox().minY + 0.1D, this.posZ + ((double)this.rand.floatv() - 0.5D) * (double)this.width, BlockRegistry.getId(iblockstate)); } } diff --git a/common/src/main/java/common/entity/animal/EntityDragon.java b/common/src/main/java/common/entity/animal/EntityDragon.java index d27986cc..2c590f34 100755 --- a/common/src/main/java/common/entity/animal/EntityDragon.java +++ b/common/src/main/java/common/entity/animal/EntityDragon.java @@ -121,7 +121,7 @@ public class EntityDragon extends EntityLiving implements IEntityMultiPart float f11 = (this.rand.floatv() - 0.5F) * 8.0F; float f13 = (this.rand.floatv() - 0.5F) * 4.0F; float f14 = (this.rand.floatv() - 0.5F) * 8.0F; - this.worldObj.spawnParticle(ParticleType.EXPLOSION_LARGE, this.posX + (double)f11, this.posY + 2.0D + (double)f13, this.posZ + (double)f14, 0.0D, 0.0D, 0.0D); + this.worldObj.spawnParticle(ParticleType.EXPLOSION_LARGE, this.posX + (double)f11, this.posY + 2.0D + (double)f13, this.posZ + (double)f14, 100); } else { diff --git a/common/src/main/java/common/entity/animal/EntityHorse.java b/common/src/main/java/common/entity/animal/EntityHorse.java index 6065cd7f..a56f2b62 100755 --- a/common/src/main/java/common/entity/animal/EntityHorse.java +++ b/common/src/main/java/common/entity/animal/EntityHorse.java @@ -1716,10 +1716,7 @@ public class EntityHorse extends EntityAnimal implements IInvBasic for (int i = 0; i < 7; ++i) { - double d0 = this.rand.gaussian() * 0.02D; - double d1 = this.rand.gaussian() * 0.02D; - double d2 = this.rand.gaussian() * 0.02D; - this.worldObj.spawnParticle(enumparticletypes, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, d0, d1, d2); + this.worldObj.spawnParticle(enumparticletypes, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width); } } diff --git a/common/src/main/java/common/entity/animal/EntityMooshroom.java b/common/src/main/java/common/entity/animal/EntityMooshroom.java index f4af64ee..256f5f16 100755 --- a/common/src/main/java/common/entity/animal/EntityMooshroom.java +++ b/common/src/main/java/common/entity/animal/EntityMooshroom.java @@ -46,7 +46,7 @@ public class EntityMooshroom extends EntityCow if (itemstack != null && itemstack.getItem() instanceof ItemShears && !this.isChild()) { this.setDead(); - this.worldObj.spawnParticle(ParticleType.EXPLOSION_LARGE, this.posX, this.posY + (double)(this.height / 2.0F), this.posZ, 0.0D, 0.0D, 0.0D); + this.worldObj.spawnParticle(ParticleType.EXPLOSION_LARGE, this.posX, this.posY + (double)(this.height / 2.0F), this.posZ, 100); if (!this.worldObj.client) { diff --git a/common/src/main/java/common/entity/animal/EntityRabbit.java b/common/src/main/java/common/entity/animal/EntityRabbit.java index 9f208c07..48058356 100755 --- a/common/src/main/java/common/entity/animal/EntityRabbit.java +++ b/common/src/main/java/common/entity/animal/EntityRabbit.java @@ -36,7 +36,6 @@ import common.potion.StatusEffect; import common.tags.TagObject; import common.util.BlockPos; import common.util.ExtMath; -import common.util.ParticleType; import common.util.Vec3; import common.vars.Vars; import common.world.State; @@ -330,7 +329,7 @@ public class EntityRabbit extends EntityAnimal { } protected void consumeBlock(BlockPos pos, State state) { - this.worldObj.setEntityState(this, (byte)19); + this.worldObj.playAuxSFX(2001, pos, BlockRegistry.getId(state)); this.foodCooldown = this.rand.excl(10, this.isChild() ? 20 : 50); if(this.isChild()) this.grow(this.rand.range(250, 350)); @@ -353,13 +352,6 @@ public class EntityRabbit extends EntityAnimal { this.jumpRotFactor = 10; this.jumpRotTimer = 0; } - else if(id == 19) { - this.worldObj.spawnParticle(ParticleType.BLOCK_CRACK, - this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, - this.posY + 0.5D + (double)(this.rand.floatv() * this.height), - this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, 0.0D, 0.0D, 0.0D, - BlockRegistry.getId(this.worldObj.getState(this.getPosition()))); - } else { super.handleStatusUpdate(id); } diff --git a/common/src/main/java/common/entity/animal/EntityWolf.java b/common/src/main/java/common/entity/animal/EntityWolf.java index 749f2cde..b54e234e 100755 --- a/common/src/main/java/common/entity/animal/EntityWolf.java +++ b/common/src/main/java/common/entity/animal/EntityWolf.java @@ -249,7 +249,7 @@ public class EntityWolf extends EntityTameable { float f1 = (this.rand.floatv() * 2.0F - 1.0F) * this.width * 0.5F; float f2 = (this.rand.floatv() * 2.0F - 1.0F) * this.width * 0.5F; - this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX + (double)f1, (double)(f + 0.8F), this.posZ + (double)f2, this.motionX, this.motionY, this.motionZ); + this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX + (double)f1, (double)(f + 0.8F), this.posZ + (double)f2); } } } diff --git a/common/src/main/java/common/entity/item/EntityBoat.java b/common/src/main/java/common/entity/item/EntityBoat.java index b2a32453..37c0b3fc 100755 --- a/common/src/main/java/common/entity/item/EntityBoat.java +++ b/common/src/main/java/common/entity/item/EntityBoat.java @@ -279,13 +279,13 @@ public class EntityBoat extends Entity { double d7 = this.posX - d2 * d5 * 0.8D + d4 * d6; double d8 = this.posZ - d4 * d5 * 0.8D - d2 * d6; - this.worldObj.spawnParticle(ParticleType.SPLASH, d7, this.posY - 0.125D, d8, this.motionX, this.motionY, this.motionZ); + this.worldObj.spawnParticle(ParticleType.SPLASH, d7, this.posY - 0.125D, d8); } else { double d24 = this.posX + d2 + d4 * d5 * 0.7D; double d25 = this.posZ + d4 - d2 * d5 * 0.7D; - this.worldObj.spawnParticle(ParticleType.SPLASH, d24, this.posY - 0.125D, d25, this.motionX, this.motionY, this.motionZ); + this.worldObj.spawnParticle(ParticleType.SPLASH, d24, this.posY - 0.125D, d25); } } } diff --git a/common/src/main/java/common/entity/item/EntityItem.java b/common/src/main/java/common/entity/item/EntityItem.java index c367c236..e6494dd6 100755 --- a/common/src/main/java/common/entity/item/EntityItem.java +++ b/common/src/main/java/common/entity/item/EntityItem.java @@ -66,11 +66,10 @@ public class EntityItem extends Entity public void fall(float distance, float damageMultiplier) { if(!this.worldObj.client && Vars.itemFallDamage && distance >= 1.0f && this.getEntityItem().getItem().isFragile()) { -// for(int z = 0; z < 8; z++) { - ((AWorldServer)this.worldObj).spawnParticle(ParticleType.ITEM_CRACK, this.posX, this.posY, this.posZ, - 8, this.rand.gaussian() * 0.15D, this.rand.doublev() * 0.2D, this.rand.gaussian() * 0.15D, 0.1f, - ItemRegistry.getId(this.getEntityItem().getItem())); -// } + for(int z = 0; z < 8; z++) { + ((AWorldServer)this.worldObj).spawnParticles(ParticleType.ITEM_CRACK, this.posX + this.rand.drange(-0.15, 0.15), this.posY + 0.15, this.posZ + this.rand.drange(-0.15, 0.15), + ItemRegistry.getId(this.getEntityItem().getItem())); + } this.worldObj.playAuxSFX(1023, this.getPosition(), 0); this.setDead(); } diff --git a/common/src/main/java/common/entity/item/EntityNuke.java b/common/src/main/java/common/entity/item/EntityNuke.java index ff4b2d99..8ca8bd87 100755 --- a/common/src/main/java/common/entity/item/EntityNuke.java +++ b/common/src/main/java/common/entity/item/EntityNuke.java @@ -82,7 +82,7 @@ public class EntityNuke extends Entity { this.handleWaterMovement(); // if(!this.isInvisible()) { - this.worldObj.spawnParticle(ParticleType.FLAME, this.posX, this.posY + 1.1D, this.posZ, 0.0D, 0.0D, 0.0D); + this.worldObj.spawnParticle(ParticleType.FLAME, this.posX, this.posY + 1.1D, this.posZ); // } } } diff --git a/common/src/main/java/common/entity/item/EntityOrb.java b/common/src/main/java/common/entity/item/EntityOrb.java index 882413a1..d9f2d561 100755 --- a/common/src/main/java/common/entity/item/EntityOrb.java +++ b/common/src/main/java/common/entity/item/EntityOrb.java @@ -64,7 +64,7 @@ public class EntityOrb extends EntityThrowable for (int i = 0; i < 32; ++i) { - this.worldObj.spawnParticle(ParticleType.TELEPORT, this.posX, this.posY + this.rand.doublev() * 2.0D, this.posZ, this.rand.gaussian(), 0.0D, this.rand.gaussian()); + this.worldObj.spawnParticle(ParticleType.TELEPORT, this.posX - 0.25 + this.rand.doublev() * 0.5, this.posY + this.rand.doublev() * 2.0D, this.posZ - 0.25 + this.rand.doublev() * 0.5); } if (!this.worldObj.client) diff --git a/common/src/main/java/common/entity/item/EntityTnt.java b/common/src/main/java/common/entity/item/EntityTnt.java index 7bd54fa0..4d3be91f 100755 --- a/common/src/main/java/common/entity/item/EntityTnt.java +++ b/common/src/main/java/common/entity/item/EntityTnt.java @@ -96,7 +96,7 @@ public class EntityTnt extends Entity implements IObjectData else { this.handleWaterMovement(); - this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX, this.posY + 0.5D, this.posZ, 0.0D, 0.0D, 0.0D); + this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX, this.posY + 0.5D, this.posZ); } } diff --git a/common/src/main/java/common/entity/item/EntityTntCart.java b/common/src/main/java/common/entity/item/EntityTntCart.java index 4846b6cb..bd9da77c 100755 --- a/common/src/main/java/common/entity/item/EntityTntCart.java +++ b/common/src/main/java/common/entity/item/EntityTntCart.java @@ -50,7 +50,7 @@ public class EntityTntCart extends EntityCart if (this.minecartTNTFuse > 0) { --this.minecartTNTFuse; - this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX, this.posY + 0.5D, this.posZ, 0.0D, 0.0D, 0.0D); + this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX, this.posY + 0.5D, this.posZ); } else if (this.minecartTNTFuse == 0) { diff --git a/common/src/main/java/common/entity/item/EntityXp.java b/common/src/main/java/common/entity/item/EntityXp.java index 668548c7..20afb010 100755 --- a/common/src/main/java/common/entity/item/EntityXp.java +++ b/common/src/main/java/common/entity/item/EntityXp.java @@ -337,14 +337,10 @@ public class EntityXp extends Entity implements IObjectData this.xpValue = id; for (int i = 0; i < 2; i++) { - double d0 = this.rand.gaussian() * 0.02D; - double d1 = this.rand.gaussian() * 0.02D; - double d2 = this.rand.gaussian() * 0.02D; this.worldObj.spawnParticle(ParticleType.GROW, this.posX + (double)(this.rand.floatv() * this.width) - (double)this.width * 0.5, this.posY + (double)(this.rand.floatv() * this.height), - this.posZ + (double)(this.rand.floatv() * this.width) - (double)this.width * 0.5, - d0, d1, d2); + this.posZ + (double)(this.rand.floatv() * this.width) - (double)this.width * 0.5); } } diff --git a/common/src/main/java/common/entity/npc/EntityDarkMage.java b/common/src/main/java/common/entity/npc/EntityDarkMage.java index 609ac341..520ce6f1 100755 --- a/common/src/main/java/common/entity/npc/EntityDarkMage.java +++ b/common/src/main/java/common/entity/npc/EntityDarkMage.java @@ -91,7 +91,7 @@ public class EntityDarkMage extends EntityHoveringNPC { for(int i = 0; i < 2; ++i) { this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX + (this.rand.doublev() - 0.5D) * (double)this.width, this.posY + this.rand.doublev() * (double)this.height, - this.posZ + (this.rand.doublev() - 0.5D) * (double)this.width, 0.0D, 0.0D, 0.0D); + this.posZ + (this.rand.doublev() - 0.5D) * (double)this.width); } } super.onLivingUpdate(); diff --git a/common/src/main/java/common/entity/npc/EntityGargoyle.java b/common/src/main/java/common/entity/npc/EntityGargoyle.java index 39f9e9c9..adfd2f88 100755 --- a/common/src/main/java/common/entity/npc/EntityGargoyle.java +++ b/common/src/main/java/common/entity/npc/EntityGargoyle.java @@ -88,14 +88,14 @@ public class EntityGargoyle extends EntityFlyingNPC for (int l = 0; l < 5; ++l) { - this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX + this.rand.gaussian() * 0.30000001192092896D, this.posY + this.height + this.rand.gaussian() * 0.30000001192092896D, this.posZ + this.rand.gaussian() * 0.30000001192092896D, 0.0D, 0.0D, 0.0D); + this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX + this.rand.gaussian() * 0.30000001192092896D, this.posY + this.height + this.rand.gaussian() * 0.30000001192092896D, this.posZ + this.rand.gaussian() * 0.30000001192092896D); } if (this.getInvulTime() > 0) { for (int i1 = 0; i1 < 3; ++i1) { - this.worldObj.spawnParticle(ParticleType.CRIT, this.posX + this.rand.gaussian() * 1.0D, this.posY + (double)(this.rand.floatv() * 3.3F), this.posZ + this.rand.gaussian() * 1.0D, 0.699999988079071D, 0.699999988079071D, 0.8999999761581421D); + this.worldObj.spawnParticle(ParticleType.CRIT, this.posX + this.rand.gaussian() * 1.0D, this.posY + (double)(this.rand.floatv() * 3.3F), this.posZ + this.rand.gaussian() * 1.0D); } } } diff --git a/common/src/main/java/common/entity/npc/EntityNPC.java b/common/src/main/java/common/entity/npc/EntityNPC.java index 7b514f0a..2e39e1c4 100755 --- a/common/src/main/java/common/entity/npc/EntityNPC.java +++ b/common/src/main/java/common/entity/npc/EntityNPC.java @@ -610,10 +610,7 @@ public abstract class EntityNPC extends EntityLiving if (this.inLove == 10) { this.inLove = 0; - double d0 = this.rand.gaussian() * 0.02D; - double d1 = this.rand.gaussian() * 0.02D; - double d2 = this.rand.gaussian() * 0.02D; - this.worldObj.spawnParticle(ParticleType.HEART, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, d0, d1, d2); + this.worldObj.spawnParticle(ParticleType.HEART, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width); } } else { @@ -1234,19 +1231,19 @@ public abstract class EntityNPC extends EntityLiving } else { this.worldObj.playAuxSFX(1013, new BlockPos(ox, oy, oz), 0); - ((AWorldServer)this.worldObj).spawnParticle(ParticleType.TELEPORT, - ox + (this.rand.doublev() - 0.5D) * (double)this.width * 2.0D, - oy + this.rand.doublev() * (double)this.height, - oz + (this.rand.doublev() - 0.5D) * (double)this.width * 2.0D, 8, - (this.rand.floatv() - 0.5F) * 0.2F, (this.rand.floatv() - 0.5F) * 0.2F, (this.rand.floatv() - 0.5F) * 0.2F, - 0.15D, 0); + for(int n = 0; n < 8; n++) { + ((AWorldServer)this.worldObj).spawnParticles(ParticleType.TELEPORT, + ox + (this.rand.doublev() - 0.5D) * (double)this.width * 2.0D, + oy + this.rand.doublev() * (double)this.height, + oz + (this.rand.doublev() - 0.5D) * (double)this.width * 2.0D); + } this.worldObj.playAuxSFX(1005, this.getPosition(), 0); - ((AWorldServer)this.worldObj).spawnParticle(ParticleType.TELEPORT, - this.posX + (this.rand.doublev() - 0.5D) * (double)this.width * 2.0D, - this.posY + this.rand.doublev() * (double)this.height, - this.posZ + (this.rand.doublev() - 0.5D) * (double)this.width * 2.0D, 8, - (this.rand.floatv() - 0.5F) * 0.2F, (this.rand.floatv() - 0.5F) * 0.2F, (this.rand.floatv() - 0.5F) * 0.2F, - 0.15D, 0); + for(int n = 0; n < 8; n++) { + ((AWorldServer)this.worldObj).spawnParticles(ParticleType.TELEPORT, + this.posX + (this.rand.doublev() - 0.5D) * (double)this.width * 2.0D, + this.posY + this.rand.doublev() * (double)this.height, + this.posZ + (this.rand.doublev() - 0.5D) * (double)this.width * 2.0D); + } return true; } } diff --git a/common/src/main/java/common/entity/npc/EntitySlime.java b/common/src/main/java/common/entity/npc/EntitySlime.java index 808b3b64..5c3c997e 100755 --- a/common/src/main/java/common/entity/npc/EntitySlime.java +++ b/common/src/main/java/common/entity/npc/EntitySlime.java @@ -180,7 +180,7 @@ public class EntitySlime extends EntityNPC World world = this.worldObj; double d0 = this.posX + (double)f2; double d1 = this.posZ + (double)f3; - world.spawnParticle(ParticleType.ITEM_CRACK, d0, this.getEntityBoundingBox().minY, d1, 0.0D, 0.0D, 0.0D, ItemRegistry.getId(Items.slime_ball)); + world.spawnParticle(ParticleType.ITEM_CRACK, d0, this.getEntityBoundingBox().minY, d1, ItemRegistry.getId(Items.slime_ball)); } // if (!this.isChild()) diff --git a/common/src/main/java/common/entity/projectile/EntityArrow.java b/common/src/main/java/common/entity/projectile/EntityArrow.java index c08e3483..b3f9a031 100755 --- a/common/src/main/java/common/entity/projectile/EntityArrow.java +++ b/common/src/main/java/common/entity/projectile/EntityArrow.java @@ -404,7 +404,7 @@ public class EntityArrow extends Entity implements IProjectile, IObjectData { for (int k = 0; k < 4; ++k) { - this.worldObj.spawnParticle(ParticleType.CRIT, this.posX + this.motionX * (double)k / 4.0D, this.posY + this.motionY * (double)k / 4.0D, this.posZ + this.motionZ * (double)k / 4.0D, -this.motionX, -this.motionY + 0.2D, -this.motionZ); + this.worldObj.spawnParticle(ParticleType.CRIT, this.posX + this.motionX * (double)k / 4.0D, this.posY + this.motionY * (double)k / 4.0D, this.posZ + this.motionZ * (double)k / 4.0D); } } @@ -444,7 +444,7 @@ public class EntityArrow extends Entity implements IProjectile, IObjectData for (int i1 = 0; i1 < 4; ++i1) { float f8 = 0.25F; - this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX - this.motionX * (double)f8, this.posY - this.motionY * (double)f8, this.posZ - this.motionZ * (double)f8, this.motionX, this.motionY, this.motionZ); + this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX - this.motionX * (double)f8, this.posY - this.motionY * (double)f8, this.posZ - this.motionZ * (double)f8); } f4 = 0.6F; diff --git a/common/src/main/java/common/entity/projectile/EntityDynamite.java b/common/src/main/java/common/entity/projectile/EntityDynamite.java index e993b40b..7fe42119 100755 --- a/common/src/main/java/common/entity/projectile/EntityDynamite.java +++ b/common/src/main/java/common/entity/projectile/EntityDynamite.java @@ -49,7 +49,7 @@ public class EntityDynamite extends EntityThrowable implements IObjectData for (int k = 0; k < 8; ++k) { - this.worldObj.spawnParticle(ParticleType.ITEM_CRACK, this.posX, this.posY, this.posZ, ((double)this.rand.floatv() - 0.5D) * 0.08D, ((double)this.rand.floatv() - 0.5D) * 0.08D, ((double)this.rand.floatv() - 0.5D) * 0.08D, ItemRegistry.getId(ItemRegistry.byName("dynamite" + (this.explosionSize <= 0 || this.explosionSize >= 8 ? "" : "_" + this.explosionSize)))); + this.worldObj.spawnParticle(ParticleType.ITEM_CRACK, this.posX, this.posY, this.posZ, ItemRegistry.getId(ItemRegistry.byName("dynamite" + (this.explosionSize <= 0 || this.explosionSize >= 8 ? "" : "_" + this.explosionSize)))); } if (!this.worldObj.client) diff --git a/common/src/main/java/common/entity/projectile/EntityEgg.java b/common/src/main/java/common/entity/projectile/EntityEgg.java index 0069abd1..9b5f3d27 100755 --- a/common/src/main/java/common/entity/projectile/EntityEgg.java +++ b/common/src/main/java/common/entity/projectile/EntityEgg.java @@ -60,7 +60,7 @@ public class EntityEgg extends EntityThrowable for (int k = 0; k < 8; ++k) { - this.worldObj.spawnParticle(ParticleType.ITEM_CRACK, this.posX, this.posY, this.posZ, ((double)this.rand.floatv() - 0.5D) * 0.08D, ((double)this.rand.floatv() - 0.5D) * 0.08D, ((double)this.rand.floatv() - 0.5D) * 0.08D, ItemRegistry.getId(Items.egg)); + this.worldObj.spawnParticle(ParticleType.ITEM_CRACK, this.posX, this.posY, this.posZ, ItemRegistry.getId(Items.egg)); } if (!this.worldObj.client) diff --git a/common/src/main/java/common/entity/projectile/EntityHook.java b/common/src/main/java/common/entity/projectile/EntityHook.java index 6dfb3186..e4b38d5a 100755 --- a/common/src/main/java/common/entity/projectile/EntityHook.java +++ b/common/src/main/java/common/entity/projectile/EntityHook.java @@ -417,8 +417,10 @@ public class EntityHook extends Entity implements IObjectData this.motionY -= 0.20000000298023224D; this.playSound(SoundEvent.SPLASH, 0.25F); float f8 = (float)ExtMath.floord(this.getEntityBoundingBox().minY); - worldserver.spawnParticle(ParticleType.SPLASH, this.posX, (double)(f8 + 1.0F), this.posZ, (int)(1.0F + this.width * 20.0F), (double)this.width, 0.0D, (double)this.width, 0.20000000298023224D, 0); - worldserver.spawnParticle(ParticleType.WATER_DROP, this.posX, (double)(f8 + 1.0F), this.posZ, (int)(1.0F + this.width * 20.0F), (double)this.width, 0.0D, (double)this.width, 0.20000000298023224D, 0); + for(int z = 0; z < 5; z++) { + worldserver.spawnParticles(ParticleType.SPLASH, this.posX + this.rand.gaussian() * (double)this.width, (double)(f8 + 1.0F), this.posZ + this.rand.gaussian() * (double)this.width); + worldserver.spawnParticles(ParticleType.WATER_DROP, this.posX, (double)(f8 + 1.0F), this.posZ); + } this.ticksCatchable = this.rand.range(10, 30); } else @@ -436,13 +438,13 @@ public class EntityHook extends Entity implements IObjectData { if (this.rand.floatv() < 0.15F) { - worldserver.spawnParticle(ParticleType.SPLASH, d13, d15 - 0.10000000149011612D, d16, 1, (double)f10, 0.1D, (double)f11, 0.0D, 0); + worldserver.spawnParticles(ParticleType.SPLASH, d13, d15 - 0.10000000149011612D, d16); } float f3 = f10 * 0.04F; float f4 = f11 * 0.04F; - worldserver.spawnParticle(ParticleType.WATER_DROP, d13, d15, d16, 0, (double)f4, 0.01D, (double)(-f3), 1.0D, 0); - worldserver.spawnParticle(ParticleType.WATER_DROP, d13, d15, d16, 0, (double)(-f4), 0.01D, (double)f3, 1.0D, 0); + worldserver.spawnParticles(ParticleType.WATER_DROP, d13, d15, d16); + worldserver.spawnParticles(ParticleType.WATER_DROP, d13, d15, d16); } } } @@ -475,7 +477,10 @@ public class EntityHook extends Entity implements IObjectData if (block == Blocks.water || block == Blocks.flowing_water) { - worldserver.spawnParticle(ParticleType.SPLASH, d12, d14, d6, this.rand.range(2, 3), 0.10000000149011612D, 0.0D, 0.10000000149011612D, 0.0D, 0); + int amt = this.rand.range(2, 3); + for(int z = 0; z < amt; z++) { + worldserver.spawnParticles(ParticleType.SPLASH, d12 + this.rand.gaussian() * 0.1, d14, d6 + this.rand.gaussian() * 0.1); + } } } diff --git a/common/src/main/java/common/entity/projectile/EntityMissile.java b/common/src/main/java/common/entity/projectile/EntityMissile.java index f8753378..059f2e91 100755 --- a/common/src/main/java/common/entity/projectile/EntityMissile.java +++ b/common/src/main/java/common/entity/projectile/EntityMissile.java @@ -39,8 +39,7 @@ public class EntityMissile extends EntityBullet { public void onUpdate() { super.onUpdate(); if(this.worldObj.client && this.age % 2 < 2) - this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX, this.posY, this.posZ, this.rand.gaussian() * 0.05D, - this.rand.gaussian() * 0.05D, this.rand.gaussian() * 0.05D); + this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX, this.posY, this.posZ); if(!this.worldObj.client && this.age > this.fuse) this.explode(); } diff --git a/common/src/main/java/common/entity/projectile/EntityProjectile.java b/common/src/main/java/common/entity/projectile/EntityProjectile.java index dc9ae5c5..35abdcbe 100755 --- a/common/src/main/java/common/entity/projectile/EntityProjectile.java +++ b/common/src/main/java/common/entity/projectile/EntityProjectile.java @@ -214,7 +214,7 @@ public abstract class EntityProjectile extends Entity for (int j = 0; j < 4; ++j) { float f3 = 0.25F; - this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX - this.motionX * (double)f3, this.posY - this.motionY * (double)f3, this.posZ - this.motionZ * (double)f3, this.motionX, this.motionY, this.motionZ); + this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX - this.motionX * (double)f3, this.posY - this.motionY * (double)f3, this.posZ - this.motionZ * (double)f3); } f2 = 0.8F; @@ -226,7 +226,7 @@ public abstract class EntityProjectile extends Entity this.motionX *= (double)f2; this.motionY *= (double)f2; this.motionZ *= (double)f2; - this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX, this.posY + 0.5D, this.posZ, 0.0D, 0.0D, 0.0D); + this.worldObj.spawnParticle(ParticleType.SMOKE, this.posX, this.posY + 0.5D, this.posZ); this.setPosition(this.posX, this.posY, this.posZ); } else diff --git a/common/src/main/java/common/entity/projectile/EntitySnowball.java b/common/src/main/java/common/entity/projectile/EntitySnowball.java index 86500c8b..ea808860 100755 --- a/common/src/main/java/common/entity/projectile/EntitySnowball.java +++ b/common/src/main/java/common/entity/projectile/EntitySnowball.java @@ -47,7 +47,7 @@ public class EntitySnowball extends EntityThrowable for (int j = 0; j < 8; ++j) { - this.worldObj.spawnParticle(ParticleType.ITEM_CRACK, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D, ItemRegistry.getId(Items.snowball)); + this.worldObj.spawnParticle(ParticleType.ITEM_CRACK, this.posX, this.posY, this.posZ, ItemRegistry.getId(Items.snowball)); } if (!this.worldObj.client) diff --git a/common/src/main/java/common/entity/types/EntityAnimal.java b/common/src/main/java/common/entity/types/EntityAnimal.java index 71e8983c..590af207 100755 --- a/common/src/main/java/common/entity/types/EntityAnimal.java +++ b/common/src/main/java/common/entity/types/EntityAnimal.java @@ -67,10 +67,7 @@ public abstract class EntityAnimal extends EntityLiving if (this.inLove == 10) { this.inLove = 0; - double d0 = this.rand.gaussian() * 0.02D; - double d1 = this.rand.gaussian() * 0.02D; - double d2 = this.rand.gaussian() * 0.02D; - this.worldObj.spawnParticle(ParticleType.HEART, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, d0, d1, d2); + this.worldObj.spawnParticle(ParticleType.HEART, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width); } } } @@ -242,10 +239,7 @@ public abstract class EntityAnimal extends EntityLiving { for (int i = 0; i < 7; ++i) { - double d0 = this.rand.gaussian() * 0.02D; - double d1 = this.rand.gaussian() * 0.02D; - double d2 = this.rand.gaussian() * 0.02D; - this.worldObj.spawnParticle(ParticleType.HEART, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, d0, d1, d2); + this.worldObj.spawnParticle(ParticleType.HEART, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width); } } else diff --git a/common/src/main/java/common/entity/types/EntityLiving.java b/common/src/main/java/common/entity/types/EntityLiving.java index 2bd762a4..1b460e87 100755 --- a/common/src/main/java/common/entity/types/EntityLiving.java +++ b/common/src/main/java/common/entity/types/EntityLiving.java @@ -220,8 +220,10 @@ public abstract class EntityLiving extends Entity d0 = 2.5D; } - int i = (int)(150.0D * d0); - ((AWorldServer)this.worldObj).spawnParticle(ParticleType.BLOCK_CRACK, this.posX, this.posY, this.posZ, i, 0.0D, 0.0D, 0.0D, 0.15000000596046448D, BlockRegistry.getId(iblockstate)); + int i = (int)(15.0D * d0); + for(int z = 0; z < i; z++) { + ((AWorldServer)this.worldObj).spawnParticles(ParticleType.BLOCK_CRACK, this.posX, this.posY, this.posZ, BlockRegistry.getId(iblockstate)); + } } } @@ -432,10 +434,7 @@ public abstract class EntityLiving extends Entity for (int k = 0; k < 20; ++k) { - double d2 = this.rand.gaussian() * 0.02D; - double d0 = this.rand.gaussian() * 0.02D; - double d1 = this.rand.gaussian() * 0.02D; - this.worldObj.spawnParticle(ParticleType.EXPLOSION_NORMAL, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, d2, d0, d1); + this.worldObj.spawnParticle(ParticleType.EXPLOSION_NORMAL, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width); } } } @@ -970,7 +969,7 @@ public abstract class EntityLiving extends Entity vec31 = vec31.rotatePitch(-this.rotPitch * (float)Math.PI / 180.0F); vec31 = vec31.rotateYaw(-this.rotYaw * (float)Math.PI / 180.0F); vec31 = vec31.addVector(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ); - this.worldObj.spawnParticle(ParticleType.ITEM_CRACK, vec31.xCoord, vec31.yCoord, vec31.zCoord, vec3.xCoord, vec3.yCoord + 0.05D, vec3.zCoord, ItemRegistry.getId(stack.getItem())); + this.worldObj.spawnParticle(ParticleType.ITEM_CRACK, vec31.xCoord, vec31.yCoord, vec31.zCoord, ItemRegistry.getId(stack.getItem())); } } @@ -1972,7 +1971,7 @@ public abstract class EntityLiving extends Entity { if (this.particleTimer % 4 == 0) { - this.worldObj.spawnParticle(ParticleType.GROW, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, 0.0D, 0.0D, 0.0D); + this.worldObj.spawnParticle(ParticleType.GROW, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width); } --this.particleTimer; @@ -2480,7 +2479,7 @@ public abstract class EntityLiving extends Entity this.worldObj.spawnParticle(ParticleType.EXPLOSION_NORMAL, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width - d0 * d3, this.posY + (double)(this.rand.floatv() * this.height) - d1 * d3, - this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width - d2 * d3, d0, d1, d2); + this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width - d2 * d3); } } else { @@ -3034,10 +3033,7 @@ public abstract class EntityLiving extends Entity { for (int i = 0; i < 5; ++i) { - double d0 = this.rand.gaussian() * 0.02D; - double d1 = this.rand.gaussian() * 0.02D; - double d2 = this.rand.gaussian() * 0.02D; - this.worldObj.spawnParticle(particleType, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 1.0D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, d0, d1, d2); + this.worldObj.spawnParticle(particleType, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 1.0D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width); } } diff --git a/common/src/main/java/common/entity/types/EntityTameable.java b/common/src/main/java/common/entity/types/EntityTameable.java index 69e6e393..0aa1eb69 100755 --- a/common/src/main/java/common/entity/types/EntityTameable.java +++ b/common/src/main/java/common/entity/types/EntityTameable.java @@ -74,10 +74,7 @@ public abstract class EntityTameable extends EntityAnimal implements IEntityOwna for (int i = 0; i < 7; ++i) { - double d0 = this.rand.gaussian() * 0.02D; - double d1 = this.rand.gaussian() * 0.02D; - double d2 = this.rand.gaussian() * 0.02D; - this.worldObj.spawnParticle(enumparticletypes, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, d0, d1, d2); + this.worldObj.spawnParticle(enumparticletypes, this.posX + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.floatv() * this.height), this.posZ + (double)(this.rand.floatv() * this.width * 2.0F) - (double)this.width); } } diff --git a/common/src/main/java/common/entity/types/EntityThrowable.java b/common/src/main/java/common/entity/types/EntityThrowable.java index 6c07aced..c910c334 100755 --- a/common/src/main/java/common/entity/types/EntityThrowable.java +++ b/common/src/main/java/common/entity/types/EntityThrowable.java @@ -274,7 +274,7 @@ public abstract class EntityThrowable extends Entity implements IProjectile for (int i = 0; i < 4; ++i) { float f4 = 0.25F; - this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX - this.motionX * (double)f4, this.posY - this.motionY * (double)f4, this.posZ - this.motionZ * (double)f4, this.motionX, this.motionY, this.motionZ); + this.worldObj.spawnParticle(ParticleType.SPLASH, this.posX - this.motionX * (double)f4, this.posY - this.motionY * (double)f4, this.posZ - this.motionZ * (double)f4); } f2 = 0.8F; diff --git a/common/src/main/java/common/item/material/ItemDye.java b/common/src/main/java/common/item/material/ItemDye.java index 3bc8855d..4d772bee 100755 --- a/common/src/main/java/common/item/material/ItemDye.java +++ b/common/src/main/java/common/item/material/ItemDye.java @@ -176,10 +176,7 @@ public class ItemDye extends Item { for (int i = 0; i < amount; ++i) { - double d0 = worldIn.rand.gaussian() * 0.02D; - double d1 = worldIn.rand.gaussian() * 0.02D; - double d2 = worldIn.rand.gaussian() * 0.02D; - worldIn.spawnParticle(ParticleType.GROW, (double)((float)pos.getX() + worldIn.rand.floatv()), (double)pos.getY() + (double)worldIn.rand.floatv() * block.getBlockBoundsMaxY(), (double)((float)pos.getZ() + worldIn.rand.floatv()), d0, d1, d2); + worldIn.spawnParticle(ParticleType.GROW, (double)((float)pos.getX() + worldIn.rand.floatv()), (double)pos.getY() + (double)worldIn.rand.floatv() * block.getBlockBoundsMaxY(), (double)((float)pos.getZ() + worldIn.rand.floatv())); } } } diff --git a/common/src/main/java/common/item/tool/ItemBucket.java b/common/src/main/java/common/item/tool/ItemBucket.java index 080882f6..726a7f16 100755 --- a/common/src/main/java/common/item/tool/ItemBucket.java +++ b/common/src/main/java/common/item/tool/ItemBucket.java @@ -277,7 +277,7 @@ public class ItemBucket extends Item for (int l = 0; l < 8; ++l) { - worldIn.spawnParticle(ParticleType.SMOKE, (double)i + Math.random(), (double)j + Math.random(), (double)k + Math.random(), 0.0D, 0.0D, 0.0D); + worldIn.spawnParticle(ParticleType.SMOKE, (double)i + Math.random(), (double)j + Math.random(), (double)k + Math.random()); } } else diff --git a/common/src/main/java/common/item/tool/ItemChargedOrb.java b/common/src/main/java/common/item/tool/ItemChargedOrb.java index e5aa560d..54a83554 100755 --- a/common/src/main/java/common/item/tool/ItemChargedOrb.java +++ b/common/src/main/java/common/item/tool/ItemChargedOrb.java @@ -66,10 +66,7 @@ public class ItemChargedOrb extends ItemFragile double d0 = (double)((float)pos.getX() + (5.0F + worldIn.rand.floatv() * 6.0F) / 16.0F); double d1 = (double)((float)pos.getY() + 0.8125F); double d2 = (double)((float)pos.getZ() + (5.0F + worldIn.rand.floatv() * 6.0F) / 16.0F); - double d3 = 0.0D; - double d4 = 0.0D; - double d5 = 0.0D; - worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2, d3, d4, d5); + worldIn.spawnParticle(ParticleType.SMOKE, d0, d1, d2); } Facing enumfacing = (Facing)iblockstate.getValue(BlockPortalFrame.FACING); diff --git a/common/src/main/java/common/packet/SPacketParticles.java b/common/src/main/java/common/packet/SPacketParticles.java index 8b14576e..1b64a08d 100755 --- a/common/src/main/java/common/packet/SPacketParticles.java +++ b/common/src/main/java/common/packet/SPacketParticles.java @@ -13,28 +13,18 @@ public class SPacketParticles implements Packet private float xCoord; private float yCoord; private float zCoord; - private float xOffset; - private float yOffset; - private float zOffset; - private float particleSpeed; - private int particleCount; private int particleArgument; public SPacketParticles() { } - public SPacketParticles(ParticleType particleTypeIn, float x, float y, float z, float xOffsetIn, float yOffset, float zOffset, float particleSpeedIn, int particleCountIn, int particleArgumentIn) + public SPacketParticles(ParticleType particleTypeIn, float x, float y, float z, int particleArgumentIn) { this.particleType = particleTypeIn; this.xCoord = x; this.yCoord = y; this.zCoord = z; - this.xOffset = xOffsetIn; - this.yOffset = yOffset; - this.zOffset = zOffset; - this.particleSpeed = particleSpeedIn; - this.particleCount = particleCountIn; this.particleArgument = particleArgumentIn; } @@ -47,11 +37,6 @@ public class SPacketParticles implements Packet this.xCoord = buf.readFloat(); this.yCoord = buf.readFloat(); this.zCoord = buf.readFloat(); - this.xOffset = buf.readFloat(); - this.yOffset = buf.readFloat(); - this.zOffset = buf.readFloat(); - this.particleSpeed = buf.readFloat(); - this.particleCount = buf.readInt(); this.particleArgument = buf.readVarInt(); } @@ -64,11 +49,6 @@ public class SPacketParticles implements Packet buf.writeFloat(this.xCoord); buf.writeFloat(this.yCoord); buf.writeFloat(this.zCoord); - buf.writeFloat(this.xOffset); - buf.writeFloat(this.yOffset); - buf.writeFloat(this.zOffset); - buf.writeFloat(this.particleSpeed); - buf.writeInt(this.particleCount); buf.writeVarInt(this.particleArgument); } @@ -101,46 +81,6 @@ public class SPacketParticles implements Packet return (double)this.zCoord; } - /** - * Gets the x coordinate offset for the particle. The particle may use the offset for particle spread. - */ - public float getXOffset() - { - return this.xOffset; - } - - /** - * Gets the y coordinate offset for the particle. The particle may use the offset for particle spread. - */ - public float getYOffset() - { - return this.yOffset; - } - - /** - * Gets the z coordinate offset for the particle. The particle may use the offset for particle spread. - */ - public float getZOffset() - { - return this.zOffset; - } - - /** - * Gets the speed of the particle animation (used in client side rendering). - */ - public float getParticleSpeed() - { - return this.particleSpeed; - } - - /** - * Gets the amount of particles to spawn - */ - public int getParticleCount() - { - return this.particleCount; - } - /** * Gets the particle arguments. Some particles rely on block and/or item ids and sometimes metadata ids to color or * texture the particle. diff --git a/common/src/main/java/common/world/AWorldServer.java b/common/src/main/java/common/world/AWorldServer.java index e46162b9..3b939228 100644 --- a/common/src/main/java/common/world/AWorldServer.java +++ b/common/src/main/java/common/world/AWorldServer.java @@ -31,8 +31,10 @@ public abstract class AWorldServer extends World { public abstract void resetUpdateEntityTick(); public abstract void strikeLightning(double x, double y, double z, int color, int damage, boolean fire, EntityLiving summoner); public abstract void resetWeather(); - public abstract void spawnParticle(ParticleType particleType, double xCoord, double yCoord, double zCoord, int numberOfParticles, double xOffset, double yOffset, - double zOffset, double particleSpeed, int data); + public abstract void spawnParticles(ParticleType particleType, double xCoord, double yCoord, double zCoord, int data); + public final void spawnParticles(ParticleType particleType, double xCoord, double yCoord, double zCoord) { + this.spawnParticles(particleType, xCoord, yCoord, zCoord, 0); + } public abstract long getSeed(); public abstract boolean isExterminated(); public abstract boolean exterminate(); diff --git a/common/src/main/java/common/world/Explosion.java b/common/src/main/java/common/world/Explosion.java index ac4908b0..4be79ef4 100755 --- a/common/src/main/java/common/world/Explosion.java +++ b/common/src/main/java/common/world/Explosion.java @@ -202,7 +202,7 @@ public class Explosion worldObj.setState(blockpos, Blocks.air.getState(), 3); if(rand.chance(1000)) { worldObj.playSound(SoundEvent.EXPLODE, explosionX + x, explosionY + y, explosionZ + z, 4.0F); - ((AWorldServer)worldObj).spawnParticle(ParticleType.EXPLOSION_HUGE, explosionX + x, explosionY + y, explosionZ + z, 0, rand.gaussian() * 0.02D, rand.gaussian() * 0.02D, rand.gaussian() * 0.02D, 1.0, 0); + ((AWorldServer)worldObj).spawnParticles(ParticleType.EXPLOSION_HUGE, explosionX + x, explosionY + y, explosionZ + z); } } cnt++; @@ -302,11 +302,11 @@ public class Explosion if (this.explosionSize >= 2.0F && this.isSmoking) { - this.worldObj.spawnParticle(ParticleType.EXPLOSION_HUGE, this.explosionX, this.explosionY, this.explosionZ, 1.0D, 0.0D, 0.0D); + this.worldObj.spawnParticle(ParticleType.EXPLOSION_HUGE, this.explosionX, this.explosionY, this.explosionZ); } else { - this.worldObj.spawnParticle(ParticleType.EXPLOSION_LARGE, this.explosionX, this.explosionY, this.explosionZ, 1.0D, 0.0D, 0.0D); + this.worldObj.spawnParticle(ParticleType.EXPLOSION_LARGE, this.explosionX, this.explosionY, this.explosionZ, 100); } if (this.isSmoking) @@ -321,20 +321,8 @@ public class Explosion double d0 = (double)((float)blockpos.getX() + this.worldObj.rand.floatv()); double d1 = (double)((float)blockpos.getY() + this.worldObj.rand.floatv()); double d2 = (double)((float)blockpos.getZ() + this.worldObj.rand.floatv()); - double d3 = d0 - this.explosionX; - double d4 = d1 - this.explosionY; - double d5 = d2 - this.explosionZ; - double d6 = (double)ExtMath.sqrtd(d3 * d3 + d4 * d4 + d5 * d5); - d3 = d3 / d6; - d4 = d4 / d6; - d5 = d5 / d6; - double d7 = 0.5D / (d6 / (double)this.explosionSize + 0.1D); - d7 = d7 * (double)(this.worldObj.rand.floatv() * this.worldObj.rand.floatv() + 0.3F); - d3 = d3 * d7; - d4 = d4 * d7; - d5 = d5 * d7; - this.worldObj.spawnParticle(ParticleType.EXPLOSION_NORMAL, (d0 + this.explosionX * 1.0D) / 2.0D, (d1 + this.explosionY * 1.0D) / 2.0D, (d2 + this.explosionZ * 1.0D) / 2.0D, d3, d4, d5); - this.worldObj.spawnParticle(ParticleType.SMOKE, d0, d1, d2, d3, d4, d5); + this.worldObj.spawnParticle(ParticleType.EXPLOSION_NORMAL, (d0 + this.explosionX * 1.0D) / 2.0D, (d1 + this.explosionY * 1.0D) / 2.0D, (d2 + this.explosionZ * 1.0D) / 2.0D); + this.worldObj.spawnParticle(ParticleType.SMOKE, d0, d1, d2); } if (block != Blocks.air) diff --git a/common/src/main/java/common/world/World.java b/common/src/main/java/common/world/World.java index f944216f..2b6cc126 100755 --- a/common/src/main/java/common/world/World.java +++ b/common/src/main/java/common/world/World.java @@ -2089,13 +2089,11 @@ public abstract class World implements IWorldAccess { public void scheduleUpdate(BlockPos pos, Block blockIn, int delay) { } - public void spawnParticle(ParticleType particleType, double xCoord, double yCoord, double zCoord, double xOffset, double yOffset, - double zOffset, int data) { + public void spawnParticle(ParticleType particleType, double xCoord, double yCoord, double zCoord, int data) { } - public final void spawnParticle(ParticleType particleType, double xCoord, double yCoord, double zCoord, double xOffset, double yOffset, - double zOffset) { - this.spawnParticle(particleType, xCoord, yCoord, zCoord, xOffset, yOffset, zOffset, 0); + public final void spawnParticle(ParticleType particleType, double xCoord, double yCoord, double zCoord) { + this.spawnParticle(particleType, xCoord, yCoord, zCoord, 0); } // public Difficulty getDifficulty() { diff --git a/server/src/main/java/server/command/commands/CommandEffect.java b/server/src/main/java/server/command/commands/CommandEffect.java index 3747ee34..0d54c255 100644 --- a/server/src/main/java/server/command/commands/CommandEffect.java +++ b/server/src/main/java/server/command/commands/CommandEffect.java @@ -18,16 +18,11 @@ public class CommandEffect extends Command { this.addPlayerList("player", false, UserPolicy.NON_ADMINS_OR_SELF); this.addEnum("particle", ParticleType.class, ParticleType.values()); this.addVector("position", true, false); - this.setParamsOptional(); - this.addVector("offset", false, false); - this.addDouble("speed", 0.0f, 100.0f, 0.0f); - this.addInt("count", 0, 1000, 0); } - public void exec(CommandEnvironment env, Executor exec, List players, ParticleType type, Vec3 pos, Vec3 offset, double speed, int count) { - offset = offset == null ? new Vec3(0.0, 0.0, 0.0) : offset; + public void exec(CommandEnvironment env, Executor exec, List players, ParticleType type, Vec3 pos) { for(Player player : players) { - player.sendPacket(new SPacketParticles(type, (float)pos.xCoord, (float)pos.yCoord, (float)pos.zCoord, (float)offset.xCoord, (float)offset.yCoord, (float)offset.zCoord, (float)speed, count, 0)); + player.sendPacket(new SPacketParticles(type, (float)pos.xCoord, (float)pos.yCoord, (float)pos.zCoord, 0)); } } } diff --git a/server/src/main/java/server/world/WorldServer.java b/server/src/main/java/server/world/WorldServer.java index 6218307f..f0acf312 100755 --- a/server/src/main/java/server/world/WorldServer.java +++ b/server/src/main/java/server/world/WorldServer.java @@ -1287,10 +1287,8 @@ public final class WorldServer extends AWorldServer { // this.resetWeather = false; } - public void spawnParticle(ParticleType particleType, double xCoord, double yCoord, double zCoord, - int numberOfParticles, double xOffset, double yOffset, double zOffset, double particleSpeed, int data) { - Packet packet = new SPacketParticles(particleType, (float)xCoord, (float)yCoord, (float)zCoord, (float)xOffset, - (float)yOffset, (float)zOffset, (float)particleSpeed, numberOfParticles, data); + public void spawnParticles(ParticleType particleType, double xCoord, double yCoord, double zCoord, int data) { + Packet packet = new SPacketParticles(particleType, (float)xCoord, (float)yCoord, (float)zCoord, data); for(int i = 0; i < this.players.size(); ++i) { EntityNPC entityplayermp = this.players.get(i); @@ -1689,15 +1687,7 @@ public final class WorldServer extends AWorldServer { } for(EntityNPC player : this.players) { player.attackEntityFrom(DamageSource.causeExterminatusDamage(null), 5000); - Packet packet = new SPacketParticles(ParticleType.EXPLOSION_HUGE, - (float)player.posX, (float)this.getSeaLevel() + 4.0f, (float)player.posZ, (float)128.0, - (float)2.0, (float)128.0, (float)0.15, 1000, 0); - player.connection.sendPacket(packet); - packet = new SPacketParticles(ParticleType.EXPLOSION_NORMAL, - (float)player.posX, (float)this.getSeaLevel() + 4.0f, (float)player.posZ, (float)128.0, - (float)2.0, (float)128.0, (float)0.15, 1000, 0); - player.connection.sendPacket(packet); - packet = new SPacketEffect(1025, new BlockPos(player.posX, (double)this.getSeaLevel() + 4.0, player.posZ), 0); + Packet packet = new SPacketEffect(1025, new BlockPos(player.posX, (double)this.getSeaLevel() + 4.0, player.posZ), 0); player.connection.sendPacket(packet); } return true;