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

Сообщения
4,872
Лучшие ответы
45
Реакции
681
Версия 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
Администратор
Сообщения
3,193
Лучшие ответы
82
Реакции
441
Ты сетаешь True, а false нигде не сетаешь.
 
Сообщения
4,872
Лучшие ответы
45
Реакции
681
Я жестко туплю уже второй день и никак не могу понять где мне ставить фалсе
(вообще у меня в конструкторе false как дефаулт стейт указано)

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

Ivasik

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

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

Ivasik

Porting GrandBombaster
Администратор
Сообщения
3,193
Лучшие ответы
82
Реакции
441
!state.cycleProperty(WITH_COAL) вот добавь вместо Булиан.valueOf, и зачем ты его поставил? Зачем говнокодишь?
 
Сообщения
4,872
Лучшие ответы
45
Реакции
681
Я понимаю. А почему cycleProperty не работает? Сколько не кликаю, нет результат
 

Ivasik

Porting GrandBombaster
Администратор
Сообщения
3,193
Лучшие ответы
82
Реакции
441
Какой нахрен циклПропертиес?!?
 
Сообщения
4,872
Лучшие ответы
45
Реакции
681
!state.cycleProperty(WITH_COAL) вот добавь вместо Булиан.valueOf, и зачем ты его поставил? Зачем говнокодишь?
Так было в ванильной траве :)
Вот так?

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

Ivasik

Porting GrandBombaster
Администратор
Сообщения
3,193
Лучшие ответы
82
Реакции
441
Во первых, снеси нафик getActualState().
Он тебе и мешает...
Во вторых, где ты блок в мире ставишь?
Что-то не увидел. Это метод cycleProperty()? Не заглядывал в него... Но при щелчке нужно устанавливать блок в мире.
Менять стейт а не блок ставить-_-
 
Сообщения
4,872
Лучшие ответы
45
Реакции
681
cycleProperty()
Как там написано, после максимального значения проперти устанавливается минимальное и по кругу так
 
Сообщения
4,872
Лучшие ответы
45
Реакции
681
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,872
Лучшие ответы
45
Реакции
681
Сообщения
4,872
Лучшие ответы
45
Реакции
681
Вся суть такова. Я для начала хочу просто на булеане научится. Потом будет так - можно будет подкладывать уголь\дрова в костер и чтобы это рендерилось. Максимум пять кусочков. В общем, хороший рабочий костер, но без tile enitity
Новая концепция)
 
Сообщения
3,772
Лучшие ответы
56
Реакции
471

Ivasik

Porting GrandBombaster
Администратор
Сообщения
3,193
Лучшие ответы
82
Реакции
441
Вся суть такова. Я для начала хочу просто на булеане научится. Потом будет так - можно будет подкладывать уголь\дрова в костер и чтобы это рендерилось. Максимум пять кусочков. В общем, хороший рабочий костер, но без tile enitity
Новая концепция)
Ору
 
Сообщения
3,772
Лучшие ответы
56
Реакции
471
Сообщения
4,872
Лучшие ответы
45
Реакции
681
Забей на костёр )))
Я его уже давно реализовал... Увидишь в следующем обновлении :Р
Правда с тайлом.
Да у меня тоже с тайлом есть, еще в октябре того года его сделал мне thunder))
Я собственно уже все сделал почти, осталось только вот это декоративное подкладывание угля сделать
У меня жарится энтитиитем который сверху валяется, с огоньками, все как положено0
 
Сообщения
4,872
Лучшие ответы
45
Реакции
681
А по твоему, без замены блока можно изменить стейт? Нуко, нуко? Как? Или я совсем тупой.

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