Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Размещение схематики лицевой стороной

Статус
Закрыто для дальнейших ответов.

serega6531

Старожил
Девелопер
Пользователь
Баллы
173
У меня есть определенное здание, расположенное входом, например, к северу. Как ставить схематику через we api, чтобы здание ставилось лицевой стороной к поставившему?
 
У меня есть определенное здание, расположенное входом, например, к северу. Как ставить схематику через we api, чтобы здание ставилось лицевой стороной к поставившему?
Что значит "лицевая сторона"?
 
Я так и делал, но не смог определить, сколько раз поворачивать.
 
Я так и делал, но не смог определить, сколько раз поворачивать.
Тут еще раз надо задать что такое "Лицевая сторона"

Для сервера лицевая сторона - одно
Для игрока - другое
Правильный вариант - делать правильные схематики

Если же вопрос стоит в Relative, то работай с yaw и сторонами света
 
@ql_Nik_lp, Хочу поинтересоваться, где же лицевая сторона у постройки для сервера?

Для игрока, это, очевидно, сторона со входом. И мне не ясно, как узнать, сколько раз её нужно повернуть.
 
@ql_Nik_lp, Хочу поинтересоваться, где же лицевая сторона у постройки для сервера?

Для игрока, это, очевидно, сторона со входом. И мне не ясно, как узнать, сколько раз её нужно повернуть.

Ты как человек понимаешь что есть "вход"
Для сервера шематик - не более чем массив блоков
 
Чертёж объекта! Можно просто чертёж. А можно просто объект (но если просто объект, то может быть не понятно какой именно, т.к. есть ещё .BO2/.bo3)
 
Последнее редактирование:
Чертёж объекта! Можно просто чертёж. А можно просто объект (но если просто объект, то может быть не понятно какой именно, т.к. есть ещё BO2/BO3
Плюсую человека выше.

В плане произношения - вариантов много, гугл транслейт вообще говорит как "скематик"
 
Ну если ты знаешь к какой стороне у тебя повернут схематик, то можно просто поворачивать его в сторону, противоположную направлению взгляда игрока.
 
Ты как человек понимаешь что есть "вход"
Для сервера шематик - не более чем массив блоков
Вот и я об этом, для сервера нет лицевой стороны.

Сейчас попробую ещё раз поворачивать его.
Нет, не поворачивается как надо.

Допустим, у меня у всех строений лицевая сторона смотрит на восток
Код:
int direction = Math.round(yaw / 90f) & 0x3; //Направление взгляда игрока
int rotate = ...//?????
clipboard.rotate2D(rotate * 90);
 
Как мне это использовать?
В какую сторону поворачивается постройка при rotate2D?
Кажется, мне удалось сделать что-то похожее на решение.
Код:
    private BlockFace getCardinalDirection(org.bukkit.util.Vector vector) {
        BlockFace[] faces = { BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST };
        org.bukkit.util.Vector n, e, s, w;
        w = new org.bukkit.util.Vector(-1, 0, 0);
        n = new org.bukkit.util.Vector(0, 0, -1);
        s = n.clone().multiply(-1);
        e = w.clone().multiply(-1);

        org.bukkit.util.Vector[] vectors = { n, e, s, w };

        double comp = 0;
        int besti = 0;
        for (int i = 0; i < vectors.length; i++) {
            double dot = vector.dot(vectors[i]);
            if (dot > comp) {
                comp = dot;
                besti = i;
            }
        }

        return faces[besti];
    }

        BlockFace bf = getCardinalDirection(direction);
        int rotate = bf.ordinal() + 1;

        clipboard.rotate2D(rotate * 90);
По крайней мере, одна и та же точка тут всегда оказывается на одном месте.
Немного мучений с подбором координат для смещения постройки и все заработало как надо. Всем спасибо за помощь.
 
для сервера нет лицевой стороны.
Её вообще нету, больше скажу)
Только //rotate 180
В какую сторону поворачивается
По часовой
Всем спасибо за помощь.
Забыл закрыть
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх