Хелп rendering item

Сообщения
30
Лучшие ответы
0
Реакции
2
У нас тут проблема в моде Erebus (1.7.10) если жезлом консервации кликнуть об моба то он закатываеться в стекло в котором если креативщик нажмет колесиком мыши по стеклу его крашнет и до чистки инвентаря он не сможет зайти на сервер может кто помочь решить проблему ?
 
Сообщения
279
Лучшие ответы
7
Реакции
62
Сейчас скажу, только настрою свои телепатические лучи.
049e862c247b74d221ae0d418f5556f2.jpg

P.S. расскажи поподробней, скинь метод в котором ошибка, расскажи зачем вообще игрок нажимает колёсиком по консервированному мобу.
 
Сообщения
30
Лучшие ответы
0
Реакции
2
креативщик хочет взять (дублировать блок) тем самым улетает далеко далеко
 
Сообщения
279
Лучшие ответы
7
Реакции
62
Нужен код метода erebus.client.render.item.PreservedBlockitemRenderer.render
 
Сообщения
30
Лучшие ответы
0
Реакции
2
Java:
package erebus.client.render.item;

import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import erebus.ModBlocks;
import erebus.client.render.block.BlockRenderHelper;
import erebus.client.render.tileentity.TileEntityPreservedBlockRenderer;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
import net.minecraftforge.client.IItemRenderer.ItemRendererHelper;
import org.lwjgl.opengl.GL11;

@SideOnly(Side.CLIENT)
public class PreservedBlockitemRenderer implements IItemRenderer {

   public boolean handleRenderType(ItemStack item, ItemRenderType type) {
      return type != ItemRenderType.FIRST_PERSON_MAP;
   }

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

   public void renderItem(ItemRenderType type, ItemStack stack, Object ... data) {
      Object renderer = data[0];
      if(renderer instanceof RenderBlocks) {
         switch(null.$SwitchMap$net$minecraftforge$client$IItemRenderer$ItemRenderType[type.ordinal()]) {
         case 1:
            this.render(stack, -0.5F, -0.5F, -0.5F, (RenderBlocks)renderer);
            break;
         case 2:
            this.render(stack, 0.0F, 0.0F, 0.0F, (RenderBlocks)renderer);
            break;
         case 3:
            this.render(stack, 0.0F, 0.0F, 0.0F, (RenderBlocks)renderer);
            break;
         case 4:
            this.render(stack, -0.5F, -0.5F, -0.5F, (RenderBlocks)renderer);
         }
      }

   }

   private void render(ItemStack stack, float x, float y, float z, RenderBlocks renderer) {
      if(stack.hasTagCompound()) {
         GL11.glPushMatrix();
         Entity wasBlendOn = EntityList.createEntityFromNBT(stack.getTagCompound().getCompoundTag("EntityNBT"), Minecraft.getMinecraft().theWorld);
         wasBlendOn.setLocationAndAngles(0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
         TileEntityPreservedBlockRenderer.renderTrappedEntity(wasBlendOn, (double)x, (double)y, (double)z, 3);
         GL11.glEnable('\u803a');
         OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit);
         GL11.glDisable(3553);
         OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit);
         GL11.glPopMatrix();
      }

      GL11.glPushMatrix();
      GL11.glTranslatef(x, y, z);
      boolean wasBlendOn1 = GL11.glIsEnabled(3042);
      if(!wasBlendOn1) {
         GL11.glEnable(3042);
         GL11.glBlendFunc(770, 771);
      }

      FMLClientHandler.instance().getClient().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
      GL11.glTranslatef(0.5F, 0.5F, 0.5F);
      renderer.setRenderBoundsFromBlock(ModBlocks.amber);
      BlockRenderHelper.renderSimpleBlock(ModBlocks.amber, stack.getItemDamage() == 0?1:0, renderer);
      if(!wasBlendOn1) {
         GL11.glDisable(3042);
      }

      GL11.glPopMatrix();
   }
}
 
Сообщения
279
Лучшие ответы
7
Реакции
62
Подскажи какая строчка под номером 60 в полном классе.
 
Сообщения
279
Лучшие ответы
7
Реакции
62
Ну, ты же мне скинул неполный класс, правильно? Ты что-то из него убрал? Из-за этого сдвинулись номера строк. В краше написано, что проблемы на 60-ой строке кода. Вот мне и нужна 60 строка.
В коде, который ты мне скинул эта строка вотGL11.glDisable(3553);. Но из-за неё ошибок быть не может.
 
Сообщения
69
Лучшие ответы
1
Реакции
26
проблема, очевидно, не в рендере, а в том, что getPickBlock у блока создаёт предмет с некорректным нбт.
 
Сверху