dxAugust
Живёт в подвале
- 135
- 2
- 8
Всем привет недавно кодил отображение модели на Minecraft 1.7.10. Для отображения я использовал обычны ItemUse Bow, для того чтобы игрок держал в руках оружие с анимацией прицеливания из лука. Возникла проблема, что я не могу разобраться как настроить так, чтобы вид от первого лица выглядел хорошо. Я пошёл на ужасные костыли путём переворачивания модельки непосредственно в самом редакторе. (В самом низу поста есть скриншот как оно должно выглядеть). Можете пожалуйсто помочь или дать наводку в каком направлении я могу что-то сделать.
Рендер модельки оружия:
public static final ResourceLocation texture = new ResourceLocation(Reference.MODID, "textures/items/farbric yellow.png");
@Override
public boolean handleRenderType(ItemStack is, ItemRenderType type) {
if (type == ItemRenderType.INVENTORY) return false;
return true;
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack is, ItemRendererHelper helper) {
if (type == ItemRenderType.INVENTORY) return false;
return true;
}
@Override
public void renderItem(ItemRenderType type, ItemStack is, Object... data) {
switch(type)
{
case EQUIPPED_FIRST_PERSON:
GL11.glPushMatrix();
GL11.glRotatef(-225.0F, -6F, 1.5F, -2F);
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
GL11.glCallList(ClientProxy.displayList[0]);
GL11.glPopMatrix();
break;
case EQUIPPED:
GL11.glPushMatrix();
GL11.glTranslatef(0.1F, 1F, 0.1F);
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
GL11.glCallList(ClientProxy.displayList[0]);
GL11.glPopMatrix();
break;
case INVENTORY:
GL11.glPushMatrix();
GL11.glTranslatef(0.1F, 0.0F, 0.1F);
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
GL11.glCallList(ClientProxy.displayList[0]);
GL11.glPopMatrix();
break;
case ENTITY:
GL11.glPushMatrix();
GL11.glTranslatef(0.1F, 0.0F, 0.1F);
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
GL11.glCallList(ClientProxy.displayList[0]);
GL11.glPopMatrix();
break;
default:
break;
}
}
Класс предмета:
public Yboinik()
{
this.setUnlocalizedName("testGUN");
this.setFull3D();
this.setTextureName(Reference.MODID + ":testgun");
}
@Override
public int getMaxItemUseDuration(ItemStack stack)
{
return 2000000000;
}
@Override
public EnumAction getItemUseAction(ItemStack stack)
{
return EnumAction.bow;
}
@Override
public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
{
((EntityPlayer)par3Entity).setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
}
Последнее редактирование: