package net.tropicraft.client.entity.render; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.event.entity.living.LivingEvent; import net.tropicraft.entity.hostile.EntityLostMask; import net.tropicraft.entity.placeable.EntityWallMask; import net.tropicraft.entity.placeable.EntityWallShell; import net.tropicraft.entity.placeable.EntityWallStarfish; import net.tropicraft.entity.underdasea.StarfishType; import net.tropicraft.registry.TCItemRegistry; import net.tropicraft.util.TropicraftUtils; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; /** * Represents a mask that is worn by the player. * @maskType: determines which mask, is derived from item metadata. * * @author CBaakman */ public class RenderArmorMask extends ModelBiped { private int maskType; protected MaskRenderer mask; public RenderArmorMask(int maskType){ //load the normal player model from ModelBiped super(); this.maskType = maskType; mask = new MaskRenderer(); } /* * Arguments f0 to f5 are explained at: * http://schwarzeszeux.tumblr.com/post/14176343101/minecraft-modeling-animation-part-2-of-x */ @Override public void render(Entity entity, float f0, float f1, float f2, float f3, float f4, float f5) { EntityLivingBase livingEntity = (EntityLivingBase)entity; /* Don't call super class' render method, let the renderMask function handle it! SetRotationAngles might me necessary, but I'm not sure. */ this.setRotationAngles(f0, f1, f2, f3, f4, f5, entity); GL11.glPushMatrix(); // Set head rotation to mask GL11.glRotatef(f3, 0, 1, 0); GL11.glRotatef(f4, 1, 0, 0); // Flip mask to face away from the player GL11.glRotatef(180, 0, 1, 0); // put it in the middle in front of the face, eyeholes at (Steve's) eye height GL11.glTranslatef (-0.025F, 0.1F, 0.3F); /* renderMask handles the rendering of the mask model, but it doesn't set the texture. Setting the texture is handled in the item class. */ mask.renderMask(this.maskType); GL11.glPopMatrix(); } }