BlockState неверно работает.

Сообщения
4,659
Лучшие ответы
44
Реакции
598
Версия Minecraft
1.12.2
В общем делаю я свой блок с блокстейтом. Мне нужно, чтобы при правом клике по нему, мой Boolean блокстейта менялся по кругу хотя бы для начала.
А он не меняется

Java:
    @Override
    @Override
    public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
    {
          return state.withProperty(WITH_COAL, Boolean.valueOf(true));
    }
    @Override
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
    {
        state.cycleProperty(WITH_COAL);
        return true;
    }
 
Последнее редактирование:

Ivasik

Porting GrandBombaster
Администратор
Сообщения
2,854
Лучшие ответы
77
Реакции
308
Ты сетаешь True, а false нигде не сетаешь.
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
Я жестко туплю уже второй день и никак не могу понять где мне ставить фалсе
(вообще у меня в конструкторе false как дефаулт стейт указано)

Запилите кто нить гайд по блокстейтам и как их юзать :\
 
Последнее редактирование:

Ivasik

Porting GrandBombaster
Администратор
Сообщения
2,854
Лучшие ответы
77
Реакции
308
Я жестко туплю уже второй день и никак не могу понять где мне ставить фалсе
(вообще у меня в конструкторе false как дефаулт стейт указано)

Запилите кто нить гайд по блокстейтам и как их юзать :\
Уже пилится. Дефолт стейт это то что будет инициализировано и установлено по дефолту.
 

Ivasik

Porting GrandBombaster
Администратор
Сообщения
2,854
Лучшие ответы
77
Реакции
308
!state.cycleProperty(WITH_COAL) вот добавь вместо Булиан.valueOf, и зачем ты его поставил? Зачем говнокодишь?
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
Я понимаю. А почему cycleProperty не работает? Сколько не кликаю, нет результат
 

Ivasik

Porting GrandBombaster
Администратор
Сообщения
2,854
Лучшие ответы
77
Реакции
308
Какой нахрен циклПропертиес?!?
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
!state.cycleProperty(WITH_COAL) вот добавь вместо Булиан.valueOf, и зачем ты его поставил? Зачем говнокодишь?
Так было в ванильной траве :)
Вот так?

Java:
    @Override
    public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
    {
        return state.cycleProperty(WITH_COAL);
    }
 
Сообщения
3,517
Лучшие ответы
48
Реакции
337
Во первых, снеси нафик getActualState().
Он тебе и мешает...
Во вторых, где ты блок в мире ставишь?
Что-то не увидел. Это метод cycleProperty()? Не заглядывал в него... Но при щелчке нужно устанавливать блок в мире.
 

Ivasik

Porting GrandBombaster
Администратор
Сообщения
2,854
Лучшие ответы
77
Реакции
308
Во первых, снеси нафик getActualState().
Он тебе и мешает...
Во вторых, где ты блок в мире ставишь?
Что-то не увидел. Это метод cycleProperty()? Не заглядывал в него... Но при щелчке нужно устанавливать блок в мире.
Менять стейт а не блок ставить-_-
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
cycleProperty()
Как там написано, после максимального значения проперти устанавливается минимальное и по кругу так
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
Java:
public class CumpfireBlock extends BasicBlockWithCustomModel{
    public static final PropertyBool WITH_COAL = PropertyBool.create("withcoal");
    public CumpfireBlock(Material materialIn, String name, float hardness, float resistanse, String hravLevel,int level, SoundType soundtype) {
        super(materialIn, name, hardness, resistanse, hravLevel, level, soundtype);
        this.setDefaultState(this.blockState.getBaseState().withProperty(WITH_COAL, Boolean.valueOf(false)));

    }
    protected static final AxisAlignedBB block_AABB = new AxisAlignedBB(0.04D, 0.0D, 0.04D, 0.96D, 0.15D, 0.96D);




    @Override
    public boolean isOpaqueCube(IBlockState state) {
        return false;
    }

    @Override
    @SideOnly(Side.CLIENT)
    public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) {
        return false;
    }
    @Override
    public int getMetaFromState(IBlockState state)
    {
        return 0;
    }
    @Override
    protected BlockStateContainer createBlockState()
    {
        return new BlockStateContainer(this, new IProperty[] {WITH_COAL});
    }
    @Override
    public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
    {
        return state.cycleProperty(WITH_COAL);
    }
    @Override
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
    {
        state.cycleProperty(WITH_COAL);
        return true;
    }
    @Override
    @SideOnly(Side.CLIENT)
    public boolean isFullCube(IBlockState state) {
        return false;
    }
    public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
    {
        return block_AABB;
    }
Вот весь класс. Может не так что делаю?
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
Сообщения
4,659
Лучшие ответы
44
Реакции
598
Вся суть такова. Я для начала хочу просто на булеане научится. Потом будет так - можно будет подкладывать уголь\дрова в костер и чтобы это рендерилось. Максимум пять кусочков. В общем, хороший рабочий костер, но без tile enitity
Новая концепция)
 
Сообщения
3,517
Лучшие ответы
48
Реакции
337

Ivasik

Porting GrandBombaster
Администратор
Сообщения
2,854
Лучшие ответы
77
Реакции
308
Вся суть такова. Я для начала хочу просто на булеане научится. Потом будет так - можно будет подкладывать уголь\дрова в костер и чтобы это рендерилось. Максимум пять кусочков. В общем, хороший рабочий костер, но без tile enitity
Новая концепция)
Ору
 
Сообщения
3,517
Лучшие ответы
48
Реакции
337
Сообщения
4,659
Лучшие ответы
44
Реакции
598
Забей на костёр )))
Я его уже давно реализовал... Увидишь в следующем обновлении :Р
Правда с тайлом.
Да у меня тоже с тайлом есть, еще в октябре того года его сделал мне thunder))
Я собственно уже все сделал почти, осталось только вот это декоративное подкладывание угля сделать
У меня жарится энтитиитем который сверху валяется, с огоньками, все как положено0
 
Сообщения
4,659
Лучшие ответы
44
Реакции
598
А по твоему, без замены блока можно изменить стейт? Нуко, нуко? Как? Или я совсем тупой.

Легко... Просто удаляй.
Я меняю не блок, а модель блока, а это делается через блокстейт
 
Сообщения
3,517
Лучшие ответы
48
Реакции
337
Модель блока у тебя связана со стейтом... Стейт ты меняешь через мир. В каком месте ты его меняешь, я не заметил...
Заметил только гедАктуалСтейт, который всё время показывает одно и то же.
 
Сверху