Добавление модели блоку в 1.7.10

25
0
Всем привет! На этот раз пытаюсь добавить Techne модель в Minecraft. Делаю по туториалу anti344 на YouTube. Но, меня постигает неудача - моя версия 1.7.10 а у него 1.5.2.
Block3DCrate
Код:
package com.afox.block3d;
 
import com.afox.ModCore;
import com.afox.init.ModBlocks;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
 
public class Block3DCrate extends Block
{
    public Block3DCrate()
    {
        super(Material.wood);
        this.setCreativeTab(ModCore.blocks);
        this.setHardness(1.0F);
        this.setResistance(3.0F);    
    }
    
    public int getRenderType()
    {
        return ModBlocks.renderModelCrateID;
    }
    
    public boolean isOraqueCube()
    {
        return false;
    }
    
    public boolean renderAsNormalBlock()
    {
        return false;
    }
    
    public TileEntity CreateNewTileEntity(World world)
    {
        return new TileEntityCrateModel();
    }

    @SideOnly(Side.CLIENT)
    public IIcon getIcon(int ir, int ir1)
    {
        return ir == 1 ? this.blockIcon : (ir == 0 ? Blocks.dirt.getBlockTextureFromSide(ir) : this.blockIcon);
    }
}


Crate3DHandler
Код:
package com.afox.block3d;

import com.afox.init.ModBlocks;

import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.world.IBlockAccess;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;

public class Crate3DHandler implements ISimpleBlockRenderingHandler
{

    @Override
    public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer)
    {
                        if(block == ModBlocks.crate);
                        TileEntityRenderer.instance.renderTileEntityAt(new TileEntityCrateModel(), -0.5D, -0.5D, -0.5D, 0F); //на TileEntityRenderer
    }

    @Override
    public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer)
    {
        return false;
    }

    @Override
    public boolean shouldRender3DInInventory(int modelId)
    {
        return false;
    }

    @Override
    public int getRenderId()
    {
        return 0;
    }

}

RenderCrateModel
Код:
package com.afox.block3d;

import org.lwjgl.opengl.GL11;

import com.afox.ModInfo;

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

public class RenderCrateModel extends TileEntitySpecialRenderer
{
    private static CrateModel model;
    
    public RenderCrateModel()
    {
        model = new CrateModel();
    }

    @Override
    public void renderTileEntityAt(TileEntity tileEntity, double d1, double d2, double d3, float f)
    {
        this.renderTileEntityAt((TileEntityCrateModel)tileEntity, d1, d2, d3, f);
    }
    
    public void renderTileEntity(TileEntityCrateModel tileEntity, double d1, double d2, double d3, float f)
    {
        GL11.glPopMatrix();
        GL11.glTranslatef((float)d1 + 0.5F, (float)d2 + 1.5F, (float)d3 + 0.5F);
        GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
        this.bindTextureByName("assets/afox/textures/models/Crate.png"); //на bindTextureByName
        this.model.render();
        GL11.glPopMatrix();
    }
}


CrateModel
Код:
//там модель

public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5)
{
 super.setRotationAngles(f, f1, f2, f3, f4, f5); //на setRotationAngles
}

public void render()
{
    Crate.render(0.0625F);
}

}

Можно еще какой нибуть тутор про добавление  течне-модели блоку 1.7.10?
 
А как сделать так чтоб например течне блок был, скажем размерами 3х1 блок? Мне кажется что поле добавления стола (у меня он 3х1) токо середина будет непроходимая, а 2 "блока" по сторонам можно будет пройти. Как это сделать?
 
Палатка? Я тоже ходел сделать,чтобы высота была 3,а центр проходим
 
А. Вшатал. setBlockBounds(0,0,0,3,1,3)
[merge_posts_bbcode]Добавлено: 24.02.2015 21:55:38[/merge_posts_bbcode]

Dragon2488 написал(а):
Палатку лучше делать в виде энтити
Ок,спасибо за помощь. Не мог бы объяснить как сделать в некоторых местах непроходимую(трудно описать)
 
Код:
public class Block3DCrate extends BlockContainer
{

    public Block3DCrate(Material mat)
    {
        super(mat);
        this.setCreativeTab(ModCore.blocks);
        this.setHardness(1.0F);
        this.setResistance(3.0F);
        //сюда?
    }
 
По-моему ты не учил джавы и не знаешь,что такое конструктор. Да,туды
 
Все спасибо. И еще, почему блок темный? И да, текстура нормальная.
 
Вот так:
d2105e1189b1.jpg
 
Назад
Сверху