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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Ton bloc ? Ta classe principale ?

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

        Mon bloc
        :::

        package sasukz.htmc.blocks;
        
        import net.minecraft.block.Block;
        import net.minecraft.block.material.Material;
        import net.minecraft.tileentity.TileEntity;
        import net.minecraft.world.World;
        import sasukz.htmc.blocks.tileentities.TECopperCable;
        import sasukz.htmc.common.HTMC;
        
        public class BlockCopperCable extends Block {
        public BlockCopperCable(Material m) {
        super(m);
        setHardness(0.5F);
        setResistance(0.0F);
        setBlockName("copper_cable");
        setCreativeTab(HTMC.ctab_mach);
        }
        
        @Override
        public boolean hasTileEntity() {
        return true;
        }
        
        @Override
        public TileEntity createTileEntity(World world, int metadata) {
        return new TECopperCable();
        }
        
        @Override
        public boolean isOpaqueCube() {
        return false;
        }
        
        @Override
        public boolean renderAsNormalBlock() {
        return false;
        }
        
        @Override
        public int getRenderType() {
        return -1;
        }
        }
        

        :::

        Ma classe principale
        :::

        package sasukz.htmc.common;
        
        import net.minecraft.block.Block;
        import net.minecraft.block.material.Material;
        import net.minecraft.creativetab.CreativeTabs;
        import net.minecraft.item.Item;
        import sasukz.htmc.blocks.BlockCombiner;
        import sasukz.htmc.blocks.BlockCopperCable;
        import sasukz.htmc.blocks.BlockMacerator;
        import sasukz.htmc.blocks.BlockOreAluminum;
        import sasukz.htmc.blocks.BlockOreCopper;
        import sasukz.htmc.blocks.BlockOreLead;
        import sasukz.htmc.blocks.BlockOreSilicon;
        import sasukz.htmc.blocks.BlockOreSilver;
        import sasukz.htmc.blocks.BlockOreTin;
        import sasukz.htmc.blocks.BlockOreUranium;
        import sasukz.htmc.blocks.tileentities.TECombiner;
        import sasukz.htmc.blocks.tileentities.TECopperCable;
        import sasukz.htmc.blocks.tileentities.TEMacerator;
        import sasukz.htmc.generation.HTMCWorldGen;
        import sasukz.htmc.items.ItemAluminumPlate;
        import sasukz.htmc.items.ItemBasicCircuit;
        import sasukz.htmc.items.ItemDustAluminum;
        import sasukz.htmc.items.ItemDustCopper;
        import sasukz.htmc.items.ItemDustLead;
        import sasukz.htmc.items.ItemDustSilver;
        import sasukz.htmc.items.ItemDustTin;
        import sasukz.htmc.items.ItemIngotAluminum;
        import sasukz.htmc.items.ItemIngotBronze;
        import sasukz.htmc.items.ItemIngotCopper;
        import sasukz.htmc.items.ItemIngotLead;
        import sasukz.htmc.items.ItemIngotSilver;
        import sasukz.htmc.items.ItemIngotTin;
        import sasukz.htmc.items.ItemSilicon;
        import sasukz.htmc.items.ItemWrench;
        import sasukz.htmc.network.HTMCGUIHandler;
        import sasukz.htmc.proxy.CommonProxy;
        import cpw.mods.fml.common.Mod;
        import cpw.mods.fml.common.Mod.EventHandler;
        import cpw.mods.fml.common.Mod.Instance;
        import cpw.mods.fml.common.SidedProxy;
        import cpw.mods.fml.common.event.FMLInitializationEvent;
        import cpw.mods.fml.common.event.FMLPostInitializationEvent;
        import cpw.mods.fml.common.event.FMLPreInitializationEvent;
        import cpw.mods.fml.common.network.NetworkRegistry;
        import cpw.mods.fml.common.registry.GameRegistry;
        import cpw.mods.fml.relauncher.Side;
        import cpw.mods.fml.relauncher.SideOnly;
        
        @Mod(modid="htmc", name="HTMC Mod", version="MC 1.7.10")
        public class HTMC {
        @Instance("htmc")
        public static HTMC instance;
        
        @SidedProxy(clientSide="sasukz.htmc.proxy.ClientProxy", serverSide="sasukz.htmc.proxy.CommonProxy")
        public static CommonProxy proxy;
        
        public static final String MODID = "htmc";
        
        public static HTMCWorldGen worldgen = new HTMCWorldGen();
        
        public static Block t_TinOre;
        public static Block t_CopperOre;
        public static Block t_SilverOre;
        public static Block t_UraniumOre;
        public static Block t_LeadOre;
        public static Block t_AluminumOre;
        public static Block t_SiliconOre;
        public static Block t_Combiner;
        public static Block t_Macerator;
        public static Block t_CopperCable;
        
        public static Item i_CopperIngot;
        public static Item i_TinIngot;
        public static Item i_SilverIngot;
        public static Item i_LeadIngot;
        public static Item i_AluminumIngot;
        public static Item i_BronzeIngot;
        public static Item i_Silicon;
        public static Item i_AluminumPlate;
        public static Item i_BasicCircuit;
        public static Item i_Wrench;
        public static Item i_CopperDust;
        public static Item i_TinDust;
        public static Item i_AluminumDust;
        public static Item i_LeadDust;
        public static Item i_SilverDust;
        
        public static CreativeTabs ctab_mat = new CreativeTabs("htmc_materials") {
           @Override
           public Item getTabIconItem() {
               return HTMC.i_CopperIngot;
           }
        
           @SideOnly(Side.CLIENT)
           public int func_151243_f() {
                return 0;
           }
        };
        public static CreativeTabs ctab_comp = new CreativeTabs("htmc_components") {
        @Override
        public Item getTabIconItem() {
        return HTMC.i_BasicCircuit;
        }
        
        @SideOnly(Side.CLIENT)
        public int func_151243_f() {
        return 0;
        }
        };
        public static CreativeTabs ctab_mach = new CreativeTabs("htmc_machines") {
        @Override
        public Item getTabIconItem() {
        return Item.getItemFromBlock(HTMC.t_Combiner);
        }
        
        @SideOnly(Side.CLIENT)
        public int func_151243_f() {
        return 0;
        }
        };
        
        @EventHandler
        
        public static void preInit(FMLPreInitializationEvent e) {
        GameRegistry.registerWorldGenerator(worldgen, 0);
        
        // BLOCKS –-
        
        t_TinOre = new BlockOreTin(Material.rock);
        GameRegistry.registerBlock(t_TinOre, "ore_tin");
        
        t_CopperOre = new BlockOreCopper(Material.rock);
        GameRegistry.registerBlock(t_CopperOre, "ore_copper");
        
        t_SilverOre = new BlockOreSilver(Material.rock);
        GameRegistry.registerBlock(t_SilverOre, "ore_silver");
        
        t_UraniumOre = new BlockOreUranium(Material.rock);
        GameRegistry.registerBlock(t_UraniumOre, "ore_uranium");
        
        t_LeadOre = new BlockOreLead(Material.rock);
        GameRegistry.registerBlock(t_LeadOre, "ore_lead");
        
        t_AluminumOre = new BlockOreAluminum(Material.rock);
        GameRegistry.registerBlock(t_AluminumOre, "ore_aluminum");
        
        t_SiliconOre = new BlockOreSilicon(Material.rock);
        GameRegistry.registerBlock(t_SiliconOre, "ore_silicon");
        
        t_Combiner = new BlockCombiner(Material.rock);
        GameRegistry.registerBlock(t_Combiner, "combiner");
        
        t_Macerator = new BlockMacerator(Material.rock);
        GameRegistry.registerBlock(t_Macerator, "macerator");
        
        t_CopperCable = new BlockCopperCable(Material.iron);
        GameRegistry.registerBlock(t_CopperCable, "copper_cable");
        
        // ITEMS ---
        
        i_CopperIngot = new ItemIngotCopper();
        GameRegistry.registerItem(i_CopperIngot, "ingot_copper");
        
        i_TinIngot = new ItemIngotTin();
        GameRegistry.registerItem(i_TinIngot, "ingot_tin");
        
        i_SilverIngot = new ItemIngotSilver();
        GameRegistry.registerItem(i_SilverIngot, "ingot_silver");
        
        i_LeadIngot = new ItemIngotLead();
        GameRegistry.registerItem(i_LeadIngot, "ingot_lead");
        
        i_AluminumIngot = new ItemIngotAluminum();
        GameRegistry.registerItem(i_AluminumIngot, "ingot_aluminum");
        
        i_Silicon = new ItemSilicon();
        GameRegistry.registerItem(i_Silicon, "silicon");
        
        i_BasicCircuit = new ItemBasicCircuit();
        GameRegistry.registerItem(i_BasicCircuit, "basic_circuit");
        
        i_AluminumPlate = new ItemAluminumPlate();
        GameRegistry.registerItem(i_AluminumPlate, "aluminum_plate");
        
        i_Wrench = new ItemWrench();
        GameRegistry.registerItem(i_Wrench, "wrench");
        
        i_CopperDust = new ItemDustCopper();
        GameRegistry.registerItem(i_CopperDust, "dust_copper");
        
        i_TinDust = new ItemDustTin();
        GameRegistry.registerItem(i_TinDust, "dust_tin");
        
        i_BronzeIngot = new ItemIngotBronze();
        GameRegistry.registerItem(i_BronzeIngot, "ingot_bronze");
        
        i_AluminumDust = new ItemDustAluminum();
        GameRegistry.registerItem(i_AluminumDust, "dust_aluminum");
        
        i_LeadDust = new ItemDustLead();
        GameRegistry.registerItem(i_LeadDust, "dust_lead");
        
        i_SilverDust = new ItemDustSilver();
        GameRegistry.registerItem(i_SilverDust, "dust_silver");
        }
        
        @EventHandler
        public static void init(FMLInitializationEvent e) {
        proxy.registerRender();
        
        GameRegistry.registerTileEntity(TECombiner.class, MODID+":combiner");
        GameRegistry.registerTileEntity(TEMacerator.class, MODID+":macerator");
        System.out.println("[DEBUG] TileEntity enregistré.");
        GameRegistry.registerTileEntity(TECopperCable.class, MODID+":copper_cable");
        
        HTMCRecipes.addRecipes();
        HTMCRecipes.addSmeltings();
        }
        
        @EventHandler
        public static void postInit(FMLPostInitializationEvent e) {
        NetworkRegistry.INSTANCE.registerGuiHandler(instance, new HTMCGUIHandler());
        }
        }
        

        :::

        Mes mods :

        • Cookie Ore (1.7.10)

        Mod en cours : **E…

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

          Je ne vois aucun problème, essaye de créer un nouveau monde puis de replacer des blocs.
          Le seul truc que je trouve étrange, c’est que tes fonctions init, preInit sont statics dans ta classe principale, normalement il n’y a pas besoin.

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

            ça marche toujours pas 😞

            Je suis certain que le problème vient de mon TESR, la méthode est jamais appelée.

            Mes mods :

            • Cookie Ore (1.7.10)

            Mod en cours : **E…

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

              Pourtant ton TESR est bien enregistré dans le client proxy, à la limite envoie un zip de ton dossier src, je vais regarder quand j’aurai le temps.

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

                Bonjour,

                J’ai donc ajouté un rendu Techne à mon bloc grâce au super tuto de robin mais j’ai un soucis quand je regarde mon block dans mon mod je lag énormément …

                Par déduction je pense que ceci vient du nombre de tick par seconde et je voudrais savoir si il était possible de le diminuer.

                et si oui comment.

                Merci d’avance

                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 me semble pas que ce soit possible de réduire ça.
                  Ton modèle ressemble à quoi ? Car j’ai jamais eu de grosse chute de fps à cause d’un TESR …

                  1 réponse Dernière réponse Répondre Citer 0
                  • 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
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 2 / 6
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB