Как сместить BlockPos

Статус
В этой теме нельзя размещать новые ответы.
Версия Minecraft
1.12.2
У меня есть предмет, который по правому клику заменяет блок на который смотрит игрок.
BlockPos беру таким способом:
Java:
BlockPos coord = playerIn.rayTrace(300, 1).getBlockPos();
Как сделать что бы блок не замещался, а ставился рядом как бы если ты ставил булыжник.
 
coord.up() поставит блок выше,
coord.offset(face, 5) поставит блок на 5 блоков дальше в указанном направлении.
если я получаю face таким способом:
Java:
EnumFacing face = EnumFacing.getFacingFromVector(coord.getX(),coord.getY(),coord.getZ());
то блок ставиться только с одной стороны не зависимо от направления взгляда
 
coord.up() поставит блок выше,
coord.offset(face, 5) поставит блок на 5 блоков дальше в указанном направлении.

Я пришел к такому способу:
Java:
EnumFacing face = EnumFacing.getFacingFromVector(
    playerIn.getPosition().getX() -coord.getX(),
    playerIn.getPosition().getY()-coord.getY(),
    playerIn.getPosition().getZ()-coord.getZ());
Но блок ставиться не как булыжник, вот пример:

Пытаюсь поставить наверх свой блок:
1575045104113.png
А вот тут булыжник:
1575045142846.png
 
Все, я разобрался:
Метод onItemUse в отличае от onItemRightClick получает EnumFacing,
Java:
BlockPos coord = player.rayTrace(10, 1).getBlockPos();
worldIn.setBlockState(coord.offset(facing,1), BlocksRegister.GREEN_BLOCK.getDefaultState());
 
Предыдущий код имеет небольшое ограничение сетблока из за получения координат через рейтрейс, метод onItemUse уже получает позицию:
Вот код:
Java:
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
        worldIn.setBlockState(pos.offset(facing,1), greenblock.getDefaultState());
        return super.onItemUse(player, worldIn, pos, hand, facing, hitX, hitY, hitZ);
    }
greenblock это мой блок из регистрации:
Java:
Block greenblock = BlocksRegister.GREEN_BLOCK;
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху