Краш при попытке 3Д рендера предмета.

Версия Minecraft
1.7.10
27
1
2
Добрый день, пытаюсь настроить рендер предмета при виде от 1-го лица, однако, каждый раз, когда предмет берется в руки, происходит краш.

Класс предмета:

Класс предмета:
public class RuneFireBolt extends Item {

    

        private static final String name = "Rune_Fire_Bolt";

    

        public RuneFireBolt() {

            this.setUnlocalizedName(name);

            this.setFull3D();

            setTextureName(GothicMain.MODID + ":" + "rune_fire_bolt");

            GameRegistry.registerItem(this, name);

            this.setCreativeTab(CreativeTabs.tabCombat);

        }

}

Класс рендера:

Класс рендера:
public class RuneItemRenderer implements IItemRenderer {
 
    protected RuneModel model;
 
    public final ResourceLocation texture = new ResourceLocation(GothicMain.MODID, "textures/items/runes/rune.png");

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

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

    @Override
    public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
        switch (type) {
        case EQUIPPED:
        case EQUIPPED_FIRST_PERSON:
            GL11.glPushMatrix();
            Minecraft.getMinecraft().renderEngine.bindTexture(texture);
         
            GL11.glRotatef(180.0F, 1.0F, 1.0F, 1.0F);
            GL11.glTranslatef(-0.6F, 0.5F, 0.0F);
            //GL11.glScalef(x, y, z);
         
            Entity ent = (Entity) data[1];
         
            model.render(ent, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
         
            GL11.glPopMatrix();
        default:
            break;
        }
    }

}
Про инициализацию я не забыл:

public static RuneFireBolt runeFireBolt;

Java:
public static void load(FMLPreInitializationEvent e) {
        runeFireBolt = new ItemFireMagic.RuneFireBolt();
    }

И на стороне клиента.

Java:
MinecraftForgeClient.registerItemRenderer(GItems.runeFireBolt, new RuneItemRenderer());

В логах указывается на ошибку в методе model.render (37-ая в классе рендера).

Вот мой класс модели, если нужен, но там ошибок явно нет:

Класс модели:
public class RuneModel extends ModelBase {
    ModelRenderer base;
    ModelRenderer top1;
    ModelRenderer top2;
    ModelRenderer bot1;
    ModelRenderer bot2;

    public RuneModel() {
        textureWidth = 64;
        textureHeight = 32;
 
      base = new ModelRenderer(this, 20, 0);
      base.addBox(-6F, -16F, -5F, 12, 16, 10);
      base.setRotationPoint(0F, 0F, 0F);
      base.setTextureSize(64, 32);
      base.mirror = true;
      setRotation(base, 0F, 0F, 0F);
      top1 = new ModelRenderer(this, 0, 23);
      top1.addBox(-4.5F, -17F, -4F, 9, 1, 8);
      top1.setRotationPoint(0F, 0F, 0F);
      top1.setTextureSize(64, 32);
      top1.mirror = true;
      setRotation(top1, 0F, 0F, 0F);
      top2 = new ModelRenderer(this, 5, 26);
      top2.addBox(-3F, -18F, -2.5F, 6, 1, 5);
      top2.setRotationPoint(0F, 0F, 0F);
      top2.setTextureSize(64, 32);
      top2.mirror = true;
      setRotation(top2, 0F, 0F, 0F);
      bot1 = new ModelRenderer(this, 0, 23);
      bot1.addBox(-4.5F, -1F, -4F, 9, 1, 8);
      bot1.setRotationPoint(0F, 0F, 0F);
      bot1.setTextureSize(64, 32);
      bot1.mirror = true;
      setRotation(bot1, 3.141593F, 0F, 0F);
      bot2 = new ModelRenderer(this, 5, 26);
      bot2.addBox(-3F, -2F, -2.5F, 6, 1, 5);
      bot2.setRotationPoint(0F, 0F, 0F);
      bot2.setTextureSize(64, 32);
      bot2.mirror = true;
      setRotation(bot2, 3.141593F, 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);
    base.render(f5);
    top1.render(f5);
    top2.render(f5);
    bot1.render(f5);
    bot2.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);
  }

}
 

Вложения

  • crash-2020-07-15_17.58.50-client.txt
    6.3 KB · Просмотры: 4
Последнее редактирование:

GoogleTan

Картошка :3
1,354
43
310
model - null. Ты где устанавливаешь ей значение(прости может я слепая, но я не вижу)? Просто поставь protected RuneModel model = new RuneModel();
 
Последнее редактирование:
Сверху