- 149
- 1
- 2
Рендерю руки, и када им даю текстуру, она накладывается почему то на предмет.
look
look
Java:
import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;
import net.minecraftforge.client.IItemRenderer;
public class RenderFN2000 implements IItemRenderer{
private final float scale;
public RenderFN2000(float scale){
this.scale = scale;
}
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
return type == ItemRenderType.EQUIPPED || type == ItemRenderType.EQUIPPED_FIRST_PERSON;
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return false;
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
switch (type){
case EQUIPPED_FIRST_PERSON:
renderEquippedItem(item, (EntityLivingBase) data[1], true);
break;
case EQUIPPED:
renderEquippedItem(item, (EntityLivingBase) data[1], false);
break;
default:
}
}
private void renderEquippedItem(ItemStack stack, EntityLivingBase entity, boolean firstPerson) {
EntityPlayer ep = (EntityPlayer) entity;
RenderPlayer er = (RenderPlayer) RenderManager.instance.getEntityRenderObject(ep);
GL11.glPushMatrix();
float f = scale;
if (firstPerson) {
f *= 1.8F;
GL11.glPushMatrix();
GL11.glTranslatef(0.6F, 0.12F, -0.96F);
GL11.glScalef(0.6F, 1F, 1F);
GL11.glRotatef(25, 40F, -10F, -20F);
Minecraft.getMinecraft().renderEngine.bindTexture(Minecraft.getMinecraft().thePlayer.getLocationSkin());
er.renderFirstPersonArm(ep);
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslatef(-0.4F, 0.16F, -0.7F);
GL11.glRotatef(10, 0F, 0F, -0.5F);
if(Minecraft.getMinecraft().thePlayer.isSprinting()){
GL11.glRotatef(10, -1F, 0F, -0.6F);
}
GL11.glPopMatrix();
} else {
f *= (entity instanceof EntityPlayer ? 2.1F : 2F);
GL11.glTranslatef(1.14F - f, -0.3F * scale, 0.01F * scale);
}
GL11.glScalef(f, f, f);
Icon icon = stack.getItem().getIcon(stack, 0);
Tessellator tessellator = Tessellator.instance;
ItemRenderer.renderItemIn2D(tessellator, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.036F);
GL11.glPopMatrix();
}
}