VeniVidiVici
Санта Барбарис
- 327
- 15
- 198
Не могу сообразить, как отобразить модель блока на точке, куда смотрит игрок.
Пробовал сделать вот такой страшный самопал:
И сам рендер в виде отдельного метода в основном классе MyRenderer (extends TileEntitySpecialRenderer):
В итоге сообщения выводятся корректно, значит условие срабатывает, но ничего само собой не отображается. Я интуитивно понимаю, что как-то неправильно / не там / не тем методом пытаюсь отрисовать эту модель, но не могу сообразить как это делается правильно.
Примечание: методы renderModel(block) и getAutoTexture(block) содержат только GL методы и указание путей, они рабочие, используются в самом рендере этого блока (обычном). Т.е. блок отображается при установке в мире с нужной моделью корректно.
На форуме ничего не нашёл конкретно по этой теме и на этой версии.
Пробовал сделать вот такой страшный самопал:
Event Handler:
@SubscribeEvent
public void onPlayerTick(LivingUpdateEvent event)
{
if(event.entity.worldObj.isRemote)
{
EntityPlayer player;
if(event.entity instanceof EntityPlayer)
player = (EntityPlayer)event.entity;
else
return;
if(player.getHeldItem() != null && player.getHeldItem().getItem() == Item.getItemFromBlock(ModBlocks.ourblock))
{
MovingObjectPosition mop = Minecraft.getMinecraft().objectMouseOver;
if(mop.typeOfHit == MovingObjectType.BLOCK)
{
System.out.println("Вызов рендера");
MyRenderer render = new MyRenderer();
render.preRender(ModBlocks.ourblock, mop.blockX, mop.blockY + 1, mop.blockZ, (byte)0);
}
else
System.out.println("Взгляд не попадает на блок");
}
}
}
MyRender:
public void preRender(Block block, double x, double y, double z, byte r) {
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
GL11.glTranslatef(0.5F, 1.0F, 0.5F);
GL11.glScalef(1.0F, 1.0F, 1.0F);
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(90, 0.0F, -1.0F, 0.0F);
if (r > 0)
GL11.glRotatef(90*r, 0.0F, -1.0F, 0.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(getAutoTexture(block));
renderModel(block);
GL11.glPopMatrix();
}
В итоге сообщения выводятся корректно, значит условие срабатывает, но ничего само собой не отображается. Я интуитивно понимаю, что как-то неправильно / не там / не тем методом пытаюсь отрисовать эту модель, но не могу сообразить как это делается правильно.
Примечание: методы renderModel(block) и getAutoTexture(block) содержат только GL методы и указание путей, они рабочие, используются в самом рендере этого блока (обычном). Т.е. блок отображается при установке в мире с нужной моделью корректно.
На форуме ничего не нашёл конкретно по этой теме и на этой версии.