Броня модель хана

Версия Minecraft
1.6.4

jopi

Попрошайка
1,421
30
260
Пропала модель брони, а точнее даже и не появлялась.
перевожу код с 1.5.2, заменил метод из ForgeHooksClient(Про привязку: на 1.5.2 не нужно а на 1.6.4 не знаю если нужно напишите как)
Делаю броню значит через клиентпрокси и ISpecialArmor.
Метод в классе базовой брони где я устанавливаю заранее модель:

Код:
   public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemstack, int armorSlot, ModelBiped _default) {
      ModelBaseSpecialArmor armorModel = (ModelBaseSpecialArmor)ClientProxy.armorModels.get(this);
      if (armorModel != null) {
         armorModel.bipedHeadwear.showModel = false;
         armorModel.bipedHead.showModel = armorSlot == 0;
         armorModel.bipedBody.showModel = armorSlot == 1 || armorSlot == 2;
         armorModel.bipedRightArm.showModel = armorSlot == 1;
         armorModel.bipedLeftArm.showModel = armorSlot == 1;
         armorModel.bipedRightLeg.showModel = armorSlot == 2 || armorSlot == 3;
         armorModel.bipedLeftLeg.showModel = armorSlot == 2 || armorSlot == 3;
         armorModel.isSneak = entityLiving.isSneaking();
         armorModel.isRiding = entityLiving.isRiding();
         armorModel.isChild = entityLiving.isChild();
         armorModel.heldItemRight = 0;
         armorModel.aimedBow = false;
         EntityPlayer player = ClientProxy.mc.thePlayer;
         ItemStack held_item = player.getCurrentItemOrArmor(0);
         if (held_item != null) {
            armorModel.heldItemRight = 1;
            if (player.getItemInUseCount() > 0) {
               EnumAction enumaction = held_item.getItemUseAction();
               if (enumaction == EnumAction.bow) {
                  armorModel.aimedBow = true;
               } else if (enumaction == EnumAction.block) {
                  armorModel.heldItemRight = 3;
               }
            }
         }
      }
      return armorModel;
   }
Класс ModelBaseSpecialArmor это просто пустой класс унаследованный от ModelBiped
Метод у 1.6.4 отличается и я его изменил тут добавив последний аргумент.
Далее клиентпрокси где находится мап с броней
Клиентпрокси:

Java:
package by.fxg.elizabeth.common;

import java.util.HashMap;
import java.util.Map;
import by.fxg.elizabeth.Elizabeth;
import by.fxg.elizabeth.common.item.armor.model.ModelCrocoHelmet;
import cpw.mods.fml.common.registry.TickRegistry;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.src.ModLoader;
import net.minecraftforge.common.MinecraftForge;

public class ClientProxy extends CommonProxy {
       public static Minecraft mc = Minecraft.getMinecraft();
       public static final RenderItem itemRenderer = new RenderItem();
       public static final Map armorModels = new HashMap();
      
    public void initCore() {
        TickRegistry.registerTickHandler(new CTH(), Side.CLIENT);
        armorModels.put(Elizabeth.crocoHelmet, new ModelCrocoHelmet());
        MinecraftForge.EVENT_BUS.register(this);
    }
    
    public void initModel() {   
    }
}
Модели в игре нет.
 

timaxa007

Модератор
5,831
409
672
Один класс и часть кода... И мы должны догадаться, как этот код должен работать, затем понять что не работает. Хотя по виду, может быть должно работать. И мы возвращаемся к твоему вопросу: "Почему это не работает?".
 

jopi

Попрошайка
1,421
30
260
ну ок полный класс базовой брони:

Java:
package by.fxg.elizabeth.common.item.special;

import java.util.List;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.particle.EntityFlameFX;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.EnumArmorMaterial;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.DamageSource;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.common.ISpecialArmor;
import net.minecraftforge.event.ForgeSubscribe;

import org.lwjgl.opengl.GL11;

import by.fxg.elizabeth.common.ClientProxy;
import by.fxg.elizabeth.common.item.armor.model.ModelBaseSpecialArmor;
import by.fxg.elizabeth.common.util.ISpecialOldArmor;
import by.fxg.elizabeth.common.util.Utils;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class OldSpecialArmor extends ItemArmor implements ISpecialArmor, ISpecialOldArmor {
   protected double absorbation = 1.0D;
   private Integer maxCharge = 0;
   public Long tick = 0L;
   int zLevel = -300;
   static long arrSlotTime = 0L;
   static int t = 0;

   public OldSpecialArmor(int par1, EnumArmorMaterial par2EnumArmorMaterial, int par3, int par4, int maxCharge, double absorbation) {
      super(par1, par2EnumArmorMaterial, par3, par4);
      this.maxCharge = maxCharge;
      this.setCreativeTab(CreativeTabs.tabCombat);
      this.absorbation = absorbation;
      this.setMaxDamage(5000);
      this.setMaxStackSize(1);
   }

   public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List) {
      ItemStack j = new ItemStack(par1, 1, 0);
      this.charge(j, this.maxCharge);
      par3List.add(j);
   }

   @SideOnly(Side.CLIENT)
   public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par2List, boolean par4) {
      String[] info = this.getInfo(par1ItemStack).split(":");
      par2List.add("§a " + info[0] + "L");
      par2List.add("§d Апгрейд уровень " + String.valueOf(Integer.valueOf(info[1]) / 500) + "D");
   }

   public void onArmorTickUpdate(World world, EntityPlayer player, ItemStack itemStack) {
      Long var4 = this.tick;
      Long var5 = this.tick = this.tick + 1L;
      if (var4 % 40L == 0L) {
         this.charge(itemStack, 10);
      }

   }

   public ArmorProperties getProperties(EntityLiving player, ItemStack armor, DamageSource source, double damage, int slot) {
      return new ArmorProperties(0, 0.0D, 0);
   }

   @SideOnly(Side.CLIENT)
   public void drawTexturedModalRect(int par1, int par2, int par3, int par4, int par5, int par6) {
      float f = 0.00390625F;
      float f1 = 0.00390625F;
      Tessellator tessellator = Tessellator.instance;
      tessellator.startDrawingQuads();
      tessellator.addVertexWithUV((double)(par1 + 0), (double)(par2 + par6), (double)this.zLevel, (double)((float)(par3 + 0) * f), (double)((float)(par4 + par6) * f1));
      tessellator.addVertexWithUV((double)(par1 + par5), (double)(par2 + par6), (double)this.zLevel, (double)((float)(par3 + par5) * f), (double)((float)(par4 + par6) * f1));
      tessellator.addVertexWithUV((double)(par1 + par5), (double)(par2 + 0), (double)this.zLevel, (double)((float)(par3 + par5) * f), (double)((float)(par4 + 0) * f1));
      tessellator.addVertexWithUV((double)(par1 + 0), (double)(par2 + 0), (double)this.zLevel, (double)((float)(par3 + 0) * f), (double)((float)(par4 + 0) * f1));
      tessellator.draw();
   }

   @SideOnly(Side.CLIENT)
   protected void renderInventorySlot(int x, int y, float par4, int slot) {
      ItemStack itemstack = ClientProxy.mc.thePlayer.inventory.armorItemInSlot(slot);
      if (itemstack != null) {
         float f1 = (float)itemstack.animationsToGo - par4;
         if (f1 > 0.0F) {
            GL11.glPushMatrix();
            float f2 = 1.0F + f1 / 5.0F;
            GL11.glTranslatef((float)(x + 8), (float)(y + 12), 0.0F);
            GL11.glScalef(1.0F / f2, (f2 + 1.0F) / 2.0F, 1.0F);
            GL11.glTranslatef((float)(-(x + 8)), (float)(-(y + 12)), 0.0F);
         }

         ClientProxy.itemRenderer.renderItemAndEffectIntoGUI(ClientProxy.mc.fontRenderer, ClientProxy.mc.renderEngine, itemstack, x, y);
         if (f1 > 0.0F) {
            GL11.glPopMatrix();
         }

         ClientProxy.itemRenderer.renderItemOverlayIntoGUI(ClientProxy.mc.fontRenderer, ClientProxy.mc.renderEngine, itemstack, x, y);
      }

   }

   @SideOnly(Side.CLIENT)
   public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) {
      ScaledResolution scaledresolution = new ScaledResolution(ClientProxy.mc.gameSettings, ClientProxy.mc.displayWidth, ClientProxy.mc.displayHeight);
      int k = scaledresolution.getScaledWidth();
      int l = scaledresolution.getScaledHeight();
      GL11.glEnable(32826);
      RenderHelper.enableGUIStandardItemLighting();
      int y = l - 24;
      y -= 18 * slot;
      this.renderInventorySlot(k - 24, y, 0.0F, slot);
      RenderHelper.disableStandardItemLighting();
      GL11.glEnable(32826);
      int car = this.getCharge(armor);
      ClientProxy.mc.fontRenderer.drawStringWithShadow(String.valueOf(car), k - 52, y + 4, 10092288);
      long time = System.currentTimeMillis();
      if (arrSlotTime < time) {
         arrSlotTime = time + 300L;
         t = 0;
         ItemStack[] arr$ = player.inventory.armorInventory;
         int len$ = arr$.length;

         for(int i$ = 0; i$ < len$; ++i$) {
            ItemStack s = arr$[i$];
            if (s != null && s.getItem() instanceof OldSpecialArmor) {
               t += this.getCharge(s);
            }
         }
      }

      GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
      ClientProxy.mc.renderEngine.bindTexture(new ResourceLocation("/gui/icons.png"));
      return 0;
   }

   public void damageArmor(EntityLiving entity, ItemStack stack, DamageSource source, int damage, int slot) {
   }

   public Integer charge(ItemStack armor, int amount) {
      OldSpecialArmor item = (OldSpecialArmor)armor.getItem();
      if (amount >= 0 && armor.stackSize <= 1) {
         NBTTagCompound nbtData = Utils.getOrCreateNbtData(armor);
         int charge = nbtData.getInteger("charge");
         int maxCharge = item.getMaxCharge(nbtData);
         if (amount > maxCharge - charge) {
            amount = maxCharge - charge;
         }

         charge += amount;
         if (charge > maxCharge) {
            return maxCharge;
         } else {
            nbtData.setInteger("charge", charge);
            return charge;
         }
      } else {
         return 0;
      }
   }

   public Integer getMaxCharge(NBTTagCompound nbtData) {
      return this.maxCharge + nbtData.getInteger("amp");
   }

   public Integer getAmp(NBTTagCompound nbtData) {
      return nbtData.getInteger("amp");
   }

   public Integer getCharge(ItemStack armor) {
      OldSpecialArmor item = (OldSpecialArmor)armor.getItem();
      if (armor.stackSize > 1) {
         return 0;
      } else {
         NBTTagCompound nbtData = Utils.getOrCreateNbtData(armor);
         int charge = nbtData.getInteger("charge");
         int maxCharge = item.getMaxCharge(nbtData);
         if (charge > maxCharge) {
            charge = maxCharge;
         }

         return charge;
      }
   }

   public String getInfo(ItemStack armor) {
      OldSpecialArmor item = (OldSpecialArmor)armor.getItem();
      if (armor.stackSize > 1) {
         return "0/0";
      } else {
         NBTTagCompound nbtData = Utils.getOrCreateNbtData(armor);
         int charge = nbtData.getInteger("charge");
         int amp = item.getAmp(nbtData);
         return charge + "/" + (this.maxCharge + amp) + ":" + amp;
      }
   }

   public long discharge(ItemStack armor, int value) {
      OldSpecialArmor item = (OldSpecialArmor)armor.getItem();
      if (armor.stackSize > 1) {
         return 0L;
      } else {
         NBTTagCompound nbtData = Utils.getOrCreateNbtData(armor);
         int charge = nbtData.getInteger("charge");
         int maxCharge = item.getMaxCharge(nbtData);
         int temp_charge = charge;
         if (charge <= 0) {
            return 0L;
         } else {
            if (charge > maxCharge) {
               charge = maxCharge;
            }

            if (charge - value >= 0) {
               charge -= value;
            } else {
               charge = 0;
            }

            nbtData.setInteger("charge", charge);
            temp_charge = value - temp_charge;
            return temp_charge > 0 ? (long)charge << 32 | (long)temp_charge & 4294967295L : (long)charge << 32 | 0L;
         }
      }
   }

   public double getAbsorbation() {
      return this.absorbation;
   }

   @SideOnly(Side.CLIENT)
   public boolean hasEffect(ItemStack par1ItemStack) {
      return true;
   }

   public boolean isBookEnchantable(ItemStack itemstack1, ItemStack itemstack2) {
      return false;
   }

   @SideOnly(Side.CLIENT)
   public boolean onEntityItemUpdate(EntityItem entityItem) {
      Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(entityItem.worldObj, entityItem.posX, entityItem.posY, entityItem.posZ, 0.0D, 0.0D, 0.0D));
      return super.onEntityItemUpdate(entityItem);
   }

   public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) {
      return false;
   }


   public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemstack, int armorSlot, ModelBiped _default) {
      ModelBaseSpecialArmor armorModel = (ModelBaseSpecialArmor)ClientProxy.armorModels.get(this);
      if (armorModel != null) {
         armorModel.bipedHeadwear.showModel = false;
         armorModel.bipedHead.showModel = armorSlot == 0;
         armorModel.bipedBody.showModel = armorSlot == 1 || armorSlot == 2;
         armorModel.bipedRightArm.showModel = armorSlot == 1;
         armorModel.bipedLeftArm.showModel = armorSlot == 1;
         armorModel.bipedRightLeg.showModel = armorSlot == 2 || armorSlot == 3;
         armorModel.bipedLeftLeg.showModel = armorSlot == 2 || armorSlot == 3;
         armorModel.isSneak = entityLiving.isSneaking();
         armorModel.isRiding = entityLiving.isRiding();
         armorModel.isChild = entityLiving.isChild();
         armorModel.heldItemRight = 0;
         armorModel.aimedBow = false;
         EntityPlayer player = ClientProxy.mc.thePlayer;
         ItemStack held_item = player.getCurrentItemOrArmor(0);
         if (held_item != null) {
            armorModel.heldItemRight = 1;
            if (player.getItemInUseCount() > 0) {
               EnumAction enumaction = held_item.getItemUseAction();
               if (enumaction == EnumAction.bow) {
                  armorModel.aimedBow = true;
               } else if (enumaction == EnumAction.block) {
                  armorModel.heldItemRight = 3;
               }
            }
         }
      }
      return armorModel;
   }

   public long getShildDamage(EntityPlayer player, ItemStack armor, int damage) {
      long damage_ = this.discharge(armor, damage);
      armor.damageItem(damage / 10, player);
      return damage_;
   }

@Override
public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor,
        DamageSource source, double damage, int slot) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void damageArmor(EntityLivingBase entity, ItemStack stack,
        DamageSource source, int damage, int slot) {
    // TODO Auto-generated method stub
  
}
}

ClientProxy

Java:
package by.fxg.elizabeth.common;

import java.util.HashMap;
import java.util.Map;

import by.fxg.elizabeth.Elizabeth;
import by.fxg.elizabeth.common.item.armor.model.ModelCrocoHelmet;
import by.fxg.elizabeth.common.util.ExtendedPlayer;
import cpw.mods.fml.common.registry.TickRegistry;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiInventory;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.src.ModLoader;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;

public class ClientProxy extends CommonProxy {
       public static Minecraft mc = Minecraft.getMinecraft();
       public static final RenderItem itemRenderer = new RenderItem();
       public static Map armorModels = new HashMap();
    
    public void initCore() {
        TickRegistry.registerTickHandler(new CTH(), Side.CLIENT);
        MinecraftForge.EVENT_BUS.register(this);
    }
  
    public void initModel() {
        armorModels.put(Elizabeth.crocoHelmet, new ModelCrocoHelmet());
    }
  
    public void openCustomGui(int iDGui, EntityPlayer player) {
        player.openGui(Elizabeth.instance, iDGui, player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ);
    }

    public void openExtGui(int iDGui, int iDparam, EntityPlayer player) {
        if (iDGui == 3004) {
            //Buffer
        } else {
            //InventoryTabGui.isOpenGui = false;
            if (iDGui == 2000) {
                mc.displayGuiScreen(new GuiInventory(mc.thePlayer));
            }
        }
    }

    public Object getClientGuiElement(int var1, EntityPlayer var2, World var3, int var4, int var5, int var6) {
        switch(var1) {
            case 3000:
                //return new ArmorExtGui(var2.inventory, ExtendedPlayer.get(var2).inventoryExt);
            default:
                return null;
        }
    }
}


ISpecialOldArmor

Java:
package by.fxg.elizabeth.common.util;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;

public interface ISpecialOldArmor {
   Integer getMaxCharge(NBTTagCompound var1);

   Integer getCharge(ItemStack var1);

   double getAbsorbation();

   Integer charge(ItemStack var1, int var2);

   long discharge(ItemStack var1, int var2);

   long getShildDamage(EntityPlayer var1, ItemStack var2, int var3);
}

ModelBaseSpecialArmor

Java:
package by.fxg.elizabeth.common.item.armor.model;


import by.fxg.elizabeth.common.util.ExtendedPlayer;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.MathHelper;

public class ModelBaseSpecialArmor extends ModelBiped {
    public int swing;
    
    protected void ExtRender(EntityPlayer par1Entity, float par2, float par3, float par4, float par5, float par6, float par7, ExtendedPlayer pi) {
    }
    
    public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) {
        
    }
    
     public void setRotationAngles(float par1, float par2, float par3, float par4, float par5, float par6, Entity par7Entity) {
          super.bipedHead.rotateAngleY = par4 / 57.295776F;
          super.bipedHead.rotateAngleX = par5 / 57.295776F;
          super.bipedHeadwear.rotateAngleY = super.bipedHead.rotateAngleY;
          super.bipedHeadwear.rotateAngleX = super.bipedHead.rotateAngleX;
          super.bipedRightArm.rotateAngleX = MathHelper.cos(par1 * 0.6662F + 3.1415927F) * 2.0F * par2 * 0.5F;
          super.bipedLeftArm.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 2.0F * par2 * 0.5F;
          super.bipedRightArm.rotateAngleZ = 0.0F;
          super.bipedLeftArm.rotateAngleZ = 0.0F;
          super.bipedRightLeg.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 1.4F * par2;
          super.bipedLeftLeg.rotateAngleX = MathHelper.cos(par1 * 0.6662F + 3.1415927F) * 1.4F * par2;
          super.bipedRightLeg.rotateAngleY = 0.0F;
          super.bipedLeftLeg.rotateAngleY = 0.0F;
          ModelRenderer bipedRightArm7;
          ModelRenderer bipedLeftArm7;
          if (super.isRiding) {
             bipedRightArm7 = super.bipedRightArm;
             bipedRightArm7.rotateAngleX -= 0.62831855F;
             bipedLeftArm7 = super.bipedLeftArm;
             bipedLeftArm7.rotateAngleX -= 0.62831855F;
             super.bipedRightLeg.rotateAngleX = -1.2566371F;
             super.bipedLeftLeg.rotateAngleX = -1.2566371F;
             super.bipedRightLeg.rotateAngleY = 0.31415927F;
             super.bipedLeftLeg.rotateAngleY = -0.31415927F;
          }

          if (super.heldItemLeft != 0) {
             super.bipedLeftArm.rotateAngleX = super.bipedLeftArm.rotateAngleX * 0.5F - 0.31415927F * (float)super.heldItemLeft;
          }

          if (super.heldItemRight != 0) {
             super.bipedRightArm.rotateAngleX = super.bipedRightArm.rotateAngleX * 0.5F - 0.31415927F * (float)super.heldItemRight;
          }

          super.bipedRightArm.rotateAngleY = 0.0F;
          super.bipedLeftArm.rotateAngleY = 0.0F;
          ModelRenderer bipedRightArm8;
          ModelRenderer bipedLeftArm8;
          float f6;
          float f7;
          ModelRenderer bipedRightArm9;
          float bipedRightArm71;
          if (this.swing > 0) {
             super.bipedRightArm.rotateAngleX = super.bipedRightArm.rotateAngleX * 0.5F - 0.31415927F * (float)this.swing;
             super.bipedRightArm.rotateAngleY = 0.0F;
             super.bipedLeftArm.rotateAngleY = 0.0F;
             bipedRightArm71 = (float)(this.swing + 100);
             super.bipedBody.rotateAngleY = MathHelper.sin(MathHelper.sqrt_float(bipedRightArm71) * 3.1415927F * 2.0F) * 0.2F;
             super.bipedRightArm.rotationPointZ = MathHelper.sin(super.bipedBody.rotateAngleY) * 5.0F;
             super.bipedRightArm.rotationPointX = -MathHelper.cos(super.bipedBody.rotateAngleY) * 5.0F;
             super.bipedLeftArm.rotationPointZ = -MathHelper.sin(super.bipedBody.rotateAngleY) * 5.0F;
             super.bipedLeftArm.rotationPointX = MathHelper.cos(super.bipedBody.rotateAngleY) * 5.0F;
             bipedLeftArm7 = super.bipedRightArm;
             bipedLeftArm7.rotateAngleY += super.bipedBody.rotateAngleY;
             bipedRightArm8 = super.bipedLeftArm;
             bipedRightArm8.rotateAngleY += super.bipedBody.rotateAngleY;
             bipedLeftArm8 = super.bipedLeftArm;
             bipedLeftArm8.rotateAngleX += super.bipedBody.rotateAngleY;
             bipedRightArm71 = 1.0F - (float)this.swing + 100.0F;
             bipedRightArm71 *= bipedRightArm71;
             bipedRightArm71 *= bipedRightArm71;
             bipedRightArm71 = 1.0F - bipedRightArm71;
             f6 = MathHelper.sin(bipedRightArm71 * 3.1415927F);
             f7 = MathHelper.sin((float)(this.swing + 100) * 3.1415927F) * -(super.bipedHead.rotateAngleX - 0.7F) * 0.75F;
             super.bipedRightArm.rotateAngleX -= (float)((double)f6 * 1.2D + (double)f7);
             bipedRightArm9 = super.bipedRightArm;
             bipedRightArm9.rotateAngleY += super.bipedBody.rotateAngleY * 2.0F;
             super.bipedRightArm.rotateAngleZ = MathHelper.sin((float)(this.swing + 100) * 3.1415927F) * -0.4F;
          }

          if (super.onGround > -9990.0F) {
             bipedRightArm71 = super.onGround;
             super.bipedBody.rotateAngleY = MathHelper.sin(MathHelper.sqrt_float(bipedRightArm71) * 3.1415927F * 2.0F) * 0.2F;
             super.bipedRightArm.rotationPointZ = MathHelper.sin(super.bipedBody.rotateAngleY) * 5.0F;
             super.bipedRightArm.rotationPointX = -MathHelper.cos(super.bipedBody.rotateAngleY) * 5.0F;
             super.bipedLeftArm.rotationPointZ = -MathHelper.sin(super.bipedBody.rotateAngleY) * 5.0F;
             super.bipedLeftArm.rotationPointX = MathHelper.cos(super.bipedBody.rotateAngleY) * 5.0F;
             bipedLeftArm7 = super.bipedRightArm;
             bipedLeftArm7.rotateAngleY += super.bipedBody.rotateAngleY;
             bipedRightArm8 = super.bipedLeftArm;
             bipedRightArm8.rotateAngleY += super.bipedBody.rotateAngleY;
             bipedLeftArm8 = super.bipedLeftArm;
             bipedLeftArm8.rotateAngleX += super.bipedBody.rotateAngleY;
             bipedRightArm71 = 1.0F - super.onGround;
             bipedRightArm71 *= bipedRightArm71;
             bipedRightArm71 *= bipedRightArm71;
             bipedRightArm71 = 1.0F - bipedRightArm71;
             f6 = MathHelper.sin(bipedRightArm71 * 3.1415927F);
             f7 = MathHelper.sin(super.onGround * 3.1415927F) * -(super.bipedHead.rotateAngleX - 0.7F) * 0.75F;
             super.bipedRightArm.rotateAngleX -= (float)((double)f6 * 1.2D + (double)f7);
             bipedRightArm9 = super.bipedRightArm;
             bipedRightArm9.rotateAngleY += super.bipedBody.rotateAngleY * 2.0F;
             super.bipedRightArm.rotateAngleZ = MathHelper.sin(super.onGround * 3.1415927F) * -0.4F;
          }

          if (super.isSneak) {
             super.bipedBody.rotateAngleX = 0.5F;
             bipedRightArm7 = super.bipedRightArm;
             bipedRightArm7.rotateAngleX += 0.4F;
             bipedLeftArm7 = super.bipedLeftArm;
             bipedLeftArm7.rotateAngleX += 0.4F;
             super.bipedRightLeg.rotationPointZ = 4.0F;
             super.bipedLeftLeg.rotationPointZ = 4.0F;
             super.bipedRightLeg.rotationPointY = 9.0F;
             super.bipedLeftLeg.rotationPointY = 9.0F;
             super.bipedHead.rotationPointY = 1.0F;
             super.bipedHeadwear.rotationPointY = 1.0F;
          } else {
             super.bipedBody.rotateAngleX = 0.0F;
             super.bipedRightLeg.rotationPointZ = 0.1F;
             super.bipedLeftLeg.rotationPointZ = 0.1F;
             super.bipedRightLeg.rotationPointY = 12.0F;
             super.bipedLeftLeg.rotationPointY = 12.0F;
             super.bipedHead.rotationPointY = 0.0F;
             super.bipedHeadwear.rotationPointY = 0.0F;
          }

          bipedRightArm7 = super.bipedRightArm;
          bipedRightArm7.rotateAngleZ += MathHelper.cos(par3 * 0.09F) * 0.05F + 0.05F;
          bipedLeftArm7 = super.bipedLeftArm;
          bipedLeftArm7.rotateAngleZ -= MathHelper.cos(par3 * 0.09F) * 0.05F + 0.05F;
          bipedRightArm8 = super.bipedRightArm;
          bipedRightArm8.rotateAngleX += MathHelper.sin(par3 * 0.067F) * 0.05F;
          bipedLeftArm8 = super.bipedLeftArm;
          bipedLeftArm8.rotateAngleX -= MathHelper.sin(par3 * 0.067F) * 0.05F;
          if (super.aimedBow) {
             f6 = 0.0F;
             f7 = 0.0F;
             super.bipedRightArm.rotateAngleZ = 0.0F;
             super.bipedLeftArm.rotateAngleZ = 0.0F;
             super.bipedRightArm.rotateAngleY = -0.1F + super.bipedHead.rotateAngleY;
             super.bipedLeftArm.rotateAngleY = 0.1F + super.bipedHead.rotateAngleY + 0.4F;
             super.bipedRightArm.rotateAngleX = -1.5707964F + super.bipedHead.rotateAngleX;
             super.bipedLeftArm.rotateAngleX = -1.5707964F + super.bipedHead.rotateAngleX;
             bipedRightArm9 = super.bipedRightArm;
             bipedRightArm9.rotateAngleX -= 0.0F;
             ModelRenderer bipedLeftArm9 = super.bipedLeftArm;
             bipedLeftArm9.rotateAngleX -= 0.0F;
             ModelRenderer bipedRightArm10 = super.bipedRightArm;
             bipedRightArm10.rotateAngleZ += MathHelper.cos(par3 * 0.09F) * 0.05F + 0.05F;
             ModelRenderer bipedLeftArm10 = super.bipedLeftArm;
             bipedLeftArm10.rotateAngleZ -= MathHelper.cos(par3 * 0.09F) * 0.05F + 0.05F;
             ModelRenderer bipedRightArm11 = super.bipedRightArm;
             bipedRightArm11.rotateAngleX += MathHelper.sin(par3 * 0.067F) * 0.05F;
             ModelRenderer bipedLeftArm11 = super.bipedLeftArm;
             bipedLeftArm11.rotateAngleX -= MathHelper.sin(par3 * 0.067F) * 0.05F;
          }

       }
}
 
Сверху