Пропадает рендер

Версия Minecraft
1.6x-1.7x
Суть вопроса в том что когда поставил свой блок с obj моделью, рендер блока не пропадает а когда повернусь любую сторону рендер блока пропадает, потом если повернусь в сторону блока рендер возобнавляется.
Задача: Сделать чтобы рендер не пропадал даже когда повернусь будто первое или третие лицо
Что нужно сделать чтобы дроп не прыгал(подскакивал)
 
timaxa007 написал(а):
Наверное у тебя размер модели больше одного блока.

Сам код

public class BlockMi24Dead extends BlockContainer
{
    public BlockMi24Dead(int par1, Material par2Material)
    {
        super(par1, Material.cloth);
        this.setHardness(4.0F);
        this.setUnlocalizedName("BlockMi24Dead");
        this.setCreativeTab(StalcraftMod.tabSDecorBlock);
        this.setLightValue(0.0F);
        this.setLightOpacity(0);
    }

    /**
     * Called when the block is placed in the world.
     */
    public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack)
    {
        int dir = MathHelper.floor_double((double)(entity.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
        world.setBlockMetadataWithNotify(x, y, z, dir, 0);
    }

    /**
     * Returns a new instance of a block's tile entity class. Called on placing the block.
     */
    public TileEntity createNewTileEntity(World world)
    {
        return new EntityBlockMi24Dead();
    }

    @SideOnly(Side.CLIENT)

    /**
     * The type of render function that is called for this block
     */
    public int getRenderType()
    {
        return -1;
    }

    @SideOnly(Side.CLIENT)

    /**
     * Is this block (a) opaque and (b) a full 1m cube?  This determines whether or not to render the shared face of two
     * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
     */
    public boolean isOpaqueCube()
    {
        return false;
    }

    @SideOnly(Side.CLIENT)

    /**
     * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
     */
    public boolean renderAsNormalBlock()
    {
        return false;
    }

    @SideOnly(Side.CLIENT)

    /**
     * When this method is called, your block should register all the icons it needs with the given IconRegister. This
     * is the only chance you get to register icons.
     */
    public void registerIcons(IconRegister par1IconRegister)
    {
        this.blockIcon = par1IconRegister.registerIcon("obsidian");
    }
}


Но вот в чём проблема у меня Entity то пустой для блока
public class EntityBlockMi24Dead extends TileEntity {

}
 

timaxa007

Модератор
5,831
409
672
-_-
1. И что блок, это-же не модель.
2. Ну и что твой TileEntity пустой.
Учитывая названия, это вертолёт, значит он возможно больше одного блока, значит нужно границы рендера увеличить для модели.
 
8d272a95c3bft.jpg

404b4301a775t.jpg



Блок 1 на 1


timaxa007 написал(а):
-_-
1. И что блок, это-же не модель.
2. Ну и что твой TileEntity пустой.
Учитывая названия, это вертолёт, значит он возможно больше одного блока, значит нужно границы рендера увеличить для модели.

как ?

в самом рендере

package ru.stalmine.GLLoader.render;

import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;

import org.lwjgl.opengl.GL11;

import ru.stalmine.blocks.modelsblocks.EntityBlockMi24Dead;
import ru.stalmine.until.GLModel;

public class BlockMi24Dead_r extends TileEntitySpecialRenderer
{
    private static GLModel ModelHeliCrash;

    public BlockMi24Dead_r()
    {
    ModelHeliCrash = new GLModel("/assets/stalmine/obj/mi24dead.obj");
    }

    public void renderTileEntityAt(TileEntity tileEntity, double d1, double d2, double d3, float f)
    {
        this.renderTileEntity((EntityBlockMi24Dead)tileEntity, d1, d2, d3, f);
    }

    public void renderTileEntity(EntityBlockMi24Dead tileEntity, double d1, double d2, double d3, float f)
    {
        short rotation = 180;

        if (tileEntity != null && tileEntity.worldObj != null)
        {
            int md = tileEntity.worldObj.getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);

            if (md == 0)
            {
                rotation = 90;
            }

            if (md == 1)
            {
                rotation = 0;
            }

            if (md == 2)
            {
                rotation = 270;
            }
        }

        GL11.glPushMatrix();
        GL11.glShadeModel(GL11.GL_SMOOTH);
        GL11.glTranslatef((float)d1 + 0.5F, (float)d2 + 1.5F, (float)d3 + 0.5F);
        GL11.glTranslatef(0.0F, -1.5F, 0.0F);
        GL11.glRotatef((float)(rotation + 180), 0.0F, 1.0F, 0.0F);
        GL11.glScalef(0.9F, 1.0F, 0.9F);
        ModelHeliCrash.render();
        GL11.glPopMatrix();
    }
}
 

timaxa007

Модератор
5,831
409
672
Что-то типа этого:
Код:
public class EntityBlockMi24Dead extends TileEntity {

@SideOnly(Side.CLIENT)
@Override
public AxisAlignedBB getRenderBoundingBox() {
return AxisAlignedBB.getBoundingBox(xCoord - 3, yCoord - 2, zCoord - 3, xCoord + 4, yCoord + 6, zCoord + 4);
}

}
 
timaxa007 написал(а):
Что-то типа того.
Код:
public class EntityBlockMi24Dead extends TileEntity {

@SideOnly(Side.CLIENT)
@Override
public AxisAlignedBB getRenderBoundingBox() {
return AxisAlignedBB.getBoundingBox(xCoord - 3, yCoord = 2, zCoord -3, xCoord + 4, yCoord + 6, zCoord + 4);
}

}

Сейчас попробую.
 

timaxa007

Модератор
5,831
409
672
1.7.10
Код:
AxisAlignedBB.getBoundingBox(xCoord - 3, yCoord - 2, zCoord - 3, xCoord + 4, yCoord + 6, zCoord + 4);
---
1.6.4
Код:
AxisAlignedBB.getAABBPool().getAABB(xCoord - 3, yCoord - 2, zCoord - 3, xCoord + 4, yCoord + 6, zCoord + 4);
 
timaxa007 написал(а):
Что-то типа этого:
Код:
public class EntityBlockMi24Dead extends TileEntity {

@SideOnly(Side.CLIENT)
@Override
public AxisAlignedBB getRenderBoundingBox() {
return AxisAlignedBB.getBoundingBox(xCoord - 3, yCoord = 2, zCoord -3, xCoord + 4, yCoord + 6, zCoord + 4);
}

}

Работает на вуаля, только по оси (y) хотелось бы чтобы не влияла высота а то ставлю на высоте 2 сама модель :)


Я просто в оси Y не чего не писал просто yCoord оставил теперь высота не влияет


Я просто в оси Y не чего не писал просто yCoord оставил теперь высота не влияет


У меня два метода работают что для 1.6.4 и для 1.7.10
 
Сверху