Метадата! Опять! (1.8.8)

В Эклипсе это нормально, обнови проект как-то(сочетание клавиш не помню)
 
Liahim написал(а):
Однако выглядит она всё равно как обычный блок и опять без текстур :D
Только теперь и в инвентаре текстур не видно. Вот я криворукий.

Блин, он почему-то пытается найти варианты от предыдущего блока :lol:

У куста немного другой тип рендера, плюс вот это:
Код:
public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state)
{
    return null;
}

public boolean isOpaqueCube()
{
    return false;
}

public boolean isFullCube()
{
    return false;
}

Без самого кода ничего дельного сказать не могу. Как приеду с работы - попробую слепить куст.
 
Да не... не в эклипсе дело...
Какая вообще методика?
Сперва прописывается:
Код:
public static final PropertyEnum SISE = PropertyEnum.create("sise", MyBlock.EnumType.class);

Затем создаются варианты:
Код:
    @Override
    protected BlockState createBlockState()
    {
        return new BlockState(this, new IProperty[] {SISE});
    }

И название файла вариантов должно совпадать с названием блока?
Я всё так и сделал... Какого ж он?

Он как будто ищет в нужном файле те варианты, которые прописаны в другом блоке О_о
Вот мой блок:
Код:
    public static final PropertyEnum SISE = PropertyEnum.create("sise", MyBlock.EnumType.class);

    ...

    public enum EnumType implements IStringSerializable
    {
        BIG(0, "sise_b"),
        MEDIUM(1, "sise_m"),
        SMALL(2, "sise_s");

        private static final MyBlock.EnumType[] META_LOOKUP = new MyBlock.EnumType[values().length]; //и тд

А вот старый:
Код:
    public static final PropertyEnum VARIANT = PropertyEnum.create("variant", OldBlock.EnumType.class);

    ...

    public enum EnumType implements IStringSerializable
    {
        CLEAR(0, "clear"),
        SIDE_W(1, "side_w"),
        SIDE_N(2, "side_n"),
        SIDE_WN(3, "side_wn"),
        SIDE_E(4, "side_e"),
        SIDE_WE(5, "side_we"),
        SIDE_NE(6, "side_ne"),
        SIDE_WNE(7, "side_wne"),
        SIDE_S(8, "side_s"),
        SIDE_SW(9, "side_sw"),
        SIDE_NS(10, "side_ns"),
        SIDE_SWN(11, "side_swn"),        
        SIDE_ES(12, "side_es"),
        SIDE_ESW(13, "side_esw"),
        SIDE_NES(14, "side_nes"),
        SIDE_WNES(15, "side_wnes");

        private static final OldBlock.EnumType[] META_LOOKUP = new OldBlock.EnumType[values().length]; //и тд

И при запуске он выдаёт:
Код:
[17:05:44] [Client thread/ERROR] [FML]: Model definition for location mod:myBlock#variant=side_esw not found
[17:05:44] [Client thread/ERROR] [FML]: Model definition for location mod:myBlock#variant=side_e not found
[17:05:44] [Client thread/ERROR] [FML]: Model definition for location mod:myBlock#variant=side_swn not found
... //и тд

Такого же быть не должно.
 
Код:
[17:05:44] [Client thread/ERROR] [FML]: Model definition for location mod:myBlock#variant=side_esw not found
[17:05:44] [Client thread/ERROR] [FML]: Model definition for location mod:myBlock#variant=side_e not found
[17:05:44] [Client thread/ERROR] [FML]: Model definition for location mod:myBlock#variant=side_swn not found

Это означает что в файле \assets\mod\blockstates\myBlock.json у тебя есть следующие варианты:
Код:
{
    "variants": {
        "variant=side_esw": { "model": "mod:myBlock_esw" }
        "variant=side_e": { "model": "mod:myBlock_e" }
        "variant=side_swn": { "model": "mod:myBlock_swn" }
    }
}

Но их модели отсутствуют. А должны они располагаться вот здесь:
Код:
\assets\mod\models\block\myBlock_esw.json
\assets\mod\models\block\myBlock_e.json
\assets\mod\models\block\myBlock_swn.json
 
Это он так думает.
Но на самом деле в этом файле у меня написано следующее:
Код:
{
    "variants": {
        "sise=sise_b": { "model": "mod:myBlock" },
        "sise=sise_m": { "model": "mod:myBlock_m" },
        "sise=sise_s": { "model": "mod:myBlock_s" }
    }
}
То есть те варианты, которые прописаны в конструкторе.
И все эти модели присутствуют.

Вот я и не понимаю, что ему нужно.
 
new ItemStack(YourBlocksClass.yourblock, кол-во, Номер_метадаты)
Кол-во только указывай 1.
Номер меты узнавай по length или как ты его у себя назвал...
 
Не та ссылка. Ща дам нормальную
[merge_posts_bbcode]Добавлено: 28.11.2015 23:17:09[/merge_posts_bbcode]

Вотъ
 
fusepalm
[merge_posts_bbcode]Добавлено: 28.11.2015 23:42:34[/merge_posts_bbcode]

Это ты где указал?
 
В canBlockStay, как было написано выше... Нужно узнать метадату блока, на котором стоит мой блок.
В общем, всё работает...


Я вот только не могу понять нафига у BlockBush столько почти одинаковых методов?
canPlaceBlockAt

canPlaceBlockOn

canBlockStay



Один работает при размещении, другой при генерации, третий просто, чтоб стоял )))
А если нужно всё сразу? Это какой нужно использовать? Или придётся все писать?
 
Все пиши. Как и сказано, один, чтоб ставить, другой если генерируешь(у можанга все офигенно вот с этим, багов нет вообще проверка сарказма завершена), третий на блокапдейте вызывается. Второй можно скипануть если не генеришь, а так вроде хрен там перепишешь что.
 
Назад
Сверху