- Баллы
- 173
У меня есть определенное здание, расположенное входом, например, к северу. Как ставить схематику через we api, чтобы здание ставилось лицевой стороной к поставившему?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Что значит "лицевая сторона"?У меня есть определенное здание, расположенное входом, например, к северу. Как ставить схематику через we api, чтобы здание ставилось лицевой стороной к поставившему?
Загружашь схематик, вертишь его методом rotate2DСторона, на которой вход (условно)
Тут еще раз надо задать что такое "Лицевая сторона"Я так и делал, но не смог определить, сколько раз поворачивать.
@ql_Nik_lp, Хочу поинтересоваться, где же лицевая сторона у постройки для сервера?
Для игрока, это, очевидно, сторона со входом. И мне не ясно, как узнать, сколько раз её нужно повернуть.
схематику
схематик
Чертёж объекта! Можно просто чертёж. А можно просто объект (но если просто объект, то может быть не понятно какой именно, т.к. есть ещё .BO2/.bo3)шематик
Плюсую человека выше.Чертёж объекта! Можно просто чертёж. А можно просто объект (но если просто объект, то может быть не понятно какой именно, т.к. есть ещё BO2/BO3
Вот и я об этом, для сервера нет лицевой стороны.Ты как человек понимаешь что есть "вход"
Для сервера шематик - не более чем массив блоков
int direction = Math.round(yaw / 90f) & 0x3; //Направление взгляда игрока
int rotate = ...//?????
clipboard.rotate2D(rotate * 90);
Как мне это использовать?
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