Меч с моделькой

397
8
33
Здрастете.

Решил, наткнувшись на гайд, сделать пробный себе меч с моделью. Создал меч, создал модель и рендер тоже.
Только одно не получилось - все есть, а в руке и "на земле" оружия нет. Вот, приложу код свой, чтобы можно было разобраться.

Код:
package assets.gothicmod.src.items.weapons;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import assets.gothicmod.src.gothicmod;
import assets.gothicmod.src.lists.ItemList;
import assets.gothicmod.src.proxy.ClientProxy;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;

public class ItemTestSword extends ItemSword {

    public ItemTestSword(int par1) {
        
        super(par1, ItemList.TESTMATERIAL);

        maxStackSize = 1;
        setUnlocalizedName("ItemTestSword");
        setCreativeTab(gothicmod.gothicTab);
        
    }
    
    @Override
    public void registerIcons(IconRegister par1IconRegister) {
        
        this.itemIcon = par1IconRegister.registerIcon("gothicmod:weapon_dagger");
        
    }
    
}

Код:
package assets.gothicmod.src.items.weapons;

import java.util.ArrayList;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class Sword_02 extends ModelBiped {

    ModelRenderer Shape1;
    ModelRenderer Shape2;
    ModelRenderer Shape3;
    ModelRenderer Shape4;
    ModelRenderer Shape5;

  public Sword_02() {
      
    textureWidth = 64;
    textureHeight = 32;
    
      Shape1 = new ModelRenderer(this, 0, 0);
      Shape1.addBox(0F, 0F, -1F, 1, 25, 3);
      Shape1.setRotationPoint(0F, -9F, 0F);
      Shape1.setTextureSize(64, 32);
      Shape1.mirror = true;
      setRotation(Shape1, 0F, 0F, 0F);
      Shape2 = new ModelRenderer(this, 0, 0);
      Shape2.addBox(0F, 0F, 0F, 1, 2, 1);
      Shape2.setRotationPoint(0F, -10F, 0F);
      Shape2.setTextureSize(64, 32);
      Shape2.mirror = true;
      setRotation(Shape2, 0F, 0F, 0F);
      Shape3 = new ModelRenderer(this, 0, 0);
      Shape3.addBox(0F, 0F, 0F, 1, 1, 7);
      Shape3.setRotationPoint(0F, 15F, -3F);
      Shape3.setTextureSize(64, 32);
      Shape3.mirror = true;
      setRotation(Shape3, 0F, 0F, 0F);
      Shape4 = new ModelRenderer(this, 0, 0);
      Shape4.addBox(0F, 0F, 0F, 1, 7, 1);
      Shape4.setRotationPoint(0F, 16F, 0F);
      Shape4.setTextureSize(64, 32);
      Shape4.mirror = true;
      setRotation(Shape4, 0F, 0F, 0F);
      Shape5 = new ModelRenderer(this, 0, 0);
      Shape5.addBox(0F, 0F, 0F, 1, 1, 1);
      Shape5.setRotationPoint(0F, 23F, 0F);
      Shape5.setTextureSize(64, 32);
      Shape5.mirror = true;
      setRotation(Shape5, 0F, 0F, 0F);
  }
  
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
  {
    super.render(entity, f, f1, f2, f3, f4, f5);
    setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    Shape1.render(f5);
    Shape2.render(f5);
    Shape3.render(f5);
    Shape4.render(f5);
    Shape5.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);
  }

  public void renderAll() {}

}

Код:
package assets.gothicmod.src.items.weapons;

import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;

public class RenderSword_01 implements IItemRenderer {

    public static Sword_02 model;
    
    Minecraft mc = Minecraft.getMinecraft();
    
    public RenderSword_01(){
        
        model = new Sword_02();
    
    }
    
    @Override 
    public boolean handleRenderType(ItemStack is,ItemRenderType type) {
        
        if (type == type.INVENTORY) { 
            
            return false;
            
        } else { 
            
            return true;
        }
        
    }
        
    @Override
    public boolean shouldUseRenderHelper(ItemRenderType type,ItemStack is,ItemRendererHelper helper){
        
        return true;
        
    }
    
    @Override
    public void renderItem(ItemRenderType type, ItemStack is, Object... data) {
        
        GL11.glPushMatrix();
        
        if(type == type.EQUIPPED_FIRST_PERSON) {
            
        GL11.glTranslatef(0.0F, 0.0F, 0.0F); //Тут вы указываете перемещение по осям X, Y, Z
        GL11.glRotatef(0F, 0, 0, 1); //Тут вы указываете поворот по оси Z
        GL11.glRotatef(0F, 0, 1, 0);  //Тут вы указываете поворот по оси Y
        GL11.glRotatef(0F, 1, 0, 0);  //Тут вы указываете поворот по оси X
        GL11.glScaled(1.2D, 2.4D, 1.2D);
        
        } else if (type == type.INVENTORY) {
            
            GL11.glScaled(1.0D, 1.0D, 1.0D);
        
        } else {
            
            double sne = 1.0D;
            GL11.glTranslatef(0.0F, 0.0F, 0.0F);
            GL11.glRotatef(1F, 0, 0, 1);
            GL11.glRotatef(1F, 0, 1, 0);
            GL11.glRotatef(1F, 1, 0, 0);
            GL11.glScaled(sne, sne, sne);  
        
        }

        Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("gothicmod/textures/blocks/dark_block.png"));
        this.model.renderAll();
        GL11.glPopMatrix();
        
    }
    
}

А так же в постИните записано энто:
MinecraftForgeClient.registerItemRenderer(ItemList.ItemTestSword.itemID, (IItemRenderer) new RenderSword_01());

Где я ошибся?

П.С. 1.6.4
 
Код:
public void renderAll() {}
Он пустой.
[merge_posts_bbcode]Добавлено: 04.04.2015 18:48:09[/merge_posts_bbcode]

Примерно так должно:
Код:
public void renderAll() {
    Shape1.render(0.0625F);
    Shape2.render(0.0625F);
    Shape3.render(0.0625F);
    Shape4.render(0.0625F);
    Shape5.render(0.0625F);
}

[merge_posts_bbcode]Добавлено: 04.04.2015 18:51:12[/merge_posts_bbcode]

И место:
Код:
ModelBiped
Надо:
Код:
ModelBase
 
Назад
Сверху