Source: entity.jsdoc

/**
 *
 * @namespace   Entity
 * @description Static methods for the Entity API
 *
 *////

/**
 *
 * @todo get more info on `amplification`
 * @todo figure out what `ambient` is
 *
 * @memberof    Entity
 * @function    addEffect
 * @description Add a potion effect with the specified `effectId` to the specified `entity`.
 *
 * @param {Object}  entity        - the entity to add the effect to
 * @param {int}     effectId      - the {@link MobEffect} to add
 * @param {int}     duration      - the duration of the effect in ticks (1 second = 20 ticks)
 * @param {int}     amplification - the amplification level of the effect
 * @param {boolean} ambient       - ???
 * @param {boolean} showParticles - show particle effects if true, otherwise false
 *
 * @see {@link MobEffect}
 *
 * @example
 * // give that poisonous look
 * var entity = Player.getPointedEntity(),
 * var effect = MobEffect.poison;
 *
 * // to calculate duration, multiply the number of seconds by 20
 * // (e.g., 30 seconds * 20 ticks/second = 600 ticks)
 * var duration = 600;
 *
 * Entity.addEffect(entity, effect, duration, 0, false, true);
 *
 *////

/**
 *
 * @memberof    Entity
 * @function    getAll
 * @description Return a list of all entity objects in the current world.
 *
 * @return {long[]} - all entity objects currently in the game
 *
 * @example
 * <caption>credit: {@link https://goo.gl/5GAKMF|Zhuowei Zhang}</caption>
 *
 * // triggered via a custom command (/removeall)
 * function procCmd(cmd) {
 *   if (cmd === "removeall") {
 *     var entitiesList = Entity.getAll();
 *     for (var i = 0; i < entitiesList.length; i++) {
 *
 *       //skip players, otherwise Minecraft glitches
 *       if (Player.isPlayer(entitiesList[i])) {
 *         continue;
 *       }
 *
 *       Entity.remove(entitiesList[i]);
 *     }
 *   } else {
 *     return;
 *   }
 * }
 *
 *////

/**
 *
 * @memberof    Entity
 * @function    getAnimalAge
 * @description Return the age of a mob. Only works for animals and zombies/skeletons/pigmen.
 *
 * @param {long} entity - the native entity id of the animal
 *
 * @return {int} - the animal's age
 *
 * @example
 * // code here
 *
 *////
function getAnimalAge(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getArmor
 * @description Returns the Item ID of the armor in the given {@link ArmorType} slot.
 *
 * @param {long} entity    - the native entity id of the player/mob to check
 * @param {int}  armorSlot - the {@link ArmorType} to check
 *
 * @return {int}           - the Item ID of the armor in the given slot
 *
 * @example
 * // what's that mob wearing?
 * var ent = Player.getPointedEntity();
 * var eid = Entity.getEntityTypeId(ent);
 * if (eid >= 10 && eid <= 90) {
 *   for (var e in EntityType) {
 *     if (EntityType[e] === eid) {
 *       var armor = [];
 *       var msg = "";
 *       // check each armor slot
 *       for (var t in ArmorType) {
 *         var slot = Item.getName(Entity.getArmor(ent, t)) || "";
 *         if (slot !== "") {
 *           armor.push(slot);
 *         }
 *         if (armor[0]) {
 *           msg = "The mob is wearing: " + armor.toString();
 *         }
 *       }
 *       clientMessage(msg);
 *     }
 *   }
 * }
 *
 *////

/**
 *
 * @memberof    Entity
 * @function    getArmorDamage
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getArmorDamage(Object, int) {}

/**
 *
 * @memberof    Entity
 * @function    getEntityTypeId
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getEntityTypeId(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getHealth
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getHealth(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getItemEntityCount
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getItemEntityCount(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getItemEntityData
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getItemEntityData(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getItemEntityId
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getItemEntityId(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getMaxHealth
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getMaxHealth(Object) {}

/**
 *
 * @memberof    Entity
 * @function    getMobSkin
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getMobSkin(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getNameTag
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getNameTag(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getPitch
 * @description Return the up/down head rotation of the given `entity` (range: \-90 to 90).
 *
 * @param  {long}   [entity=Player] - the native entity id to query
 *
 * @return {double}                 - the pitch value
 *
 * @see {@link Entity.getYaw} for a more detailed example
 *
 * @example
 * // no shoe gazing
 * var pitch = Entity.getPitch();
 * if (pitch < -30) {
 *   clientMessage("Keep your head up!!");
 * }
 *
 *////

/**
 *
 * @memberof    Entity
 * @function    getRenderType
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getRenderType(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getRider
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getRider(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getRiding
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getRiding(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getUniqueId
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getUniqueId(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getVelX
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getVelX(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getVelY
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getVelY(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getVelZ
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getVelZ(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getX
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getX(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getY
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getY(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    getYaw
 * @description return the left/right head rotation of the given `entity` (range: -∞ to ∞)
 *
 * @param  {long}   [entity=Player] - the native entity id to query
 *
 * @return {double}                 - the yaw value
 *
 * @example
 * <caption>Based on {@link http://goo.gl/fcSYaQ|Anti's DebugPE mod}</caption>
 *
 * // determine player's cardinal or intermediate direction
 * function getDirection() {
 *   var player = Player.getEntity();
 *   var yaw = Entity.getYaw(player);
 *   var pitch = Entity.getPitch(player);
 *   var direction;
 *
 *   // adjust rotation for yaw < 0 || yaw >= 360
 *   if (yaw < 0) {
 *     Entity.setRot(player, yaw + 360, pitch);
 *   } else if (yaw >= 360) {
 *     Entity.setRot(player, yaw - 360, pitch);
 *   }
 *
 *   // determine direction with fuzzy ranges
 *   if ((yaw >= 337.5 && yaw < 360) || (yaw >= 0 && yaw < 22.5)) {
 *     direction = "West";
 *   } else if (yaw >= 22.5 && yaw < 67.5) {
 *     direction = "North West";
 *   } else if (yaw >= 67.5 && yaw < 112.5) {
 *     direction = "North";
 *   } else if (yaw >= 112.5 && yaw < 157.5) {
 *     direction = "North East";
 *   } else if (yaw >= 157.5 && yaw < 202.5) {
 *     direction = "East";
 *   } else if (yaw >= 202.5 && yaw < 247.5) {
 *     direction = "South East";
 *   } else if (yaw >= 247.5 && yaw < 292.5) {
 *     direction = "South";
 *   } else if (yaw >= 292.5 && yaw < 337.5) {
 *     direction = "South West";
 *   }
 *   return direction;
 * }
 *
 * // if you die watching the sun set, this should print "West" :-)
 * clientMessage(getDirection());
 *
 *////

/**
 *
 * @memberof    Entity
 * @function    getZ
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function getZ(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    isSneaking
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function isSneaking(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    remove
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function remove(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    removeAllEffects
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function removeAllEffects(Object_) {}

/**
 *
 * @memberof    Entity
 * @function    removeEffect
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function removeEffect(Object_, int_) {}

/**
 *
 * @memberof    Entity
 * @function    rideAnimal
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function rideAnimal(Object1, Object2) {}

/**
 *
 * @memberof    Entity
 * @function    setAnimalAge
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setAnimalAge(Object_, int_) {}

/**
 *
 * @memberof    Entity
 * @function    setArmor
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setArmor(Object, int1, int2, int3) {}

/**
 *
 * @memberof    Entity
 * @function    setCape
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setCape(Object_, String_) {}

/**
 *
 * @memberof    Entity
 * @function    setCarriedItem
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setCarriedItem(Object_, int1, int2, int3) {}

/**
 *
 * @memberof    Entity
 * @function    setCollisionSize
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setCollisionSize(Object_, double1, double2) {}

/**
 *
 * @memberof    Entity
 * @function    setFireTicks
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setFireTicks(Object_, int_) {}

/**
 *
 * @memberof    Entity
 * @function    setHealth
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setHealth(Object_, int_) {}

/**
 *
 * @memberof    Entity
 * @function    setMaxHealth
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setMaxHealth(Object_, int_) {}

/**
 *
 * @memberof    Entity
 * @function    setMobSkin
 * @description Set the `skin` image for a valid MCPE entity `id`.
 *
 * @param {int}    id   - the entity ID (see: {@link EntityType})
 * @param {string} skin - the skin image path (usually an image found in the
 *                        `../assets/images` folder of the MCPE apk)
 *
 * @example
 * // make yourself look like a creeper
 * Entity.setMobSkin(Player.getEntity(), "mob/creeper.png");
 *
 *////

/**
 *
 * @memberof    Entity
 * @function    setNameTag
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setNameTag(Object_, String_) {}

/**
 *
 * @memberof    Entity
 * @function    setPosition
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setPosition(Object_, double_, double1, double2) {}

/**
 *
 * @memberof    Entity
 * @function    setPositionRelative
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setPositionRelative(Object_, double_, double1, double2) {}

/**
 *
 * @memberof    Entity
 * @function    setRenderType
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setRenderType(Object_, int_) {}

/**
 *
 * @memberof    Entity
 * @function    setRot
 * @description Set the rotation of the specified `entity`'s head to
 *              the specified `yaw` and `pitch`. If attackHook is not
 *              used, {@link Player.getEntity()} should be used as the
 *              entity parameter.
 *
 * @param {long}   entity - the target entity that will have its head rotation modified
 * @param {double} yaw    - the desired `yaw` of the entity
 * @param {double} pitch  - the desired `pitch` of the entity
 *
 * @see {@link getYaw} for a more detailed example
 *
 * @example
 * // the exorcist
 * var y = 0;
 * while (y <= 360) {
 *   setRot(Player.getEntity(), y, 0);
 *   y++;
 * }
 *
 *////

/**
 *
 * @memberof    Entity
 * @function    setSneaking
 * @description desc
 *
 * @example
 * // code here
 *
 *////
function setSneaking(Object_, boolean_) {}

/**
 *
 * @memberof    Entity
 * @function    setVelX
 * @description Set the specified `entity`'s `velocity` along the X axis.
 *
 * @param {long}   entity   - the target entity
 * @param {double} velocity - the desired velocity
 *
 * @example
 * <caption>credit: {@link https://goo.gl/CWKplX|Zhuowei Zhang}</caption>
 *
 * // jetpack fun time
 * var playerDir = [0, 0, 0];
 * var DEG_TO_RAD = Math.PI / 180;
 * var playerFlySpeed = 1;
 *
 * function modTick() {
 *   if (Player.getCarriedItem() == 280) {
 *     jetpackTick();
 *   }
 * }
 * function jetpackTick() {
 *   toDirectionalVector(playerDir, (Player.getYaw() + 90) * DEG_TO_RAD, Player.getPitch() * DEG_TO_RAD * -1);
 *   var player = Player.getEntity();
 *   Entity.setVelX(player, playerFlySpeed * playerDir[0]);
 *   Entity.setVelY(player, playerFlySpeed * playerDir[1]);
 *   Entity.setVelZ(player, playerFlySpeed * playerDir[2]);
 * }
 * function toDirectionalVector(vector, yaw, pitch) {
 *   // see: http://stackoverflow.com/questions/1568568/how-to-convert-euler-angles-to-directional-vector
 *   vector[0] = Math.cos(yaw) * Math.cos(pitch);
 *   vector[1] = Math.sin(pitch);
 *   vector[2] = Math.sin(yaw) * Math.cos(pitch);
 * }
 *
 *////

/**
 *
 * @memberof    Entity
 * @function    setVelY
 * @description Set the specified `entity`'s `velocity` along the Y axis.
 *
 * @param {long}   entity   - the target entity
 * @param {double} velocity - the desired velocity
 *
 * @see See example at {@link Entity.setVelX}
 *
 *////

/**
 *
 * @memberof    Entity
 * @function    setVelZ
 * @description Set the specified `entity`'s `velocity` along the Z axis.
 *
 * @param {long}   entity   - the target entity
 * @param {double} velocity - the desired velocity
 *
 * @see See example at {@link Entity.setVelX}
 *
 *////

/**
 *
 * @memberof    Entity
 * @function    spawnMob
 * @description Spawn a valid MCPE entity with the specified `id` at the given
 *              `x`, `y`, and `z` coordinates using the specified `skin` image.
 *
 * @param {double} x    - the x coordinate
 * @param {double} y    - the y coordinate
 * @param {double} z    - the z coordinate
 * @param {int}    id   - the entity ID (see: {@link EntityType})
 * @param {string} skin - the skin image path (an image found in the
 *                        `../assets/images` folder of the MCPE apk)
 *
 * @see {@link Level.spawnMob}, {@link bl_spawnMob}
 *
 * @example
 * // spawn a skeleton
 * Entity.spawnMob(152, 48, 73, EntityType.SKELETON, "mob/skeleton.png");
 *
 *////