哭泣爬行者

哭泣爬行者

哭泣天使与苦力怕的混种。当你看着它时,它会冻结。当你不看时,它会加速。它只会伤害你——绝不会破坏你的房子。

哭泣苦力怕

一款为 Minecraft 26.1.xFabricNeoForge 打造的苦力怕 × 哭泣天使混种。

盯着它:它冻结。移开视线:它冲刺。抓到你了:爆炸——但只会伤害,不会破坏地形。可以在任何地方随心所欲地建造,不再害怕那声 嘶嘶嘶

功能简介

  • 被观察时冻结。 当哭泣苦力怕落入你 120° 的正面锥形视野范围内并且拥有视线时,它会完全停止移动。无引信推进、无寻路刻,原地冻结。移开视线、切断视线,或躲到墙后——它会继续狩猎。
  • 比原版更快movementSpeed 0.40 对比原版 0.25——大约和蜘蛛相当)。当你不看它时,它会激进地缩短距离。
  • 只对玩家爆炸。 无方块破坏。不会对其他生物、你的动物、你的物品展示框、你的潜影盒、你的任何东西造成附带伤害。只有你。保留原版伤害缩放,因此高压哭泣苦力怕可以在近距离秒杀无装甲玩家。
  • 默认替换原版苦力怕。 每个自然生成的苦力怕都会变成哭泣苦力怕。可从 0%(只通过刷怪蛋生成)调整到 100%(完全替换)。
  • 雕像美学。 通过实体着色 API 提供微妙的深色、轻微去饱和色调——_并非_独立材质,因此已安装的资源包(Faithful、Sphax 等)仍会应用其高清苦力怕材质,只是变暗了。
  • 泪痕 出现在每只眼睛下方,作为半透明覆盖层绘制。可切换。
  • 近战安全网。 走进近战范围它会冻结,无论视角如何,因此近距离遭遇并不总会以爆炸告终。
  • 可选爱心粒子 作为"我看见你在看我"的喜剧提示(默认关闭——如果喜欢这种风格可在配置中启用)。

配置

配置文件位于 config/weepingcreeper.json(首次启动时生成):

{
  "replacementChance": 1.0,
  "movementSpeed": 0.4,
  "lookArcDegrees": 120.0,
  "proximityFreezeRadius": 1.5,
  "followRange": 64.0,
  "tearsEnabled": true,
  "heartParticlesEnabled": false,
  "heartIntervalTicks": 60,
  "tintBrightness": 0.55,
  "desaturation": 0.25,
  "explosionRadius": 3.0,
  "chargedExplosionRadius": 6.0
}
键名 默认值 说明
replacementChance 1.0 原版苦力怕生成变为哭泣苦力怕的比例。 0.0 = 从不替换;1.0 = 总是替换。
movementSpeed 0.4 移动速度属性。原版苦力怕为 0.25
lookArcDegrees 120.0 被视为"正在注视"的正面锥形视野宽度。
proximityFreezeRadius 1.5 此距离内的任何玩家无论视角如何都会冻结苦力怕。 0 表示禁用。
followRange 64.0 探测/追击范围。原版苦力怕约为 16。
tearsEnabled true 面部泪痕覆盖层。
heartParticlesEnabled false 苦力怕被观察时在其上方生成爱心粒子。喜剧效果,默认关闭。
heartIntervalTicks 60 启用后生成爱心之间的刻数。20 = 1 秒。
tintBrightness 0.55 苦力怕材质的统一亮度倍率。 1.0 = 无变化。
desaturation 0.25 用于雕像外观的每通道绿色减少量。 0.0 = 仅统一变暗。
explosionRadius 3.0 玩家伤害半径。与原版苦力怕相同。
chargedExplosionRadius 6.0 被闪电击中时的半径。与原版高压相同。

tearsEnabledheartParticlesEnabled 和色调值会在渲染时即时生效。其他值需要重启游戏。

底层工作原理

  • 自定义实体WeepingCreeperEntity extends Creeper)——继承标准苦力怕 AI、膨胀计时器和高压变种。通过 EntityJoinLevelEvent(NeoForge)/ ServerEntityEvents.ENTITY_LOAD(Fabric)生成时替换原版苦力怕。
  • 视线检测:玩家视线向量与玩家眼睛到苦力怕中心向量之间的点积,与 cos(arc / 2) 比较,外加原版 hasLineOfSight() 检查。
  • 冻结customServerAiStep 停止导航、清除目标、水平速度归零,并每刻将膨胀引信硬重置为 0。膨胀重置使用一个微小的 mixin 访问器(CreeperAccessor),因为 swell 字段是私有的,而仅靠 setSwellDir(-1) 每刻只能递减一次——对于已经处于爆炸中期的苦力怕来说太慢了。
  • 自定义爆炸:另一个微小 mixin(CreeperTickMixin)包装了 Creeper#tick 内私有的 Creeper#explodeCreeper() 调用。对于哭泣苦力怕,重定向到 WeepingCreeperEntity#explodeWeeping(),该函数触发仅装饰性的爆炸(Level.ExplosionInteraction.NONE = 无方块破坏)并仅对半径内的玩家应用原版苦力怕伤害缩放。原版苦力怕不受影响。
  • 色调:覆盖 LivingEntityRenderer#getModelTint(state),使用每通道 ARGB 倍率。保留原版苦力怕材质路径,因此资源包重制材质仍可通过色调应用。

两个 mixin 针对原版 Creeper.class 中非常小的字节码足迹。只要其他模组不重定向相同的私有调用,应该兼容良好。

需求

  • Minecraft 26.1.x
  • Java 25
  • Fabric Loader 0.18.4+ 搭配 Fabric API NeoForge 26.1+

许可证

CC0-1.0 — 公有领域,随便怎么用。

源码

https://github.com/kestalkayden/weeping-creeper