MFF

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

    Comment créer de nouvelles dalles

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.12.x
    39 Messages 6 Publieurs 4.8k Vues 1 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.
    • huggetsH Hors-ligne
      huggets
      dernière édition par

      @‘robin4002’:

      Il n’y a que l’initialisation ici, pas l’enregistrement.
      Tu utilises ta fonction setBlockName où ?

      Je mets cette méthode dans le constructeur de la classe de mon bloc.
      Et j’enregistre mon bloc dans une fonction registerAll de la classe RegisterHandler en écrivant classeBlock.CONSTANTE_BLOCK comme c’est mis dans le tutoriel sur les blocs

      Sans la programmation nous ne pourrions pas être réuni sur ce forum, ni ailleurs sur internet :)

      J'ai et je suis content d'avoir 39.71 points [u…

      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

        Et tu as bien enregistré tous les blocs ?
        Je trouve ça assez étrange de se retrouver avec un nom dans le registre sans avoir de bloc associé.
        Tu peux envoyer le constructeur du bloc en question ?

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

          @‘robin4002’:

          Et tu as bien enregistré tous les blocs ?
          Je trouve ça assez étrange de se retrouver avec un nom dans le registre sans avoir de bloc associé.
          Tu peux envoyer le constructeur du bloc en question ?

          J’envoie carrément toute la classe car j’ai un peu recopié sur la classe BlockStoneSlab :

          package com.huggets.mt.blocks;
          
          import com.huggets.mt.MoreThings;
          import com.huggets.mt.material.MoreThingsMapColor;
          
          import net.minecraft.block.BlockSlab;
          import net.minecraft.block.material.Material;
          import net.minecraft.block.properties.IProperty;
          import net.minecraft.block.properties.PropertyBool;
          import net.minecraft.block.properties.PropertyEnum;
          import net.minecraft.block.state.BlockStateContainer;
          import net.minecraft.block.state.IBlockState;
          import net.minecraft.creativetab.CreativeTabs;
          import net.minecraft.item.ItemStack;
          import net.minecraft.util.IStringSerializable;
          
          public abstract class CopperSlab extends BlockSlab
          {
              public static final String NAME = "copper_slab";
              public static final PropertyBool SEAMLESS = PropertyBool.create("seamless");
              public static final PropertyEnum <copperslab.enumtype>VARIANT = PropertyEnum.<copperslab.enumtype>create("variant",CopperSlab.EnumType.class);
          
              public CopperSlab()
              {
                  super(Material.IRON);
                  IBlockState iblockstate = this.blockState.getBaseState();
          
                  if (this.isDouble())
                  {
                      iblockstate = iblockstate.withProperty(SEAMLESS, Boolean.valueOf(false));
                  } else
                  {
                      iblockstate = iblockstate.withProperty(HALF, BlockSlab.EnumBlockHalf.BOTTOM);
                  }
          
                  this.setDefaultState(iblockstate.withProperty(VARIANT, CopperSlab.EnumType.COPPER));
                  this.setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
          
                  MoreThingsBlocks.setBlockName(this, NAME);
                  setCreativeTab(MoreThings.MORETHINGSCREATIVETABS);
              }
          
              @Override
              public String getUnlocalizedName(int meta)
              {
                  return null;
              }
          
              @Override
              public IProperty getVariantProperty()
              {
                  return null;
              }
          
              @Override
              public Comparable getTypeForItem(ItemStack stack)
              {
                  return null;
              }
          
              protected BlockStateContainer createBlockState()
              {
                  return this.isDouble() ? new BlockStateContainer(this, new IProperty[] { SEAMLESS, VARIANT }) : new BlockStateContainer(this, new IProperty[] { HALF, VARIANT });
              }
          
              public static enum EnumType implements IStringSerializable
              {
                  COPPER(0, MoreThingsMapColor.COPPER, "copper");
          
                  private static final EnumType[] META_LOOKUP = new CopperSlab.EnumType[values().length];
                  private final int meta;
                  private final MoreThingsMapColor mapColor;
                  private final String name;
                  private final String unlocalizedName;
          
                  private EnumType(int p_i46381_3_, MoreThingsMapColor p_i46381_4_, String p_i46381_5_)
                  {
                      this(p_i46381_3_, p_i46381_4_, p_i46381_5_, p_i46381_5_);
                  }
          
                  private EnumType(int p_i46382_3_, MoreThingsMapColor p_i46382_4_, String p_i46382_5_, String p_i46382_6_)
                  {
                      this.meta = p_i46382_3_;
                      this.mapColor = p_i46382_4_;
                      this.name = p_i46382_5_;
                      this.unlocalizedName = p_i46382_6_;
                  }
          
                  public int getMetadata()
                  {
                      return this.meta;
                  }
          
                  public MoreThingsMapColor getMapColor()
                  {
                      return this.mapColor;
                  }
          
                  public String toString()
                  {
                      return this.name;
                  }
          
                  public static CopperSlab.EnumType byMetadata(int meta)
                  {
                      if (meta < 0 || meta >= META_LOOKUP.length)
                      {
                          meta = 0;
                      }
          
                      return META_LOOKUP[meta];
                  }
          
                  public String getName()
                  {
                      return this.name;
                  }
          
                  public String getUnlocalizedName()
                  {
                      return this.unlocalizedName;
                  }
          
                  static
                  {
                      for (CopperSlab.EnumType copperslab$enumtype : values())
                      {
                          META_LOOKUP[copperslab$enumtype.getMetadata()] = copperslab$enumtype;
                      }
                  }
          
              }
          
               /**
               * Convert the given metadata into a BlockState for this Block
               */
              @Override
              public IBlockState getStateFromMeta(int meta)
              {
                  IBlockState iblockstate = this.getDefaultState().withProperty(VARIANT, CopperSlab.EnumType.byMetadata(meta & 7));
          
                  if (this.isDouble())
                  {
                      iblockstate = iblockstate.withProperty(SEAMLESS, Boolean.valueOf((meta & 8) != 0));
                  }
                  else
                  {
                      iblockstate = iblockstate.withProperty(HALF, (meta & 8) == 0 ? BlockSlab.EnumBlockHalf.BOTTOM : BlockSlab.EnumBlockHalf.TOP);
                  }
          
                  return iblockstate;
              }
          
              /**
               * Convert the BlockState into the correct metadata value
               */
              @Override
              public int getMetaFromState(IBlockState state)
              {
                  int i = 0;
                  i = i | ((CopperSlab.EnumType)state.getValue(VARIANT)).getMetadata();
          
                  if (this.isDouble())
                  {
                      if (((Boolean)state.getValue(SEAMLESS)).booleanValue())
                      {
                          i |= 8;
                      }
                  }
                  else if (state.getValue(HALF) == BlockSlab.EnumBlockHalf.TOP)
                  {
                      i |= 8;
                  }
          
                  return i;
              }
          }
          
          ```</copperslab.enumtype></copperslab.enumtype>

          Sans la programmation nous ne pourrions pas être réuni sur ce forum, ni ailleurs sur internet :)

          J'ai et je suis content d'avoir 39.71 points [u…

          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 comprends mieux le soucis.
            Ce constructeur est commun a tes deux blocs, du-coup tu te retrouve avec les deux blocs (la moitié de dalle et la complète) ayant le même nom de registre (copper_slab)

            Il faudrait donner un nom différent à ces deux blocs.

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

              @‘robin4002’:

              Je comprends mieux le soucis.
              Ce constructeur est commun a tes deux blocs, du-coup tu te retrouve avec les deux blocs (la moitié de dalle et la complète) ayant le même nom de registre (copper_slab)

              Il faudrait donner un nom différent à ces deux blocs.

              Ok je change le nom de registre. Mais faut-il mettre un nom non localisé différents pour les deux blocs ou je peux laisser copper_slab ?

              Sans la programmation nous ne pourrions pas être réuni sur ce forum, ni ailleurs sur internet :)

              J'ai et je suis content d'avoir 39.71 points [u…

              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 faut deux noms de registre différent. Pour le nom non localisé ce n’est pas un soucis.

                C’est pour ça que perso je préfère garder ces deux fonctions à part et non les grouper en une.

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

                  La création de dalles m’en fais voir de toute les couleurs, j’ai beau chercher, modifier ou refaire, je ne sais pas d’où viens mon erreur  😢  :

                  2018-05-09 18:08:25,547 main WARN Disabling terminal, you're running in an unsupported environment.
                  [18:08:25] [main/INFO] [GradleStart]: username: hujalobill@hotmail.fr
                  [18:08:25] [main/INFO] [GradleStart]: Extra: []
                  [18:08:25] [main/INFO] [GradleStart]: Password found, attempting login
                  [18:08:25] [main/INFO] [com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication]: Logging in with username & password
                  [18:08:26] [main/INFO] [GradleStart]: Login Succesful!
                  [18:08:26] [main/INFO] [GradleStart]: Running with arguments: [–userProperties, [], –assetsDir, C:/Users/hujal/.gradle/caches/minecraft/assets, --assetIndex, 1.12, --userType, mojang, --accessToken{REDACTED}, --version, 1.12.2, --uuid, 74914fee23f84c50874a432158f0778a, --username, huggets, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
                  [18:08:26] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
                  [18:08:26] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
                  [18:08:26] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
                  [18:08:26] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
                  [18:08:26] [main/INFO] [FML]: Forge Mod Loader version 14.23.3.2655 for Minecraft 1.12.2 loading
                  [18:08:26] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_161, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jre1.8.0_161
                  [18:08:26] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
                  [18:08:26] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLCorePlugin (net.minecraftforge.fml.relauncher.FMLCorePlugin), we are in deobf and it's a forge core plugin
                  [18:08:26] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLForgePlugin (net.minecraftforge.classloading.FMLForgePlugin), we are in deobf and it's a forge core plugin
                  [18:08:26] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
                  [18:08:26] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
                  [18:08:26] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
                  [18:08:26] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
                  [18:08:26] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
                  [18:08:26] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
                  [18:08:26] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
                  [18:08:26] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
                  [18:08:26] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
                  [18:08:29] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
                  [18:08:29] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
                  [18:08:29] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
                  [18:08:30] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
                  [18:08:30] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
                  [18:08:30] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
                  [18:08:30] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
                  [18:08:31] [main/INFO] [net.minecraft.client.Minecraft]: Setting user: huggets
                  [18:08:36] [main/WARN] [net.minecraft.client.settings.GameSettings]: Skipping bad option: lastServer:
                  [18:08:36] [main/INFO] [net.minecraft.client.Minecraft]: LWJGL Version: 2.9.4
                  [18:08:38] [main/INFO] [FML]: – System Details --
                  Details:
                  Minecraft Version: 1.12.2
                  Operating System: Windows 10 (amd64) version 10.0
                  Java Version: 1.8.0_161, Oracle Corporation
                  Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
                  Memory: 400544256 bytes (381 MB) / 556269568 bytes (530 MB) up to 1892155392 bytes (1804 MB)
                  JVM Flags: 0 total;
                  IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
                  FML:
                  Loaded coremods (and transformers):
                  GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 397.31' Renderer: 'GeForce GTX 950M/PCIe/SSE2'
                  [18:08:38] [main/INFO] [FML]: MinecraftForge v14.23.3.2655 Initialized
                  [18:08:38] [main/INFO] [FML]: Starts to replace vanilla recipe ingredients with ore ingredients.
                  [18:08:38] [main/INFO] [FML]: Replaced 1036 ore ingredients
                  [18:08:38] [main/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer
                  [18:08:38] [main/INFO] [FML]: Searching C:\Users\hujal\Documents\Minecraft\modding\MORETHINGS-refait\forge-1.12.2-14.23.3.2655-mdk\run\mods for mods
                  [18:08:40] [main/INFO] [FML]: Forge Mod Loader has identified 5 mods to load
                  [18:08:40] [Thread-3/INFO] [FML]: Using sync timing. 200 frames of Display.update took 100521819 nanos
                  [18:08:40] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, mt] at CLIENT
                  [18:08:40] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, mt] at SERVER
                  [18:08:41] [main/INFO] [net.minecraft.client.resources.SimpleReloadableResourceManager]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:More Things
                  [18:08:41] [main/INFO] [FML]: Processing ObjectHolder annotations
                  [18:08:41] [main/INFO] [FML]: Found 1168 ObjectHolder annotations
                  [18:08:41] [main/INFO] [FML]: Identifying ItemStackHolder annotations
                  [18:08:41] [main/INFO] [FML]: Found 0 ItemStackHolder annotations
                  [18:08:42] [main/INFO] [FML]: Configured a dormant chunk cache size of 0
                  [18:08:42] [Forge Version Check/INFO] [forge.VersionCheck]: [forge] Starting version check at http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json
                  [18:08:42] [main/INFO] [FML]: Applying holder lookups
                  [18:08:42] [main/INFO] [FML]: Holder lookups applied
                  [18:08:42] [main/INFO] [FML]: Applying holder lookups
                  [18:08:42] [main/INFO] [FML]: Holder lookups applied
                  [18:08:42] [main/INFO] [FML]: Applying holder lookups
                  [18:08:42] [main/INFO] [FML]: Holder lookups applied
                  [18:08:42] [main/INFO] [FML]: Applying holder lookups
                  [18:08:42] [main/INFO] [FML]: Holder lookups applied
                  [18:08:42] [main/INFO] [FML]: Injecting itemstacks
                  [18:08:42] [main/INFO] [FML]: Itemstack injection complete
                  [18:08:42] [Forge Version Check/INFO] [forge.VersionCheck]: [forge] Found status: UP_TO_DATE Target: null
                  [18:09:04] [Sound Library Loader/INFO] [net.minecraft.client.audio.SoundManager]: Starting up SoundSystem…
                  [18:09:04] [Thread-5/INFO] [net.minecraft.client.audio.SoundManager]: Initializing LWJGL OpenAL
                  [18:09:04] [Thread-5/INFO] [net.minecraft.client.audio.SoundManager]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
                  [18:09:05] [Thread-5/INFO] [net.minecraft.client.audio.SoundManager]: OpenAL initialized.
                  [18:09:05] [Sound Library Loader/INFO] [net.minecraft.client.audio.SoundManager]: Sound engine started
                  [18:09:13] [main/ERROR] [FML]: Could not load vanilla model parent 'mt:block/copper_slab' for 'net.minecraft.client.renderer.block.model.ModelBlock@8d902f
                  net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model mt:block/copper_slab with loader VanillaLoader.INSTANCE, skipping
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:153) ~[ModelLoaderRegistry.class:?]
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModelOrLogError(ModelLoaderRegistry.java:203) [ModelLoaderRegistry.class:?]
                  at net.minecraftforge.client.model.ModelLoader$VanillaModelWrapper.getTextures(ModelLoader.java:405) [ModelLoader$VanillaModelWrapper.class:?]
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:163) [ModelLoaderRegistry.class:?]
                  at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:314) [ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:175) [ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:164) [ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:121) [SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.Minecraft.init(Minecraft.java:559) [Minecraft.class:?]
                  at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
                  at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                  at GradleStart.main(GradleStart.java:25) [start/:?]
                  Caused by: java.io.FileNotFoundException: mt:models/block/copper_slab.json
                  at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:69) ~[FallbackResourceManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:65) ~[SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadModel(ModelBakery.java:334) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.access$1600(ModelLoader.java:130) ~[ModelLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoader$VanillaLoader.loadModel(ModelLoader.java:880) ~[ModelLoader$VanillaLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:149) ~[ModelLoaderRegistry.class:?]
                  … 23 more
                  [18:09:13] [main/INFO] [FML]: Max texture size: 16384
                  [18:09:13] [main/INFO] [net.minecraft.client.renderer.texture.TextureMap]: Created: 512x512 textures-atlas
                  [18:09:14] [main/ERROR] [FML]: Exception loading model for variant mt:diamond_button#facing=east,powered=true for blockstate "mt:diamond_button[facing=east,powered=true]"
                  net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model mt:diamond_button#facing=east,powered=true with loader VariantLoader.INSTANCE, skipping
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:153) ~[ModelLoaderRegistry.class:?]
                  at net.minecraftforge.client.model.ModelLoader.registerVariant(ModelLoader.java:248) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadBlock(ModelBakery.java:153) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.loadBlocks(ModelLoader.java:236) ~[ModelLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:163) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:121) [SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.Minecraft.init(Minecraft.java:559) [Minecraft.class:?]
                  at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
                  at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                  at GradleStart.main(GradleStart.java:25) [start/:?]
                  Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException
                  at net.minecraft.client.renderer.block.model.ModelBlockDefinition.getVariant(ModelBlockDefinition.java:83) ~[ModelBlockDefinition.class:?]
                  at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1189) ~[ModelLoader$VariantLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:149) ~[ModelLoaderRegistry.class:?]
                  … 21 more
                  [18:09:14] [main/ERROR] [FML]: Exception loading blockstate for the variant mt:diamond_button#facing=east,powered=true:
                  java.lang.Exception: Could not load model definition for variant mt:diamond_button
                  at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:281) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadBlock(ModelBakery.java:121) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.loadBlocks(ModelLoader.java:236) ~[ModelLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:163) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:121) [SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.Minecraft.init(Minecraft.java:559) [Minecraft.class:?]
                  at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
                  at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                  at GradleStart.main(GradleStart.java:25) [start/:?]
                  Caused by: java.lang.RuntimeException: Encountered an exception when loading model definition of model mt:blockstates/diamond_button.json
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadMultipartMBD(ModelBakery.java:228) ~[ModelBakery.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.getModelBlockDefinition(ModelBakery.java:208) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:277) ~[ModelLoader.class:?]
                  … 20 more
                  Caused by: java.io.FileNotFoundException: mt:blockstates/diamond_button.json
                  at net.minecraft.client.resources.FallbackResourceManager.getAllResources(FallbackResourceManager.java:104) ~[FallbackResourceManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.getAllResources(SimpleReloadableResourceManager.java:79) ~[SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadMultipartMBD(ModelBakery.java:221) ~[ModelBakery.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.getModelBlockDefinition(ModelBakery.java:208) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:277) ~[ModelLoader.class:?]
                  … 20 more
                  [18:09:14] [main/ERROR] [FML]: Exception loading model for variant mt:emerald_button#facing=down,powered=true for blockstate "mt:emerald_button[facing=down,powered=true]"
                  net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model mt:emerald_button#facing=down,powered=true with loader VariantLoader.INSTANCE, skipping
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:153) ~[ModelLoaderRegistry.class:?]
                  at net.minecraftforge.client.model.ModelLoader.registerVariant(ModelLoader.java:248) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadBlock(ModelBakery.java:153) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.loadBlocks(ModelLoader.java:236) ~[ModelLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:163) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:121) [SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.Minecraft.init(Minecraft.java:559) [Minecraft.class:?]
                  at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
                  at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                  at GradleStart.main(GradleStart.java:25) [start/:?]
                  Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException
                  at net.minecraft.client.renderer.block.model.ModelBlockDefinition.getVariant(ModelBlockDefinition.java:83) ~[ModelBlockDefinition.class:?]
                  at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1189) ~[ModelLoader$VariantLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:149) ~[ModelLoaderRegistry.class:?]
                  … 21 more
                  [18:09:14] [main/ERROR] [FML]: Exception loading blockstate for the variant mt:emerald_button#facing=down,powered=true:
                  java.lang.Exception: Could not load model definition for variant mt:emerald_button
                  at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:281) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadBlock(ModelBakery.java:121) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.loadBlocks(ModelLoader.java:236) ~[ModelLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:163) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:121) [SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.Minecraft.init(Minecraft.java:559) [Minecraft.class:?]
                  at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
                  at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                  at GradleStart.main(GradleStart.java:25) [start/:?]
                  Caused by: java.lang.RuntimeException: Encountered an exception when loading model definition of model mt:blockstates/emerald_button.json
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadMultipartMBD(ModelBakery.java:228) ~[ModelBakery.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.getModelBlockDefinition(ModelBakery.java:208) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:277) ~[ModelLoader.class:?]
                  … 20 more
                  Caused by: java.io.FileNotFoundException: mt:blockstates/emerald_button.json
                  at net.minecraft.client.resources.FallbackResourceManager.getAllResources(FallbackResourceManager.java:104) ~[FallbackResourceManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.getAllResources(SimpleReloadableResourceManager.java:79) ~[SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadMultipartMBD(ModelBakery.java:221) ~[ModelBakery.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.getModelBlockDefinition(ModelBakery.java:208) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:277) ~[ModelLoader.class:?]
                  … 20 more
                  [18:09:14] [main/ERROR] [FML]: Exception loading model for variant mt:diamond_button#facing=north,powered=true for blockstate "mt:diamond_button[facing=north,powered=true]"
                  net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model mt:diamond_button#facing=north,powered=true with loader VariantLoader.INSTANCE, skipping
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:153) ~[ModelLoaderRegistry.class:?]
                  at net.minecraftforge.client.model.ModelLoader.registerVariant(ModelLoader.java:248) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadBlock(ModelBakery.java:153) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.loadBlocks(ModelLoader.java:236) ~[ModelLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:163) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:121) [SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.Minecraft.init(Minecraft.java:559) [Minecraft.class:?]
                  at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
                  at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                  at GradleStart.main(GradleStart.java:25) [start/:?]
                  Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException
                  at net.minecraft.client.renderer.block.model.ModelBlockDefinition.getVariant(ModelBlockDefinition.java:83) ~[ModelBlockDefinition.class:?]
                  at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1189) ~[ModelLoader$VariantLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:149) ~[ModelLoaderRegistry.class:?]
                  … 21 more
                  [18:09:14] [main/ERROR] [FML]: Exception loading model for variant mt:copper_slab#inventory for item "mt:copper_slab", normal location exception:
                  java.lang.IllegalStateException: vanilla model 'net.minecraft.client.renderer.block.model.ModelBlock@8d902f' can't have non-vanilla parent
                  at net.minecraftforge.client.model.ModelLoader$VanillaModelWrapper.getTextures(ModelLoader.java:412) ~[ModelLoader$VanillaModelWrapper.class:?]
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:163) ~[ModelLoaderRegistry.class:?]
                  at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:314) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:175) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:164) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:121) [SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.Minecraft.init(Minecraft.java:559) [Minecraft.class:?]
                  at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
                  at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                  at GradleStart.main(GradleStart.java:25) [start/:?]
                  [18:09:14] [main/ERROR] [FML]: Exception loading model for variant mt:copper_slab#inventory for item "mt:copper_slab", blockstate location exception:
                  net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model mt:copper_slab#inventory with loader VariantLoader.INSTANCE, skipping
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:153) ~[ModelLoaderRegistry.class:?]
                  at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:322) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:175) ~[ModelBakery.class:?]
                  at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:164) ~[ModelLoader.class:?]
                  at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
                  at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:121) [SimpleReloadableResourceManager.class:?]
                  at net.minecraft.client.Minecraft.init(Minecraft.java:559) [Minecraft.class:?]
                  at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
                  at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                  at GradleStart.main(GradleStart.java:25) [start/:?]
                  Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException
                  at net.minecraft.client.renderer.block.model.ModelBlockDefinition.getVariant(ModelBlockDefinition.java:83) ~[ModelBlockDefinition.class:?]
                  at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1189) ~[ModelLoader$VariantLoader.class:?]
                  at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:149) ~[ModelLoaderRegistry.class:?]
                  … 20 more
                  [18:09:14] [main/FATAL] [FML]: Suppressed additional 87 model loading errors for domain mt
                  [18:09:15] [main/INFO] [FML]: Applying holder lookups
                  [18:09:15] [main/INFO] [FML]: Holder lookups applied
                  [18:09:15] [main/INFO] [FML]: Injecting itemstacks
                  [18:09:15] [main/INFO] [FML]: Itemstack injection complete
                  [18:09:16] [main/INFO] [FML]: Forge Mod Loader has successfully loaded 5 mods
                  [18:09:16] [main/WARN] [net.minecraft.client.settings.GameSettings]: Skipping bad option: lastServer:
                  [18:09:16] [main/INFO] [com.mojang.text2speech.NarratorWindows]: Narrator library for x64 successfully loaded
                  [18:09:20] [Server thread/INFO] [net.minecraft.server.integrated.IntegratedServer]: Starting integrated minecraft server version 1.12.2
                  [18:09:20] [Server thread/INFO] [net.minecraft.server.integrated.IntegratedServer]: Generating keypair
                  [18:09:20] [Server thread/INFO] [FML]: Injecting existing registry data into this server instance
                  [18:09:20] [Server thread/INFO] [FML]: Registry Block: Found a missing id from the world mt:mtdouble_copper_slab
                  [18:09:20] [Server thread/INFO] [FML]: Registry Block: Found a missing id from the world mt:tin_slab
                  [18:09:20] [Server thread/INFO] [FML]: Registry Block: Found a missing id from the world mt:mthalf_copper_slab
                  [18:09:20] [Server thread/INFO] [FML]: Registry Block: Found a missing id from the world mt:half_copper_slab
                  [18:09:20] [Server thread/INFO] [FML]: Applying holder lookups
                  [18:09:20] [Server thread/INFO] [FML]: Holder lookups applied
                  [18:09:20] [Server thread/INFO] [FML]: Loading dimension 0 (Test mod) (net.minecraft.server.integrated.IntegratedServer@796323b5)
                  [18:09:21] [Server thread/INFO] [net.minecraft.advancements.AdvancementList]: Loaded 506 advancements
                  [18:09:21] [Server thread/INFO] [FML]: Loading dimension 1 (Test mod) (net.minecraft.server.integrated.IntegratedServer@796323b5)
                  [18:09:21] [Server thread/INFO] [FML]: Loading dimension -1 (Test mod) (net.minecraft.server.integrated.IntegratedServer@796323b5)
                  [18:09:21] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Preparing start region for level 0
                  [18:09:23] [Server thread/INFO] [FML]: Unloading dimension -1
                  [18:09:23] [Server thread/INFO] [FML]: Unloading dimension 1
                  [18:09:23] [Server thread/INFO] [net.minecraft.server.integrated.IntegratedServer]: Changing view distance to 16, from 10
                  [18:09:24] [Netty Local Client IO #0/INFO] [FML]: Server protocol version 2
                  [18:09:24] [Netty Server IO #1/INFO] [FML]: Client protocol version 2
                  [18:09:24] [Netty Server IO #1/INFO] [FML]: Client attempting to join with 5 mods : minecraft@1.12.2,FML@8.0.99.99,forge@14.23.3.2655,mt@0.0.0.1,mcp@9.42
                  [18:09:25] [Netty Local Client IO #0/INFO] [FML]: [Netty Local Client IO #0] Client side modded connection established
                  [18:09:25] [Server thread/INFO] [FML]: [Server thread] Server side modded connection established
                  [18:09:25] [Server thread/INFO] [net.minecraft.server.management.PlayerList]: huggets[local:E:1194d715] logged in with entity id 33 at (673.2385805430417, 52.0, 1485.1026096805515)
                  [18:09:25] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: huggets a rejoint la partie
                  [18:09:26] [Server thread/INFO] [net.minecraft.server.integrated.IntegratedServer]: Saving and pausing game…
                  [18:09:26] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Saving chunks for level 'Test mod'/overworld
                  [18:09:27] [main/INFO] [net.minecraft.advancements.AdvancementList]: Loaded 45 advancements
                  [18:09:29] [Server thread/FATAL] [net.minecraft.server.MinecraftServer]: Error executing task
                  java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Cannot set property PropertyEnum{name=half, clazz=class net.minecraft.block.BlockSlab$EnumBlockHalf, values=[top, bottom]} as it does not exist in BlockStateContainer{block=mt:double_copper_slab, properties=[seamless, variant]}
                  at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_161]
                  at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.util.Util.runTask(Util.java:54) [Util.class:?]
                  at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:796) [MinecraftServer.class:?]
                  at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:741) [MinecraftServer.class:?]
                  at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) [IntegratedServer.class:?]
                  at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590) [MinecraftServer.class:?]
                  at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]
                  Caused by: java.lang.IllegalArgumentException: Cannot set property PropertyEnum{name=half, clazz=class net.minecraft.block.BlockSlab$EnumBlockHalf, values=[top, bottom]} as it does not exist in BlockStateContainer{block=mt:double_copper_slab, properties=[seamless, variant]}
                  at net.minecraft.block.state.BlockStateContainer$StateImplementation.withProperty(BlockStateContainer.java:221) ~[BlockStateContainer$StateImplementation.class:?]
                  at net.minecraft.block.BlockSlab.getStateForPlacement(BlockSlab.java:117) ~[BlockSlab.class:?]
                  at net.minecraft.block.Block.getStateForPlacement(Block.java:2481) ~[Block.class:?]
                  at net.minecraft.item.ItemBlock.onItemUse(ItemBlock.java:55) ~[ItemBlock.class:?]
                  at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:875) ~[ForgeHooks.class:?]
                  at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:200) ~[ItemStack.class:?]
                  at net.minecraft.server.management.PlayerInteractionManager.processRightClickBlock(PlayerInteractionManager.java:504) ~[PlayerInteractionManager.class:?]
                  at net.minecraft.network.NetHandlerPlayServer.processTryUseItemOnBlock(NetHandlerPlayServer.java:767) ~[NetHandlerPlayServer.class:?]
                  at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:68) ~[CPacketPlayerTryUseItemOnBlock.class:?]
                  at net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock.processPacket(CPacketPlayerTryUseItemOnBlock.java:13) ~[CPacketPlayerTryUseItemOnBlock.class:?]
                  at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:21) ~[PacketThreadUtil$1.class:?]
                  at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_161]
                  at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.util.Util.runTask(Util.java:53) ~[Util.class:?]
                  … 5 more
                  [18:09:29] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Stopping server
                  [18:09:29] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Saving players
                  [18:09:29] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Saving worlds
                  [18:09:29] [Server thread/INFO] [net.minecraft.server.MinecraftServer]: Saving chunks for level 'Test mod'/overworld
                  [18:09:29] [Server thread/INFO] [FML]: Unloading dimension 0
                  [18:09:29] [Server thread/INFO] [FML]: Applying holder lookups
                  [18:09:29] [Server thread/INFO] [FML]: Holder lookups applied
                  [18:09:30] [main/FATAL] [net.minecraft.client.Minecraft]: Unreported exception thrown!
                  java.lang.IllegalArgumentException: Cannot set property PropertyEnum{name=half, clazz=class net.minecraft.block.BlockSlab$EnumBlockHalf, values=[top, bottom]} as it does not exist in BlockStateContainer{block=mt:double_copper_slab, properties=[seamless, variant]}
                  at net.minecraft.block.state.BlockStateContainer$StateImplementation.withProperty(BlockStateContainer.java:221) ~[BlockStateContainer$StateImplementation.class:?]
                  at net.minecraft.block.BlockSlab.getStateForPlacement(BlockSlab.java:117) ~[BlockSlab.class:?]
                  at net.minecraft.block.Block.getStateForPlacement(Block.java:2481) ~[Block.class:?]
                  at net.minecraft.item.ItemBlock.onItemUse(ItemBlock.java:55) ~[ItemBlock.class:?]
                  at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:201) ~[ItemStack.class:?]
                  at net.minecraft.client.multiplayer.PlayerControllerMP.processRightClickBlock(PlayerControllerMP.java:499) ~[PlayerControllerMP.class:?]
                  at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1692) ~[Minecraft.class:?]
                  at net.minecraft.client.Minecraft.processKeyBinds(Minecraft.java:2379) ~[Minecraft.class:?]
                  at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2145) ~[Minecraft.class:?]
                  at net.minecraft.client.Minecraft.runTick(Minecraft.java:1933) ~[Minecraft.class:?]
                  at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1186) ~[Minecraft.class:?]
                  at net.minecraft.client.Minecraft.run(Minecraft.java:441) [Minecraft.class:?]
                  at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
                  at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                  at GradleStart.main(GradleStart.java:25) [start/:?]
                  [18:09:30] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: –-- Minecraft Crash Report ----
                  // I'm sorry, Dave.
                  
                  Time: 5/9/18 6:09 PM
                  Description: Unexpected error
                  
                  java.lang.IllegalArgumentException: Cannot set property PropertyEnum{name=half, clazz=class net.minecraft.block.BlockSlab$EnumBlockHalf, values=[top, bottom]} as it does not exist in BlockStateContainer{block=mt:double_copper_slab, properties=[seamless, variant]}
                  at net.minecraft.block.state.BlockStateContainer$StateImplementation.withProperty(BlockStateContainer.java:221)
                  at net.minecraft.block.BlockSlab.getStateForPlacement(BlockSlab.java:117)
                  at net.minecraft.block.Block.getStateForPlacement(Block.java:2481)
                  at net.minecraft.item.ItemBlock.onItemUse(ItemBlock.java:55)
                  at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:201)
                  at net.minecraft.client.multiplayer.PlayerControllerMP.processRightClickBlock(PlayerControllerMP.java:499)
                  at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1692)
                  at net.minecraft.client.Minecraft.processKeyBinds(Minecraft.java:2379)
                  at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2145)
                  at net.minecraft.client.Minecraft.runTick(Minecraft.java:1933)
                  at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1186)
                  at net.minecraft.client.Minecraft.run(Minecraft.java:441)
                  at net.minecraft.client.main.Main.main(Main.java:118)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                  at java.lang.reflect.Method.invoke(Unknown Source)
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                  at java.lang.reflect.Method.invoke(Unknown Source)
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
                  at GradleStart.main(GradleStart.java:25)
                  
                  A detailed walkthrough of the error, its code path and all known details is as follows:
                  –-------------------------------------------------------------------------------------
                  
                  -- Head --
                  Thread: Client thread
                  Stacktrace:
                  at net.minecraft.block.state.BlockStateContainer$StateImplementation.withProperty(BlockStateContainer.java:221)
                  at net.minecraft.block.BlockSlab.getStateForPlacement(BlockSlab.java:117)
                  at net.minecraft.block.Block.getStateForPlacement(Block.java:2481)
                  at net.minecraft.item.ItemBlock.onItemUse(ItemBlock.java:55)
                  at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:201)
                  at net.minecraft.client.multiplayer.PlayerControllerMP.processRightClickBlock(PlayerControllerMP.java:499)
                  at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1692)
                  at net.minecraft.client.Minecraft.processKeyBinds(Minecraft.java:2379)
                  at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2145)
                  
                  -- Affected level --
                  Details:
                  Level name: MpServer
                  All players: 1 total; [EntityPlayerSP['huggets'/33, l='MpServer', x=673.24, y=52.00, z=1485.10]]
                  Chunk stats: MultiplayerChunkCache: 1084, 1084
                  Level seed: 0
                  Level generator: ID 01 - flat, ver 0\. Features enabled: false
                  Level generator options:
                  Level spawn location: World: (659,4,1474), Chunk: (at 3,0,2 in 41,92; contains blocks 656,0,1472 to 671,255,1487), Region: (1,2; contains chunks 32,64 to 63,95, blocks 512,0,1024 to 1023,255,1535)
                  Level time: 94665 game time, 1240 day time
                  Level dimension: 0
                  Level storage version: 0x00000 - Unknown?
                  Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
                  Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
                  Forced entities: 5 total; [EntityPig['Cochon'/1, l='MpServer', x=626.43, y=52.00, z=1424.91], EntityPig['Cochon'/2, l='MpServer', x=633.27, y=52.00, z=1426.37], EntityPig['Cochon'/3, l='MpServer', x=629.68, y=52.00, z=1446.19], EntityPig['Cochon'/8, l='MpServer', x=662.71, y=52.00, z=1408.39], EntityPlayerSP['huggets'/33, l='MpServer', x=673.24, y=52.00, z=1485.10]]
                  Retry entities: 0 total; []
                  Server brand: fml,forge
                  Server type: Integrated singleplayer server
                  Stacktrace:
                  at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:461)
                  at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2885)
                  at net.minecraft.client.Minecraft.run(Minecraft.java:470)
                  at net.minecraft.client.main.Main.main(Main.java:118)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                  at java.lang.reflect.Method.invoke(Unknown Source)
                  at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                  at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                  at java.lang.reflect.Method.invoke(Unknown Source)
                  at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
                  at GradleStart.main(GradleStart.java:25)
                  
                  – System Details --
                  Details:
                  Minecraft Version: 1.12.2
                  Operating System: Windows 10 (amd64) version 10.0
                  Java Version: 1.8.0_161, Oracle Corporation
                  Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
                  Memory: 137851232 bytes (131 MB) / 869793792 bytes (829 MB) up to 1892155392 bytes (1804 MB)
                  JVM Flags: 0 total;
                  IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
                  FML: MCP 9.42 Powered by Forge 14.23.3.2655 5 mods loaded, 5 mods active
                  States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
                  
                  | State     | ID        | Version      | Source                           | Signature |
                  |:--------- |:--------- |:------------ |:-------------------------------- |:--------- |
                  | UCHIJAAAA | minecraft | 1.12.2       | minecraft.jar                    | None      |
                  | UCHIJAAAA | mcp       | 9.42         | minecraft.jar                    | None      |
                  | UCHIJAAAA | FML       | 8.0.99.99    | forgeSrc-1.12.2-14.23.3.2655.jar | None      |
                  | UCHIJAAAA | forge     | 14.23.3.2655 | forgeSrc-1.12.2-14.23.3.2655.jar | None      |
                  | UCHIJAAAA | mt        | 0.0.0.1      | bin                              | None      |
                  
                  Loaded coremods (and transformers):
                  GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 397.31' Renderer: 'GeForce GTX 950M/PCIe/SSE2'
                  Launched Version: 1.12.2
                  LWJGL: 2.9.4
                  OpenGL: GeForce GTX 950M/PCIe/SSE2 GL version 4.6.0 NVIDIA 397.31, NVIDIA Corporation
                  GL Caps: Using GL 1.3 multitexturing.
                  Using GL 1.3 texture combiners.
                  Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
                  Shaders are available because OpenGL 2.1 is supported.
                  VBOs are available because OpenGL 1.5 is supported.
                  
                  Using VBOs: Yes
                  Is Modded: Definitely; Client brand changed to 'fml,forge'
                  Type: Client (map_client.txt)
                  Resource Packs:
                  Current Language: Français (France)
                  Profiler Position: N/A (disabled)
                  CPU: 4x Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz
                  [18:09:30] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\hujal\Documents\Minecraft\modding\MORETHINGS-refait\forge-1.12.2-14.23.3.2655-mdk\run\.\crash-reports\crash-2018-05-09_18.09.30-client.txt
                  AL lib: (EE) alc_cleanup: 1 device not closed
                  
                  

                  J’ai encore un problème avec cette erreur :

                  java.lang.IllegalArgumentException: Cannot set property PropertyEnum{name=half, clazz=class net.minecraft.block.BlockSlab$EnumBlockHalf, values=[top, bottom]} as it does not exist in BlockStateContainer{block=mt:double_copper_slab, properties=[seamless, variant]}
                  

                  J’ai essayer de modifier la méthode createBlockState() mais je ne sais pas comment faire…
                  Voici le code source de ma classe CopperSlab :

                  package com.huggets.mt.blocks;
                  
                  import com.huggets.mt.MoreThings;
                  import com.huggets.mt.material.MoreThingsMapColor;
                  
                  import net.minecraft.block.BlockSlab;
                  import net.minecraft.block.material.Material;
                  import net.minecraft.block.properties.IProperty;
                  import net.minecraft.block.properties.PropertyBool;
                  import net.minecraft.block.properties.PropertyEnum;
                  import net.minecraft.block.state.BlockStateContainer;
                  import net.minecraft.block.state.IBlockState;
                  import net.minecraft.item.ItemStack;
                  import net.minecraft.util.IStringSerializable;
                  
                  public abstract class CopperSlab extends BlockSlab
                  {
                      public static final PropertyBool SEAMLESS = PropertyBool.create("seamless");
                      public static final PropertyEnum <copperslab.enumtype>VARIANT = PropertyEnum.<copperslab.enumtype>create("variant", CopperSlab.EnumType.class);
                  
                      public CopperSlab()
                      {
                          super(Material.IRON);
                          IBlockState iblockstate = this.blockState.getBaseState();
                  
                          if (this.isDouble())
                          {
                              iblockstate = iblockstate.withProperty(SEAMLESS, Boolean.valueOf(false));
                          } else
                          {
                              iblockstate = iblockstate.withProperty(HALF, BlockSlab.EnumBlockHalf.BOTTOM);
                          }
                  
                          this.setDefaultState(iblockstate.withProperty(VARIANT, CopperSlab.EnumType.COPPER));
                          setCreativeTab(MoreThings.MORETHINGSCREATIVETABS);
                      }
                  
                      @Override
                      public String getUnlocalizedName(int meta)
                      {
                          return super.getUnlocalizedName() + "." + CopperSlab.EnumType.byMetadata(meta).getUnlocalizedName();
                      }
                  
                      @Override
                      public IProperty getVariantProperty()
                      {
                          return VARIANT;
                      }
                  
                      @Override
                      public Comparable getTypeForItem(ItemStack stack)
                      {
                          return CopperSlab.EnumType.byMetadata(stack.getMetadata() & 7);
                      }
                  
                      protected BlockStateContainer createBlockState()
                      {
                          return this.isDouble() ? new BlockStateContainer(this, new IProperty[]{ SEAMLESS, VARIANT }) : new BlockStateContainer(this, new IProperty[]{ HALF, VARIANT });
                      }
                  
                      public static enum EnumType implements IStringSerializable
                      {
                          COPPER(0, MoreThingsMapColor.COPPER, "copper_block");
                  
                          private static final EnumType[] META_LOOKUP = new CopperSlab.EnumType[values().length];
                          private final int meta;
                          private final MoreThingsMapColor mapColor;
                          private final String name;
                          private final String unlocalizedName;
                  
                          private EnumType(int meta, MoreThingsMapColor mapColor, String name)
                          {
                              this(meta, mapColor, name, name);
                          }
                  
                          private EnumType(int meta, MoreThingsMapColor mapColor, String name, String unlocalizedName)
                          {
                              this.meta = meta;
                              this.mapColor = mapColor;
                              this.name = name;
                              this.unlocalizedName = unlocalizedName;
                          }
                  
                          public int getMetadata()
                          {
                              return this.meta;
                          }
                  
                          public MoreThingsMapColor getMapColor()
                          {
                              return this.mapColor;
                          }
                  
                          public String toString()
                          {
                              return this.name;
                          }
                  
                          public static CopperSlab.EnumType byMetadata(int meta)
                          {
                              if (meta < 0 || meta >= META_LOOKUP.length)
                              {
                                  meta = 0;
                              }
                  
                              return META_LOOKUP[meta];
                          }
                  
                          public String getName()
                          {
                              return this.name;
                          }
                  
                          public String getUnlocalizedName()
                          {
                              return this.unlocalizedName;
                          }
                  
                          static
                          {
                              for (CopperSlab.EnumType copperslab$enumtype : values())
                              {
                                  META_LOOKUP[copperslab$enumtype.getMetadata()] = copperslab$enumtype;
                              }
                          }
                  
                      }
                  
                      /**
                       * Convert the given metadata into a BlockState for this Block
                       */
                      @Override
                      public IBlockState getStateFromMeta(int meta)
                      {
                          IBlockState iblockstate = this.getDefaultState().withProperty(VARIANT, CopperSlab.EnumType.byMetadata(meta & 7));
                  
                          if (this.isDouble())
                          {
                              iblockstate = iblockstate.withProperty(SEAMLESS, Boolean.valueOf((meta & 8) != 0));
                          } else
                          {
                              iblockstate = iblockstate.withProperty(HALF, (meta & 8) == 0 ? BlockSlab.EnumBlockHalf.BOTTOM : BlockSlab.EnumBlockHalf.TOP);
                          }
                  
                          return iblockstate;
                      }
                  
                      /**
                       * Convert the BlockState into the correct metadata value
                       */
                      @Override
                      public int getMetaFromState(IBlockState state)
                      {
                          int i = 0;
                          i = i | ((CopperSlab.EnumType) state.getValue(VARIANT)).getMetadata();
                  
                          if (this.isDouble())
                          {
                              if (((Boolean) state.getValue(SEAMLESS)).booleanValue())
                              {
                                  i |= 8;
                              }
                          } else if (state.getValue(HALF) == BlockSlab.EnumBlockHalf.TOP)
                          {
                              i |= 8;
                          }
                  
                          return i;
                      }
                  }
                  
                  

                  En espérant que ce soit la dernière erreur compliquée que j’aurais</copperslab.enumtype></copperslab.enumtype>

                  Sans la programmation nous ne pourrions pas être réuni sur ce forum, ni ailleurs sur internet :)

                  J'ai et je suis content d'avoir 39.71 points [u…

                  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

                    Visiblement il tente d’appliquer la propriété EnumBlockHalf sur la double dalle, alors que cette propriété n’existe que sur la dalle simple.
                    Ce qui m’étonne puisque le code me semble bon.

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

                      @‘robin4002’:

                      Visiblement il tente d’appliquer la propriété EnumBlockHalf sur la double dalle, alors que cette propriété n’existe que sur la dalle simple.
                      Ce qui m’étonne puisque le code me semble bon.

                      Je ne suis pas sur mon ordi mais dans la classe DoubleCopperSlab, j’ai juste mis un setRegistry(“double_copper_slab”) et un setUnlocalizedName(“mt.copper_slab”) dans le constructeur avec bien sûr l’instruction super().
                      Ensuite j’ai changé la méthode isDouble() en return = true et copié la methode *setBlockFaceShape() *ou quelque chose comme ça qui était mise dans la classe BlockDoubleStoneSlab

                      J’enverrai le code demain.

                      Sans la programmation nous ne pourrions pas être réuni sur ce forum, ni ailleurs sur internet :)

                      J'ai et je suis content d'avoir 39.71 points [u…

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

                        Voici le code source de la classe mais ça m’étonnerai que ça viennent de là :

                        package com.huggets.mt.blocks;
                        
                        import com.huggets.mt.MoreThings;
                        
                        import net.minecraft.block.state.BlockFaceShape;
                        import net.minecraft.block.state.IBlockState;
                        import net.minecraft.util.EnumFacing;
                        import net.minecraft.util.math.BlockPos;
                        import net.minecraft.world.IBlockAccess;
                        
                        public class DoubleCopperSlab extends CopperSlab
                        {
                            public DoubleCopperSlab()
                            {
                                super();
                                this.setRegistryName(MoreThings.MODID, "double_copper_slab");
                                this.setUnlocalizedName("mt.copper_slab");
                            }
                            public boolean isDouble()
                            {
                                return true;
                            }
                        
                            /**
                             * Get the geometry of the queried face at the given position and state. This is used to decide whether things like
                             * buttons are allowed to be placed on the face, or how glass panes connect to the face, among other things.
                             *
                        
                             * Common values are {@code SOLID}, which is the default, and {@code UNDEFINED}, which represents something that
                             * does not fit the other descriptions and will generally cause other things not to connect to the face.
                             *
                             * @return an approximation of the form of the given face
                             */
                            public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face)
                            {
                                return BlockFaceShape.SOLID;
                            }
                        
                        }
                        

                        Sans la programmation nous ne pourrions pas être réuni sur ce forum, ni ailleurs sur internet :)

                        J'ai et je suis content d'avoir 39.71 points [u…

                        1 réponse Dernière réponse Répondre Citer 0
                        • 1
                        • 2
                        • 2 / 2
                        • Premier message
                          Dernier message
                        Design by Woryk
                        ContactMentions Légales

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB