MFF

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

    GLUtils, ou comment faire des modèles 3D facilement

    Planifier Épinglé Verrouillé Déplacé Autres
    150 Messages 20 Publieurs 60.5k Vues 2 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Dans ton client proxy il te manque la ligne :
      TESRInventoryRenderer.blockByTESR.put(new TESRIndex(ClassePrincipale.leBlock, 0), new TileEntityTestSpecialRenderer());
      Je peux aussi avoir la classe de ton bloc ?

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

        @‘robin4002’:

        Dans ton client proxy il te manque la ligne :
        TESRInventoryRenderer.blockByTESR.put(new TESRIndex(ClassePrincipale.leBlock, 0), new TileEntityTestSpecialRenderer());
        Je peux aussi avoir la classe de ton bloc ?

        Tout de suite

        
        package mods.maxiworldcraft.mineKingdomHeartsmod.common;
        
        import mods.maxiworldcraft.mineKingdomHeartsmod.client.modMineKingdomHeartsClientProxy;
        import net.minecraft.block.BlockContainer;
        import net.minecraft.block.material.Material;
        import net.minecraft.entity.Entity;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.tileentity.TileEntity;
        import net.minecraft.world.World;
        import cpw.mods.fml.relauncher.Side;
        import cpw.mods.fml.relauncher.SideOnly;
        
        public class BlockTest extends BlockContainer
        {
        
        protected BlockTest(Material material) {
        
        super(material);
        // TODO Auto-generated constructor stub
        }
        
        @Override
        public TileEntity createNewTileEntity(World var1, int var2)
        {
        
        return new TileEntityTest();
        }
        public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9)
        {
        return false;
        
        }
        
        public boolean renderAsNormalBlock()
        {
        return false;
        }
        
        public boolean isOpaqueCube()
        {
        return false;
        }
        
        @SideOnly(Side.CLIENT)
        public int getRenderType()
        {
        return modMineKingdomHeartsClientProxy.renderInventoryTESRId;
        }
        }
        
        

        EDIT = Mon block ne possède pas de métadatas pour info

        J’avoue avoir un peu de mal sur la fin du tutoriel sur le rendu en main le ISBRH voici ma class TESRInventoryRenderer et ma classe TESRIndex pour info rien n’a change le block est toujours transparent…

        
        package mods.maxiworldcraft.mineKingdomHeartsmod.client;
        
        import java.util.HashMap;
        
        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 TESRInventoryRenderer implements ISimpleBlockRenderingHandler
        
        {
        public static HashMap <tesrindex, iinventoryrenderer="">blockByTESR = new HashMap<tesrindex, iinventoryrenderer="">();
        
        @Override
        public void renderInventoryBlock(Block block, int metadata, int modelId,
        RenderBlocks renderer) {
        // TODO Auto-generated method stub
        
        }
        
        @Override
        public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z,
        Block block, int modelId, RenderBlocks renderer) {
        // TODO Auto-generated method stub
        return false;
        }
        
        @Override
        public boolean shouldRender3DInInventory(int modelId) {
        // TODO Auto-generated method stub
        return false;
        }
        
        @Override
        public int getRenderId() {
        // TODO Auto-generated method stub
        return 0;
        }
        
        }
        
        

        ma class TESRIndex

        
        package mods.maxiworldcraft.mineKingdomHeartsmod.client;
        
        import net.minecraft.block.Block;
        
        public class TESRIndex {
        
        public TESRIndex(Block blockTest, int i)
        {
        
        }
        
        }
        
        

        Je sais qu’il me manque de méthode mais lorsque je les rajoute il y a des fields à créer et je n’en suis pas trop sûr enfin bref ces codes

        
        public TESRIndex(Block block, int metadata)
        {
        this.block = block;
        this.metadata = metadata;
        }
        
        @Override
        public int hashCode()
        {
        return block.hashCode() + metadata;
        }
        
        @Override
        public boolean equals(Object o)
        {
        if(!(o instanceof TESRIndex))
        return false;
        
        TESRIndex tesr = (TESRIndex)o;
        
        return tesr.block == block && tesr.metadata == metadata;
        }
        }
        
        

        ne conviennent pas à eclipse je recherche toujours une solution et de l’aide plz</tesrindex,></tesrindex,>

        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

          Actuellement le rendu dans le monde fonctionne, c’est juste l’inventaire qui manque non ?
          Car la ton code est fonctionnel pour le rendu dans le monde, mais pas pour dans l’inventaire.

          package mods.maxiworldcraft.mineKingdomHeartsmod.client;
          
          import java.util.HashMap;
          
          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 TESRInventoryRenderer implements ISimpleBlockRenderingHandler
          {
          public static HashMap <tesrindex, iinventoryrenderer="">blockByTESR = new HashMap<tesrindex, iinventoryrenderer="">();
          
          @Override
          public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer)
          {
          InventoryTESRIndex index = new InventoryTESRIndex(block, metadata);
          if(blockByTESR.containsKey(index))
          {
          blockByTESR.get(index).renderInventory(-0.5, -0.5, -0.5);
          }
          }
          
          @Override
          public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer)
          {
          return true;
          }
          
          @Override
          public boolean shouldRender3DInInventory(int modelId)
          {
          return true;
          }
          
          @Override
          public int getRenderId()
          {
          return modMineKingdomHeartsClientProxy.tesrRenderId;
          }
          }
          

          ma class TESRIndex

          package mods.maxiworldcraft.mineKingdomHeartsmod.client;
          
          import net.minecraft.block.Block;
          
          public class TESRIndex {
          
          public final Block block;
          public final int metadata;
          
          public InventoryTESRIndex(Block block, int metadata)
          {
          this.block = block;
          this.metadata = metadata;
          }
          
          @Override
          public int hashCode()
          {
          return block.hashCode() + this.metadata;
          }
          
          @Override
          public boolean equals(Object o)
          {
          if(!(o instanceof InventoryTESRIndex))
          return false;
          
          InventoryTESRIndex tesr = (InventoryTESRIndex)o;
          
          return tesr.block == this.block && tesr.metadata == this.metadata;
          }
          
          public Block getBlock()
          {
          return block;
          }
          
          public int getBlockMetadata()
          {
          return metadata;
          }
          }
          

          Comme ça les classes.</tesrindex,></tesrindex,>

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

            @‘robin4002’:

            Actuellement le rendu dans le monde fonctionne, c’est juste l’inventaire qui manque non ?
            Car la ton code est fonctionnel pour le rendu dans le monde, mais pas pour dans l’inventaire.

            package mods.maxiworldcraft.mineKingdomHeartsmod.client;
            
            import java.util.HashMap;
            
            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 TESRInventoryRenderer implements ISimpleBlockRenderingHandler
            {
            public static HashMap <tesrindex, iinventoryrenderer="">blockByTESR = new HashMap<tesrindex, iinventoryrenderer="">();
            
            @Override
            public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer)
            {
            InventoryTESRIndex index = new InventoryTESRIndex(block, metadata);
            if(blockByTESR.containsKey(index))
            {
            blockByTESR.get(index).renderInventory(-0.5, -0.5, -0.5);
            }
            }
            
            @Override
            public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer)
            {
            return true;
            }
            
            @Override
            public boolean shouldRender3DInInventory(int modelId)
            {
            return true;
            }
            
            @Override
            public int getRenderId()
            {
            return modMineKingdomHeartsClientProxy.tesrRenderId;
            }
            }
            

            ma class TESRIndex

            package mods.maxiworldcraft.mineKingdomHeartsmod.client;
            
            import net.minecraft.block.Block;
            
            public class TESRIndex {
            
            public final Block block;
            public final int metadata;
            
            public InventoryTESRIndex(Block block, int metadata)
            {
            this.block = block;
            this.metadata = metadata;
            }
            
            @Override
            public int hashCode()
            {
            return block.hashCode() + this.metadata;
            }
            
            @Override
            public boolean equals(Object o)
            {
            if(!(o instanceof InventoryTESRIndex))
            return false;
            
            InventoryTESRIndex tesr = (InventoryTESRIndex)o;
            
            return tesr.block == this.block && tesr.metadata == this.metadata;
            }
            
            public Block getBlock()
            {
            return block;
            }
            
            public int getBlockMetadata()
            {
            return metadata;
            }
            }
            

            Comme ça les classes.</tesrindex,></tesrindex,>

            Merci de ta réponse je vais alors voir pour le rendu dans l’inventaire et je te tiens au courant pour l’affichage de Yoshi dans le monde

            Non c’est très étrange car maintenant la texture du block en inventaire est invisible tout comme toujours, le rendu du block dans le monde. J’ai pourtant bien mis le .obj dans assets/obj mais j’ai négligé et n’ai pas mis le .mlt car je ne savais pas où le mettre pareil pour les textures tout est à balancer dans assets/obj ???C’est ça la cause j’imagine?

            EDIT = J’ai pourtant tout le contenu du .zip du model 3d de Yoshi dans assets/obj rien n’y fait tout reste invisible : rendu du block dans le monde block qui est toujours sur un model de 16x16 je le vois grâce à son encadré noir, et l’item dans la main ou dans l’inventaire INVISIBLE
            Une solution plz?

            Peut-être que si je te redonne toutes mes classes t’y verras plus clair car là je te les ai un peu éparpillées partout sur le fofo ^^

            La class principale

            
            package mods.maxiworldcraft.mineKingdomHeartsmod.common;
            
            import java.awt.Color;
            
            import mods.maxiworldcraft.mineKingdomHeartsmod.proxy.modMineKingdomHeartsCommonProxy;
            import net.minecraft.block.Block;
            import net.minecraft.block.material.Material;
            import net.minecraft.creativetab.CreativeTabs;
            import net.minecraft.item.Item;
            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.EntityRegistry;
            import cpw.mods.fml.common.registry.GameRegistry;
            
            @Mod(modid = modMineKingdomHearts.MODID, name = "Mod MineKingdom Hearts", version = "1.0")
            
            public class modMineKingdomHearts
            {
            
            public static final String MODID = "modminekingdomhearts";
            
            public static Item itemCIN1;
            public static Item itemCIN2;
            public static Item itemCIN3;
            public static Item itemCIN4;
            public static Item itemCIN5;
            
            public static Block blockTest;
            
            @Instance("MODID")
            
            public static modMineKingdomHearts instance;
            public static CreativeTabs mineKingdomHeartsCreativeTabs = new mineKingdomHeartsCreativeTabs("MineKingdom Hearts");
            
            @SidedProxy(clientSide = "mods.maxiworldcraft.mineKingdomHeartsmod.client.modMineKingdomHeartsClientProxy", serverSide = "mods.maxiworldcraft.mineKingdomHeartsmod.proxy.modMineKingdomHeartsCommonProxy")
            public static modMineKingdomHeartsCommonProxy proxy;
            
            @EventHandler
            public void preInit(FMLPreInitializationEvent event)
            {
            
            itemCIN1 = new itemCIN1().setMaxStackSize(1).setUnlocalizedName("itemCIN1").setTextureName(modMineKingdomHearts.MODID + ":itemCIN1");
            GameRegistry.registerItem(itemCIN1, "itemCIN1");
            
            itemCIN2 = new itemCIN2().setMaxStackSize(1).setUnlocalizedName("itemCIN2").setTextureName(modMineKingdomHearts.MODID + ":itemCIN2");
            GameRegistry.registerItem(itemCIN2, "itemCIN2");
            
            itemCIN3 = new itemCIN3().setMaxStackSize(1).setUnlocalizedName("itemCIN3").setTextureName(modMineKingdomHearts.MODID + ":itemCIN3");
            GameRegistry.registerItem(itemCIN3, "itemCIN3");
            
            itemCIN4 = new itemCIN4().setMaxStackSize(1).setUnlocalizedName("itemCIN4").setTextureName(modMineKingdomHearts.MODID + ":itemCIN4");
            GameRegistry.registerItem(itemCIN4, "itemCIN4");
            
            itemCIN5 = new itemCIN5().setMaxStackSize(1).setUnlocalizedName("itemCIN5").setTextureName(modMineKingdomHearts.MODID + ":itemCIN5");
            GameRegistry.registerItem(itemCIN5, "itemCIN5");
            
            blockTest = new BlockTest(Material.rock).setCreativeTab(modMineKingdomHearts.mineKingdomHeartsCreativeTabs).setBlockName("blockTest").setBlockTextureName(modMineKingdomHearts.MODID + ":blockTest");
            GameRegistry.registerBlock(blockTest, "blockTest");
            
            }
            
            @EventHandler
            public void init(FMLInitializationEvent event)
            {
            proxy.registerRenderer();
            proxy.registerTileEntityRender();
            
            EntityRegistry.registerGlobalEntityID(EntityEffrayeur.class, "effrayeur", EntityRegistry.findGlobalUniqueEntityId(), new Color(0, 0, 0).getRGB(), new Color(0, 0, 0).getRGB());
            EntityRegistry.registerModEntity(EntityEffrayeur.class, "effrayeur", 410, this, 40, 1, true);
            
            EntityRegistry.registerGlobalEntityID(EntityHayner.class, "hayner", EntityRegistry.findGlobalUniqueEntityId(), new Color(255, 229, 0).getRGB(), new Color(255, 151, 7).getRGB());
            EntityRegistry.registerModEntity(EntityHayner.class, "hayner", 411, this, 40, 1, true);
            
            EntityRegistry.registerGlobalEntityID(EntityPence.class, "pence", EntityRegistry.findGlobalUniqueEntityId(), new Color(255, 229, 0).getRGB(), new Color(255, 151, 7).getRGB());
            EntityRegistry.registerModEntity(EntityPence.class, "pence", 412, this, 40, 1, true);
            
            EntityRegistry.registerGlobalEntityID(EntityOlette.class, "olette", EntityRegistry.findGlobalUniqueEntityId(), new Color(255, 229, 0).getRGB(), new Color(255, 151, 7).getRGB());
            EntityRegistry.registerModEntity(EntityOlette.class, "olette", 413, this, 40, 1, true);
            
            EntityRegistry.registerGlobalEntityID(EntitySeifer.class, "seifer", EntityRegistry.findGlobalUniqueEntityId(), new Color(255, 229, 0).getRGB(), new Color(255, 151, 7).getRGB());
            EntityRegistry.registerModEntity(EntitySeifer.class, "seifer", 414, this, 40, 1, true);
            
            EntityRegistry.registerGlobalEntityID(EntityRei.class, "rei", EntityRegistry.findGlobalUniqueEntityId(), new Color(255, 229, 0).getRGB(), new Color(255, 151, 7).getRGB());
            EntityRegistry.registerModEntity(EntityRei.class, "rei", 415, this, 40, 1, true);
            
            EntityRegistry.registerGlobalEntityID(EntityFuu.class, "fuu", EntityRegistry.findGlobalUniqueEntityId(), new Color(255, 229, 0).getRGB(), new Color(255, 151, 7).getRGB());
            EntityRegistry.registerModEntity(EntityFuu.class, "fuu", 416, this, 40, 1, true);
            
            GameRegistry.registerTileEntity(TileEntityTest.class, "test");
            
            }
            
            @EventHandler
            public void postInit(FMLPostInitializationEvent event)
            {
            
            }
            
            }
            
            

            Le client proxy

            
            package mods.maxiworldcraft.mineKingdomHeartsmod.client;
            
            import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityEffrayeur;
            import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityFuu;
            import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityHayner;
            import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityOlette;
            import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityPence;
            import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityRei;
            import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntitySeifer;
            import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntityTest;
            import mods.maxiworldcraft.mineKingdomHeartsmod.common.modMineKingdomHearts;
            import mods.maxiworldcraft.mineKingdomHeartsmod.proxy.modMineKingdomHeartsCommonProxy;
            import net.minecraft.client.model.ModelBiped;
            import cpw.mods.fml.client.registry.ClientRegistry;
            import cpw.mods.fml.client.registry.RenderingRegistry;
            
            public class modMineKingdomHeartsClientProxy extends modMineKingdomHeartsCommonProxy
            {
            public static int renderInventoryTESRId;;
            
            @Override
            
            public void registerRenderer()
            {
            System.out.println("Salut je suis un test du client");
            
            RenderingRegistry.registerEntityRenderingHandler(EntityEffrayeur.class, new RenderEffrayeur(new ModelBiped(), 0.1F));
            RenderingRegistry.registerEntityRenderingHandler(EntityHayner.class, new RenderHayner(new ModelBiped(), 0.5F));
            RenderingRegistry.registerEntityRenderingHandler(EntityPence.class, new RenderPence(new ModelBiped(), 0.5F));
            RenderingRegistry.registerEntityRenderingHandler(EntityOlette.class, new RenderOlette(new ModelBiped(), 0.5F));
            RenderingRegistry.registerEntityRenderingHandler(EntitySeifer.class, new RenderSeifer(new ModelBiped(), 0.5F));
            RenderingRegistry.registerEntityRenderingHandler(EntityRei.class, new RenderRei(new ModelBiped(), 0.5F));
            RenderingRegistry.registerEntityRenderingHandler(EntityFuu.class, new RenderFuu(new ModelBiped(), 0.5F));
            
            renderInventoryTESRId = RenderingRegistry.getNextAvailableRenderId();
            RenderingRegistry.registerBlockHandler(new TESRInventoryRenderer());
            
            }
            public void registerTileEntityRender()
            {
            
            ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTest.class, new TileEntityTestSpecialRenderer());
            TESRInventoryRenderer.blockByTESR.put(new TESRIndex(modMineKingdomHearts.blockTest, 0), new TileEntityTestSpecialRenderer());
            
            }
            }
            
            

            La class du block

            
            package mods.maxiworldcraft.mineKingdomHeartsmod.common;
            
            import mods.maxiworldcraft.mineKingdomHeartsmod.client.modMineKingdomHeartsClientProxy;
            import net.minecraft.block.BlockContainer;
            import net.minecraft.block.material.Material;
            import net.minecraft.entity.Entity;
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.tileentity.TileEntity;
            import net.minecraft.world.World;
            import cpw.mods.fml.relauncher.Side;
            import cpw.mods.fml.relauncher.SideOnly;
            
            public class BlockTest extends BlockContainer
            {
            
            protected BlockTest(Material material) {
            
            super(material);
            // TODO Auto-generated constructor stub
            }
            
            @Override
            public TileEntity createNewTileEntity(World var1, int var2)
            {
            
            return new TileEntityTest();
            }
            public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9)
            {
            return false;
            
            }
            
            public boolean renderAsNormalBlock()
            {
            return false;
            }
            
            public boolean isOpaqueCube()
            {
            return false;
            }
            
            @SideOnly(Side.CLIENT)
            public int getRenderType()
            {
            return modMineKingdomHeartsClientProxy.renderInventoryTESRId;
            }
            }
            
            

            La class TileEntity

            
            package mods.maxiworldcraft.mineKingdomHeartsmod.common;
            
            import net.minecraft.nbt.NBTTagCompound;
            import net.minecraft.tileentity.TileEntity;
            
            public class TileEntityTest extends TileEntity
            {
            }
            
            

            La class TESR

            
            package mods.maxiworldcraft.mineKingdomHeartsmod.client;
            
            import mods.maxiworldcraft.mineKingdomHeartsmod.common.TileEntityTest;
            import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
            import net.minecraft.tileentity.TileEntity;
            
            import org.jglrxavpok.glutils.TessellatorModel;
            import org.lwjgl.opengl.GL11;
            
            public class TileEntityTestSpecialRenderer extends TileEntitySpecialRenderer implements IInventoryRenderer
            {
            
            private TessellatorModel glmodel;
            
            public TileEntityTestSpecialRenderer()
            {
            glmodel = new TessellatorModel("/assets/obj/Yoshi.obj");
            glmodel.regenerateNormals();
            }
            
            @Override
            public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float scale)
            {
            this.renderTileEntityTestAt((TileEntityTest)tileentity, x, y, z, scale);
            GL11.glPushMatrix();
            GL11.glTranslated(x+0.5, y, z+0.5);
            GL11.glScaled(0.01, 0.01, 0.01);
            glmodel.render();
            GL11.glPopMatrix();
            GL11.glShadeModel(GL11.GL_SMOOTH);
            }
            
            public void renderTileEntityTestAt(TileEntityTest tileentity, double x, double y, double z, float scale)
            {
            
            }
            
            @Override
            public void renderInventory(double x, double y, double z) {
            // TODO Auto-generated method stub
            
            }
            }
            
            

            La class IInventoryRenderer

            
            package mods.maxiworldcraft.mineKingdomHeartsmod.client;
            
            public interface IInventoryRenderer
            {
            public void renderInventory(double x, double y, double z);
            }
            
            

            La class TESRInventoryRenderer

            
            package mods.maxiworldcraft.mineKingdomHeartsmod.client;
            
            import java.util.HashMap;
            
            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 TESRInventoryRenderer implements ISimpleBlockRenderingHandler
            {
            public static HashMap <tesrindex, iinventoryrenderer="">blockByTESR = new HashMap<tesrindex, iinventoryrenderer="">();
            
            @Override
            public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer)
            {
            TESRIndex index = new TESRIndex(block, metadata);
            if(blockByTESR.containsKey(index))
            {
            blockByTESR.get(index).renderInventory(-0.5, -0.5, -0.5);
            }
            }
            
            @Override
            public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer)
            {
            return true;
            }
            
            @Override
            public boolean shouldRender3DInInventory(int modelId)
            {
            return true;
            }
            
            @Override
            public int getRenderId()
            {
            return modMineKingdomHeartsClientProxy.renderInventoryTESRId;
            }
            }
            
            

            Et enfin la class TESRIndex

            
            package mods.maxiworldcraft.mineKingdomHeartsmod.client;
            
            import net.minecraft.block.Block;
            
            public class TESRIndex {
            
            public final Block block;
            public final int metadata;
            
            public TESRIndex(Block block, int metadata)
            {
            this.block = block;
            this.metadata = metadata;
            }
            
            @Override
            public int hashCode()
            {
            return block.hashCode() + this.metadata;
            }
            
            @Override
            public boolean equals(Object o)
            {
            if(!(o instanceof TESRIndex))
            return false;
            
            TESRIndex tesr = (TESRIndex)o;
            
            return tesr.block == this.block && tesr.metadata == this.metadata;
            }
            
            public Block getBlock()
            {
            return block;
            }
            
            public int getBlockMetadata()
            {
            return metadata;
            }
            }
            
            

            Plz avec toutes mes class que quelqu’un arrive à résoudre mon problème mon Yoshi qui est normalement bien codé est invisible tout comme son block dans la main ou dans l’inventaire Plz Help Me</tesrindex,></tesrindex,>

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

              UP SVP c’est assez urgent j’ai posté toutes mes .java y’à bien quelqu’un qui devrez y voir plus clair maintenant surtout pour ceux ayant déjà réussi ce tuto plz jglrxavpok ou quelqu’un d’autre ???

              1 réponse Dernière réponse Répondre Citer 0
              • jglrxavpokJ Hors-ligne
                jglrxavpok Modérateurs
                dernière édition par

                Tu fais chercher le modèle dans /assets/obj/ alors qu’il est dans /assets/tonmod/obj/, à corriger

                Modérateur sur MFF. 
                Mon Github: http://github.com/jglrxavpok
                Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                1 réponse Dernière réponse Répondre Citer 2
                • DeletedD Hors-ligne
                  Deleted
                  dernière édition par

                  @‘jglrxavpok’:

                  Tu fais chercher le modèle dans /assets/obj/ alors qu’il est dans /assets/tonmod/obj/, à corriger

                  Oh pu*** ça marche enfin yes Yoshi dans minecraft oh je t’adore jglrxavpok mais encore un petit problème le renderInventory ne marche point??

                  EDIT = Petit bug pour la texture sur certaine partie du visage, comme pourrais-je le corriger j’ai déjà mis

                  
                  GL11.glShadeModel(GL11.GL_SMOOTH);
                  
                  model.regenerateNormals();
                  
                  

                  Up Une idée pour le IInventoryRenderer les .java sont identiques à ce qu’il faudrait et pourtant ça ne marche pas plz et pour les ombres pourtant ça aussi ça semble être bon mais mon yoshi a des ombres en trop plz

                  EDIT = Regarder ce screen de mon nouveau model les ombres sont bien plus flagrantes

                  UP UP quelqu’un peut-il m’aider pour retirer ces ombres j’ai essayé de changé quelque valeurs mais rien n’y fait help plz

                  Up Up svp jglrxavpok tu n’as pas une idée ou même un code pour faire disparaître totalemet ces ombres et j’ai retiré le code

                  
                  GL11.glShadeModel(GL11.GL_SMOOTH);
                  
                  

                  Et à ma grande surprise le model est resté le même

                  Sinon pour IInventoryRender aucune idée Robin ou même quelqu’un d’autre 😞 ?

                  Je up toujours mais cette fois-ci je n’ai pas trop compris pour créer un mob j’ai regardédans le RenderPig et RenderCow et je ne vois pas grand chose qui m’inspire peut-tu m’éclaircir jglrxavpok??

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

                    @‘jglrxavpok’:

                    @‘ZeAmateis’:

                    Comment faire avec un mob ? Pour appliquer ce genre de model.obj à un mob ? Est-ce lourd pour minecraft ?

                    Pour un mob, utilise un render et appelle la méthode render() du model dans renderEntity() du render.
                    (Pour les renders, une petite partie est expliquée ici)
                    Pour le poids, tout dépend du model.

                    Je comprends bien pour appeler la méthode render() du model de mon mob mais il faut l’appeler dans RenderEntity du Render euh what? RenderEntity c’est une méthode si oui je ne la trouve pas ? faut-il la créer et comment plz help?

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

                      Up toujours aucune idée les gens ? Sinon pour les ombres je pense que c’est dû à mon model sinon pour le IInventoryRenderer je vais relire entièrement et soigneusement le tuto sur les TESR et si y’a du nouveau je vous tiendrai au courant ^^

                      1 réponse Dernière réponse Répondre Citer 0
                      • jglrxavpokJ Hors-ligne
                        jglrxavpok Modérateurs
                        dernière édition par

                        @‘Julot10085’:

                        @‘jglrxavpok’:

                        @‘ZeAmateis’:

                        Comment faire avec un mob ? Pour appliquer ce genre de model.obj à un mob ? Est-ce lourd pour minecraft ?

                        Pour un mob, utilise un render et appelle la méthode render() du model dans renderEntity() du render.
                        (Pour les renders, une petite partie est expliquée ici)
                        Pour le poids, tout dépend du model.

                        Je comprends bien pour appeler la méthode render() du model de mon mob mais il faut l’appeler dans RenderEntity du Render euh what? RenderEntity c’est une méthode si oui je ne la trouve pas ? faut-il la créer et comment plz help?

                        Regarde le tuto sur les entitées…

                        Modérateur sur MFF. 
                        Mon Github: http://github.com/jglrxavpok
                        Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                          Je reviens à vous encore une fois pour cette fois ci laisser déjà de côté les entitées mais cette fois pour les items cela ne marche pas or j’ai enregistré mon item dans ma class client proxy, ait crée un nouveau item basique et ait crée sa class SpecialRender la voici :

                          
                          package mods.maxiworldcraft.mineKingdomHeartsmod.common;
                          
                          import net.minecraft.entity.Entity;
                          import net.minecraft.item.ItemStack;
                          import net.minecraftforge.client.IItemRenderer;
                          
                          import org.jglrxavpok.glutils.TessellatorModel;
                          import org.jglrxavpok.glutils.TessellatorModelEvent;
                          import org.jglrxavpok.glutils.TessellatorModelEvent.RenderGroupEvent;
                          import org.lwjgl.opengl.GL11;
                          
                          import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                          
                          public class ChaineRoyaleItemRenderer implements IItemRenderer
                          {
                          
                          private TessellatorModel model;
                          private double bladeAngle;
                          private int direction;
                          
                          public ChaineRoyaleItemRenderer()
                          {
                          model = new TessellatorModel("/assets/obj/VorpalBlade/VorpalBlade.obj");
                          model.regenerateNormals();
                          model.setID("blade");
                          TessellatorModel.MODEL_RENDERING_BUS.register(this);
                          }
                          
                          @Override
                          public boolean handleRenderType(ItemStack item, ItemRenderType type)
                          {
                          switch(type)
                          {
                          case ENTITY:
                          return true;
                          case EQUIPPED_FIRST_PERSON:
                          return true;
                          case EQUIPPED:
                          return true;
                          case INVENTORY:
                          return true;
                          default:
                          return false;
                          }
                          }
                          
                          @Override
                          public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
                          {
                          if(type == ItemRenderType.INVENTORY && helper == ItemRendererHelper.INVENTORY_BLOCK)
                          return true;
                          return false;
                          }
                          
                          @Override
                          public void renderItem(ItemRenderType type, ItemStack item, Object… data)
                          {
                          GL11.glScaled(0.05,0.05,0.05);
                          switch(type)
                          {
                          case ENTITY:
                          {
                          GL11.glPushMatrix();
                          GL11.glTranslated(0,0.1,0);
                          GL11.glRotated(10, 0, 0, 1);
                          GL11.glShadeModel(GL11.GL_SMOOTH);
                          model.render();
                          GL11.glPopMatrix();
                          break;
                          }
                          case EQUIPPED_FIRST_PERSON:
                          {
                          GL11.glPushMatrix();
                          GL11.glTranslated(10,10.0,0.0);
                          GL11.glRotated(200, 0, 1, 0);
                          GL11.glRotated(-10, 1, 0, 0);
                          
                          GL11.glRotated(200, 0, 1, 0);
                          GL11.glRotated(20, 1, 0, 0);
                          GL11.glRotated(-10, 0, 0, 1);
                          GL11.glRotated(25, 0, 1, 0);
                          GL11.glRotated(10, 1, 0, 0);
                          
                          GL11.glRotated(180, 0, 1, 0);
                          
                          GL11.glShadeModel(GL11.GL_SMOOTH);
                          model.render();
                          GL11.glPopMatrix();
                          break;
                          }
                          case EQUIPPED:
                          {
                          GL11.glPushMatrix();
                          GL11.glTranslated(10,0.0,0.0);
                          GL11.glRotated(200, 0, 1, 0);
                          GL11.glRotated(-10, 1, 0, 0);
                          GL11.glShadeModel(GL11.GL_SMOOTH);
                          model.render();
                          GL11.glPopMatrix();
                          break;
                          }
                          case INVENTORY:
                          {
                          GL11.glPushMatrix();
                          GL11.glTranslated(10, -10, 0);
                          GL11.glRotated(90, 0, 1, 0);
                          GL11.glRotated(-45, 1, 0, 0);
                          GL11.glRotated(180, 0, 1, 0);
                          GL11.glShadeModel(GL11.GL_SMOOTH);
                          model.render();
                          GL11.glDisable(GL11.GL_DEPTH_TEST);
                          GL11.glPopMatrix();
                          break;
                          }
                          default:
                          break;
                          }
                          }
                          
                          }
                          
                          

                          L’item n’a pas de texture IG donc si quelqu’un a une soluce je suis preneur je pense notamment quecela vient du fait que mes block TESR n’ont pas dde texture dans l’inventaire et dans la main mais regardez mes messages un peu plus vieux et vous verrez toutes mes class

                          EDIT j’ai vraiment relu le tuto sur les entitées jglrxavpok mais toujours rien j’ai testé comme ça mais j’ai un crash sur l’appel de la méthode

                          
                          package mods.maxiworldcraft.mineKingdomHeartsmod.client;
                          
                          import org.jglrxavpok.glutils.TessellatorModel;
                          
                          import mods.maxiworldcraft.mineKingdomHeartsmod.common.EntityRei;
                          import mods.maxiworldcraft.mineKingdomHeartsmod.common.modMineKingdomHearts;
                          import net.minecraft.client.model.ModelBiped;
                          import net.minecraft.client.renderer.entity.RenderBiped;
                          import net.minecraft.entity.EntityLiving;
                          import net.minecraft.util.ResourceLocation;
                          
                          public class RenderRei extends RenderBiped
                          {
                          private ModelRei model;
                          private TessellatorModel mode1;
                          
                          public RenderRei(ModelBiped modelbiped, float float1) {
                          super(modelbiped, float1);
                          
                          model.render(null, float1, float1, float1, float1, float1, float1);
                          mode1 = new TessellatorModel("/assets/modminekingdomhearts/obj/Hayner/heyner.obj");
                          }
                          
                          //Localisation de la Texture
                          
                          public final ResourceLocation texture = new ResourceLocation(modMineKingdomHearts.MODID, "textures/entity/rei.png");
                          
                          protected ResourceLocation getEntityTexture(EntityLiving living)
                          {
                          return this.getMobTutorielTexture((EntityRei)living);
                          }
                          
                          private ResourceLocation getMobTutorielTexture(EntityRei mobTutoriel)
                          {
                          return texture;
                          }
                          
                          }
                          
                          

                          Le truc c’est que je ne sais pas quoi mettre comme arguments dans la méthode render du model appelée dans la class render de mon mob

                          De l’aide plz si quelqu’un a déjà réussi ??

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

                            Tu compte faire une entité qui utilise le modèle 3D ?

                            Les mouvements vont êtres durs ( très durs ) a animer;

                            Déjà, pourquoi un “ModelRei” ?
                            Pourquoi render ce modèle dans un constructeur ? Une méthode render n’est pas appelée uniquement une fois

                            Ensuite, tu ne render jamais ton mode1 ( nom étrange ), tu le définis uniquement. Pourquoi ?

                            Et pour ton item, check mon github ( http://github.com/Gugu42/ratchetandclankmod/ ), j’ai plus de 10 items render en 3D, et des tile entity

                            "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                            ― Jordan B. Peterson

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

                              @‘Gugu42’:

                              Tu compte faire une entité qui utilise le modèle 3D ?

                              Les mouvements vont êtres durs ( très durs ) a animer;

                              Déjà, pourquoi un “ModelRei” ?
                              Pourquoi render ce modèle dans un constructeur ? Une méthode render n’est pas appelée uniquement une fois

                              Ensuite, tu ne render jamais ton mode1 ( nom étrange ), tu le définis uniquement. Pourquoi ?

                              Et pour ton item, check mon github ( http://github.com/Gugu42/ratchetandclankmod/ ), j’ai plus de 10 items render en 3D, et des tile entity

                              OUi je souhaiterais faire un modèle 3 pour une entity je sais que les animations seront beaucoup plus durs mais j’ai lu qu’on pouvait importer des modèles tout droit venu de blender vers le openGL
                              Et sinon comment ferais-tu car j’ai lu le message de JglrxavPok et il me semblait qu’il fallait créer un modèle?

                              1 réponse Dernière réponse Répondre Citer 0
                              • isadorI Hors-ligne
                                isador Moddeurs confirmés Modérateurs
                                dernière édition par

                                j’ai une question: tu a montrer le code du rendu avec un objet a la fois, mais comment faire avec plusieurs objet, car j’aimerai définir le model dans la class de l’item

                                1 réponse Dernière réponse Répondre Citer 0
                                • jglrxavpokJ Hors-ligne
                                  jglrxavpok Modérateurs
                                  dernière édition par

                                  @‘isador34’:

                                  j’ai une question: tu a montrer le code du rendu avec un objet a la fois, mais comment faire avec plusieurs objet, car j’aimerai définir le model dans la class de l’item

                                  Là, exagère pas…
                                  Juste un field de type String avec le nom du modèle et c’est tout.

                                  Modérateur sur MFF. 
                                  Mon Github: http://github.com/jglrxavpok
                                  Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • isadorI Hors-ligne
                                    isador Moddeurs confirmés Modérateurs
                                    dernière édition par

                                    le chemin du modèle

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • valentinp72V Hors-ligne
                                      valentinp72
                                      dernière édition par robin4002

                                      Bonsoir,

                                      Depuis quelques heures, je suis en train d’essayer d’importer des modèles sur minecraft pour un mod, et je me bute à un soucis :

                                      Des “cotés” deviennent noir en fonction de mon endroit où je regarde (mon objet n’a pas encore de texture pour info, il devrait donc être tout blanc) :

                                      0_1537628369656_2014-06-12_21.55.44.png
                                      0_1537628374480_2014-06-12_21.55.26.png

                                      J’ai pensé à faire comme pour le beacon, à faire en sorte que le “rayon” émette de la lumière, mais je n’arrive pas à trouver la fonction utilisée par le beacon…

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • jglrxavpokJ Hors-ligne
                                        jglrxavpok Modérateurs
                                        dernière édition par

                                        Ton modèle est trop grand, utilise glScale pour corriger. Le fait qu’il n’y ai pas de texture peut jouer aussi 😉

                                        Modérateur sur MFF. 
                                        Mon Github: http://github.com/jglrxavpok
                                        Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                                          En fait je suis en train de réaliser des effets pour quelque chose de secret pour l’instant, j’aurais besoin d’afficher des objets assez grand (après là c’est exagéré) 😄

                                          Justement j’ai une question à propos de la taille :

                                          J’utilise Blender ou C4D (ça dépend des cas) pour faire les modèles de ce type, et je suis obligé de mettre une taille de 1000 m * 1000 m (100000 cm * 100000 cm) pour avoir un model qui donnera en jeux un objet de la taille d’un block, et quand j’essaye de modifier “glScale”, si je le met à 1, je vois plus rien, normal ?

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • jglrxavpokJ Hors-ligne
                                            jglrxavpok Modérateurs
                                            dernière édition par

                                            glScale(facteurSurX, facteurSurY, facteurSurZ);

                                            Mets quelque chose comme 0.1 à toutes ces valeurs AVANT d’appeler model.render();

                                            Modérateur sur MFF. 
                                            Mon Github: http://github.com/jglrxavpok
                                            Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 8
                                            • 2 / 8
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB