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.
    • Antoine_A Hors-ligne
      Antoine_
      dernière édition par

      Arf mon modèle est petit mais à 240 parties sous techne …

      Tu pense que le problème vient de la ?

      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

        Surement oui, 240 ça fait beaucoup.

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

          Pas d’autre moyen de créer un block avec un modèle techne ?

          Car passer par un Tilentity alors que mon block n’a rien de particulier apart le modèle…

          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

            Il y a les rendus ISBRH mais ça ne passe par un modèle.

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

              Après avoir testé avec un modèle moins détaillé, le problème disparaît malheureusement ^^

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

                Il aura t’ils un tutoriels pour la 1.8 ?

                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

                  Non, pas encore.

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

                    Ok 😕

                    1 réponse Dernière réponse Répondre Citer 0
                    • Bot LennonB Hors-ligne
                      Bot Lennon
                      dernière édition par

                      Salut.
                      Tout fonctionne à peu près cependant je rencontre un problème.
                      Mon bloc tourne comme je le souhaitais dans la direction voulue mais lorsque je quitte et reviens sur ma partie solo, tous les blocs sont orientés dans le même sens. Et aussi le rendu dans l’inventaire m’affiche une case plate rose et noire. (Dernier problème réglé, j’avais oublié de modifier le return -1)

                      Classe Principale:

                      package fr.eterlia.mod.common;
                      
                      import net.minecraft.block.Block;
                      import net.minecraft.block.material.Material;
                      import net.minecraft.creativetab.CreativeTabs;
                      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 fr.eterlia.mod.proxy.CommonProxy;
                      
                      @Mod(modid = "modeterlia", name = "Eterlia", version = "2.0.0")
                      public class ModEterlia {
                      
                      @Instance("modeterlia")
                      public static ModEterlia instance;
                      
                      public static final String eterlia = "modeterlia";
                      
                      @SidedProxy(clientSide = "fr.eterlia.mod.proxy.ClientProxy", serverSide = "fr.eterlia.mod.proxy.CommonProxy")
                      public static CommonProxy proxy;
                      public static Block beton;
                      public static Block lanterne;
                      public static Block terre;
                      public static Block chaise;
                      public static Block table;
                      //public static Block tonneau;
                      
                      @EventHandler
                      public void preInit(FMLPreInitializationEvent event)
                      {
                      
                      }
                      
                      @EventHandler
                      public void init(FMLInitializationEvent event)
                      {
                      proxy.registerRender();
                      beton = new BlockEterlia(Material.rock).setBlockName("beton").setBlockTextureName("modeterlia:beton").setResistance(5.0F).setHardness(3.0F).setCreativeTab(CreativeTabs.tabBlock);
                      lanterne = new BlockEterlia(Material.glass).setLightLevel(4.0F).setBlockName("lanterne").setBlockTextureName("modeterlia:lanterne").setResistance(5.0F).setHardness(3.0F).setCreativeTab(CreativeTabs.tabBlock);
                      terre = new BlockEterlia(Material.ground).setBlockName("terre").setBlockTextureName("modeterlia:terre").setResistance(5.0F).setHardness(3.0F).setCreativeTab(CreativeTabs.tabBlock);
                      chaise = new BlockEterliaChaise(Material.wood).setBlockName("chaise").setBlockTextureName("modeterlia:chaise").setResistance(5.0F).setHardness(3.0F).setCreativeTab(CreativeTabs.tabBlock);
                      table = new BlockEterliaTable(Material.wood).setBlockName("table").setBlockTextureName("modeterlia:wood").setResistance(5.0F).setHardness(3.0F).setCreativeTab(CreativeTabs.tabBlock);
                      //tonneau = new BlockEterliaTable(Material.wood).setBlockName("tonneau").setBlockTextureName("modeterlia:wood").setResistance(5.0F).setHardness(3.0F).setCreativeTab(CreativeTabs.tabBlock);
                      
                      GameRegistry.registerBlock(beton, "beton");
                      GameRegistry.registerBlock(lanterne, "lanterne");
                      GameRegistry.registerBlock(terre, "terre");
                      GameRegistry.registerBlock(chaise, "chaise");
                      GameRegistry.registerBlock(table, "table");
                      }
                      
                      @EventHandler
                      public void postInit(FMLPostInitializationEvent event)
                      {
                      
                      }
                      }
                      
                      

                      Mon bloc:

                      
                      package fr.eterlia.mod.common;
                      
                      import net.minecraft.block.Block;
                      import net.minecraft.block.material.Material;
                      import net.minecraft.entity.EntityLivingBase;
                      import net.minecraft.item.ItemStack;
                      import net.minecraft.tileentity.TileEntity;
                      import net.minecraft.util.MathHelper;
                      import net.minecraft.world.IBlockAccess;
                      import net.minecraft.world.World;
                      import cpw.mods.fml.relauncher.Side;
                      import cpw.mods.fml.relauncher.SideOnly;
                      import fr.eterlia.mod.proxy.ClientProxy;
                      
                      public class BlockEterliaChaise extends Block {
                          public BlockEterliaChaise(Material rock) {
                              super(Material.iron);
                          }
                      
                          public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y,
                                  int z) {
                              this.setBlockBounds(0.2F, 0.0F, 0.2F, 0.8F, 1.0F, 0.8F);
                          }
                      
                          public TileEntity createTileEntity(World world, int metadata) {
                              return new TileEntityChaise();
                          }
                      
                          public boolean hasTileEntity(int metadata) {
                              return true;
                          }
                      
                          public boolean renderAsNormalBlock() {
                              return false;
                          }
                      
                          public boolean isOpaqueCube() {
                              return false;
                          }
                      
                          @SideOnly(Side.CLIENT)
                          public int getRenderType() {
                              return ClientProxy.tesrRenderId;
                          }
                      
                          // public void registerIcons(IconRegister icon) {
                          // this.blockIcon = icon.registerIcon("");
                      
                          public void onBlockPlacedBy(World world, int x, int y, int z,
                                  EntityLivingBase living, ItemStack stack) {
                              int direction = MathHelper
                                      .floor_double((double) (living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
                              TileEntity te = world.getTileEntity(x, y, z);
                              if (te != null && te instanceof TileEntityChaise) {
                                  ((TileEntityChaise) te).setDirection((byte) direction);
                                  world.markBlockForUpdate(x, y, z);
                              }
                          }
                      }
                      

                      Client proxy:

                      package fr.eterlia.mod.proxy;
                      
                      import cpw.mods.fml.client.registry.ClientRegistry;
                      import cpw.mods.fml.client.registry.RenderingRegistry;
                      import fr.eterlia.mod.common.TileEntityChaiseSpecialRenderer;
                      import fr.eterlia.mod.common.TileEntityChaise;
                      import fr.eterlia.mod.common.TileEntityTable;
                      import fr.eterlia.mod.common.TileEntityTableSpecialRenderer;
                      
                      public class ClientProxy extends CommonProxy {
                      
                      public static int tesrRenderId;
                      @Override
                      public void registerRender()
                      {
                      System.out.println("méthode côté client");
                      ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChaise.class, new TileEntityChaiseSpecialRenderer()); // RENDU CHAISE
                      ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTable.class, new TileEntityTableSpecialRenderer()); // RENDU CHAISE
                      
                         tesrRenderId = RenderingRegistry.getNextAvailableRenderId(); // RENDU CHAISE DANS LA MAIN
                             RenderingRegistry.registerBlockHandler(new TESRInventoryRenderer()); // IDEM
                      
                      }
                      
                      }
                      
                      

                      Mon modèle:

                      // Date: 06/04/2015 21:48:26
                      // Template version 1.1
                      // Java generated by Techne
                      // Keep in mind that you still need to fill in some blanks
                      // - ZeuX
                      
                      package fr.eterlia.mod.common;
                      
                      import net.minecraft.client.model.ModelBase;
                      import net.minecraft.client.model.ModelRenderer;
                      
                      public class ModelChaise extends ModelBase
                      {
                       //fields
                         ModelRenderer pied1;
                         ModelRenderer pied2;
                         ModelRenderer pied3;
                         ModelRenderer pied4;
                         ModelRenderer plateau;
                         ModelRenderer dossier;
                      
                       public ModelChaise()
                       {
                         textureWidth = 64;
                         textureHeight = 32;
                      
                           pied1 = new ModelRenderer(this, 0, 0);
                           pied1.addBox(0F, 0F, 0F, 1, 8, 1);
                           pied1.setRotationPoint(-5F, 16F, -5F);
                           pied1.setTextureSize(64, 32);
                           pied1.mirror = true;
                           setRotation(pied1, 0F, 0F, 0F);
                           pied2 = new ModelRenderer(this, 0, 0);
                           pied2.addBox(0F, 0F, 0F, 1, 8, 1);
                           pied2.setRotationPoint(4F, 16F, -5F);
                           pied2.setTextureSize(64, 32);
                           pied2.mirror = true;
                           setRotation(pied2, 0F, 0F, 0F);
                           pied3 = new ModelRenderer(this, 0, 0);
                           pied3.addBox(0F, 0F, 0F, 1, 8, 1);
                           pied3.setRotationPoint(-5F, 16F, 4F);
                           pied3.setTextureSize(64, 32);
                           pied3.mirror = true;
                           setRotation(pied3, 0F, 0F, 0F);
                           pied4 = new ModelRenderer(this, 0, 0);
                           pied4.addBox(0F, 0F, 0F, 1, 8, 1);
                           pied4.setRotationPoint(4F, 16F, 4F);
                           pied4.setTextureSize(64, 32);
                           pied4.mirror = true;
                           setRotation(pied4, 0F, 0F, 0F);
                           plateau = new ModelRenderer(this, 0, 9);
                           plateau.addBox(0F, 0F, 0F, 10, 1, 10);
                           plateau.setRotationPoint(-5F, 16F, -5F);
                           plateau.setTextureSize(64, 32);
                           plateau.mirror = true;
                           setRotation(plateau, 0F, 0F, 0F);
                           dossier = new ModelRenderer(this, 4, 0);
                           dossier.addBox(0F, 0F, -9F, 10, 8, 1);
                           dossier.setRotationPoint(-5F, 8F, 4F);
                           dossier.setTextureSize(64, 32);
                           dossier.mirror = true;
                           setRotation(dossier, 0F, 0F, 0F);
                       }
                      
                       public void renderAll()
                       {
                         pied1.render(0.0625F);
                         pied2.render(0.0625F);
                         pied3.render(0.0625F);
                         pied4.render(0.0625F);
                         plateau.render(0.0625F);
                         dossier.render(0.0625F);
                       }
                      
                       private void setRotation(ModelRenderer model, float x, float y, float z)
                       {
                         model.rotateAngleX = x;
                         model.rotateAngleY = y;
                         model.rotateAngleZ = z;
                       }
                      
                      }
                      
                      

                      Mon TileEntity:

                      
                      package fr.eterlia.mod.common;
                      
                      import net.minecraft.nbt.NBTTagCompound;
                      import net.minecraft.network.Packet;
                      import net.minecraft.tileentity.TileEntity;
                      
                      public class TileEntityChaise extends TileEntity {
                          public byte direction;
                      
                          public void readFromNBT(NBTTagCompound nbtTag) {
                              super.readFromNBT(nbtTag);
                              direction = nbtTag.getByte("direction");
                          }
                      
                          public void writeToNBT(NBTTagCompound nbtTag) {
                              super.writeToNBT(nbtTag);
                              for (int i = 0; i < 5; i++) {
                                  nbtTag.setByte("direction", direction);
                              }
                          }
                      
                          public void setDirection(byte direct) {
                              direction = direct;
                          }
                      
                          public byte getDirection() {
                              return direction;
                          }
                      }
                      
                      

                      Mon TESR:

                      /*package fr.eterlia.mod.common;
                      
                      import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
                      import net.minecraft.tileentity.TileEntity;
                      import net.minecraft.util.ResourceLocation;
                      
                      import org.lwjgl.opengl.GL11;
                      
                      public class TileEntityCampFireSpecialRenderer extends TileEntitySpecialRenderer
                      {
                      private final ModelCampFire model = new ModelCampFire();
                      public static final ResourceLocation textureLocation = new ResourceLocation("bigshell", "textures/blocks/ModelVitrine.png");
                      public TileEntityCampFireSpecialRenderer()
                      {
                      this.setTileEntityRenderer(TileEntitySpecialRenderer.instance);
                      }
                      
                      @Override
                      public void renderInventory(double x, double y, double z)
                      {
                      this.renderTileEntityVitrineAt(null, x, y, z, 0.0F);
                      }
                      
                      @Override
                      public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f)
                      {
                      this.renderTileEntityVitrineAt((TileEntityVitrine)te, x, y, z, f);
                      }
                      
                      public void renderTileEntityVitrineAt(TileEntityVitrine te, double x, double y, double z, float f)
                      {
                      GL11.glPushMatrix();
                      GL11.glTranslated(x + 0.5F, y + 1.5F, z + 0.5F);
                      this.bindTexture(textureLocation);
                      GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
                      if(te != null)
                      {
                      GL11.glRotatef(90F * te.getDirection(), 0.0F, 1.0F, 0.0F);
                      }
                      
                      this.model.render(0.0625F);
                      GL11.glPopMatrix();
                      }
                      }
                       */
                      
                      package fr.eterlia.mod.common;
                      
                      import net.minecraft.block.Block;
                      import net.minecraft.client.renderer.OpenGlHelper;
                      import net.minecraft.client.renderer.Tessellator;
                      import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
                      import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
                      import net.minecraft.entity.Entity;
                      import net.minecraft.tileentity.TileEntity;
                      import net.minecraft.util.ResourceLocation;
                      import net.minecraft.world.IBlockAccess;
                      import net.minecraft.world.World;
                      import org.lwjgl.opengl.GL11;
                      
                      public class TileEntityChaiseSpecialRenderer extends TileEntitySpecialRenderer {
                      
                          public TileEntityChaiseSpecialRenderer() {
                              this.func_147497_a(TileEntityRendererDispatcher.instance);
                          }
                      
                          public static ModelChaise model = new ModelChaise();
                      
                          public static ResourceLocation texture = new ResourceLocation("modeterlia",
                                  "textures/blocks/chaise.png");
                      
                          @Override
                          public void renderTileEntityAt(TileEntity tile, double x, double y,
                                  double z, float partialRenderTick) {
                      
                              this.renderTileEntityEterliaAt((TileEntityChaise) tile, x, y, z,
                                      partialRenderTick);
                      
                          }
                      
                          private void renderTileEntityEterliaAt(TileEntityChaise tile, double x,
                                  double y, double z, float partialRenderTick) // ma propre fonction
                          {
                              GL11.glPushMatrix(); // ouvre une matrix
                              GL11.glTranslated(x + 0.5D, y + 1.5D, z + 0.5D); // déplace le bloc sur
                                                                                  // les coordonnés et
                                                                                  // le centre
                              GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); // met droit le bloc (par défaut
                                                                      // il est à l'envers)
                              GL11.glRotatef(90F * tile.getDirection(), 0.0F, 1.0F, 0.0F); // FAIT
                                                                                              // TOURNER
                              this.bindTexture(texture); // affiche la texture
                              model.renderAll(); // rend le modèle
                              GL11.glPopMatrix(); // ferme la matrix
                          }
                      }
                      
                      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

                        TileEntityChaise.java ?
                        TESRInventoryRenderer.java ?
                        BlockEterliaChaise ?

                        1 réponse Dernière réponse Répondre Citer 0
                        • Bot LennonB Hors-ligne
                          Bot Lennon
                          dernière édition par

                          Pardon, je me suis mélangé dans mes codes, j’edit tout de suite

                          Edit: Problème du bloc dans l’inventaire réglé, j’ai réaligné les codes et mis les bons aux bons endroits

                          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 boucle for dans ta fonction writeToNBT ne sert à rien.
                            Et toujours dans ton tile entity, ajoute ces deux fonctions pour la synchronisation :

                                public Packet getDescriptionPacket()
                            
                                {
                                    NBTTagCompound nbttagcompound = new NBTTagCompound();
                                    this.writeToNBT(nbttagcompound);
                                    return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbttagcompound);
                                }
                            
                                public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt)
                                {
                                    this.readFromNBT(pkt.func_148857_g());
                                }
                            
                            1 réponse Dernière réponse Répondre Citer 0
                            • Bot LennonB Hors-ligne
                              Bot Lennon
                              dernière édition par

                              La position a l’air d’être sauvegardée cependant lorsque je pose une chaise ma fenêtre de jeu se ferme, et si je reviens la chaise est bien à sa place pourtant.

                              Voilà mes logs:

                              [22:11:06] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:393]: #@!@# Game crashed! Crash report saved to: #@!@# .\crash-reports\crash-2015-04-07_22.11.06-server.txt
                              [22:11:06] [Client thread/INFO] [FML]: Waiting for the server to terminate/save.
                              [22:11:06] [Server thread/INFO]: Saving worlds
                              [22:11:06] [Server thread/INFO]: Saving chunks for level 'ESSAI DES MODS'/Overworld
                              [22:11:06] [Server thread/ERROR] [FML]: A TileEntity type fr.eterlia.mod.common.TileEntityChaise has throw an exception trying to write state. It will not persist. Report this to the mod author
                              java.lang.RuntimeException: class fr.eterlia.mod.common.TileEntityChaise is missing a mapping! This is a bug!
                              at net.minecraft.tileentity.TileEntity.writeToNBT(TileEntity.java:96) ~[TileEntity.class:?]
                              at net.minecraft.world.chunk.storage.AnvilChunkLoader.writeChunkToNBT(AnvilChunkLoader.java:395) [AnvilChunkLoader.class:?]
                              at net.minecraft.world.chunk.storage.AnvilChunkLoader.saveChunk(AnvilChunkLoader.java:204) [AnvilChunkLoader.class:?]
                              at net.minecraft.world.gen.ChunkProviderServer.safeSaveChunk(ChunkProviderServer.java:287) [ChunkProviderServer.class:?]
                              at net.minecraft.world.gen.ChunkProviderServer.saveChunks(ChunkProviderServer.java:340) [ChunkProviderServer.class:?]
                              at net.minecraft.world.WorldServer.saveAllChunks(WorldServer.java:863) [WorldServer.class:?]
                              at net.minecraft.server.MinecraftServer.saveAllWorlds(MinecraftServer.java:370) [MinecraftServer.class:?]
                              at net.minecraft.server.MinecraftServer.stopServer(MinecraftServer.java:405) [MinecraftServer.class:?]
                              at net.minecraft.server.integrated.IntegratedServer.stopServer(IntegratedServer.java:266) [IntegratedServer.class:?]
                              at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:538) [MinecraftServer.class:?]
                              at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
                              [22:11:06] [Server thread/INFO]: Saving chunks for level 'ESSAI DES MODS'/Nether
                              [22:11:06] [Server thread/INFO]: Saving chunks for level 'ESSAI DES MODS'/The End
                              [22:11:06] [Server thread/INFO] [FML]: Unloading dimension 0
                              [22:11:06] [Server thread/INFO] [FML]: Unloading dimension -1
                              [22:11:06] [Server thread/INFO] [FML]: Unloading dimension 1
                              [22:11:06] [Server thread/INFO] [FML]: Applying holder lookups
                              [22:11:06] [Server thread/INFO] [FML]: Holder lookups applied
                              [22:11:06] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
                              [22:11:06] [Client thread/INFO] [FML]: Server terminated.
                              AL lib: (EE) alc_cleanup: 1 device not closed
                              
                              
                              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

                                Ton entité de bloc n’est pas enregistré.

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

                                  J’ai un problème mineur avec la texture de mon block, dans le log j’ai ceci:

                                  [11:35:25] [Client thread/ERROR]: Using missing texture, unable to load meubles:textures/blocks/model_block_tutoriel.png
                                  java.io.FileNotFoundException: meubles:textures/blocks/model_block_tutoriel.png
                                  at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]
                                  at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[SimpleReloadableResourceManager.class:?]
                                  at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]
                                  at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]
                                  at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]
                                  at net.minecraft.client.renderer.texture.TextureManager.onResourceManagerReload(TextureManager.java:170) [TextureManager.class:?]
                                  at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:134) [SimpleReloadableResourceManager.class:?]
                                  at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:118) [SimpleReloadableResourceManager.class:?]
                                  at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:643) [Minecraft.class:?]
                                  at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:303) [FMLClientHandler.class:?]
                                  at net.minecraft.client.Minecraft.startGame(Minecraft.java:586) [Minecraft.class:?]
                                  at net.minecraft.client.Minecraft.run(Minecraft.java:931) [Minecraft.class:?]
                                  at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
                                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
                                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
                                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
                                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
                                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
                                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
                                  at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
                                  at GradleStart.main(Unknown Source) [start/:?]
                                  

                                  En jeu la texture de mon block est bien présente sauf quand je le casse, c’est une animation du block sans texture (texture par défaut), j’ai fait une image pour mieux comprendre, à gauche mon block et sa texture et à droite le block que je détruis.

                                  J’ai essayé de comprendre pourquoi et je n’ai pas trouvé malheureusement. 😞

                                  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

                                    Car la texture utilisée pour les particules est celle du bloc, pas celle du TESR. Il faut donc ajouter une texture en plus de 16x16 pour les particules.

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

                                      Merci de ta réponse, à partir de quelle minute on voit ce passage dans ta vidéo, j’ai compris ce que tu dis mais c’est l’étape de faire le block 16x16 qui m’intéresse de voir, je fais la face avant, un côté ?

                                      J’ai fait ce tutoriel très tard donc…

                                      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

                                        Aucune idée x)
                                        Je ne connais pas par cœur tous mes tutoriels. Faire la texture pour les particules c’est exactement la même chose que faire un texture pour un bloc basique.

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

                                          Ok ^^, je vais prendre la texture de face de mon block, encore merci.

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

                                            salut j’ai un petit probleme : le carré tout moche apparait alors que le return de getRenderType est bien le bon ;

                                            la classe du block ```java
                                            package com.mathiasetampes.entreprise.common;

                                            import com.mathiasetampes.entreprise.proxy.ClientProxy;

                                            import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
                                            import cpw.mods.fml.relauncher.Side;
                                            import cpw.mods.fml.relauncher.SideOnly;
                                            import net.minecraft.block.Block;
                                            import net.minecraft.block.BlockContainer;
                                            import net.minecraft.block.material.Material;
                                            import net.minecraft.client.renderer.texture.IIconRegister;
                                            import net.minecraft.entity.EntityLivingBase;
                                            import net.minecraft.entity.item.EntityItem;
                                            import net.minecraft.entity.player.EntityPlayer;
                                            import net.minecraft.inventory.IInventory;
                                            import net.minecraft.item.ItemStack;
                                            import net.minecraft.nbt.NBTTagCompound;
                                            import net.minecraft.tileentity.TileEntity;
                                            import net.minecraft.util.IIcon;
                                            import net.minecraft.util.MathHelper;
                                            import net.minecraft.world.World;

                                            public class Distributeur extends BlockContainer
                                            {

                                            private IIcon front;
                                            protected Distributeur()
                                            {
                                            super(Material.rock); //Mettez le material qui convient
                                            this.setResistance(8.0F);
                                            this.setHarvestLevel(“pickaxe”, 2); //Outil pour casser le bloc, pour le chiffre : 0=bois, 1=pierre, 2=fer, 3=diamant
                                            }

                                            @Override
                                            public TileEntity createNewTileEntity(World world, int metadata) //Instancie le TileEntity
                                            {
                                            return new TileEntityDistributeur();
                                            }

                                            @Override
                                            public boolean hasTileEntity(int metadata) //Permet de savoir si le bloc a un TileEntity
                                            {
                                            return true;
                                            }
                                            public void breakBlock(World world, int x, int y, int z, Block block, int metadata)
                                            {
                                            TileEntity tileentity = world.getTileEntity(x, y, z);

                                            if (tileentity instanceof IInventory)
                                            {
                                            IInventory inv = (IInventory)tileentity;
                                            for (int i1 = 0; i1 < inv.getSizeInventory(); ++i1)
                                            {
                                            ItemStack itemstack = inv.getStackInSlot(i1);

                                            if (itemstack != null)
                                            {
                                            float f = world.rand.nextFloat() * 0.8F + 0.1F;
                                            float f1 = world.rand.nextFloat() * 0.8F + 0.1F;
                                            EntityItem entityitem;

                                            for (float f2 = world.rand.nextFloat() * 0.8F + 0.1F; itemstack.stackSize > 0; world.spawnEntityInWorld(entityitem))
                                            {
                                            int j1 = world.rand.nextInt(21) + 10;

                                            if (j1 > itemstack.stackSize)
                                            {
                                            j1 = itemstack.stackSize;
                                            }

                                            itemstack.stackSize -= j1;
                                            entityitem = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
                                            float f3 = 0.05F;
                                            entityitem.motionX = (double)((float)world.rand.nextGaussian() * f3);
                                            entityitem.motionY = (double)((float)world.rand.nextGaussian() * f3 + 0.2F);
                                            entityitem.motionZ = (double)((float)world.rand.nextGaussian() * f3);

                                            if (itemstack.hasTagCompound())
                                            {
                                            entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
                                            }
                                            }
                                            }
                                            }

                                            world.func_147453_f(x, y, z, block);
                                            }

                                            super.breakBlock(world, x, y, z, block, metadata);
                                            }
                                            public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitx, float hity, float hitz)
                                            {
                                            if (world.isRemote)
                                            {
                                            return true;
                                            }
                                            else
                                            {
                                            FMLNetworkHandler.openGui(player, Entreprise.instance, 0, world, x, y, z);
                                            return true;
                                            }
                                            }
                                            public void registerBlockIcons(IIconRegister iiconRegister)
                                            {
                                            this.blockIcon = iiconRegister.registerIcon(“minecraft:stone”);
                                            }

                                            public boolean isOpaqueCube()
                                            {
                                            return false;
                                            }

                                            public boolean renderAsNormalBlock()
                                            {
                                            return false;
                                            }

                                            public int getRenderType()
                                            {
                                            return ClientProxy.tesrRenderId;
                                            }
                                            }

                                            
                                            du client proxy
                                            ```java
                                            package com.mathiasetampes.entreprise.proxy;
                                            
                                            import com.mathiasetampes.entreprise.client.TileEntityDistributeurSpecialRenderer;
                                            import com.mathiasetampes.entreprise.common.TileEntityDistributeur;
                                            
                                            import cpw.mods.fml.client.registry.ClientRegistry;
                                            import cpw.mods.fml.client.registry.RenderingRegistry;
                                            
                                            public class ClientProxy extends CommonProxy
                                            {
                                            public static int tesrRenderId;
                                            @Override
                                            public void registerRender()
                                            {
                                            ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDistributeur.class, new TileEntityDistributeurSpecialRenderer());
                                            System.out.println("méthode côté client");
                                            tesrRenderId = RenderingRegistry.getNextAvailableRenderId();
                                            RenderingRegistry.registerBlockHandler(new TESRInventoryRenderer());
                                            
                                            }
                                            }
                                            
                                            

                                            et du TESR

                                            package com.mathiasetampes.entreprise.proxy;
                                            
                                            import org.lwjgl.opengl.GL11;
                                            
                                            import com.mathiasetampes.entreprise.client.TileEntityDistributeurSpecialRenderer;
                                            import com.mathiasetampes.entreprise.common.Entreprise;
                                            
                                            import net.minecraft.block.Block;
                                            import net.minecraft.client.Minecraft;
                                            import net.minecraft.client.renderer.RenderBlocks;
                                            import net.minecraft.world.IBlockAccess;
                                            import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
                                            
                                            public class TESRInventoryRenderer implements ISimpleBlockRenderingHandler {
                                            
                                            @Override
                                            public void renderInventoryBlock(Block block, int metadata, int modelId,
                                            RenderBlocks renderer)
                                            {
                                            if(block == Entreprise.distributeur)
                                            {
                                            GL11.glPushMatrix();
                                            GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
                                            GL11.glTranslatef(0.0F, -1.0F, 0.0F);
                                            Minecraft.getMinecraft().getTextureManager().bindTexture(TileEntityDistributeurSpecialRenderer.texture);
                                            TileEntityDistributeurSpecialRenderer.model.renderAll();
                                            GL11.glPopMatrix();
                                            }
                                            }
                                            
                                            @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 true;
                                            }
                                            
                                            @Override
                                            public int getRenderId()
                                            {
                                            return 0;
                                            }
                                            
                                            }
                                            
                                            
                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 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