1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Узнать, с какой гранью блока взаимодействовал игрок, разрушив блок.

Тема в разделе "Разработка плагинов для новичков", создана пользователем lolifrag, 17 фев 2015.

Статус темы:
Закрыта.
  1. Автор темы
    lolifrag

    lolifrag Активный участник Пользователь

    Баллы:
    66
    Skype:
    frosti.village
    Имя в Minecraft:
    meow
    Допустим, существует некий блок в пустом пространстве. У него есть 6 граней - две горизонтальные и 4 вертикальные. Используя выранный инструмент, разрушаем блок. И мне нужно получить эту сторону/грань, с которой произошло взаимодействие.

    Подскажите, каким методом можно получить эти грани?
     
  2. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Я думаю, что только смотреть по кордам того, кто разрушал, и то это не 100% точность.
     
  3. Автор темы
    lolifrag

    lolifrag Активный участник Пользователь

    Баллы:
    66
    Skype:
    frosti.village
    Имя в Minecraft:
    meow
    Можно как-то точно определить направление взгляда (курсора)?
    Если да, то немного математики и можно было бы исходя из положения игрока, положения блока и направления взгляда получить.. наверное)
     
  4. AxmeD

    AxmeD Старожил Пользователь

    Баллы:
    103
    Проверяй его координаты относительно блока и yaw. Может получится
     
  5. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Стоя на одной позиции можно ломать блок с 2-х граней
    @lolifrag, а зачем тебе вообще это надо?
     
  6. Easy

    Easy Старожил Пользователь

    Баллы:
    103
    Skype:
    dragon_ice2
    Имя в Minecraft:
    Germis
    И даже с 3
     
  7. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    BOT-BOT
     
  8. Автор темы
    lolifrag

    lolifrag Активный участник Пользователь

    Баллы:
    66
    Skype:
    frosti.village
    Имя в Minecraft:
    meow
    Логическая цепочка такая:
    1. ломается блок - получаем грань, а если точнее, получаем два из трёх направлений, задающих вариант плоскости (XY или XZ или YZ)
    2. далее запоминаем вокруг неё 8 блоков в указанной плоскости
    3. проводим с ними указанные дополнительно действия
    Проблема как раз в первом пункте

    Вообще, можно плюнуть и использовать не 8 блоков плоскости, а 26 объёма. Но всё же хотелось бы именно первый вариант использовать..
     
  9. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Возможно, это поможет.
     
  10. Автор темы
    lolifrag

    lolifrag Активный участник Пользователь

    Баллы:
    66
    Skype:
    frosti.village
    Имя в Minecraft:
    meow
    Ссылка не работает
     
  11. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
  12. Автор темы
    lolifrag

    lolifrag Активный участник Пользователь

    Баллы:
    66
    Skype:
    frosti.village
    Имя в Minecraft:
    meow
    Сама ссылка мне ничем не помогла, но на пару интересных мыслишек натолкнула. Прежде всего есть вопрос - сколько и чего равна длинна ребра блока (расстояние и еденица измерения)?
     
  13. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Какие единицы измерения вы предполагаете увидеть? Сантиметры?
     
  14. Автор темы
    lolifrag

    lolifrag Активный участник Пользователь

    Баллы:
    66
    Skype:
    frosti.village
    Имя в Minecraft:
    meow
    Наверное я не правильно вопрос задал.
    Появились пару хороших идеек, думаю над ними, если получится - сюда скину)
     
  15. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Код:
    if (event.getBlockFace() == BlockFace.NORTH) player.sendMessage("Клик произошёл с северной стороны блока");
     
  16. Автор темы
    lolifrag

    lolifrag Активный участник Пользователь

    Баллы:
    66
    Skype:
    frosti.village
    Имя в Minecraft:
    meow
    Именно то, что нужно! Большое спасибо!
     
Статус темы:
Закрыта.

Поделиться этой страницей