diff options
author | Tec <daniel112092@gmail.com> | 2019-07-17 00:29:58 +0200 |
---|---|---|
committer | Tec <daniel112092@gmail.com> | 2019-07-17 00:29:58 +0200 |
commit | fdd4cdac351079dbb661ec9097068b95ab0cd527 (patch) | |
tree | 537525ab79f01987033422e021928963b1a79c43 | |
parent | ec335befdb0c2e03a33f4fbf42587b5585cf3796 (diff) | |
download | GT5-Unofficial-fdd4cdac351079dbb661ec9097068b95ab0cd527.tar.gz GT5-Unofficial-fdd4cdac351079dbb661ec9097068b95ab0cd527.tar.bz2 GT5-Unofficial-fdd4cdac351079dbb661ec9097068b95ab0cd527.zip |
Adjust some particles
4 files changed, 105 insertions, 46 deletions
diff --git a/src/main/java/com/github/technus/tectech/entity/fx/WeightlessParticleFX.java b/src/main/java/com/github/technus/tectech/entity/fx/WeightlessParticleFX.java new file mode 100644 index 0000000000..22b72463f8 --- /dev/null +++ b/src/main/java/com/github/technus/tectech/entity/fx/WeightlessParticleFX.java @@ -0,0 +1,51 @@ +package com.github.technus.tectech.entity.fx; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class WeightlessParticleFX extends EntityFX +{ + private static final String __OBFID = "CL_00000903"; + + public WeightlessParticleFX(World p_i1205_1_, double p_i1205_2_, double p_i1205_4_, double p_i1205_6_, double p_i1205_8_, double p_i1205_10_, double p_i1205_12_) + { + super(p_i1205_1_, p_i1205_2_, p_i1205_4_, p_i1205_6_, p_i1205_8_, p_i1205_10_, p_i1205_12_); + this.motionX = p_i1205_8_ + (double)((float)(Math.random() * 2.0D - 1.0D) * 0.05F); + this.motionY = p_i1205_10_ + (double)((float)(Math.random() * 2.0D - 1.0D) * 0.05F); + this.motionZ = p_i1205_12_ + (double)((float)(Math.random() * 2.0D - 1.0D) * 0.05F); + this.particleRed = this.particleGreen = this.particleBlue = this.rand.nextFloat() * 0.3F + 0.7F; + this.particleScale = this.rand.nextFloat() * this.rand.nextFloat() * 6.0F + 1.0F; + this.particleMaxAge = (int)(16.0D / ((double)this.rand.nextFloat() * 0.8D + 0.2D)) + 2; + } + + /** + * Called to update the entity's position/logic. + */ + public void onUpdate() + { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + if (this.particleAge++ >= this.particleMaxAge) + { + this.setDead(); + } + + this.setParticleTextureIndex(7 - this.particleAge * 8 / this.particleMaxAge); + //this.motionY += 0.004D; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= 0.8999999761581421D; + this.motionY *= 0.8999999761581421D; + this.motionZ *= 0.8999999761581421D; + + if (this.onGround) + { + this.motionX *= 0.699999988079071D; + this.motionZ *= 0.699999988079071D; + } + } +} diff --git a/src/main/java/com/github/technus/tectech/proxy/ClientProxy.java b/src/main/java/com/github/technus/tectech/proxy/ClientProxy.java index 5ab81d8283..232beebfb6 100644 --- a/src/main/java/com/github/technus/tectech/proxy/ClientProxy.java +++ b/src/main/java/com/github/technus/tectech/proxy/ClientProxy.java @@ -4,6 +4,7 @@ import com.github.technus.tectech.Reference; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.compatibility.openmodularturrets.TT_turret_loader; import com.github.technus.tectech.entity.fx.BlockHint; +import com.github.technus.tectech.entity.fx.WeightlessParticleFX; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.block.QuantumGlassRender; import com.github.technus.tectech.thing.block.QuantumStuffBlock; @@ -17,7 +18,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityClientPlayerMP; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiNewChat; -import net.minecraft.client.particle.EntityExplodeFX; import net.minecraft.client.particle.EntityFX; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.AxisAlignedBB; @@ -41,10 +41,10 @@ public class ClientProxy extends CommonProxy { } @Override - public void hint_particle(World world, int x, int y, int z, Block block, int meta) { - Minecraft.getMinecraft().effectRenderer.addEffect(new BlockHint(world,x,y,z,block,meta)); + public void hint_particle(World w,int x, int y, int z, Block block, int meta) { + Minecraft.getMinecraft().effectRenderer.addEffect(new BlockHint(w,x,y,z,block,meta)); - EntityFX particle = new EntityExplodeFX(world, x + TecTech.RANDOM.nextFloat() * 0.5F, y + TecTech.RANDOM.nextFloat() * 0.5F, z + TecTech.RANDOM.nextFloat() * 0.5F, 0, 0, 0); + EntityFX particle = new WeightlessParticleFX(w, x + TecTech.RANDOM.nextFloat() * 0.5F, y + TecTech.RANDOM.nextFloat() * 0.5F, z + TecTech.RANDOM.nextFloat() * 0.5F, 0, 0, 0); particle.setRBGColorF(0, 0.6F * TecTech.RANDOM.nextFloat(), 0.8f); Minecraft.getMinecraft().effectRenderer.addEffect(particle); } @@ -56,23 +56,60 @@ public class ClientProxy extends CommonProxy { float yPos = aDir.offsetY * 0.76F + aMuffler.getYCoord() + 0.25F; float zPos = aDir.offsetZ * 0.76F + aMuffler.getZCoord() + 0.25F; - float ySpd = 0; - //aDir.offsetY*0.1F+0.2F+0.1F*floatGen.nextFloat(); - float xSpd = 0; - float zSpd = 0; - EntityFX particle = new EntityExplodeFX(aMuffler.getWorld(), xPos + TecTech.RANDOM.nextFloat() * 0.5F, yPos + TecTech.RANDOM.nextFloat() * 0.5F, zPos + TecTech.RANDOM.nextFloat() * 0.5F, xSpd, ySpd, zSpd); + EntityFX particle = new WeightlessParticleFX(aMuffler.getWorld(), xPos + TecTech.RANDOM.nextFloat() * 0.5F, yPos + TecTech.RANDOM.nextFloat() * 0.5F, zPos + TecTech.RANDOM.nextFloat() * 0.5F, 0, 0, 0); particle.setRBGColorF(0, 0.6F * TecTech.RANDOM.nextFloat(), 0.8f); Minecraft.getMinecraft().effectRenderer.addEffect(particle); } @Override - public void em_particle(World w,double x,double y,double z) {//CUTE! - EntityFX particle = new EntityExplodeFX(w, x + TecTech.RANDOM.nextFloat() * 0.5F, y + TecTech.RANDOM.nextFloat() * 0.5F, z + TecTech.RANDOM.nextFloat() * 0.5F, 0, 0, 0); + public void pollutor_particle(IGregTechTileEntity aMuffler, byte facing) { + ForgeDirection aDir = ForgeDirection.getOrientation(facing); + float xPos = aDir.offsetX * 0.76F + aMuffler.getXCoord() + 0.25F; + float yPos = aDir.offsetY * 0.76F + aMuffler.getYCoord() + 0.25F; + float zPos = aDir.offsetZ * 0.76F + aMuffler.getZCoord() + 0.25F; + + float ySpd = aDir.offsetY * 0.1F + 0.2F + 0.1F * (float)TecTech.RANDOM.nextGaussian(); + float xSpd; + float zSpd; + + if (aDir.offsetY == -1) { + float temp = TecTech.RANDOM.nextFloat() * 2 * (float) Math.PI; + xSpd = (float) Math.sin(temp) * 0.1F*(float)TecTech.RANDOM.nextGaussian(); + zSpd = (float) Math.cos(temp) * 0.1F*(float)TecTech.RANDOM.nextGaussian(); + } else { + xSpd = aDir.offsetX * (0.1F + 0.2F *(float)TecTech.RANDOM.nextGaussian()); + zSpd = aDir.offsetZ * (0.1F + 0.2F *(float)TecTech.RANDOM.nextGaussian()); + } + aMuffler.getWorld().spawnParticle("largesmoke", xPos + TecTech.RANDOM.nextFloat() * 0.5F, yPos + TecTech.RANDOM.nextFloat() * 0.5F, zPos + TecTech.RANDOM.nextFloat() * 0.5F, xSpd, ySpd, zSpd); + aMuffler.getWorld().spawnParticle("largesmoke", xPos + TecTech.RANDOM.nextFloat() * 0.5F, yPos + TecTech.RANDOM.nextFloat() * 0.5F, zPos + TecTech.RANDOM.nextFloat() * 0.5F, xSpd, ySpd, zSpd); + aMuffler.getWorld().spawnParticle("largesmoke", xPos + TecTech.RANDOM.nextFloat() * 0.5F, yPos + TecTech.RANDOM.nextFloat() * 0.5F, zPos + TecTech.RANDOM.nextFloat() * 0.5F, xSpd, ySpd, zSpd); + } + + @Override + public void em_particle(World w,double x, double y, double z) {//CUTE! + EntityFX particle = new WeightlessParticleFX(w, + x + TecTech.RANDOM.nextFloat() * 0.5F, + y + TecTech.RANDOM.nextFloat() * 0.5F, + z + TecTech.RANDOM.nextFloat() * 0.5F, + 0, + 0, + 0); particle.setRBGColorF(0, 0.6F * TecTech.RANDOM.nextFloat(), 0.8f); Minecraft.getMinecraft().effectRenderer.addEffect(particle); } @Override + public void pollutor_particle(World w,double x, double y, double z) { + w.spawnParticle("largesmoke", + x + TecTech.RANDOM.nextFloat() * 0.5F, + y + TecTech.RANDOM.nextFloat() * 0.5F, + z + TecTech.RANDOM.nextFloat() * 0.5F, + 0, + 0, + 0); + } + + @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } @@ -136,11 +173,6 @@ public class ClientProxy extends CommonProxy { } @Override - public void renderAABB(AxisAlignedBB box) { - renderAABB(Minecraft.getMinecraft().theWorld,box); - } - - @Override public EntityClientPlayerMP getPlayer(){ return Minecraft.getMinecraft().thePlayer; } diff --git a/src/main/java/com/github/technus/tectech/proxy/CommonProxy.java b/src/main/java/com/github/technus/tectech/proxy/CommonProxy.java index 59d2b95150..296002b527 100644 --- a/src/main/java/com/github/technus/tectech/proxy/CommonProxy.java +++ b/src/main/java/com/github/technus/tectech/proxy/CommonProxy.java @@ -13,9 +13,12 @@ import net.minecraft.world.WorldServer; public class CommonProxy implements IGuiHandler { public void registerRenderInfo() {} - public void hint_particle(World world, int x, int y, int z, Block block, int meta){} + public void hint_particle(World w,int x, int y, int z, Block block, int meta){} public void em_particle(IGregTechTileEntity aMuffler, byte facing) {}//CUTE! - public void em_particle(World w,double x,double y,double z){} + public void pollutor_particle(IGregTechTileEntity aPollutor, byte facing) {}//CUTE! + public void em_particle(World w,double x, double y, double z){} + public void pollutor_particle(World w,double x, double y, double z){} + public void renderAABB(World w,AxisAlignedBB box){} @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -46,9 +49,6 @@ public class CommonProxy implements IGuiHandler { public void playSound(IGregTechTileEntity base,String name){} - public void renderAABB(AxisAlignedBB box){} - public void renderAABB(World w,AxisAlignedBB box){} - public String getUUID(String name) { for(WorldServer worldServer:MinecraftServer.getServer().worldServers){ for(Object o:worldServer.playerEntities){ diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_DebugPollutor.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_DebugPollutor.java index ab68393dee..0e1c389006 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_DebugPollutor.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_DebugPollutor.java @@ -118,7 +118,7 @@ public class GT_MetaTileEntity_DebugPollutor extends GT_MetaTileEntity_TieredMac for(byte i=0;i<6;i++){ if(i!=aBaseMetaTileEntity.getFrontFacing()){ TecTech.proxy.em_particle(aBaseMetaTileEntity, i); - pollutionParticles(aBaseMetaTileEntity.getWorld(),"largesmoke",i); + TecTech.proxy.pollutor_particle(aBaseMetaTileEntity,i); } } } @@ -157,28 +157,4 @@ public class GT_MetaTileEntity_DebugPollutor extends GT_MetaTileEntity_TieredMac return false; } - @SideOnly(Side.CLIENT) - public void pollutionParticles(World aWorld, String name,byte face) { - IGregTechTileEntity aMuffler = this.getBaseMetaTileEntity(); - ForgeDirection aDir = ForgeDirection.getOrientation(face); - float xPos = aDir.offsetX * 0.76F + aMuffler.getXCoord() + 0.25F; - float yPos = aDir.offsetY * 0.76F + aMuffler.getYCoord() + 0.25F; - float zPos = aDir.offsetZ * 0.76F + aMuffler.getZCoord() + 0.25F; - - float ySpd = aDir.offsetY * 0.1F + 0.2F + 0.1F * TecTech.RANDOM.nextFloat(); - float xSpd; - float zSpd; - - if (aDir.offsetY == -1) { - float temp = TecTech.RANDOM.nextFloat() * 2 * (float) Math.PI; - xSpd = (float) Math.sin(temp) * 0.1F; - zSpd = (float) Math.cos(temp) * 0.1F; - } else { - xSpd = aDir.offsetX * (0.1F + 0.2F * TecTech.RANDOM.nextFloat()); - zSpd = aDir.offsetZ * (0.1F + 0.2F * TecTech.RANDOM.nextFloat()); - } - aWorld.spawnParticle(name, xPos + TecTech.RANDOM.nextFloat() * 0.5F, yPos + TecTech.RANDOM.nextFloat() * 0.5F, zPos + TecTech.RANDOM.nextFloat() * 0.5F, xSpd, ySpd, zSpd); - aWorld.spawnParticle(name, xPos + TecTech.RANDOM.nextFloat() * 0.5F, yPos + TecTech.RANDOM.nextFloat() * 0.5F, zPos + TecTech.RANDOM.nextFloat() * 0.5F, xSpd, ySpd, zSpd); - aWorld.spawnParticle(name, xPos + TecTech.RANDOM.nextFloat() * 0.5F, yPos + TecTech.RANDOM.nextFloat() * 0.5F, zPos + TecTech.RANDOM.nextFloat() * 0.5F, xSpd, ySpd, zSpd); - } } |