title: Exception loading model for varian [block] for blockstate [state] MissingVariantException
body: <p>I am trying to add a new block to the game with different textures on each side and it throws an error Exception loading model for variant.</p>
  
  <pre><code>blockstates/c_furnace.json 
  {
      "variant": {
          "burn=false,facing=north": {
              "model": "compressedcobble_mod:c_furnace/c_furnace"
          },
          "burn=false,facing=east": {
              "model": "compressedcobble_mod:c_furnace/c_furnace",
              "y": 90
          },
          "burn=false,facing=south": {
              "model": "compressedcobble_mod:c_furnace/c_furnace",
              "y": 180
          },
          "burn=false,facing=west": {
              "model": "compressedcobble_mod:c_furnace/c_furnace",
              "y": 270
          },
          "burn=true,facing=north": {
              "model": "compressedcobble_mod:c_furnace/lit_c_furnace"
          },
          "burn=true,facing=east": {
              "model": "compressedcobble_mod:c_furnace/lit_c_furnace",
              "y": 90
          },
          "burn=true,facing=south": {
              "model": "compressedcobble_mod:c_furnace/lit_c_furnace",
              "y": 180
          },
          "burn=true,facing=west": {
              "model": "compressedcobble_mod:c_furnace/lit_c_furnace",
              "y": 270
          }
      }
  }
  </code></pre>
  
  <pre><code>blocks/c_furnace
  {
      "parent": "block/orientable",
      "textures": {
          "particle": "compressedcobble_mod:blocks/c_furnace/furnace_front",
          "up": "compressedcobble_mod:blocks/c_furnace/furnace_top",
          "down": "compressedcobble_mod:blocks/c_furnace/furnace_top",
          "north": "compressedcobble_mod:blocks/c_furnace/furnace_front",
          "east": "compressedcobble_mod:blocks/c_furnace/furnace_side",
          "south": "compressedcobble_mod:blocks/c_furnace/furnace_side",
          "west": "compressedcobble_mod:blocks/c_furnace/furnace_side"
      }
  }
  </code></pre>
  
  <pre><code>CompressedFurnace.java 
  public class CompressedFurnace extends BlockBase implements ITileEntityProvider {
  
      public static final PropertyDirection FACING = BlockHorizontal.FACING;
      public static final PropertyBool BURNING = PropertyBool.create("burn");
  
      public CompressedFurnace(String name, Material mat) 
      {
          super(name, mat);
          setUnlocalizedName(name);
          setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
  
          setDefaultState(blockState.getBaseState().withProperty(BURNING, false).withProperty(FACING, EnumFacing.NORTH));
      }
  
      @Override
      public Item getItemDropped(IBlockState state, Random rand, int fortune)
      {
          return Item.getItemFromBlock(ModBlocks.B_FURNACE);
      }
  
      @Override
      public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
      {
          return new ItemStack(ModBlocks.B_FURNACE);
      }
  
      @Override
      public boolean onBlockActivated(World w, BlockPos pos, IBlockState state, EntityPlayer p, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
      {
          if(!w.isRemote)
          {
              p.openGui(Main.instance, Reference.GUI_C_FURNACE, w, pos.getX(), pos.getY(), pos.getZ());
          }
          return true;
      }
  
      @Override
      public void onBlockAdded(World w, BlockPos pos, IBlockState state)
      {
          if(!w.isRemote)
          {
              IBlockState north = w.getBlockState(pos.north());
              IBlockState south = w.getBlockState(pos.south());
              IBlockState east = w.getBlockState(pos.east());
              IBlockState west = w.getBlockState(pos.west());
  
              EnumFacing face = (EnumFacing)state.getValue(FACING);
  
              if(face == EnumFacing.NORTH &amp;&amp; north.isFullBlock() &amp;&amp; !south.isFullBlock()) face = EnumFacing.SOUTH;
              else if(face == EnumFacing.SOUTH &amp;&amp; south.isFullBlock() &amp;&amp; !north.isFullBlock()) face = EnumFacing.NORTH;
              else if(face == EnumFacing.EAST &amp;&amp; east.isFullBlock() &amp;&amp; !west.isFullBlock()) face = EnumFacing.WEST;
              else if(face == EnumFacing.WEST &amp;&amp; west.isFullBlock() &amp;&amp; !east.isFullBlock()) face = EnumFacing.EAST;
              w.setBlockState(pos,  state.withProperty(FACING, face), 2);
  
          }
      }
  
      public static void setState(boolean active, World w, BlockPos pos)
      {
          IBlockState state = w.getBlockState(pos);
          TileEntity tile = w.getTileEntity(pos);
          if(active)
              w.setBlockState(pos, ModBlocks.B_FURNACE.getDefaultState().withProperty(FACING, state.getValue(FACING)).withProperty(BURNING, true), 3);
          else
              w.setBlockState(pos, ModBlocks.B_FURNACE.getDefaultState().withProperty(FACING, state.getValue(FACING)).withProperty(BURNING, false), 3);
          if(tile != null)
          {
              tile.validate();
              w.setTileEntity(pos, tile);
          }
      }
  
      @Override
      public TileEntity createNewTileEntity(World worldIn, int meta) 
      {
          return new TileEntityC_Furnace();
      }
  
      @Override
      public IBlockState getStateForPlacement(World w, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand)
      {
          return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
      }
  
      @Override
      public void onBlockPlacedBy(World w, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
      {
          w.setBlockState(pos, this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2);
      }
  
      @Override
      public EnumBlockRenderType getRenderType(IBlockState state)
      {
          return EnumBlockRenderType.MODEL;
      }
  
      @Override
      public IBlockState withRotation(IBlockState state, Rotation rot)
      {
          return state.withProperty(FACING, rot.rotate((EnumFacing)state.getValue(FACING)));
      }
  
      @Override
      public IBlockState withMirror(IBlockState state, Mirror mirror)
      {
          return state.withRotation(mirror.toRotation((EnumFacing)state.getValue(FACING)));
      }
  
      @Override
      protected BlockStateContainer createBlockState()
      {
          return new BlockStateContainer(this, new IProperty[] {BURNING,FACING});
      }
  
      @Override
      public IBlockState getStateFromMeta(int meta)
      {
          EnumFacing facing = EnumFacing.getFront(meta);
          if(facing.getAxis() == EnumFacing.Axis.Y) facing = EnumFacing.NORTH;
              return this.getDefaultState().withProperty(FACING, facing);
      }
  
      @Override
      public int getMetaFromState(IBlockState state)
      {
          return ((EnumFacing)state.getValue(FACING)).getIndex();
      }
  
      @Override
      public void breakBlock(World w, BlockPos pos, IBlockState state)
      {
          TileEntityC_Furnace TE = (TileEntityC_Furnace) w.getTileEntity(pos);
          InventoryHelper.dropInventoryItems(w, pos, TE);
          super.breakBlock(w, pos, state);
      }
  }
  </code></pre>
  
  <pre><code>[04:12:11] [Client thread/ERROR] [FML]: Exception loading model for variant compressedcobble_mod:c_furnace#burn=false,facing=west for blockstate "compressedcobble_mod:c_furnace[burn=false,facing=west]"
  net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model compressedcobble_mod:c_furnace#burn=false,facing=west with loader VariantLoader.INSTANCE, skipping
      at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:161) ~[ModelLoaderRegistry.class:?]
      at net.minecraftforge.client.model.ModelLoader.registerVariant(ModelLoader.java:235) ~[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:223) ~[ModelLoader.class:?]
      at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:150) ~[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:560) [Minecraft.class:?]
      at net.minecraft.client.Minecraft.run(Minecraft.java:422) [Minecraft.class:?]
      at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
      at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
      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_171]
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
      at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
      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:1175) ~[ModelLoader$VariantLoader.class:?]
      at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:157) ~[ModelLoaderRegistry.class:?]
      ... 21 more
  </code></pre>
  
  <p>I have other blocks with similar naming conventions that work fine but are all the same texture on all sides.</p>
  
  <p>The block in game shows the states "burn" and "facing" correctly but no texture is shown.</p>