MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Ajouter un rendu avancé à votre bloc via TESR

    Planifier Épinglé Verrouillé Déplacé Les blocs
    1.7.x
    109 Messages 23 Publieurs 38.6k Vues 3 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • L Hors-ligne
      Le_Vrai_GG
      dernière édition par Le_Vrai_GG

      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")
      /**
       * @author Guillaume
       *
       */
      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
      {
        //fields
          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);
      		// TODO Auto-generated constructor stub
      	}
      	@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) {
      		// TODO Auto-generated method stub
      		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());
      
      	}
      
      }
      

      3320a220-a6a2-4153-a1ec-aae447f0c776-image.png

      b34519da-d37f-4e60-9d9d-81cb7e2b68de-image.png
      je sais pas de où vient le problème mais la texture ne s’affiche pas
      qqn peut ?

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par robin4002

        Salut,

        ResourceLocation texture = new ResourceLocation(main.MODID, “model_tele”);

        Devrait être :
        ResourceLocation texture = new ResourceLocation(main.MODID, "textures/blocks/model_tele");

        L 1 réponse Dernière réponse Répondre Citer 0
        • L Hors-ligne
          Le_Vrai_GG @robin4002
          dernière édition par

          @robin4002 j’ai aussi un problème de collision le premier block n’a pas de collision tandis que selui de droite a les collision sur tous le cube

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

            Ça c’est normal, le système de collision de Minecraft permet pas de faire un bloc de plus de 1x1x1.
            Si tu veux un bloc plus grand il faut faire une structure multi-bloc.

            L 1 réponse Dernière réponse Répondre Citer 0
            • L Hors-ligne
              Le_Vrai_GG @robin4002
              dernière édition par

              @robin4002 ok merci par contre le probléme de texture n’est pas régler, t’aurais une idée?

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002R Hors-ligne
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                dernière édition par

                C’est toujours rose / noir ?
                Si oui, vérifies le chemin du fichier.

                L 1 réponse Dernière réponse Répondre Citer 0
                • L Hors-ligne
                  Le_Vrai_GG @robin4002
                  dernière édition par

                  @robin4002 le chemin on mais tous ce qu’il y a seulement aprés le modid ou le Minecraft?

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002R Hors-ligne
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                    dernière édition par

                    La texture doit être dans le sourceSet src/main/resources à l’intérieur du dossier assets.tonmodid.textures.blocks et doit être nommé model_tele
                    Et je viens de remarquer qu’il y a un souci, il te manque l’extension.
                    ResourceLocation texture = new ResourceLocation(main.MODID, "textures/blocks/model_tele"); doit plutôt être :
                    ResourceLocation texture = new ResourceLocation(main.MODID, "textures/blocks/model_tele.png");

                    1 réponse Dernière réponse Répondre Citer 0
                    • HeavenH Hors-ligne
                      Heaven
                      dernière édition par

                      Ce message a été supprimé !
                      1 réponse Dernière réponse Répondre Citer 0
                      • HeavenH Hors-ligne
                        Heaven
                        dernière édition par

                        Ce message a été supprimé !
                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002R robin4002 a fait référence à ce sujet sur
                        • robin4002R robin4002 a fait référence à ce sujet sur
                        • robin4002R robin4002 a fait référence à ce sujet sur
                        • AmaA Ama a fait référence à ce sujet sur
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • 6
                        • 1 / 6
                        • Premier message
                          Dernier message
                        Design by Woryk
                        ContactMentions Légales

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB