Модуль Entity — различия между версиями

м (Положение и поворот моба)
(Поменял местами amplifier и effectTime)
Строка 22: Строка 22:
 
*Entity.remove(mob) - удаляет сущность mob из мира.  
 
*Entity.remove(mob) - удаляет сущность mob из мира.  
  
 +
<div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
 
=== Работа с эффектами ===
 
=== Работа с эффектами ===
  
*Entity.addEffect(entity, effectId, effectTime, amplifier, [ambience], [particles]) - накладывает на сущность entity эффект с id effectId на время&nbsp;effectTime.&nbsp;amplifier - сила эффекта,&nbsp;ambience - внешний вид частиц (''true''/''false'') и&nbsp;particles - отображать ли частицы (''true''/''false'')  
+
*Entity.addEffect(entity, effectId, amplifier, effectTime, [ambience], [particles]) - накладывает на сущность entity эффект с id effectId на время&nbsp;effectTime.&nbsp;amplifier - сила эффекта,&nbsp;ambience - внешний вид частиц (''true''/''false'') и&nbsp;particles - отображать ли частицы (''true''/''false'')  
 
*Entity.clearEffect(entity, effectId) - удаляет у сущности mob эффект id.  
 
*Entity.clearEffect(entity, effectId) - удаляет у сущности mob эффект id.  
 
*Entity.clearEffects(entity) - удаляет у сущности mob все эффекты.  
 
*Entity.clearEffects(entity) - удаляет у сущности mob все эффекты.  
 +
</div> </div> </div> </div>
  
 
=== Здоровье моба ===
 
=== Здоровье моба ===

Версия 20:16, 23 марта 2020

Вся работа с мобами осуществляется через модуль Entity.

Методы для работы с сущностями в Inner Core

Получение

  • Entity.getAll() - возвращает Java-массив всех мобов в мире
  • Entity.getAllJS() - идентичен Entity.getAll, оставлен для совместимости
  • Entity.isExist(mob) - проверяет, существует ли сущность mob
  • Entity.getCustom(mob) - возвращает Updatable сущности mob, если она создана через MobRegistry.
  • Entity.findNearest(coords, type, maxRange) - возвращает ближайшую к координатам coords сущность. Если задан параметр type, то находит только сузностей с заданным типом. Если задан maxRange, то поиск будет производится в радиусе maxRange. Возвращает объект, содержащий уникальный идентификатор моба и расстояние до него: {entity: entity, dis: distance}
  • Entity.getAllInRange(coords, maxRange, [type]) - возвращает JS-массив сущностей с типом type в сфере с центром coords и радиусом maxRange. Если тип сущности не указан, найдёт все сущности в указанном радиусе

Создание и удаление

  • Entity.spawn(x, y, z, id, [skin]) - спавнит существо с типом id, координатами x, y, z и назначает ему скин skin.
  • Entity.spawnAtCoords(coords, id, skin) - то же, что и Entity.spawn, но позволяет задать координаты в виде объекта {x: x, y: y, z: z}
  • Entity.spawnCustom(name, x, y, z, [extra]) - спавнит сущность со строковым ID name, зарегистрированным через MobRegistry, на координатах x, y, z. Позволяет передать дополнительные данные в контроллеры сущности с помощью параметра extra
  • Entity.spawnCustomAtCoords(name, coords, [extra]) - то же, что и Entity.spawnCustom, но позволяет задать координаты в виде объекта {x: x, y: y, z: z}
  • Entity.remove(mob) - удаляет сущность mob из мира.

Работа с эффектами

  • Entity.addEffect(entity, effectId, amplifier, effectTime, [ambience], [particles]) - накладывает на сущность entity эффект с id effectId на время effectTime. amplifier - сила эффекта, ambience - внешний вид частиц (true/false) и particles - отображать ли частицы (true/false)
  • Entity.clearEffect(entity, effectId) - удаляет у сущности mob эффект id.
  • Entity.clearEffects(entity) - удаляет у сущности mob все эффекты.

Здоровье моба

  • Entity.damageEntity(entity, damage, [cause], [params]) -  наносит сущности entity урон в damage единиц, cause может использоваться для определения attacker события, params - объект значений bool1 и bool2, смысл которых пока неизвестен
  • Entity.healEntity(entity, damage) - лечит сущность entity на damage единиц.
  • Entity.health(entity) - возвращает объект для работы со здоровьем моба. Объект содержит следующие методы, привязанные к entity:
    • get() - возвращает здоровье сущности
    • set() - устанавливает здоровье сущности
    • getMax() - получает максимальное возможное значение здоровья сущности
    • setMax() - устанавливает максимальное возможное значение здоровья сущности
  • Entity.getHealth(mob) - возвращает здоровье сущности mob.
  • Entity.setHealth(mob, hp) - устанавливает здоровье в hp единиц сущности mob.
  • Entity.getMaxHealth(mob) - возвращает максимальное количество здоровья сущности mob.
  • Entity.setMaxHealth(mob, maxhp) - устанавливает максимальное здоровье maxhp сущности mob.

Внешний вид моба

  • Entity.setHitbox(mob, width, height) - устанавливает сущности mob хитбокс высотой width и шириной height.
  • Entity.setSkin(mob, skin) - ставит текстуру по пути texture сущности skin.
  • Entity.setTexture(mob, texture) - ставит объект Texture в качестве текстуры для моба. На данный момент анимированные текстуры не поддерживаются. 
  • Entity.getRender(mob) - возвращает id рендера сущности mob
  • Entity.setRender(mob, render) - устанавливает сущности mob рендер с id render. Список ванильных рендеров

Работа с инвентарём

  • Entity.getArmorSlot(entity, slot) - возвращает объект, содержащий информацию о предмете, хранимом в указанном слоте брони slot сущности entity
  • Entity.setArmorSlot(entity, slot, id, count, data) - устанавливает в указанный слот брони slot сущности entity предмет с id, data и с количеством count 
  • Entity.getCarriedItem(entity) - возвращает объект, содержащий информацию о предмете, который держит в руках сущность entity
  • Entity.setCarriedItem(entity, id, count, data) - устанавливает в руку сущности entity предмет с id, data и с количеством count 
  • Entity.getDroppedItem(entity) - получает предмет, которую сущность entity дропнула
  • Entity.setDroppedItem(entity, id, count, data) - устанавливает предмет, которую сущность entity дропнула

Параметры моба

  • Entity.getType(entity) - получает числовой тип моба entity
  • Entity.getAge(mob) - возвращает возраст сущности mob
  • Entity.setAge(mob, age) - устанавливает возраст age сущности mob
  • Entity.getNameTag(mob) - возвращает имя сущности mob.
  • Entity.setNameTag(mob, name) - устанавливает сущности mob имя name.
  • Entity.getProjectileItem(mob) - проверяет, является ли сущность mob снарядом, если это так, возвращает ее данные как предмета.

Поведение моба

  • Entity.getMobile(mob) - получает, может ли сущность mob двигаться 
  • Entity.setMobile(mob, mobile) - в зависимости от значения mobile (true/false) управляет возможностью сущности mob двигаться.
  • Entity.getSneaking(mob) - проверяет, сидит ли сущность mob.
  • Entity.setSneaking(mob, sneak) - в зависимости от значения mobile (true/false) управляет, находится ли сущность mob в присяде.
  • Entity.setFire(mob, tick, [force]) - заставляет сущность mob гореть в течении tick тиков. Последний параметр force следует всегда устанавливать в true

Положение и поворот моба

  • Entity.setPosition(mob, x, y, z) - устанавливает сущность mob на координаты x, y, z.
  • Entity.getPosition(mob) - возвращает координаты сущности mob.
  • Entity.addPosition(mob, x, y, z) - относительно перемещает сущность mob на координаты x, y, z.
  • Entity.getLookAngle(mob) - возвращает угол обзора сущности mob в виде объекта {pitch: pitch, yaw: yaw}. Углы выражаются в радианах
  • Entity.setLookAngle(mob, yaw, pitch) - устанавливает сущности углы обзора yaw и pitch. Углы выражаются в радианах
  • Entity.getLookVector(mob) - возвращает вектор взгляда сущности mob в формате {x: x, y: y, z: z}
  • Entity.lookAt(entity, x, y, z) - устанавливает обзор сущности entity так, чтобы она смотрела на координаты x, y, z
  • Entity.lookAtCoords(entity, coords) - то же, что и Entity.lookAt, но на вход принимает координаты в формате {x: x, y: y, z: z}

Движение моба

  • Entity.setVelocity(mob, velx, vely, velz) - устанавливает трехмерное ускорение velx, vely, velz сущности mob
  • Entity.getVelocity(mob) - возвращает трехмерное ускорение сущности mob в виде объекта {x: x, y: y, z: z}
  • Entity.addVelocity(mob, velx, vely, velz) - добавляет трехмерное ускорение velx, vely, velz сущности mob
  • Entity.moveToTarget(entity, target, params) - передвигает сущность entity к координатам target. Параметр params - объект следующего формата (поданы значения по умолчанию)

 

{
    speed: 0, // Скорость движения
    denyY: false, // Запрещено ли изменение скорости по оси Y
    jumpVel: 0 // Задаёт скорость по оси Y
}
  • Entity.moveToAngle(mob, angle, params) - разворачивает сущность mob на угол angle. Параметр params идентичен параметру метода Entity.moveToTarget
  • Entity.moveToLook(mob, params) - разворачивает сущность mob в сторону взгляда. Параметр params идентичен параметру метода Entity.moveToTarget
  • Entity.getMovingVector(mob) - возвращает вектор движения сущности mob - объект со следующими полями:
    • x - проекция единичного вектора скорости сущности на ось x
    • y - проекция единичного вектора скорости сущности на ось y
    • z - проекция единичного вектора скорости сущности на ось z 
    • size - длина вектора скорости, численное значение скорости сущности
    • xzsize - скорость сущности в горизонтальной плоскости
  • Entity.getMovingAngle(mob) - возвращает угол передвижения сущности mob в формате {pitch: pitch, yaw: yaw}

 

Вспомагательные методы

  • Entity.getDistanceBetweenCoords(coords1, coords2) - возвращает расстояние между координатами в обьектах coords1 и coords2. Координаты задаются в формате {x: x, y: y, z: z}
  • Entity.getDistanceToCoords(mob, coords) - возвращает расстояние от сущности mob до координат в обьекте coords {x: x, y: y, z: z}
  • Entity.getDistanceToEntity(mob1, mob2) - возвращает расстояние между сущностями mob1 и mob2.
  • Entity.getXZPlayerDis(entity) - возвращает расстояние в горизонтальной плоскости от сущности entity до игрока
  • Entity.getLookVectorByAngle(angle) - возвращает вектор взгляда сущности в формате {x: x, y: y, z: z}, исходя из угла обзора angle, представленного в формате {pitch: pitch, yaw: yaw}
  • Entity.getLookAt(mob, x, y, z) - высчитывает угол обзора сущности, необходимый, чтобы она смотрела на координаты x, y, z. Возвращает объект формата {pitch: pitch, yaw: yaw}

Легаси-функции, не реализованные в Inner Core

  • Entity.getExtra(mob, propetry) - возвращает значение свойства propetry сущности mob в виде строки
  • Entity.putExtra(mob, propetry, value) - записывает свойство propetry со значением value в виде строки сущности mob.
  • Entity.getExtraJson(mob, propetry) - возвращает свойство propetry сущности mob в виде JS-обьекта.
  • Entity.putExtraJson(mob, propetry, value) - записывает свойство propetry со значением value в виде JS-обьекта сущности mob.
  • Entity.getSkin(mob) - возвращает путь в текстурпаке текстуры сущности mob. 
  • Entity.rideAnimal(rider, riding) - сажает сущность rider на сущность riding.
  • Entity.getRider(mob) - проверяет, всадник ли сущность mob.
  • Entity.getRiding(mob) - проверяет, сидят ли на сущности mob.
  • Entity.getTarget(mob) - возвращает цель сущности mob.
  • Entity.setTarget(attaker, victim) - ставит сущности attacker цель victim.
  • Entity.getMovingAngleByPositions(pos1, pos2) - не реализована
  • Entity.getInventory(mob, [object], [object]) - возвращает инвентарь сущности mob.