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

Помогите Выделение территории

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

  1. Автор темы
    zSeltix

    zSeltix Новичок

    Баллы:
    6
    Имя в Minecraft:
    zSeltix
    Пишу свою игру. Возникли сложности в территории! Могу выделить две точки, но не могу преобразовать это в территорию (как в WorldEdit), и работать с ней. Подскажите код
     
  2. alexandrage

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

    Баллы:
    173
  3. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    У меня в одном старом плагине есть то же самое, что у @alexandrage, только с локациями и парой полезной плюх

    Код:
    public class AreaCoords implements ConfigurationSerializable {
        public Location getBegin() {
            return begin;
        }
    
        public Location getEnd() {
            return end;
        }
    
        public void setBegin(Location begin) {
            this.begin = begin;
        }
    
        public void setEnd(Location end) {
            this.end = end;
        }
    
        Location begin;
        Location end;
    
        public AreaCoords(Location begin, Location end) {
            this.begin = begin;
            this.end = end;
        }
    
        public AreaCoords(Location point, boolean fromEnd) {
            if(!fromEnd) {
                this.begin = point;
            } else {
                this.end = point;
            }
        }
    
        public AreaCoords clone() {
            return new AreaCoords(begin, end);
        }
    
        public boolean isFull() {
            return (begin != null && end !=null);
        }
    
        public int calculateVolume() {
            int Ydist = (int) Math.abs(begin.getX() - end.getX()) + 1;
            int Xdist = (int) Math.abs(begin.getY() - end.getY()) + 1;
            int Zdist = (int) Math.abs(begin.getZ() - end.getZ()) + 1;
            return Ydist*Xdist*Zdist;
        }
    
        public Map<String, Object> serialize() {
            Map<String, Object> data = new HashMap<String, Object>();
            data.put("begin", begin);
            data.put("end", end);
            return data;
        }
    
        public static AreaCoords deserialize(Map<String, Object> args) {
            Location begin = (Location) args.get("begin");
            Location end = (Location) args.get("end");
            return new AreaCoords(begin, end);
        }
    
    }
     
  4. alexandrage

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

    Баллы:
    173
    Я делал независимый от ведроапи скрипт. Потому нет локаций. И у тебя еще нет нормализации мин макс.
     
  5. AtomicScience

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

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Писался для себя, поэтому есть только то, что нужно
     

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