天境辅助实体
基本信息
本页收录不进入生物群系刷怪表、供玩法系统使用的 5 个实体。
| 注册名 | 实体 ID | 类 | 基类 | 碰撞箱 | 用途 |
|---|---|---|---|---|---|
aether_legacy:floating_block |
25 | EntityFloatingBlock |
Entity |
0.98 × 0.98 | 浮空方块(重力矿石等) |
aether_legacy:tnt_present |
26 | EntityTNTPresent |
Entity |
0.98 × 0.98 | 节日炸弹 |
aether_legacy:mini_cloud |
24 | EntityMiniCloud |
EntityFlying |
0.5 × 0.45 | 迷你境云 |
aether_legacy:parachute |
31 | EntityParachute |
Entity |
1.0 × 1.0 | 跳伞伞体 |
aether_legacy:aether_item |
32 | EntityAetherItem |
EntityItem |
— | 特殊的掉落物实体 |
功能
浮空方块(EntityFloatingBlock)
天境的浮空方块机制载体,实现 IEntityAdditionalSpawnData(EntityFloatingBlock.java:19)以便同步方块数据。关联的方块基类是 com.gildedgames.the_aether.blocks.util.BlockFloating —— 天境中重力矿石与魔淬重力晶矿都基于它(见天境矿石)。
物理逻辑(onUpdate,EntityFloatingBlock.java:53-66):
if (this.getBlock() == null || this.getBlock() == Blocks.air) { ... }
this.motionY += 0.04D;
this.moveEntity(this.motionX, this.motionY, this.motionZ);
this.motionX *= 0.9800000190734863D;
this.motionY *= 0.9800000190734863D;
即持续的向上加速度 0.04/tick 配合 0.98 的速度阻尼,让方块在浮空岛下方悬浮而不落地。构造时速度归零(EntityFloatingBlock.java:41)。
节日炸弹(EntityTNTPresent)
EntityTNTPresent 是圣诞节内容的爆炸物,fuse 字段会被写入与读出 NBT(EntityTNTPresent.java 的 writeEntityToNBT / readEntityFromNBT),因此爆炸倒计时能正确存档。
onUpdate(EntityTNTPresent.java:41-61):
- 重力
-0.04D/tick,速度阻尼0.98 - 落地时
motionY *= -0.5D(弹跳) fuse递减到 0 时服务端setDead()并explode()- 未到 0 时每 tick 生成
smoke粒子
爆炸强度 0.4(EntityTNTPresent.java:64):
float f = 0.4F;
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, f, true);
getShadowSize() 返回 0.0F(EntityTNTPresent.java),即不渲染影子。
迷你境云(EntityMiniCloud)
EntityMiniCloud extends EntityFlying(EntityMiniCloud.java:16),实现 IEntityAdditionalSpawnData,碰撞箱 0.5 × 0.45(:33),可飞行。
跳伞伞体(EntityParachute)
EntityParachute 由玩家使用云落伞跳伞时生成,实现 IEntityAdditionalSpawnData(EntityParachute.java:15),碰撞箱 1.0 × 1.0(:24)。类中引用了 explode 音效(EntityParachute.java:52),用于落地或失效。
伞体的颜色由伞的种类决定 —— ItemAetherParachute.java:30 把 this == ItemsAether.golden_parachute 的布尔值传给 EntityParachute 构造,因此金黄伞与寒风伞的伞体外观不同。
特殊掉落物实体(EntityAetherItem)
EntityAetherItem extends EntityItem(EntityAetherItem.java:7),只有 26 行,唯一的覆写是:
@Override
public boolean isEntityInvulnerable() {
return true;
}
(EntityAetherItem.java:22-25)即天境掉落物实体免疫一切伤害(火焰、爆炸、虚空等都无法摧毁)。它与原版 EntityItem 的区别仅在于此。
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 浮空方块碰撞箱 | 0.98 × 0.98 | EntityFloatingBlock.java:32 |
| 浮空方块上升加速度 | +0.04/tick | EntityFloatingBlock.java:63 |
| 浮空方块速度阻尼 | 0.98 | EntityFloatingBlock.java:65-66 |
| 炸弹碰撞箱 | 0.98 × 0.98 | EntityTNTPresent.java:15 |
| 炸弹重力 | -0.04/tick | EntityTNTPresent.java:45 |
| 炸弹落地弹跳系数 | -0.5 | EntityTNTPresent.java:51 |
| 炸弹爆炸强度 | 0.4 | EntityTNTPresent.java:64 |
| 炸弹影子大小 | 0.0 | EntityTNTPresent.java getShadowSize |
| 迷你境云碰撞箱 | 0.5 × 0.45 | EntityMiniCloud.java:33 |
| 伞体碰撞箱 | 1.0 × 1.0 | EntityParachute.java:24 |
| 天境物品实体免疫伤害 | 是 | EntityAetherItem.java:22-25 |
交互
| 实体 | 交互 |
|---|---|
| 浮空方块 | 只能用镐采下方块;掉落物即浮空方块 |
| 炸弹 | 落地弹跳,冒烟,引信到时爆炸 |
| 伞体 | 玩家跳伞时生成,落地消失 |
| 天境物品实体 | 无法被任何伤害摧毁 |