EntityState

Загрузка

Библиотека является частью мода с открытым исходным кодом A.P.O. Craft. Последняя версия библиотеки находится по этому адресу.

Условия использования

Разрешено неограниченное использование данной библиотеки в собственных модификациях

  • Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество
  • Запрещено изменение кода библиотеки
  • Запрещено явное копирование кода в другие библиотеки или моды 

Используя данный продукт вы автоматически соглашаетесь с этими правилами

Документация

Подключение

Чтобы подключить библиотеку, необходимо расположить файл библиотеки в папку lib в корне мода написать следующее в начале вашего кода:

IMPORT("EntityState");
После этого вам станет доступен весь функционал библиотеки.

Использование

Данная библиотека содержит статический класс EntityState, хранящий все необходимые методы и константы, а так же конструктор EntityStateInfo, предназначенный для хранения информации и упрощающий доступ к нему.

Константы EntityState:

EntityState.STANDING = 1;  // Игрок неподвижен в горизонтальной плоскости
EntityState.STEALING = 2;  // Игрок крадется или медленно перемещается
EntityState.WALKING = 4;   // Игрок идет с нормальной скоростью
EntityState.RUNNING = 8;   // Игрок бежит
EntityState.JUMPING = 16;  // Игрок в прыжке
EntityState.FALLING = 32;  // Игрок падает с большой высоты
EntityState.SWIMMING = 64; // Игрок плывет под водой
EntityState.FLOATING = 128;// Игрок плывет по поверхности воды

Данные константы являются флагами, и поэтому могут быть объеденины с помощью симвла "|".

Методы класса EntityState:

getEntityState(entty) - возвращает объект EntityStateInfo, содержащий информацию о текущем действии сущности entity

getPlayerState() - возвращает объект EntityStateInfo, содержащий информацию о текущем действии игрока

getSpeed(entity) - возвращает линейную горизонтальную составляющую скорости сущности (значение больше ноля)


Методы и поля объектов EntityStateInfo:

  • state - поле, содержащее текущее состояние сущности. Является результатом побитового "или" всех текущих флагов.
  • checkFlags(flags) - проверяет, присутствуют ли в текущем состоянии данные флаги. Пример:
    let state = EntityState.getPlayerState();
    Game.message(state.checkFlags(EntityState.RUNNING)) // Выведет 0, если игрок не бежит,8 в противном случае
    

toString() - возвращает строковое представление всех флагов. Например, если игрок бежит "вприпрыжку", toString() вернет "RUNNING | JUMPING" (в основном используется для отладки).


Стоит заметить, что библиотека на данный момент не учитывает зелья или средства передвижения (второе невозможно технически), поэтому может выдавать неожиданные результаты.