• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Les metadata de bloc

Les blocs
1.6.x
11
56
18.3k
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.
  • U
    ulysse1976 dernière édition par 25 juil. 2013, 13:16

    @‘EclipseOnFire’:

    ulysse je comprend tout à fait ton point de vue mais je pense que si les développeurs de Mojang ont choisi de faire une classe/bloc c’est pas pour rien. Ce ne sont pourtant pas des débutants en programmation.
    Je ne comprend pas pourquoi moi non plus mais il doit bien y avoir une raison 🙂

    Non mais la se sont des classes qui sont écrites par nous même il n’est pas question de changer la classe Block de Majong.

    ma vie de minecraftien: Ulyssecraft

    1 réponse Dernière réponse Répondre Citer 0
    • kevin_68
      kevin_68 Moddeurs confirmés dernière édition par 25 juil. 2013, 14:19

      Petity fail:

      Majong

      c’est un jeu, c’est pas la même chose que Mojang


      Mettez à jours vers la dernière version stable (1.8.9 voir même…

      1 réponse Dernière réponse Répondre Citer 0
      • U
        ulysse1976 dernière édition par 25 juil. 2013, 14:49

        oups fourchage de doigts 😛

        ma vie de minecraftien: Ulyssecraft

        1 réponse Dernière réponse Répondre Citer 0
        • EclipseOnFire
          EclipseOnFire dernière édition par 25 juil. 2013, 21:56

          Non je ne parle pas de modifier. Je parle de suivre l’exemple initial. Je voulais dire que si les développeurs de Mojang ont décidé de faire un bloc/classe c’est pour une bonne raison, et je pense que l’on devrait suivre cette démarche 🙂 (Attention, je ne dis pas que ton code est nul/mauvais/inutile !)

          Travaille sur un super serveur, Wirestone.

          1 réponse Dernière réponse Répondre Citer 0
          • P
            PoLePanda dernière édition par 1 déc. 2013, 18:57

            Quelque questions … Comment on ajoute des propriété a nos blocs dans les metadata ?

            du genre :

            
            public int quantityDropped(Random par1Random)
            {
            return 0;
            }
            
            public int getRenderBlockPass()
            {
            return 0;
            }
            
            public boolean isOpaqueCube()
            {
            return false;
            }
            
            public boolean renderAsNormalBlock()
            {
            return false;
            }
            
            

            Ou tout les propriété lister ici : Customiser votre bloc ?

            Merci de vos réponse !

            1 réponse Dernière réponse Répondre Citer 0
            • kevin_68
              kevin_68 Moddeurs confirmés dernière édition par 1 déc. 2013, 19:02

              Les fontions qui n’ont pas “int metadata”, “World world, int x, int y, int z” ou “BlockAccess blockaccess, int x, int y, int z” ne peuvent pas être utilisées en metadata.
              Pour le drop:

              public ArrayList <itemstack>getBlockDropped(World world, int x, int y, int z, int metadata, int fortune)
              {
              ArrayList <itemstack>ret = new ArrayList<itemstack>();
              int count = quantityDropped(metadata, fortune, world.rand);
              for(int i = 0; i < count; i++)
              {
              int id = idDropped(metadata, world.rand, fortune);
              if (id > 0)
              {
              ret.add(new ItemStack(id, 1, damageDropped(metadata)));
              }
              }
              return ret;
              }

              Pour le rendu, c’est dans la classe du render qu’il faut check le metadata et faire la différence.</itemstack></itemstack></itemstack>


              Mettez à jours vers la dernière version stable (1.8.9 voir même…

              1 réponse Dernière réponse Répondre Citer 0
              • P
                PoLePanda dernière édition par 1 déc. 2013, 23:06

                Donc du coups si ma texture de bloc est transparente je fais comment ?

                et si on veut faire la forme d’un bloc déjà existant on fait comment parce que la je comprend pas trop…

                public int getRenderType()
                {
                return 32;
                }

                tout ça dans les metadata bien sur ! Merci encore !

                1 réponse Dernière réponse Répondre Citer 0
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 2 déc. 2013, 11:29

                  Les fonctions qui n’ont pas metadata en paramètre (ou world, x, y, z ou iblockaccess, x, y, z) sont appliquer à tout les metadata.
                  Si tu veux un rendu différent, il faut utiliser un autre id, ou alors faire un rendu custom et dans le rendu tu appliques le rendu en fonction du metadata (cf rendu complexe de bloc via ISBRH).

                  1 réponse Dernière réponse Répondre Citer 0
                  • P
                    PoLePanda dernière édition par 2 déc. 2013, 14:11

                    Les fonctions qui n’ont pas metadata en paramètre (ou world, x, y, z ou iblockaccess, x, y, z) sont appliquer à tout les metadata.

                    Sa veux dire que ça s’est déjà dans les metadatas ?

                    public int quantityDropped(Random par1Random)
                    {
                    return 0;
                    }
                    public int getRenderBlockPass()
                    {
                    return 0;
                    }
                    public boolean isOpaqueCube()
                    {
                    return false;
                    }

                    Alors pour quoi mes vitres son pas transparentes… ??

                    package mods.block;
                    import java.util.ArrayList;
                    import java.util.List;
                    import java.util.Random;
                    import net.minecraft.block.Block;
                    import net.minecraft.block.material.Material;
                    import net.minecraft.client.renderer.texture.IconRegister;
                    import net.minecraft.creativetab.CreativeTabs;
                    import net.minecraft.item.ItemStack;
                    import net.minecraft.util.Icon;
                    import net.minecraft.world.World;
                    import cpw.mods.fml.relauncher.Side;
                    import cpw.mods.fml.relauncher.SideOnly;
                    public class BlockVitreColorer extends Block{
                    public BlockVitreColorer(int id, Material Materials) {
                    super(id, Materials);
                    this.setCreativeTab(CreativeTabs.tabDecorations);
                    }
                    public static String[] type = new String[]{"Glass-White", "Glass-Orange", "Glass-Magenta", "Glass-LightBlue", "Glass-Yellow", "Glass-Lime", "Glass-Pink", "Glass-Gray","Glass-LightGrey","Glass-Cyan","Glass-Purple","Glass-Blue","Glass-Brown","Glass-Green","Glass-Red","Glass-Black"};
                    private Icon[] IconArray;
                    public void registerIcons(IconRegister iconregister)
                    {
                    IconArray = new Icon[type.length];
                    for(int i = 0; i < type.length; i++)
                    {
                    IconArray* = iconregister.registerIcon("mods:" + type*);
                    }
                    }
                    @SideOnly(Side.CLIENT)
                    public void getSubBlocks(int id, CreativeTabs creativeTabs, List list)
                    {
                    for(int metadata = 0; metadata < type.length; metadata++)
                    {
                    list.add(new ItemStack(id, 1, metadata));
                    }
                    }
                    @SideOnly(Side.CLIENT)
                    public Icon getIcon(int side, int metadata)
                    {
                    return metadata < type.length && metadata >= 0 ? IconArray[metadata] : IconArray[0];
                    }
                    public ArrayList <itemstack>getBlockDropped(World world, int x, int y, int z, int metadata, int fortune)
                    {
                    ArrayList <itemstack>ret = new ArrayList<itemstack>();
                    int count = quantityDropped(metadata, fortune, world.rand);
                    for(int i = 0; i < count; i++)
                    {
                    int id = idDropped(metadata, world.rand, fortune);
                    if (id > 0)
                    {
                    ret.add(new ItemStack(id, 0, damageDropped(metadata)));
                    }
                    }
                    return ret;
                    }
                    }

                    J’ai repris les textures de la 1.7 donc il son belle et bien transparente !
                    dsl mais j’arrive vraiment pas a comprendre…Merci</itemstack></itemstack></itemstack>

                    1 réponse Dernière réponse Répondre Citer 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 2 déc. 2013, 19:16

                      Remplace l’extends Block par extends BlockGlass
                      Le constructeur sera comme ça :

                      public BlockVitreColorer(int id, Material Materials, boolean b) {
                      super(id, Materials, b);
                      this.setCreativeTab(CreativeTabs.tabDecorations);
                      }

                      Dans ta classe principale, remplace le new BlockVitreColorer(id, Material.glass) par new BlockVitreColorer(id, Material.glass, false)
                      Normalement ça devrait être bon.

                      1 réponse Dernière réponse Répondre Citer 0
                      • P
                        PoLePanda dernière édition par 4 déc. 2013, 00:15

                        Je suis dsl… mais ça fonctionne pas 😞 😞 mes vitre son toujours opaque

                        d’âpres moi le soucie vien d’ici quand on déclare les texture non ?

                        avec le iconregister?

                        
                        public static String[] type = new String[]{"Glass-White", "Glass-Orange", "Glass-Magenta", "Glass-LightBlue", "Glass-Yellow", "Glass-Lime", "Glass-Pink", "Glass-Gray","Glass-LightGrey","Glass-Cyan","Glass-Purple","Glass-Blue","Glass-Brown","Glass-Green","Glass-Red","Glass-Black"};
                        private Icon[] IconArray;
                        
                        public void registerIcons(IconRegister iconregister)
                        {
                        IconArray = new Icon[type.length];
                        for(int i = 0; i < type.length; i++)
                        {
                        IconArray* = iconregister.registerIcon("mods:" + type*);
                        }
                        }
                        
                        
                        1 réponse Dernière réponse Répondre Citer 0
                        • utybo
                          utybo dernière édition par 4 déc. 2013, 06:07

                          Du coup, soit tes textures ne sont pas transparentes, soit y’a un gros problème…

                          Moddeur à la retraite et développeur de trucs en Java.

                          J'aide les gens comme je peux, alors si mon message v…

                          1 réponse Dernière réponse Répondre Citer 0
                          • P
                            PoLePanda dernière édition par 4 déc. 2013, 21:25

                            Bien test le code tu verra bien … et oui mes textures son bien transparente 😞

                            1 réponse Dernière réponse Répondre Citer 0
                            • P
                              PoLePanda dernière édition par 6 déc. 2013, 21:11

                              up ! merci 😞

                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 6 déc. 2013, 23:18

                                public int getRenderBlockPass()
                                {
                                return 1;
                                }

                                À mettre dans la classe du bloc, si tu l’as déjà remplace juste le 0 par 1.
                                Normalement les rendus avec transparences sont sur 1, je sais pas pourquoi le verre de minecraft est sur 0 (mystère ?)
                                Parcontre ça fait que le rendu sur le monde, en main il est toujours non transparent, j’ai pas trouvé ce que gère ça.

                                1 réponse Dernière réponse Répondre Citer 0
                                • P
                                  PoLePanda dernière édition par 7 déc. 2013, 16:51

                                  @‘robin4002’:

                                  public int getRenderBlockPass()
                                  {
                                  return 1;
                                  }

                                  À mettre dans la classe du bloc, si tu l’as déjà remplace juste le 0 par 1.
                                  Normalement les rendus avec transparences sont sur 1, je sais pas pourquoi le verre de minecraft est sur 0 (mystère ?)
                                  Parcontre ça fait que le rendu sur le monde, en main il est toujours non transparent, j’ai pas trouvé ce que gère ça.

                                  Merci beaucoup ca fonctione :shy::rolleyes:

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • V
                                    virgille dernière édition par 31 mars 2014, 15:07

                                    Bonjour à tous,

                                    Je me permets de poster un message car je rencontre des soucis avec mon mod.

                                    Le premier est qu’il me manque 4 blocks Ingame. ( id: 2000:6 2000:7 2000:8 2000:9 )
                                    Le deuxième est qu’il n’y a pas de textures Ingame.

                                    J’ai essayé de résoudre mon problème seul mais je n’y arrive pas ( je suis en 1er année de programmation :s, il me manque encore pas mal de matière pour tout comprendre) alors ne soyez pas trop vache pour mes conneries. 😛

                                    package gGbis.common;
                                    import net.minecraft.block.Block;
                                    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.event.FMLInitializationEvent;
                                    import cpw.mods.fml.common.event.FMLPostInitializationEvent;
                                    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                                    import cpw.mods.fml.common.network.NetworkMod;
                                    import cpw.mods.fml.common.registry.GameRegistry;
                                    @Mod(modid = "GG-Minerais", name = "GG-Minerais", version = "1.0.0")
                                    @NetworkMod(clientSideRequired = true, serverSideRequired = false)
                                    public class BlockMinerais
                                    {
                                    public static Block Minerais, MineraisMetadata;
                                    @Instance("BlockMinerais")
                                    public static BlockMinerais instance;
                                    //declaration des blocks
                                    @EventHandler
                                    public void PreInit(FMLPreInitializationEvent event)
                                    {
                                    //–---blocks----
                                    MineraisMetadata = new BlockMineraisMetadata (2000).setHardness(2.0F).setResistance(10.0F)
                                    .setStepSound(Block.soundStoneFootstep).setUnlocalizedName("MineraisMetadata");
                                    //----Enregistrement des blocks----
                                    GameRegistry.registerBlock(MineraisMetadata, ItemBlockMineraisMetadata.class, "MineraisMetadata", "GG-Minerais");
                                    }
                                    @EventHandler
                                    public void Init(FMLInitializationEvent event)
                                    {
                                    }
                                    @EventHandler
                                    public void PostInit(FMLPostInitializationEvent event)
                                    {
                                    }
                                    }
                                    package gGbis.common;
                                    import java.util.List;
                                    import net.minecraft.block.Block;
                                    import net.minecraft.block.material.Material;
                                    import net.minecraft.client.renderer.texture.IconRegister;
                                    import net.minecraft.creativetab.CreativeTabs;
                                    import net.minecraft.item.ItemStack;
                                    import net.minecraft.util.Icon;
                                    import cpw.mods.fml.relauncher.Side;
                                    import cpw.mods.fml.relauncher.SideOnly;
                                    public class BlockMineraisMetadata extends Block
                                    {
                                    public static String[] type = new String[]{"block0","minerai0",
                                    "block1","minerai1",
                                    "block2","minerai2",
                                    "block3", "minerai3",
                                    "block4","minerai4",
                                    "block5","minerai5",
                                    "block6", "minerai6",
                                    "block7","minerai7"};
                                    private Icon[] IconArray;
                                    public BlockMineraisMetadata(int id)
                                    {
                                    super(id, Material.rock);
                                    this.setCreativeTab(CreativeTabs.tabBlock);
                                    }
                                    public void registerIcons(IconRegister iconregister)
                                    {
                                    IconArray = new Icon[type.length];
                                    for(int i = 0; i < type.length; i++)
                                    {
                                    IconArray* = iconregister.registerIcon("gg-minerais:" + type*);
                                    }
                                    }
                                    @SideOnly(Side.CLIENT)
                                    public void getSubBlocks(int id, CreativeTabs creativeTabs, List list)
                                    {
                                    for(int metadata = 0; metadata < type.length; metadata++)
                                    {
                                    list.add(new ItemStack(id, 1, metadata));
                                    }
                                    }
                                    @SideOnly(Side.CLIENT)
                                    public Icon getIcon(int side, int metadata)
                                    {
                                    return metadata < type.length && metadata >= 0 ? IconArray[metadata] : IconArray[0];
                                    }
                                    public int damageDropped(int metadata)
                                    {
                                    return metadata;
                                    }
                                    }
                                    package gGbis.common;
                                    import net.minecraft.item.ItemBlock;
                                    import net.minecraft.item.ItemStack;
                                    public class ItemBlockMineraisMetadata extends ItemBlock {
                                    public ItemBlockMineraisMetadata(int id) {
                                    super(id);
                                    this.setHasSubtypes(true);
                                    }
                                    public int getMetadata(int metadata)
                                    {
                                    return metadata;
                                    }
                                    public String getUnlocalizedName(ItemStack stack)
                                    {
                                    int metadata = stack.getItemDamage();
                                    if(metadata > BlockMineraisMetadata.type.length || metadata < 0)
                                    {
                                    metadata = 0;
                                    }
                                    return super.getUnlocalizedName() + "." + BlockMineraisMetadata.type[metadata];
                                    }
                                    }
                                    1 réponse Dernière réponse Répondre Citer 0
                                    • jglrxavpok
                                      jglrxavpok Modérateurs dernière édition par 31 mars 2014, 15:44

                                      1. Ton modid dans @Mod et dans @Instance n’est pas le même.
                                      2. Vérifie que tes textures sont bien dans:
                                      /assets/gg-minerais/textures/blocks/block0.png
                                      /assets/gg-minerais/textures/blocks/minerai0.png
                                      /assets/gg-minerais/textures/blocks/block1.png
                                      /assets/gg-minerais/textures/blocks/minerai1.png

                                      etc.

                                      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
                                      • Phenix246
                                        Phenix246 Rédacteurs dernière édition par 31 mars 2014, 15:53

                                        Pour tes texture vérifie leurs noms : “assets\gg-minerais\textures\blocks\block0.png”.

                                        Pour ton autres problème il n’y a aucune raison que ça ne marche pas, mais j’ai peut être loupé quelque chose, fournis nous des screens de ton problème c’est toujours plus parlant.

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • V
                                          virgille dernière édition par 31 mars 2014, 16:18

                                          Et bien merci à vous, ces deux erreurs étaient bien à l’origine de mon manque de texture :

                                          • La première était le soucis du modid
                                          • la seconde un oubli de “s” dans le /assets/blockS ^^"

                                          Pour les ids manquantes le souci reste inchangé. Je déclare dans mon tableau 16 positions.

                                          public static String[] type = new String[]{"block0","minerai0",
                                          "block1","minerai1",
                                          "block2","minerai2",
                                          "block3", "minerai3",
                                          "block4","minerai4",
                                          "block5","minerai5",
                                          "block6", "minerai6",
                                          "block7","minerai7"};

                                          Et Ingame je n’en ai que 12 :s

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • 1
                                          • 2
                                          • 3
                                          • 2 / 3
                                          21 sur 56
                                          • Premier message
                                            21/56
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB