Помогите Строительство как в RUST

diego070202

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
PoZDnyak
Доброго времени форумчане.
Надеюсь здесь есть люди, игравшие в Rust.
Тема такая.
Можете объяснить, как реализовать строительство?
Я не знаю, как сделать, чтоб когда в руках был "план постройки" то показывалось, когда можно построить например стенку, а когда нет.
И как реализовать вообще это дело.
Пишу самопис.
Залип на этом уже месяц примерно, не зная как это реализовать.
 
Дык на видио идею видно. Иди и реалищовывай. Или ты уже передумал писать самопис?
Делаешь этот sendBlockChange со стеклом по направлению взгляда и все.
Я не знаю как сделать так, чтоб стенка поворачивалась в нужном направлении. Т.е не перпендикулярно тебе например, а паралельно
 
Я не знаю как сделать так, чтоб стенка поворачивалась в нужном направлении. Т.е не перпендикулярно тебе например, а паралельно
Получаешь сторону, в которую смотрит игрок, сравниваешь и делаешь поворот в ту сторону, относительно которой смотрит игрок.
 
Я не знаю как сделать так, чтоб стенка поворачивалась в нужном направлении. Т.е не перпендикулярно тебе например, а паралельно
Можешь вставить этот метод и проверять сторону с помощью switch'a, а потом уже свой код вставлять. Можешь с помощью вектора это делать, но это сложнее.

Тут с северо-востоков, северо-западом, юго-востоком, юго-западом
Код:
private static String getDirection(float yaw) {
        if(yaw >= 157.5 && yaw <= 202.5) return "North";
        else if(yaw > 202.5 && yaw < 247.5) return "NorthEast";
        else if(yaw >= 247.5 && yaw <= 292.5) return "East";
        else if(yaw > 292.5 && yaw < 337.5) return "SouthEast";
        else if(yaw > 22.5 && yaw < 67.5) return "SouthWest";
        else if(yaw >= 67.5 && yaw <= 112.5) return "West";
        else if(yaw > 112.5 && yaw < 157.5) return "NorthWest";
        else return "South";
    }

Тут без:
Код:
private static String getDirection(float yaw) {
        if(yaw >= 135 && yaw <= 225) return "North";
        else if(yaw > 225 && yaw <= 315) return "East";
        else if(yaw > 45 && yaw <= 135) return "West";
        else return "South";
    }


Получать направление так
Код:
String direction = getDirection(player.getLocation().getYaw());
 
Последнее редактирование:
Писец костыльщик 😁.
Нате. А то глазам страшно.
Код:
    public static BlockFace[] AXIS = {BlockFace.WEST,BlockFace.NORTH,BlockFace.EAST,BlockFace.SOUTH};
    public static BlockFace yawToFace(float yaw) {
        return AXIS[Math.round(yaw / 90f) & 0x3];
    }
 
Последнее редактирование:
Можешь вставить этот метод и проверять сторону с помощью switch'a, а потом уже свой код вставлять. Можешь с помощью вектора это делать, но это сложнее.

Тут с северо-востоков, северо-западом, юго-востоком, юго-западом
Код:
private static String getDirection(float yaw) {
        if(yaw >= 157.5 && yaw <= 202.5) return "North";
        else if(yaw > 202.5 && yaw < 247.5) return "NorthEast";
        else if(yaw >= 247.5 && yaw <= 292.5) return "East";
        else if(yaw > 292.5 && yaw < 337.5) return "SouthEast";
        else if(yaw > 22.5 && yaw < 67.5) return "SouthWest";
        else if(yaw >= 67.5 && yaw <= 112.5) return "West";
        else if(yaw > 112.5 && yaw < 157.5) return "NorthWest";
        else return "South";
    }

Тут без:
Код:
private static String getDirection(float yaw) {
        if(yaw >= 135 && yaw <= 225) return "North";
        else if(yaw > 225 && yaw <= 315) return "East";
        else if(yaw > 45 && yaw <= 135) return "West";
        else return "South";
    }


Получать направление так
Код:
String direction = getDirection(player.getLocation().getYaw());
Сейчас затещу
 
Кароче.
Если пару раз покрутиться подряд влево, то направление может принимать отрицательное значение. Если покрутиться пару раз вправо, то они положительные становятся.
Объясните пожалуйста, что за...
 
Кароче.
Если пару раз покрутиться подряд влево, то направление может принимать отрицательное значение. Если покрутиться пару раз вправо, то они положительные становятся.
Объясните пожалуйста, что за...
Забей на цифры, результат моей формулы юзай и все, а не код костыльщиков.
 
Забей на цифры, результат моей формулы юзай и все, а не код костыльщиков.
1. Я не могу разобраться в том, что написано(я не топ кодер,ахах)
2. Я не знаю как реализовать, чтоб блок, который изменяется, через 1-2 сек изменялся на тот, каким был
 
Полтора месяца уже долблюсь с этой системой строительства.
Хочу +/- как в расте чтоб было, но не могу я с этими стенками...
Как это реализовать...
Наработки бросать жалко, а сил уже нет
 
1. Я не могу разобраться в том, что написано(я не топ кодер,ахах)
Почитай про побитовые операции в java
2. Я не знаю как реализовать, чтоб блок, который изменяется, через 1-2 сек изменялся на тот, каким был
Почитай про шедулер в бакките
Полтора месяца уже долблюсь с этой системой строительства.
Хочу +/- как в расте чтоб было, но не могу я с этими стенками...
Как это реализовать...
Наработки бросать жалко, а сил уже нет
Ну, значит для твоего уровня знаний такой плагин пока сложен. Попробуй сделать что-то попроще. И через какое-то время уже вернись к работе над растом
 
1. Я не могу разобраться в том, что написано(я не топ кодер,ахах)
Ну все - выбрасывай. Не твое это писать плагины. Ты даже готовый кусок кода не можешь применить по назначению.
 
2. Я не знаю как реализовать, чтоб блок, который изменяется, через 1-2 сек изменялся на тот, каким был
Вызвать обновление блоков, проще некуда, BlockState#update(). Само отошлет пакет нужный.
 
Даже порно с животными не выглядит так отвратно, как реализация подобного через плагин :/
 
Почитай про побитовые операции в java

Почитай про шедулер в бакките

Ну, значит для твоего уровня знаний такой плагин пока сложен. Попробуй сделать что-то попроще. И через какое-то время уже вернись к работе над растом
Знаю что такое шедулеры.
Просто делаю sendChangeBlock и делаю чтоб через 2 сек выставлялся блок, который был. Делаю через цикл, но он перебивает все, и значения улетают
 
Даже порно с животными не выглядит так отвратно, как реализация подобного через плагин :/
Ну у меня такая цель.
1. Моды пока для меня сложно.
2. Пишу для своего НЕ ЛАУНЧЕРНОГО сервака
 
Назад
Верх