Admin (обсуждение | вклад) |
(сузности на сущности) |
||
(не показано 11 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
− | <div class="mw-parser-output"><div class="mw-parser-output"> | + | <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> |
Вся работа с мобами осуществляется через модуль Entity. | Вся работа с мобами осуществляется через модуль Entity. | ||
− | *Entity.getAll() - возвращает Java-массив всех мобов в мире | + | <div class="mw-parser-output"> |
− | *Entity.getAllJS() - | + | == Методы для работы с сущностями в Inner Core == |
− | *Entity. | + | |
− | *Entity. | + | <div class="mw-parser-output"> |
− | *Entity. | + | === Получение === |
− | *Entity. | + | |
− | *Entity. | + | *Entity.getAll() - возвращает Java-массив всех мобов в мире |
− | *Entity. | + | *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. Если тип сущности не указан, найдёт все сущности в указанном радиусе | |
− | + | </div> | |
− | *Entity. | + | |
− | + | === Создание и удаление === | |
− | *Entity. | + | |
+ | *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.remove(mob) - удаляет сущность mob из мира. | ||
− | + | ||
− | *Entity. | + | <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> |
− | + | === Работа с эффектами === | |
− | *Entity. | + | |
− | *Entity. | + | *Entity.addEffect(entity, effectId, amplifier, effectTime, [ambience], [particles]) - накладывает на сущность entity эффект с id effectId на время effectTime. amplifier - сила эффекта, ambience - внешний вид частиц (''true''/''false'') и particles - отображать ли частицы (''true''/''false'') |
− | *Entity. | + | *Entity.clearEffect(entity, effectId) - удаляет у сущности mob эффект id. |
− | *Entity. | + | *Entity.clearEffects(entity) - удаляет у сущности mob все эффекты. |
− | *Entity. | + | </div> </div> </div> </div> |
− | * | + | |
− | * | + | === Здоровье моба === |
− | * | + | |
− | * | + | *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.getHealth(mob) - возвращает здоровье сущности mob. | ||
*Entity.setHealth(mob, hp) - устанавливает здоровье в hp единиц сущности mob. | *Entity.setHealth(mob, hp) - устанавливает здоровье в hp единиц сущности mob. | ||
*Entity.getMaxHealth(mob) - возвращает максимальное количество здоровья сущности mob. | *Entity.getMaxHealth(mob) - возвращает максимальное количество здоровья сущности mob. | ||
*Entity.setMaxHealth(mob, maxhp) - устанавливает максимальное здоровье maxhp сущности 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) - возвращает [[InnerCore/Список_ванильных_рендеров|id рендера]] сущности mob | ||
+ | *Entity.setRender(mob, render) - устанавливает сущности mob рендер с id render. [[InnerCore/Список_ванильных_рендеров|Список ванильных рендеров]] | ||
+ | <div class="mw-parser-output"> | ||
+ | === Работа с инвентарём === | ||
+ | |||
+ | *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 дропнула | ||
+ | </div> | ||
+ | === Параметры моба === | ||
+ | |||
+ | *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 снарядом, если это так, возвращает ее данные как предмета. | ||
+ | <div class="mw-parser-output"><div class="mw-parser-output"> | ||
+ | === Поведение моба === | ||
+ | |||
+ | *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 | ||
+ | </div> | ||
+ | === Положение и поворот моба === | ||
+ | |||
*Entity.setPosition(mob, x, y, z) - устанавливает сущность mob на координаты x, y, z. | *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.getPosition(mob) - возвращает координаты сущности mob. |
− | *Entity. | + | *Entity.addPosition(mob, x, y, z) - относительно перемещает сущность mob на координаты x, y, z. |
− | + | *Entity.getLookAngle(mob) - возвращает угол обзора сущности mob в виде объекта {pitch: pitch, yaw: yaw}. Углы выражаются в радианах | |
− | *Entity. | + | *Entity.setLookAngle(mob, yaw, pitch) - устанавливает сущности углы обзора yaw и pitch. Углы выражаются в радианах |
− | *Entity. | + | *Entity.getLookVector(mob) - возвращает вектор взгляда сущности mob в формате {x: x, y: y, z: z} |
− | *Entity. | + | *Entity.lookAt(entity, x, y, z) - устанавливает обзор сущности entity так, чтобы она смотрела на координаты x, y, z |
− | *Entity. | + | *Entity.lookAtCoords(entity, coords) - то же, что и ''Entity.lookAt'', но на вход принимает координаты в формате {x: x, y: y, z: z} |
− | + | <div class="mw-parser-output"> | |
− | *Entity. | + | |
− | *Entity. | + | === Движение моба === |
− | + | ||
− | *Entity. | + | *Entity.setVelocity(mob, velx, vely, velz) - устанавливает трехмерное ускорение velx, vely, velz сущности mob |
− | *Entity.moveToTarget( | + | *Entity.getVelocity(mob) - возвращает трехмерное ускорение сущности mob в виде объекта {x: x, y: y, z: z} |
− | *Entity.moveToAngle(mob, angle, params) - | + | *Entity.addVelocity(mob, velx, vely, velz) - добавляет трехмерное ускорение velx, vely, velz сущности mob |
− | *Entity.moveToLook(mob, params) - | + | *Entity.moveToTarget(entity, target, params) - передвигает сущность entity к координатам target. Параметр params - объект следующего формата (поданы значения по умолчанию) |
− | *Entity.getMovingVector(mob) - возвращает вектор движения сущности mob | + | |
− | *Entity.getMovingAngle(mob) - возвращает угол передвижения сущности mob | + | |
− | *Entity. | + | <syntaxhighlight lang="Javascript">{ |
− | *Entity. | + | speed: 0, // Скорость движения |
− | *Entity. | + | denyY: false, // Запрещено ли изменение скорости по оси Y |
− | *Entity. | + | jumpVel: 0 // Задаёт скорость по оси Y |
+ | }</syntaxhighlight> | ||
+ | |||
+ | *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} | ||
+ | |||
+ | <span style="display: none;"> </span> | ||
+ | </div> | ||
+ | <div class="mw-parser-output"> | ||
+ | === Вспомогательные методы === | ||
+ | |||
+ | *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} | ||
+ | |||
</div> </div> | </div> </div> | ||
+ | </div> | ||
+ | |||
+ | == Легаси-функции, не реализованные в 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. | ||
+ | </div> </div> </div> </div> </div> </div> |
Вся работа с мобами осуществляется через модуль Entity.
{
speed: 0, // Скорость движения
denyY: false, // Запрещено ли изменение скорости по оси Y
jumpVel: 0 // Задаёт скорость по оси Y
}