/**
*
* @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");
*
*////