more particle improvements
This commit is contained in:
parent
28d6850668
commit
d95a3f8b11
58 changed files with 266 additions and 444 deletions
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -13,28 +13,18 @@ public class SPacketParticles implements Packet<IClientPlayer>
|
|||
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<IClientPlayer>
|
|||
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<IClientPlayer>
|
|||
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<IClientPlayer>
|
|||
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.
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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<Player> 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<Player> 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue