Написал код для добавления блока с моделью,но сама модель не отображается в игре,вот код подскажите пожалуйста
соре ,не знаю как написать код короче
Java:
package ru.lnti.Tinycraft.Main;
import ru.lnti.Tinycraft.blocks.Model;
import ru.lnti.Tinycraft.creativetabs.Tinycraft;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.tileentity.TileEntity;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
@Mod (modid = "zmod", name="zmod", version = "1.0")
public class main {
@Instance("zmod")
public static main instance;
public static final String MODID = "zmod";
public static final String NAME = "zmod";
public static final String VERSION = "1.0";
@SidedProxy(clientSide = "ru.lnti.Tinycraft.Main.ClientProxy", serverSide = "ru.lnti.Tinycraft.Main.CommonProxy")
public static CommonProxy proxy;
public static CreativeTabs Tinycraft = new Tinycraft(12, null);
public static Block Model;
@EventHandler //Вспомогательная аннотация
public void preInit(FMLPreInitializationEvent event) {
//Тут можно регистрировать предметы, блоки, слушатели событий, сущности
Model = new Model();
GameRegistry.registerBlock(Model, "Model");
GameRegistry.registerTileEntity(TileEntityTechne.class, "TileEntityTechne");
proxy.preInit();
}
@EventHandler
public void init(FMLInitializationEvent event) {
//Рецепты, достижения и прочее, что требует уже инициализированные предметы, блоки
proxy.init();
}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
//Для интеграции с другими модами. Например, регистрация вкладки для таумкрафта
}
}
Java:
package ru.lnti.Tinycraft.blocks;
import ru.lnti.Tinycraft.Main.TileEntityTechne;
import ru.lnti.Tinycraft.Main.main;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class Model extends Block{
public static Block Model;
public Model() {
super(Material.circuits);
setCreativeTab(CreativeTabs.tabBlock);
setHardness(0.25F);
setStepSound(soundTypeMetal);
setBlockTextureName("iron_block");
setBlockName(main.MODID + ".Model");
}
public TileEntity createNewTileEntity(World world, int metadata) {
return new TileEntityTechne();
}
public int getRenderType() {
return -1;
}
public boolean isOpaqueCube() {
return false;
}
public boolean renderAsNormalBlock() {
return false;
}
public void render() {
// TODO Auto-generated method stub
}
}
Java:
package ru.lnti.Tinycraft.Main;
import ru.lnti.Tinycraft.blocks.Model;
import net.minecraft.item.Item;
import net.minecraftforge.client.MinecraftForgeClient;
import cpw.mods.fml.client.registry.ClientRegistry;
public class ClientProxy extends CommonProxy{
public void preInit() {
super.preInit();
}
public void init() {
super.init();
//Blocks
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTechne.class, new RenderTileEntityTechne());
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(Model.Model), new RenderItemBlockTechne());
}
}
Java:
package ru.lnti.Tinycraft.Main;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import ru.lnti.Tinycraft.blocks.Model;
public class RenderTileEntityTechne extends TileEntitySpecialRenderer {
public static final Model model = new Model();
public static final ResourceLocation texture = new ResourceLocation(main.MODID, "textures/blocks/Model.png");
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) {
render((TileEntityTechne)tile, x, y, z, f);
}
private void render(TileEntityTechne tile, double x, double y, double z, float f) {
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
GL11.glTranslatef(0.5F, 1.5F, 0.5F);
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
bindTexture(texture);
model.render();
GL11.glPopMatrix();
}
}
Java:
package ru.lnti.Tinycraft.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
public class ModelModel extends ModelBase
{
//fields
ModelRenderer Shape1;
ModelRenderer Shape2;
public ModelModel()
{
textureWidth = 64;
textureHeight = 32;
Shape1 = new ModelRenderer(this, 0, 0);
Shape1.addBox(0F, 0F, 0F, 5, 5, 5);
Shape1.setRotationPoint(-3F, 19F, 0F);
Shape1.setTextureSize(64, 32);
Shape1.mirror = true;
setRotation(Shape1, 0F, 0F, 0F);
Shape2 = new ModelRenderer(this, 0, 0);
Shape2.addBox(0F, 0F, 0F, 0, 6, 5);
Shape2.setRotationPoint(0F, 13F, 0F);
Shape2.setTextureSize(64, 32);
Shape2.mirror = true;
setRotation(Shape2, 0F, 0F, 0F);
}
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
{
super.render(entity, f, f1, f2, f3, f4, f5);
setRotationAngles(f, f1, f2, f3, f4, f5, entity);
Shape1.render(f5);
Shape2.render(f5);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
{
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
}
}
Java:
package ru.lnti.Tinycraft.Main;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
public class RenderItemBlockTechne implements IItemRenderer {
@Override
public boolean handleRenderType(ItemStack is, ItemRenderType type) {
return true;
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack is, ItemRendererHelper helper) {
return true;
}
@Override
public void renderItem(ItemRenderType type, ItemStack is, Object... data) {
GL11.glPushMatrix();
GL11.glTranslatef(0.5F, 1.5F, 0.5F);
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
Minecraft.getMinecraft().renderEngine.bindTexture(RenderTileEntityTechne.texture);
RenderTileEntityTechne.model.render();
GL11.glPopMatrix();
}
}
Java:
package ru.lnti.Tinycraft.Main;
import net.minecraft.tileentity.TileEntity;
public class TileEntityTechne extends TileEntity {
public TileEntityTechne() {
}
}
Java:
package ru.lnti.Tinycraft.Main;
public class CommonProxy {
public void registerRenderers(main ins) {
}
public void preInit() {
// TODO Auto-generated method stub
}
public void init() {
// TODO Auto-generated method stub
}
}