> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cheart.getvapu.today/llms.txt
> Use this file to discover all available pages before exploring further.

# Entity

> 世界实体包装

### 基本

```java theme={null}
int     getId()
String  getName()
String  getDisplayName()
String  getEntityClass()
boolean is(String className)
```

### 位置 & 朝向

```java theme={null}
Vec3   getPosition()
Vec3   getLastPosition()
Vec3   getBlockPosition()
Vec3   getMotion()
float  getYaw()
float  getPitch()
float  getPrevYaw()
float  getPrevPitch()
String getFacing()                  // "N"/"NE"/"E"/"SE"/...
```

### 尺寸

```java theme={null}
float    getEyeHeight()
float    getHeight()
float    getWidth()
double[] getBoundingBox()           // { minX,minY,minZ, maxX,maxY,maxZ }
```

### 状态

```java theme={null}
boolean isOnGround()
boolean isCollided()
boolean isCollidedHorizontally()
boolean isCollidedVertically()
boolean isDead()
boolean isBurning()
boolean isInLava()
boolean isInLiquid()
boolean isInvisible()
boolean isOnLadder()
boolean isRiding()
boolean isSneaking()
boolean isSprinting()
boolean isSleeping()
boolean isOnEdge()
float   getFallDistance()
int     getFireResistance()
int     getTicksExisted()
```

### 骑乘

```java theme={null}
Entity getRidingEntity()
Entity getRiddenByEntity()
```

### 距离

```java theme={null}
double distanceTo(Entity other)
double distanceToSq(Entity other)
double distanceTo(Vec3 point)
double distanceToGround()
double getBPS()             // blocks/sec（水平）
double getSpeed()
boolean canEntityBeSeen(Entity target)
```

### 其他

```java theme={null}
void remove()               // 仅客户端
net.minecraft.world.entity.Entity raw()
```

## 子类型

### LivingEntity

所有生物（玩家 / 怪 / 村民 / ...）。在 Entity 基础上扩展：

```java theme={null}
float    getHealth()
float    getMaxHealth()
int      getHurtTime()             // 红色受击闪烁剩余 tick

// 装备 —— slot: 0=head, 1=chest, 2=legs, 3=feet
ItemStack getArmorInSlot(int slot)
ItemStack getHeldItem()            // 主手
ItemStack getOffhandItem()         // 副手

// 药水
List<Effect> getPotionEffects()

// 动作
int     getSwingProgress()         // 挥手动画 tick
void    swing(String arm)          // arm: "MAIN" / "OFF"
boolean isConsuming()              // 是否在吃 / 喝 / 拉弓

Entity  getFisher()                // 钓鱼钩子的 owner（仅 Player 有，其他返回 null）
```

### Player

```java theme={null}
float getExperience()              // 经验进度 0..1
int   getExperienceLevel()         // 经验等级

int   getHunger()                  // 饥饿值 0..20
float getSaturation()              // 饱和度

Entity getFisher()                 // 重写：返回钓鱼钩子的 owner
```

### LocalPlayer

```java theme={null}
void jump()                        // 起跳一次（等同空格）
void setSpeed(double blocksPerSecond)   // 直接设当前帧水平速度
void setSprinting(boolean on)
void setSneaking(boolean on)

void sendChatMessage(String msg)   // "/" 开头作为命令

ItemStack getInventorySlot(int slot)    // 0..8 hotbar / 9..35 主背包 / 36..39 甲 / 40 副手
int       getSelectedSlot()        // 当前 hotbar 槽
```

### ItemEntity

掉落物（地上的物品）。在 Entity 基础上：

```java theme={null}
ItemStack getItem()
ItemStack getItemStack()           // 别名
String    getItemId()              // 例 "minecraft:diamond"
String    getItemName()
int       getItemCount()
int       getAge()                 // 已存在的 tick 数（6000 后消失）
```

## 示例

```java theme={null}
for (e : me.getWorld().getEntities()) {
    if (e instanceof LocalPlayer) {
        e.setSprinting(true);
    } else if (e instanceof Player) {
        me.log(e.getName() + " hp=" + e.getHealth() + " hunger=" + e.getHunger());
    } else if (e instanceof LivingEntity) {
        if (e.getHealth() < e.getMaxHealth() / 2) me.subChat(e.getName() + " 半血了");
    } else if (e instanceof ItemEntity) {
        me.log("掉落物：" + e.getItemName() + " ×" + e.getItemCount());
    }
}
```
