Проблема с рендером

Версия Minecraft
1.7.10
Как бы странно не звучало я делал броню по проблеме.
У него есть только bodyLock,а если я пытаюсь сделать headLock то нифига не выходит.
Главный класс
Код:
package ru.STALKERCRAFTARMOR.Main;


import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.item.Item;


@Mod (modid = "Stalkercraftarmor", name = "Stalkercraftarmor", version = "0.1")

public class Main
{
   @Instance("Stalkercraftarmor")
   public static Main instance;    
   @SidedProxy(clientSide = "ru.STALKERCRAFTARMOR.Main.ClientProxy", serverSide = "ru.STALKERCRAFTARMOR.Main.CommonProxy")
   public static CommonProxy proxy;
   
   public static Item Kurtka;
   

@EventHandler
public void preLoad(FMLPreInitializationEvent event)
{
   Kurtka = new Kurtka(0, 1).setUnlocalizedName("kurtka").setTextureName("blocklol:texture");
   GameRegistry.registerItem(Kurtka, "kurtka");
}
}

Модель
Код:
package ru.STALKERCRAFTARMOR.Models;

import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class ModelKurtka extends ModelBiped
{
    ModelRenderer Shape1;
    ModelRenderer Shape2;
    ModelRenderer Shape3;
    ModelRenderer Shape4;
    ModelRenderer Shape5;
    ModelRenderer Shape6;
    ModelRenderer Shape7;
    
    public ModelRenderer bodyLock; 
  
  public ModelKurtka(float f)
  {
    textureWidth = 64;
    textureHeight = 32;
    
      Shape1 = new ModelRenderer(this, 32, 0);
      Shape1.addBox(0F, 0F, 0F, 8, 0, 8);
      Shape1.setRotationPoint(-4F, 0F, -4F);
      Shape1.setTextureSize(64, 32);
      Shape1.mirror = true;
      setRotation(Shape1, 0F, 0F, 0F);
      Shape2 = new ModelRenderer(this, 32, 0);
      Shape2.addBox(-4F, -8F, -4F, 8, 8, 8);
      Shape2.setRotationPoint(0F, 0F, 0F);
      Shape2.setTextureSize(64, 32);
      Shape2.mirror = true;
      setRotation(Shape2, 0F, 0F, 0F);
      Shape3 = new ModelRenderer(this, 16, 16);
      Shape3.addBox(-4F, 0F, -2F, 8, 12, 4);
      Shape3.setRotationPoint(0F, 0F, 0F);
      Shape3.setTextureSize(64, 32);
      Shape3.mirror = true;
      setRotation(Shape3, 0F, 0F, 0F);
      Shape4 = new ModelRenderer(this, 40, 16);
      Shape4.addBox(-3F, -2F, -2F, 4, 11, 4);
      Shape4.setRotationPoint(-5F, 2F, 0F);
      Shape4.setTextureSize(64, 32);
      Shape4.mirror = true;
      setRotation(Shape4, 0F, 0F, 0F);
      Shape5 = new ModelRenderer(this, 40, 16);
      Shape5.addBox(-1F, -2F, -2F, 4, 11, 4);
      Shape5.setRotationPoint(5F, 2F, 0F);
      Shape5.setTextureSize(64, 32);
      Shape5.mirror = true;
      setRotation(Shape5, 0F, 0F, 0F);
      Shape6 = new ModelRenderer(this, 0, 16);
      Shape6.addBox(-2F, 0F, -2F, 4, 12, 4);
      Shape6.setRotationPoint(-2F, 12F, 0F);
      Shape6.setTextureSize(64, 32);
      Shape6.mirror = true;
      setRotation(Shape6, 0F, 0F, 0F);
      Shape7 = new ModelRenderer(this, 0, 16);
      Shape7.addBox(-2F, 0F, -2F, 4, 12, 4);
      Shape7.setRotationPoint(2F, 12F, 0F);
      Shape7.setTextureSize(64, 32);
      Shape7.mirror = true;
      setRotation(Shape7, 0F, 0F, 0F);
      
      bodyLock = new ModelRenderer(this, 1, 1); 
      bodyLock.addBox(0F, 0F, 0F, 0, 0, 0); 
      bodyLock.setRotationPoint(0F, 0F, 0F); 

      bodyLock.addChild(Shape1);
      bodyLock.addChild(Shape2); 
      bodyLock.addChild(Shape3); 
      bodyLock.addChild(Shape4); 
      bodyLock.addChild(Shape5); 
      bodyLock.addChild(Shape6); 
      bodyLock.addChild(Shape7); 
  }
  
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { 
	  setRotationAngles(f, f1, f2, f3, f4, f5, entity); 

	  renderWithLock(bipedBody, bodyLock, f5); 


	  } 

	private void renderWithLock(ModelRenderer bipedBody, ModelRenderer lockblock, float f5) { 

	  setRotation(lockblock, bipedBody.rotateAngleX, bipedBody.rotateAngleY, bipedBody.rotateAngleZ); 

	  lockblock.setRotationPoint(bipedBody.rotationPointX, bipedBody.rotationPointY, bipedBody.rotationPointZ); 

	  lockblock.render(f5); 
	  
	  } 

	  private void setRotation(ModelRenderer model, float x, float y, float z) { 
	  model.rotateAngleX = x; 
	  model.rotateAngleY = y; 
	  model.rotateAngleZ = z; 
	  } 

	  public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { 
	  super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); 
	  }
}
Итем брони
Код:
package ru.STALKERCRAFTARMOR.Main;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import ru.STALKERCRAFTARMOR.Models.ModelKurtka; 

public class Kurtka
extends ItemArmor 
{ 
public Kurtka(int id, int armorType) 
{ 
super(ItemArmor.ArmorMaterial.DIAMOND, id, armorType); 
setCreativeTab(CreativeTabs.tabCombat); 
setMaxStackSize(1); 
} 

@SideOnly(Side.CLIENT) 
public void registerIcons(IIconRegister par1IconRegister) 
{ 
this.itemIcon = par1IconRegister.registerIcon("blocklol/textures/blocks/texture"); 
} 

public String getArmorTexture(ItemStack itemstack, Entity entity, int slot, String type) 
{ 
return "blocklol:textures/blocks/Kurtka.png"; 
} 

@SideOnly(Side.CLIENT)
@Override
public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) {
    if (armorSlot != 1) {
        return null;
    }
    if (itemStack != null && itemStack.getItem() instanceof Kurtka) {
    	ModelKurtka model = new ModelKurtka(1.0F);
        model.isSneak = entityLiving.isSneaking();
        return model;
    }
    return null;
   } 
}
 
timaxa007 написал(а):
Мне просто не понятно, что он пытается сделать. Отрендерить один шейп bodyLock, у которого размеры по нулям?

Это рендер шейпов,он делает так чтобы броня двигалась вместе с туловищем(как я понял).
 

timaxa007

Модератор
5,831
409
672
Ну как-бы да, но рендериш только один шейп. Другие вроде как должны двигаться по bodyLock, но не рендериться, на сколько я знаю. По этому на всякий случай отрендери и другие части шейпов.
 
timaxa007 написал(а):
Ну как-бы да, но рендериш только один шейп. Другие вроде как должны двигаться по bodyLock, но не рендериться, на сколько я знаю. По этому на всякий случай отрендери и другие части шейпов.
Отрендерить голову и торс получилось,но появилась "вторая броня"
Код:
package ru.STALKERCRAFTARMOR.Models;

import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class ModelKurtka extends ModelBiped
{
    ModelRenderer Shape1;
    ModelRenderer Shape2;
    ModelRenderer Shape3;
    ModelRenderer Shape4;
    ModelRenderer Shape5;
    ModelRenderer Shape6;
    ModelRenderer Shape7;
    
    public ModelRenderer bodyLock; 
    public ModelRenderer headLock; 

  public ModelKurtka(float f)
  {
    textureWidth = 64;
    textureHeight = 32;
    
      Shape1 = new ModelRenderer(this, 32, 0);
      Shape1.addBox(0F, 0F, 0F, 8, 0, 8);
      Shape1.setRotationPoint(-4F, 0F, -4F);
      Shape1.setTextureSize(64, 32);
      Shape1.mirror = true;
      setRotation(Shape1, 0F, 0F, 0F);
      Shape2 = new ModelRenderer(this, 32, 0);
      Shape2.addBox(-4F, -8F, -4F, 8, 8, 8);
      Shape2.setRotationPoint(0F, 0F, 0F);
      Shape2.setTextureSize(64, 32);
      Shape2.mirror = true;
      setRotation(Shape2, 0F, 0F, 0F);
      Shape3 = new ModelRenderer(this, 16, 16);
      Shape3.addBox(-4F, 0F, -2F, 8, 12, 4);
      Shape3.setRotationPoint(0F, 0F, 0F);
      Shape3.setTextureSize(64, 32);
      Shape3.mirror = true;
      setRotation(Shape3, 0F, 0F, 0F);
      Shape4 = new ModelRenderer(this, 40, 16);
      Shape4.addBox(-3F, -2F, -2F, 4, 11, 4);
      Shape4.setRotationPoint(-5F, 2F, 0F);
      Shape4.setTextureSize(64, 32);
      Shape4.mirror = true;
      setRotation(Shape4, 0F, 0F, 0F);
      Shape5 = new ModelRenderer(this, 40, 16);
      Shape5.addBox(-1F, -2F, -2F, 4, 11, 4);
      Shape5.setRotationPoint(5F, 2F, 0F);
      Shape5.setTextureSize(64, 32);
      Shape5.mirror = true;
      setRotation(Shape5, 0F, 0F, 0F);
      Shape6 = new ModelRenderer(this, 0, 16);
      Shape6.addBox(-2F, 0F, -2F, 4, 12, 4);
      Shape6.setRotationPoint(-2F, 12F, 0F);
      Shape6.setTextureSize(64, 32);
      Shape6.mirror = true;
      setRotation(Shape6, 0F, 0F, 0F);
      Shape7 = new ModelRenderer(this, 0, 16);
      Shape7.addBox(-2F, 0F, -2F, 4, 12, 4);
      Shape7.setRotationPoint(2F, 12F, 0F);
      Shape7.setTextureSize(64, 32);
      Shape7.mirror = true;
      setRotation(Shape7, 0F, 0F, 0F);
      
      bodyLock = new ModelRenderer(this, 1, 1); 
      bodyLock.addBox(0F, 0F, 0F, 0, 0, 0); 
      bodyLock.setRotationPoint(0F, 0F, 0F);
      
      headLock = new ModelRenderer(this, 1, 1); 
      headLock.addBox(0F, 0F, 0F, 0, 0, 0); 
      headLock.setRotationPoint(0F, 0F, 0F);

      bodyLock.addChild(Shape1);
      headLock.addChild(Shape2); 
      bodyLock.addChild(Shape3); 
      bodyLock.addChild(Shape4); 
      bodyLock.addChild(Shape5); 
      bodyLock.addChild(Shape6); 
      bodyLock.addChild(Shape7); 
  }
  
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { 
	  setRotationAngles(f, f1, f2, f3, f4, f5, entity); 

	  renderWithLock(bipedBody, bodyLock, Shape1, f5);
	  renderWithLock(bipedHead, headLock, Shape2, f5); 


	  }
 
	
	private void renderWithLock(ModelRenderer bipedBody, ModelRenderer lockblock, ModelRenderer bipedHead, float f5) { 

		  setRotation(lockblock, bipedBody.rotateAngleX, bipedBody.rotateAngleY, bipedBody.rotateAngleZ); 

		  lockblock.setRotationPoint(bipedBody.rotationPointX, bipedBody.rotationPointY, bipedBody.rotationPointZ); 

		  lockblock.render(f5); 
		  
		  setRotation(lockblock, bipedHead.rotateAngleX, bipedHead.rotateAngleY, bipedHead.rotateAngleZ); 

		  lockblock.setRotationPoint(bipedHead.rotationPointX, bipedHead.rotationPointY, bipedHead.rotationPointZ); 

		  lockblock.render(f5); 
		  
		  }

	  private void setRotation(ModelRenderer model, float x, float y, float z) { 
	  model.rotateAngleX = x; 
	  model.rotateAngleY = y; 
	  model.rotateAngleZ = z; 
	  } 

	  public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { 
	  super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); 
	  }
}
99b553fb00cf.png
 
1,976
68
220
<petuh> ЫЫыы, сталкиир, в стопиццотый раз, никаму нинужны тваи праэкты, всиравно сталкрафт лучшы </petuh>
Найди гайд от хирурга на версию 1.7.10, где-то на двадцатых страницах будет моё сообщение с разъяснениями, как добавить вращение головы, рук и ног, анимацию приседания и даже натяжения лука.
 
Сверху