Проблема с рендером предмета.

Ребят помогите,делаю мод и проблема с рендером.
Код:
package palindel.model;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
import net.minecraftforge.client.IItemRenderer.ItemRendererHelper;
import org.lwjgl.opengl.GL11;
import palindel.item.Item_palindel;

@SideOnly(Side.CLIENT)
public class render_palindel
  implements IItemRenderer
{
  private ResourceLocation texture;
  protected Model_Palindel_Sword ScytheModel;
  protected Model_Palindel_Gun GunModel;
  
  public render_palindel()
  {
    this.ScytheModel = new Model_Palindel_Sword();
    this.GunModel = new Model_Palindel_Gun();
  }
  
  public boolean handleRenderType(ItemStack item, IItemRenderer.ItemRenderType type)
  {
    switch (1.$SwitchMap$net$minecraftforge$client$IItemRenderer$ItemRenderType[type.ordinal()])
    {
    case 1: 
      return true;
    case 2: 
      return true;
    }
    return false;
  }
  
  public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType type, ItemStack item, IItemRenderer.ItemRendererHelper helper)
  {
    return false;
  }
  
  public void renderItem(IItemRenderer.ItemRenderType type, ItemStack item, Object... data)
  {
    switch (1.$SwitchMap$net$minecraftforge$client$IItemRenderer$ItemRenderType[type.ordinal()])
    {
    case 1: 
      GL11.glPushMatrix();
      if ((data[1] != null) && ((data[1] instanceof EntityPlayer)))
      {
        Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("palindel:textures/entities/model_palindel.png"));
        if (Item_palindel.get_Gambol_Shroud_State(item) == 1.0F)
        {
          GL11.glRotatef(100.0F, 1.0F, 0.0F, 0.0F);
          GL11.glRotatef(-150.0F, 0.0F, 1.0F, 0.0F);
          GL11.glRotatef(-95.0F, 0.0F, 0.0F, 1.0F);
          GL11.glTranslatef(0.1F, -0.7F, 0.15F);
          this.GunModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
        }
        else
        {
          GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
          GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F);
          GL11.glRotatef(-90.0F, 0.0F, 0.0F, 1.0F);
          GL11.glTranslatef(-0.0F, 0.1F, -0.75F);
          this.ScytheModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
        }
      }
      else
      {
        Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("palindel:textures/entities/model_palindel.png"));
        
        GL11.glRotatef(100.0F, 1.0F, 0.0F, 0.0F);
        GL11.glRotatef(-20.0F, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(-70.0F, 0.0F, 0.0F, 1.0F);
        GL11.glTranslatef(0.1F, 0.4F, -0.5F);
        this.ScytheModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
      }
      GL11.glPopMatrix();
      




      break;
    case 2: 
      GL11.glPushMatrix();
      if ((data[1] != null) && ((data[1] instanceof EntityPlayer)))
      {
        Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("palindel:textures/entities/model_palindel.png"));
        if (Item_palindel.get_Gambol_Shroud_State(item) == 1.0F)
        {
          GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
          GL11.glRotatef(-130.0F, 0.0F, 1.0F, 0.0F);
          GL11.glRotatef(-70.0F, 0.0F, 0.0F, 1.0F);
          GL11.glTranslatef(-0.1F, -0.5F, -0.1F);
          this.GunModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
        }
        else
        {
          GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
          GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F);
          GL11.glRotatef(-90.0F, 0.0F, 0.0F, 1.0F);
          GL11.glTranslatef(-0.0F, 0.0F, -0.75F);
          this.ScytheModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
        }
        GL11.glPopMatrix();
      }
      break;
    }
  }
}
Подскажите что делать.
 
Biter7789 написал(а):
Ребят помогите,делаю мод и проблема с рендером.
Подскажите что делать.
Опиши поподробнее, что делает твой код. Сам писал?
 
TaoGunner написал(а):
Biter7789 написал(а):
Ребят помогите,делаю мод и проблема с рендером.
Подскажите что делать.
Опиши поподробнее, что делает твой код. Сам писал?
Код даёт 2 рендера предмету в разных режимах.И я не пойму в чём ошибка.
[merge_posts_bbcode]Добавлено: 20.09.2015 10:43:03[/merge_posts_bbcode]

Agravaine написал(а):
TaoGunner написал(а):
Опиши поподробнее, что делает твой код. Сам писал?
Даааа, сам:
Код:
switch (1.$SwitchMap$net$minecraftforge$client$IItemRenderer$ItemRenderType[type.ordinal()])
Код для рендера мне друг дал,но проблема в том что у него то код работает,а у меня нет.
 
Develance написал(а):
Biter7789 написал(а):
Код для рендера мне друг дал,но проблема в том что у него то код работает,а у меня нет.
В прокси есть регистрация?
Есть
Client
proxy
Код:
package palindel;

import net.minecraftforge.client.MinecraftForgeClient;
import palindel.model.render_palindel;

public class ClientProxyrwby
  extends CommonProxyrwby
{
  public void registerRenderThings()
  {
    MinecraftForgeClient.registerItemRenderer(palindel_core.palindel, new render_palindel());
  }
}
Commonproxy
Код:
package palindel;

public class CommonProxyrwby
{
  public void registerRenderThings() {}
}
Проблема в двух строчках,без которых не будет рендерется предмет
Код:
 switch (1.$SwitchMap$net$minecraftforge$client$IItemRenderer$ItemRenderType[type.ordinal()])

//**и другая**//

switch (1.$SwitchMap$net$minecraftforge$client$IItemRenderer$ItemRenderType[type.ordinal()])
 
Дак и зачем оно тебе?Я бы поступил проще, сейчас тест сделаю и выложу сюда решение.
 
Вот мое говнокодище.
Код:
package ru.develance.client.renders;

import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;

import org.lwjgl.opengl.GL11;

import ru.develance.common.utility.InvUtil;

public class Renderer3DGun implements IItemRenderer{

    private static ResourceLocation tex = new ResourceLocation("gtasa", "obj/ak_47/m4.png");
    private IModelCustom model = AdvancedModelLoader.loadModel("/assets/inventory/textures/m4.obj");

    public boolean handleRenderType(ItemStack is, ItemRenderType type) {
        switch (type) {
        case ENTITY:
            return true;
        case EQUIPPED:
            return true;
        case EQUIPPED_FIRST_PERSON:
            return true;
        default:
            return false;
        }
    }

    @Override
    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,
            ItemRendererHelper helper) {
        return true;
    }

    @Override
    public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
        switch (type) {
        case EQUIPPED_FIRST_PERSON: {
            if(Minecraft.getMinecraft().thePlayer.capabilities.isCreativeMode == true){
                GL11.glPushMatrix();
                GL11.glTranslatef(-0.9F, 1.35F, 0.8F);
                GL11.glRotatef(0.0F, 0.0F, 0.0F, 1.0F);
                GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F);
                GL11.glRotatef(0.0F, 1.0F, 0.0F, 0.0F);
                GL11.glScaled(2D, 2D, 2.5D);
                Minecraft.getMinecraft().renderEngine.bindTexture(tex);
                model.renderAll();
                GL11.glPopMatrix();
            }else{
                GL11.glPushMatrix();
                GL11.glTranslatef(-0.9F, 1.35F, 0.8F);
                GL11.glRotatef(0.0F, 0.0F, 0.0F, 1.0F);
                GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F);
                GL11.glRotatef(0.0F, 1.0F, 0.0F, 0.0F);
                GL11.glScaled(5D, 2D, 2.5D);
                Minecraft.getMinecraft().renderEngine.bindTexture(tex);
                model.renderAll();
                GL11.glPopMatrix();
            }
        }
        default:
            break;
        }
    }

}
 
Замени первый "model.renderAll();" на:
Код:
this.GunModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
И замени второй "model.renderAll();" на:
Код:
this.ScytheModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
Ну как-то так.
 
timaxa007 написал(а):
Замени первый "model.renderAll();" на:
Код:
this.GunModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
И замени второй "model.renderAll();" на:
Код:
this.ScytheModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
Ну как-то так.
У меня свои тараканы в голове. :s
[merge_posts_bbcode]Добавлено: 20.09.2015 13:30:44[/merge_posts_bbcode]

Biter7789 написал(а):
Это ты на obj делал,а на techne модель как,там же различаются.
Так сложно заменить techne на обж?
 
Develance, я знаю. Я этот код взял из его первого поста.
 
timaxa007 написал(а):
Develance, я знаю. Я этот код взял из его первого поста.
Можете привести примеры с techne моделями?
[merge_posts_bbcode]Добавлено: 20.09.2015 17:38:05[/merge_posts_bbcode]

Biter7789 написал(а):
timaxa007 написал(а):
Develance, я знаю. Я этот код взял из его первого поста.
Можете привести примеры с techne моделями?
Я сделал новый код
Код:
import org.lwjgl.opengl.GL11;

public class render_palindel implements IItemRenderer{
    
    private ResourceLocation texture;
      protected Model_Palindel_Sword ScytheModel;
      protected Model_Palindel_Gun GunModel;
      public render_palindel()
      {
        this.ScytheModel = new Model_Palindel_Sword();
        this.GunModel = new Model_Palindel_Gun();
      }

    

    public boolean handleRenderType(ItemStack is, ItemRenderType type) {
        switch (type) {
        case ENTITY:
            return true;
        case EQUIPPED:
            return true;
        case EQUIPPED_FIRST_PERSON:
            return true;
        default:
            return false;
        }
    }

    @Override
    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,
            ItemRendererHelper helper) {
        return true;
    }

    @Override
    public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
        switch (type) {
        case EQUIPPED: {
            Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("palindel:textures/entities/model_palindel.png"));
            if (Item_palindel.get_Gambol_Shroud_State(item) == 1.0F)
            {
              GL11.glRotatef(100.0F, 1.0F, 0.0F, 0.0F);
              GL11.glRotatef(-150.0F, 0.0F, 1.0F, 0.0F);
              GL11.glRotatef(-95.0F, 0.0F, 0.0F, 1.0F);
              GL11.glTranslatef(0.1F, -0.7F, 0.15F);
              this.GunModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
            }
            else
            {
              GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
              GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F);
              GL11.glRotatef(-90.0F, 0.0F, 0.0F, 1.0F);
              GL11.glTranslatef(-0.0F, 0.1F, -0.75F);
              this.ScytheModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
            }
          }
          
          




          break;
        case EQUIPPED_FIRST_PERSON: 
          GL11.glPushMatrix();
          if ((data[1] != null) && ((data[1] instanceof EntityPlayer)))
          {
            Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("palindel:textures/entities/model_palindel.png"));
            if (Item_palindel.get_Gambol_Shroud_State(item) == 1.0F)
            {
              GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
              GL11.glRotatef(-130.0F, 0.0F, 1.0F, 0.0F);
              GL11.glRotatef(-70.0F, 0.0F, 0.0F, 1.0F);
              GL11.glTranslatef(-0.1F, -0.5F, -0.1F);
              this.GunModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
            }
            else
            {
              GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
              GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F);
              GL11.glRotatef(-90.0F, 0.0F, 0.0F, 1.0F);
              GL11.glTranslatef(-0.0F, 0.0F, -0.75F);
              this.ScytheModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
            }
            GL11.glPopMatrix();
          }
          break;
        }
      }
    }
предметы как обычные
 
Назад
Сверху