voici ma classe principal:
package ch.gonin.guillaume.ZombieCubeFree.common;
import ch.gonin.guillaume.ZombieCubeFree.Proxy.CommonProxy;
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;
import net.minecraft.block.Block;
import net.minecraft.block.BlockGravel;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
@Mod(modid = "zombiecubefree", name = "Zombie Cube Free", version = "1.0.0")
public class main {
@Instance("zombiecubefree")
public static main instance;
public static final String MODID = "zombiecubefree";
@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
blockTutoriel = new BlockTutoriel(Material.rock).setBlockName("blockTutoriel")
.setBlockTextureName(MODID + ":block_tutoriel").setCreativeTab(CreativeTabs.tabBlock)
.setCreativeTab(ZombieCubeFreeCreativeTabs);
GameRegistry.registerBlock(blockTutoriel, "block_tutoriel");
blockTutorielTiles = new BlockTutorielTiles(Material.rock).setCreativeTab(CreativeTabs.tabBlock)
.setBlockName("tutorielTiles").setBlockTextureName(MODID + ":block_tutoriel_tiles")
.setCreativeTab(ZombieCubeFreeCreativeTabs);
GameRegistry.registerBlock(blockTutorielTiles, "block_tutoriel_tiles");
blockMetadata = new BlockMetadata().setBlockName("blockMetadata").setHardness(1.5F).setResistance(10.0F)
.setCreativeTab(CreativeTabs.tabBlock).setCreativeTab(ZombieCubeFreeCreativeTabs);
GameRegistry.registerBlock(blockMetadata, ItemblockMetadata.class, "block_metadata");
itemTutoriel = new ItemTutoriel().setUnlocalizedName("itemTutoriel")
.setTextureName(main.MODID + ":item_tutoriel").setCreativeTab(CreativeTabs.tabBlock)
.setCreativeTab(ZombieCubeFreeCreativeTabs);
GameRegistry.registerItem(itemTutoriel, "item_tutoriel");
cuisiniere = new Cuisiniere(Material.rock).setBlockName("cuisiniere").setCreativeTab(CreativeTabs.tabBlock)
.setCreativeTab(ZombieCubeFreeCreativeTabs);
GameRegistry.registerBlock(cuisiniere, "cuisiniere");
tele = new Tele(Material.rock).setBlockName("tele").setCreativeTab(CreativeTabs.tabBlock)
.setCreativeTab(ZombieCubeFreeCreativeTabs);
GameRegistry.registerBlock(tele, "tele");
itemShowInfo = new ItemShowInfo().setUnlocalizedName("itemShowInfo")
.setTextureName(main.MODID + ":item_show_info").setCreativeTab(CreativeTabs.tabBlock)
.setCreativeTab(ZombieCubeFreeCreativeTabs);
GameRegistry.registerItem(itemShowInfo, "item_show_info");
itemGaz = new ItemGaz().setUnlocalizedName("itemGaz").setTextureName(main.MODID + ":item_gaz")
.setCreativeTab(CreativeTabs.tabBlock).setCreativeTab(ZombieCubeFreeCreativeTabs);
GameRegistry.registerItem(itemGaz, "item_gaz");
}
@SidedProxy(clientSide = "ch.gonin.guillaume.ZombieCubeFree.Proxy.ClientProxy", serverSide = "ch.gonin.guillaume.ZombieCubeFree.Proxy.CommonProxy")
public static CommonProxy proxy;
@EventHandler
public void init(FMLInitializationEvent event)
{
proxy.registerRender();
GameRegistry.registerTileEntity(TileEntityBlockTutorielTiles.class, MODID + ":blockTutorielTiles");
GameRegistry.registerTileEntity(TileEntityTele.class, MODID + ":tele");
}
@EventHandler
public void postInit(FMLPostInitializationEvent event)
{
}
public static Block blockTutoriel;
public static Block blockTutorielTiles;
public static Block blockMetadata;
public static Item itemTutoriel;
public static Block cuisiniere;
public static Block tele;
public static Item itemShowInfo;
public static Item itemGaz;
public static CreativeTabs ZombieCubeFreeCreativeTabs = new ZombieCubeFreeCreativeTabs("Zombie Cube Free");
}
la classe de mon model:
| package ch.gonin.guillaume.ZombieCubeFree.client; |
| |
| import net.minecraft.client.model.ModelBase; |
| import net.minecraft.client.model.ModelRenderer; |
| import net.minecraft.entity.Entity; |
| |
| public class ModelTele extends ModelBase |
| { |
| |
| ModelRenderer Shape1; |
| ModelRenderer Shape2; |
| ModelRenderer Shape3; |
| ModelRenderer Shape4; |
| ModelRenderer Shape5; |
| ModelRenderer Shape6; |
| ModelRenderer Piece1; |
| |
| public ModelTele() |
| { |
| textureWidth = 64; |
| textureHeight = 32; |
| |
| Shape1 = new ModelRenderer(this, 3, 12); |
| Shape1.mirror = true; |
| Shape1.addBox(-6F, -1F, -1.5F, 16, 1, 4); |
| Shape1.setRotationPoint(6F, 24F, -0.5F); |
| Shape1.setTextureSize(64, 32); |
| setRotation(Shape1, 0F, 0F, 0F); |
| Shape2 = new ModelRenderer(this, 0, 0); |
| Shape2.mirror = true; |
| Shape2.addBox(-2F, -0.5F, -2F, 4, 1, 3); |
| Shape2.setRotationPoint(8F, 22.5F, 0F); |
| Shape2.setTextureSize(64, 32); |
| setRotation(Shape2, 0F, 0F, 0F); |
| Shape3 = new ModelRenderer(this, 0, 0); |
| Shape3.mirror = true; |
| Shape3.addBox(0F, 0F, 0F, 2, 3, 1); |
| Shape3.setRotationPoint(7F, 19.73333F, -1F); |
| Shape3.setTextureSize(64, 32); |
| setRotation(Shape3, 0F, 0F, 0F); |
| Shape4 = new ModelRenderer(this, 4, 21); |
| Shape4.mirror = true; |
| Shape4.addBox(0F, 0F, 0F, 18, 4, 1); |
| Shape4.setRotationPoint(-1F, 16.5F, 0F); |
| Shape4.setTextureSize(64, 32); |
| setRotation(Shape4, 0F, 0F, 0F); |
| Shape5 = new ModelRenderer(this, 4, 3); |
| Shape5.mirror = true; |
| Shape5.addBox(0F, 0F, 1F, 6, 3, 1); |
| Shape5.setRotationPoint(5F, 16.8F, -2F); |
| Shape5.setTextureSize(64, 32); |
| setRotation(Shape5, 0F, 0F, 0F); |
| Shape6 = new ModelRenderer(this, 0, 0); |
| Shape6.mirror = true; |
| Shape6.addBox(0F, 0F, 0F, 22, 8, 1); |
| Shape6.setRotationPoint(-3F, 14.5F, 1F); |
| Shape6.setTextureSize(64, 32); |
| setRotation(Shape6, 0F, 0F, 0F); |
| Piece1 = new ModelRenderer(this, "Piece1"); |
| Piece1.mirror = true; |
| Piece1.setRotationPoint(4F, 0F, -0.5F); |
| setRotation(Piece1, 0F, 0F, 0F); |
| } |
| |
| public void renderAll() |
| { |
| Shape1.render(0.0625F); |
| Shape2.render(0.0625F); |
| Shape3.render(0.0625F); |
| Shape4.render(0.0625F); |
| Shape5.render(0.0625F); |
| Shape6.render(0.0625F); |
| Piece1.render(0.0625F); |
| } |
| |
| private void setRotation(ModelRenderer model, float x, float y, float z) |
| { |
| model.rotateAngleX = x; |
| model.rotateAngleY = y; |
| model.rotateAngleZ = z; |
| } |
| |
| } |
celle de mon block:
| package ch.gonin.guillaume.ZombieCubeFree.common; |
| |
| import net.minecraft.block.Block; |
| import net.minecraft.block.material.Material; |
| import net.minecraft.entity.player.EntityPlayer; |
| import net.minecraft.tileentity.TileEntity; |
| import net.minecraft.util.ChatComponentTranslation; |
| import net.minecraft.world.World; |
| |
| public class Tele extends Block{ |
| |
| protected Tele(Material material) { |
| super(material); |
| |
| } |
| @Override |
| |
| public TileEntity createTileEntity(World world, int metadata) |
| |
| { |
| |
| return new TileEntityTele(); |
| |
| } |
| |
| @Override |
| |
| public boolean hasTileEntity(int metadata) |
| |
| { |
| |
| return true; |
| |
| } |
| |
| public boolean isOpaqueCube() |
| |
| { |
| |
| return false; |
| |
| } |
| |
| |
| |
| public boolean renderAsNormalBlock() |
| |
| { |
| |
| return false; |
| |
| } |
| |
| public int getRenderType() { |
| return -1; |
| } |
| } |
| celle de l'entité de mon block: |
| |
| * package ch.gonin.guillaume.ZombieCubeFree.common; |
| |
| import net.minecraft.tileentity.TileEntity; |
| |
| public class TileEntityTele extends TileEntity { |
| |
| } |
celle de l’entité spécial de mon block:
| package ch.gonin.guillaume.ZombieCubeFree.common; |
| |
| import org.lwjgl.opengl.GL11; |
| |
| import ch.gonin.guillaume.ZombieCubeFree.client.ModelTele; |
| import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; |
| import net.minecraft.tileentity.TileEntity; |
| import net.minecraft.util.ResourceLocation; |
| |
| public class TileEntityTeleSpecialRenderer extends TileEntitySpecialRenderer { |
| |
| @Override |
| public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float partialRenderTick) { |
| |
| this.renderTileEntityTeleAt((TileEntityTele) tile, x, y, z, partialRenderTick); |
| } |
| |
| private void renderTileEntityTeleAt(TileEntityTele tile, double x, double y, double z, float partialRenderTick) { |
| |
| ModelTele model = new ModelTele(); |
| |
| ResourceLocation texture = new ResourceLocation(main.MODID, |
| "model_tele"); |
| |
| GL11.glPushMatrix(); |
| |
| GL11.glTranslated(x + 0.5D, y + 1.5D, z + 0.5D); |
| |
| GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); |
| |
| this.bindTexture(texture); |
| |
| model.renderAll(); |
| |
| GL11.glPopMatrix(); |
| } |
| } |
et enfin mon clientProxy:
| |
| import ch.gonin.guillaume.ZombieCubeFree.common.TileEntityTele; |
| import ch.gonin.guillaume.ZombieCubeFree.common.TileEntityTeleSpecialRenderer; |
| import cpw.mods.fml.client.registry.ClientRegistry; |
| |
| public class ClientProxy extends CommonProxy { |
| |
| @Override |
| |
| public void registerRender() |
| |
| { |
| |
| System.out.println("méthode côté client"); |
| ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTele.class, new TileEntityTeleSpecialRenderer()); |
| |
| } |
| |
| } |


je sais pas de où vient le problème mais la texture ne s’affiche pas
qqn peut ?