Merge PR #7 from MoreThanHidden/1.10-rv3-rendering - Particle Texture Atlas Added

Merge PR #7 from MoreThanHidden/1.10-rv3-rendering - Particle Texture Atlas Added.
Closes #6.
This commit is contained in:
John Hannan 2016-06-29 21:30:08 +08:00 committed by Elix_x
parent 03aa59521c
commit 4c4bdff55c
5 changed files with 65 additions and 38 deletions

View file

@ -48,12 +48,14 @@ import net.minecraft.world.World;
import net.minecraftforge.client.event.ModelBakeEvent; import net.minecraftforge.client.event.ModelBakeEvent;
import net.minecraftforge.client.event.MouseEvent; import net.minecraftforge.client.event.MouseEvent;
import net.minecraftforge.client.event.RenderLivingEvent; import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.TextureStitchEvent;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import appeng.api.parts.CableRenderMode; import appeng.api.parts.CableRenderMode;
import appeng.api.util.AEColor; import appeng.api.util.AEColor;
import appeng.block.AEBaseBlock; import appeng.block.AEBaseBlock;
import appeng.client.render.textures.ParticleTextures;
import appeng.client.render.effects.AssemblerFX; import appeng.client.render.effects.AssemblerFX;
import appeng.client.render.effects.CraftingFx; import appeng.client.render.effects.CraftingFx;
import appeng.client.render.effects.EnergyFx; import appeng.client.render.effects.EnergyFx;
@ -115,7 +117,7 @@ public class ClientHelper extends ServerHelper
{ {
if( feature instanceof AEBaseBlock ) if( feature instanceof AEBaseBlock )
{ {
Minecraft.getMinecraft().getBlockColors().registerBlockColorHandler( new AEBaseBlockColor(), ( Block ) feature ); Minecraft.getMinecraft().getBlockColors().registerBlockColorHandler( new AEBaseBlockColor(), (Block) feature );
} }
} }
@ -138,7 +140,7 @@ public class ClientHelper extends ServerHelper
@Override @Override
public void bindTileEntitySpecialRenderer( final Class<? extends TileEntity> tile, final AEBaseBlock blk ) public void bindTileEntitySpecialRenderer( final Class<? extends TileEntity> tile, final AEBaseBlock blk )
{ {
} }
@Override @Override
@ -404,6 +406,12 @@ public class ClientHelper extends ServerHelper
} }
} }
@SubscribeEvent
public void onTextureStitch( final TextureStitchEvent.Pre event )
{
ParticleTextures.registerSprite( event );
}
private static class IconReg private static class IconReg
{ {
public final String name; public final String name;
@ -428,6 +436,7 @@ public class ClientHelper extends ServerHelper
} }
} }
public static class AEBaseBlockColor implements IBlockColor public static class AEBaseBlockColor implements IBlockColor
{ {
@ -436,16 +445,16 @@ public class ClientHelper extends ServerHelper
{ {
return tintIndex; return tintIndex;
} }
} }
public class ItemPaintBallColor implements IItemColor public class ItemPaintBallColor implements IItemColor
{ {
@Override @Override
public int getColorFromItemstack( ItemStack stack, int tintIndex ) public int getColorFromItemstack( ItemStack stack, int tintIndex )
{ {
final AEColor col = ( ( ItemPaintBall ) stack.getItem() ).getColor( stack ); final AEColor col = ( (ItemPaintBall) stack.getItem() ).getColor( stack );
final int colorValue = stack.getItemDamage() >= 20 ? col.mediumVariant : col.mediumVariant; final int colorValue = stack.getItemDamage() >= 20 ? col.mediumVariant : col.mediumVariant;
final int r = ( colorValue >> 16 ) & 0xff; final int r = ( colorValue >> 16 ) & 0xff;
@ -463,6 +472,5 @@ public class ClientHelper extends ServerHelper
return r << 16 | g << 8 | b | 0xff << 24; return r << 16 | g << 8 | b | 0xff << 24;
} }
} }
} }
} }

View file

@ -30,6 +30,7 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import appeng.api.util.AEPartLocation; import appeng.api.util.AEPartLocation;
import appeng.client.render.textures.ParticleTextures;
@SideOnly( Side.CLIENT ) @SideOnly( Side.CLIENT )
@ -51,8 +52,7 @@ public class CraftingFx extends ParticleBreaking
this.particleRed = 1; this.particleRed = 1;
this.particleAlpha = 1.3f; this.particleAlpha = 1.3f;
this.particleScale = 1.5f; this.particleScale = 1.5f;
//TODO 1.10-R - Find exact atlas it was holding and replace this broken code with the atlas. this.particleTextureIndex = ParticleTextures.BlockEnergyParticle;
this.particleTextureIndex = ExtraBlockTextures.BlockEnergyParticle.getIcon().getAtlas();
this.particleMaxAge /= 1.2; this.particleMaxAge /= 1.2;
this.startBlkX = MathHelper.floor_double( this.posX ); this.startBlkX = MathHelper.floor_double( this.posX );
@ -114,19 +114,19 @@ public class CraftingFx extends ParticleBreaking
public void onUpdate() public void onUpdate()
{ {
this.prevPosX = this.posX; this.prevPosX = this.posX;
this.prevPosY = this.posY; this.prevPosY = this.posY;
this.prevPosZ = this.posZ; this.prevPosZ = this.posZ;
if (this.particleAge++ >= this.particleMaxAge) if( this.particleAge++ >= this.particleMaxAge )
{ {
this.setExpired(); this.setExpired();
} }
this.motionY -= 0.04D * (double)this.particleGravity; this.motionY -= 0.04D * (double) this.particleGravity;
this.moveEntity(this.motionX, this.motionY, this.motionZ); this.moveEntity( this.motionX, this.motionY, this.motionZ );
this.motionX *= 0.9800000190734863D; this.motionX *= 0.9800000190734863D;
this.motionY *= 0.9800000190734863D; this.motionY *= 0.9800000190734863D;
this.motionZ *= 0.9800000190734863D; this.motionZ *= 0.9800000190734863D;
this.particleScale *= 0.51f; this.particleScale *= 0.51f;
this.particleAlpha *= 0.51f; this.particleAlpha *= 0.51f;
} }

View file

@ -30,6 +30,7 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import appeng.api.util.AEPartLocation; import appeng.api.util.AEPartLocation;
import appeng.client.render.textures.ParticleTextures;
@SideOnly( Side.CLIENT ) @SideOnly( Side.CLIENT )
@ -51,8 +52,7 @@ public class EnergyFx extends ParticleBreaking
this.particleRed = 255; this.particleRed = 255;
this.particleAlpha = 1.4f; this.particleAlpha = 1.4f;
this.particleScale = 3.5f; this.particleScale = 3.5f;
//TODO 1.10-R - Find exact atlas it was holding and replace this broken code with the atlas. this.particleTextureIndex = ParticleTextures.BlockEnergyParticle;
this.particleTextureIndex = ExtraBlockTextures.BlockEnergyParticle.getIcon().getAtlas();
this.startBlkX = MathHelper.floor_double( this.posX ); this.startBlkX = MathHelper.floor_double( this.posX );
this.startBlkY = MathHelper.floor_double( this.posY ); this.startBlkY = MathHelper.floor_double( this.posY );
@ -104,22 +104,22 @@ public class EnergyFx extends ParticleBreaking
public void onUpdate() public void onUpdate()
{ {
this.prevPosX = this.posX; this.prevPosX = this.posX;
this.prevPosY = this.posY; this.prevPosY = this.posY;
this.prevPosZ = this.posZ; this.prevPosZ = this.posZ;
if (this.particleAge++ >= this.particleMaxAge) if( this.particleAge++ >= this.particleMaxAge )
{ {
this.setExpired(); this.setExpired();
} }
this.motionY -= 0.04D * (double)this.particleGravity; this.motionY -= 0.04D * (double) this.particleGravity;
this.moveEntity(this.motionX, this.motionY, this.motionZ); this.moveEntity( this.motionX, this.motionY, this.motionZ );
this.motionX *= 0.9800000190734863D; this.motionX *= 0.9800000190734863D;
this.motionY *= 0.9800000190734863D; this.motionY *= 0.9800000190734863D;
this.motionZ *= 0.9800000190734863D; this.motionZ *= 0.9800000190734863D;
this.particleScale *= 0.89f; this.particleScale *= 0.89f;
this.particleAlpha *= 0.89f; this.particleAlpha *= 0.89f;
} }
public void setMotionX( float motionX ) public void setMotionX( float motionX )

View file

@ -27,6 +27,7 @@ import net.minecraft.item.Item;
import net.minecraft.world.World; import net.minecraft.world.World;
import appeng.api.util.AEPartLocation; import appeng.api.util.AEPartLocation;
import appeng.client.render.textures.ParticleTextures;
public class MatterCannonFX extends ParticleBreaking public class MatterCannonFX extends ParticleBreaking
@ -46,8 +47,7 @@ public class MatterCannonFX extends ParticleBreaking
this.motionX = 0.0f; this.motionX = 0.0f;
this.motionY = 0.0f; this.motionY = 0.0f;
this.motionZ = 0.0f; this.motionZ = 0.0f;
//TODO 1.10-R - Find exact atlas it was holding and replace this broken code with the atlas. this.particleTextureIndex = ParticleTextures.BlockMatterCannonParticle;
this.particleTextureIndex = ExtraBlockTextures.BlockMatterCannonParticle.getIcon().getAtlas();
} }
public void fromItem( final AEPartLocation d ) public void fromItem( final AEPartLocation d )
@ -62,13 +62,13 @@ public class MatterCannonFX extends ParticleBreaking
this.prevPosY = this.posY; this.prevPosY = this.posY;
this.prevPosZ = this.posZ; this.prevPosZ = this.posZ;
if (this.particleAge++ >= this.particleMaxAge) if( this.particleAge++ >= this.particleMaxAge )
{ {
this.setExpired(); this.setExpired();
} }
this.motionY -= 0.04D * (double)this.particleGravity; this.motionY -= 0.04D * (double) this.particleGravity;
this.moveEntity(this.motionX, this.motionY, this.motionZ); this.moveEntity( this.motionX, this.motionY, this.motionZ );
this.motionX *= 0.9800000190734863D; this.motionX *= 0.9800000190734863D;
this.motionY *= 0.9800000190734863D; this.motionY *= 0.9800000190734863D;
this.motionZ *= 0.9800000190734863D; this.motionZ *= 0.9800000190734863D;

View file

@ -0,0 +1,19 @@
package appeng.client.render.textures;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.TextureStitchEvent;
public class ParticleTextures
{
public static TextureAtlasSprite BlockEnergyParticle;
public static TextureAtlasSprite BlockMatterCannonParticle;
public static void registerSprite( TextureStitchEvent.Pre event )
{
BlockEnergyParticle = event.getMap().registerSprite( new ResourceLocation( "appliedenergistics2:blocks/BlockEnergyParticle" ) );
BlockMatterCannonParticle = event.getMap().registerSprite( new ResourceLocation( "appliedenergistics2:blocks/BlockMatterCannonParticle" ) );
}
}