- 63
- 1
- 5
Привет.
Сделал костыльный рендер блока который должен пропадать при выходе из креатива. В мире всё нормально работает, а в инвентаре нет. С obj, techne моделями всё нормально работает.
Сделал бы отдельный рендер как для предмета, но в 1.5.2 не нашел метода типа getItemFromBlock (может слишком плохо искал...).
А способ менять иконку методом Icon getIcon() работает некорректно. (нужно ставить блок чтобы иконка поменялась) Хотя возможно нужно юзать пакеты... Не знаю...
Главный класс думаю смысла предоставлять нет. Ничего сверхъестественного там тоже нет. Блок, Тайл зарегистрированы.
Сделал костыльный рендер блока который должен пропадать при выходе из креатива. В мире всё нормально работает, а в инвентаре нет. С obj, techne моделями всё нормально работает.
Сделал бы отдельный рендер как для предмета, но в 1.5.2 не нашел метода типа getItemFromBlock (может слишком плохо искал...).
А способ менять иконку методом Icon getIcon() работает некорректно. (нужно ставить блок чтобы иконка поменялась) Хотя возможно нужно юзать пакеты... Не знаю...
CommonProxy:
public class CommonProxy {
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
/*
*не помню почему здесь регистрировал. ну и ладно. потом уберу.
*/
public void preInit(FMLPreInitializationEvent event) {
RenderingRegistry.registerBlockHandler(renderID, new BlockHandler());
}
public void init(FMLInitializationEvent event) {
}
public void postInit(FMLPostInitializationEvent event) {
}
}
BlockHandler:
public class BlockHandler implements ISimpleBlockRenderingHandler{
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
if(block == Main.barrierBlock) {
TileEntityRenderer.instance.renderTileEntityAt(new TileBarrier(), -0.5D, -0.5D, -0.5D, 0.0F);
}
...
RenderBarrier:
public class RenderBarrier extends TileEntitySpecialRenderer {
@Override
public void renderTileEntityAt(TileEntity tileentity, double d0, double d1, double d2, float f) {
renderBarrier((TileBarrier)tileentity, d0, d1, d2, f);
}
void renderBarrier(TileBarrier tileentity, double var2, double var3, double var4, float f) {
this.bindTextureByName("/mods/cool/textures/blocks/sugarBag_front.png");
if(Minecraft.getMinecraft().thePlayer.capabilities.isCreativeMode && tileentity.worldObj != null) {
//south
GL11.glPushMatrix();
Tessellator tess = Tessellator.instance;
tess.startDrawingQuads();
tess.setColorRGBA_F(1.0f, 1.0f, 1.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 - 0.0f, 1.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 1.0f, (float)var4 - 0.0f, 1.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 1.0f, (float)var4 - 0.0f, 0.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 - 0.0f, 0.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 - 0.0f, 0.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 1.0f, (float)var4 - 0.0f, 0.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 1.0f, (float)var4 - 0.0f, 1.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 - 0.0f, 1.0f, 1.0f);
tess.draw();
GL11.glPopMatrix();
//west
GL11.glPushMatrix();
tess.startDrawingQuads();
this.bindTextureByName("/mods/cool/textures/blocks/sugarBag.png");
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 1.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 1.0f, (float)var4 + 1.0f, 1.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 1.0f, (float)var4 + 0.0f, 0.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 + 0.0f, 0.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 + 0.0f, 0.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 1.0f, (float)var4 + 0.0f, 0.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 1.0f, (float)var4 + 1.0f, 1.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 1.0f, 1.0f);
//north
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 0.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 1.0f, (float)var4 + 1.0f, 0.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 1.0f, (float)var4 + 1.0f, 1.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 1.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 1.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 1.0f, (float)var4 + 1.0f, 1.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 1.0f, (float)var4 + 1.0f, 0.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 0.0f, 1.0f);
//down
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 0.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 1.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 + 0.0f, 1.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 + 0.0f, 0.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 + 0.0f, 0.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 + 0.0f, 1.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 1.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 0.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 0.0f, 0.0f);
//east
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 0.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 1.0f, (float)var4 + 1.0f, 0.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 1.0f, (float)var4 + 0.0f, 1.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 + 0.0f, 1.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 + 0.0f, 1.0f, 1.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 1.0f, (float)var4 + 0.0f, 1.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 1.0f, (float)var4 + 1.0f, 0.0f, 0.0f);
tess.addVertexWithUV((float)var2 + 1.0f, (float)var3 + 0.0f, (float)var4 + 1.0f, 0.0f, 1.0f);
tess.draw();
GL11.glPopMatrix();
}
}
}
BlockBarrier:
public class BlockBarrier extends Block implements ITileEntityProvider{
// Icon[] icons = new Icon[2];
public BlockBarrier(int par1) {
super(par1, Material.rock);
this.setCreativeTab(Main.es_tab);
this.setHardness(1000F);
this.setResistance(1000F);
this.setUnlocalizedName("barrier");
}
public void registerIcons(IconRegister icon) {
this.blockIcon = icon.registerIcon("cool:barrier");
}
public int getRenderType(){
return CommonProxy.renderID;
}
public boolean isOpaqueCube(){
return false;
}
public boolean renderAsNormalBlock(){
return false;
}
@Override
public TileEntity createNewTileEntity(World world) {
return new TileBarrier();
}
}