Блок с несколькими состояниями

Версия Minecraft
1.12+
Нуждаюсь в помощи, хотел создать нечто похожее на блок древесины или кварцевую колонну, но встретился с трудностями с состояниями.
Совершенно не знаю как закодировать это. Пытался найти информацию на других ресурсах, но так и не нашел.
Заранее спасибо!
 
Решение
Даю полный код. Тут давали отрывками. Я делал так:

BloodWood
Java:
public class BloodWood extends BlockRotatedPillar {
    public BloodWood(String name) {
        super(Material.WOOD);
        this.setRegistryName(name);
        this.setUnlocalizedName(name);
        this.setHardness(1.0F);
        this.setCreativeTab(SacrificiumCreativeTabs.ScBlocks);
    }
}

blockstates/bloodwood.json
JSON:
{
  "forge_marker": 1,
  "variants": {
    "normal": {
      "model": "sacrificium:bloodwood_y"
    },
    "inventory": {
      "model": "sacrificium:bloodwood_y"
    },
    "axis=x":  { "model": "sacrificium:bloodwood_z"},
    "axis=y":   { "model": "sacrificium:bloodwood_y"},
    "axis=z":   { "model": "sacrificium:bloodwood_x"}

  }
}
...
683
3
21
в assets.modid/blockstates создай класс с названием своего блока туда впиши это
Код:
{
    "forge_marker": 1,
    "defaults": {
        "textures": {
        "particle": "mdw:blocks/block_bottom",
        "north": "mdw:blocks/block_north",
        "south": "mdw:blocks/block_south",
        "west": "mdw:blocks/block_west",
        "east": "mdw:blocks/block_east",
        "up": "mdw:blocks/block_top",
        "down": "mdw:blocks/block_bottom"
        }
    },
    "variants": {
        "normal": {
            "model": "orientable"
        },
        "inventory": {
            "model": "orientable"
        }
    }
}
modid= твой мод айди
где block_bottom,top,west,east,south,north поставь название своих тестур это если что стороны
 
Ладно, это труднее объяснить чем я думал. Мне нужно несколько состояний одного блока, допустим поставил блок древесины к стене у него спил будет направлен на тебя (и от тебя соответственно), если на пол то вверх и вниз соответственно
 
1,417
44
594
Даю полный код. Тут давали отрывками. Я делал так:

BloodWood
Java:
public class BloodWood extends BlockRotatedPillar {
    public BloodWood(String name) {
        super(Material.WOOD);
        this.setRegistryName(name);
        this.setUnlocalizedName(name);
        this.setHardness(1.0F);
        this.setCreativeTab(SacrificiumCreativeTabs.ScBlocks);
    }
}

blockstates/bloodwood.json
JSON:
{
  "forge_marker": 1,
  "variants": {
    "normal": {
      "model": "sacrificium:bloodwood_y"
    },
    "inventory": {
      "model": "sacrificium:bloodwood_y"
    },
    "axis=x":  { "model": "sacrificium:bloodwood_z"},
    "axis=y":   { "model": "sacrificium:bloodwood_y"},
    "axis=z":   { "model": "sacrificium:bloodwood_x"}

  }
}

models/block/bloodwood_x.json
JSON:
{
  "parent": "block/cube_all",
  "textures": {
    "particle": "sacrificium:blocks/log_down",
    "north": "sacrificium:blocks/log_down",
    "south": "sacrificium:blocks/log_down",
    "west": "sacrificium:blocks/log",
    "east": "sacrificium:blocks/log",
    "up": "sacrificium:blocks/log",
    "down": "sacrificium:blocks/log"
  }
}

../bloodwood_y.json
JSON:
{
  "parent": "block/cube_all",
  "textures": {
    "particle": "sacrificium:blocks/log_down",
    "north": "sacrificium:blocks/log",
    "south": "sacrificium:blocks/log",
    "west": "sacrificium:blocks/log",
    "east": "sacrificium:blocks/log",
    "up": "sacrificium:blocks/log_down",
    "down": "sacrificium:blocks/log_down"
  }
}

../bloodwood_z.json
JSON:
{
  "parent": "block/cube_all",
  "textures": {
    "particle": "sacrificium:blocks/log_down",
    "north": "sacrificium:blocks/log",
    "south": "sacrificium:blocks/log",
    "west": "sacrificium:blocks/log_down",
    "east": "sacrificium:blocks/log_down",
    "up": "sacrificium:blocks/log",
    "down": "sacrificium:blocks/log"
  }
}

Вроде так, можно сразу модель крутить как-то, но не знаю. Как по мне так проще, 3 класса, можешь любые шняги добавить.
Скрин как работает:
1534960613200.png
 
Сверху