mirror of
https://github.com/ACGaming/Spackenmobs
synced 2024-06-10 22:48:54 +02:00
97 lines
3.5 KiB
Java
97 lines
3.5 KiB
Java
package mod.acgaming.spackenmobs.render;
|
|
|
|
import mod.acgaming.spackenmobs.entities.EntityLatinTeacher;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.renderer.GlStateManager;
|
|
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
|
|
import net.minecraft.client.renderer.entity.layers.LayerRenderer;
|
|
import net.minecraft.item.Item;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.EnumBlockRenderType;
|
|
import net.minecraftforge.fml.relauncher.Side;
|
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public class LayerHeldItemLatinTeacher implements LayerRenderer<EntityLatinTeacher>
|
|
{
|
|
private final RenderLatinTeacher latinTeacherRenderer;
|
|
|
|
public LayerHeldItemLatinTeacher(RenderLatinTeacher latinTeacherRendererIn)
|
|
{
|
|
this.latinTeacherRenderer = latinTeacherRendererIn;
|
|
}
|
|
|
|
public void doRenderLayer(EntityLatinTeacher entitylivingbaseIn, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale)
|
|
{
|
|
ItemStack itemstack = entitylivingbaseIn.getHeldItemMainhand();
|
|
|
|
if (!itemstack.isEmpty())
|
|
{
|
|
GlStateManager.color(1.0F, 1.0F, 1.0F);
|
|
GlStateManager.pushMatrix();
|
|
|
|
if (this.latinTeacherRenderer.getMainModel().isChild)
|
|
{
|
|
GlStateManager.translate(0.0F, 0.625F, 0.0F);
|
|
GlStateManager.rotate(-20.0F, -1.0F, 0.0F, 0.0F);
|
|
float f = 0.5F;
|
|
GlStateManager.scale(0.5F, 0.5F, 0.5F);
|
|
}
|
|
|
|
this.latinTeacherRenderer.getMainModel().villagerNose.postRender(0.0625F);
|
|
GlStateManager.translate(-0.0625F, 0.53125F, 0.21875F);
|
|
Item item = itemstack.getItem();
|
|
Minecraft minecraft = Minecraft.getMinecraft();
|
|
|
|
if (Block.getBlockFromItem(item).getDefaultState().getRenderType() == EnumBlockRenderType.ENTITYBLOCK_ANIMATED)
|
|
{
|
|
GlStateManager.translate(0.0F, 0.0625F, -0.25F);
|
|
GlStateManager.rotate(30.0F, 1.0F, 0.0F, 0.0F);
|
|
GlStateManager.rotate(-5.0F, 0.0F, 1.0F, 0.0F);
|
|
float f1 = 0.375F;
|
|
GlStateManager.scale(0.375F, -0.375F, 0.375F);
|
|
} else if (item instanceof net.minecraft.item.ItemBow)
|
|
{
|
|
GlStateManager.translate(0.0F, 0.125F, -0.125F);
|
|
GlStateManager.rotate(-45.0F, 0.0F, 1.0F, 0.0F);
|
|
float f2 = 0.625F;
|
|
GlStateManager.scale(0.625F, -0.625F, 0.625F);
|
|
GlStateManager.rotate(-100.0F, 1.0F, 0.0F, 0.0F);
|
|
GlStateManager.rotate(-20.0F, 0.0F, 1.0F, 0.0F);
|
|
} else if (item.isFull3D())
|
|
{
|
|
if (item.shouldRotateAroundWhenRendering())
|
|
{
|
|
GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F);
|
|
GlStateManager.translate(0.0F, -0.0625F, 0.0F);
|
|
}
|
|
|
|
this.latinTeacherRenderer.transformHeldFull3DItemLayer();
|
|
GlStateManager.translate(0.0625F, -0.125F, 0.0F);
|
|
float f3 = 0.625F;
|
|
GlStateManager.scale(0.625F, -0.625F, 0.625F);
|
|
GlStateManager.rotate(0.0F, 1.0F, 0.0F, 0.0F);
|
|
GlStateManager.rotate(0.0F, 0.0F, 1.0F, 0.0F);
|
|
} else
|
|
{
|
|
GlStateManager.translate(0.1875F, 0.1875F, 0.0F);
|
|
float f4 = 0.875F;
|
|
GlStateManager.scale(0.875F, 0.875F, 0.875F);
|
|
GlStateManager.rotate(-20.0F, 0.0F, 0.0F, 1.0F);
|
|
GlStateManager.rotate(-60.0F, 1.0F, 0.0F, 0.0F);
|
|
GlStateManager.rotate(-30.0F, 0.0F, 0.0F, 1.0F);
|
|
}
|
|
|
|
GlStateManager.rotate(-15.0F, 1.0F, 0.0F, 0.0F);
|
|
GlStateManager.rotate(40.0F, 0.0F, 0.0F, 1.0F);
|
|
minecraft.getItemRenderer().renderItem(entitylivingbaseIn, itemstack, ItemCameraTransforms.TransformType.THIRD_PERSON_RIGHT_HAND);
|
|
GlStateManager.popMatrix();
|
|
}
|
|
}
|
|
|
|
public boolean shouldCombineTextures()
|
|
{
|
|
return false;
|
|
}
|
|
} |