EntitySparkleFX
⚠️ 它不是 Minecraft 世界实体。 这是 LogisticsPipes 的客户端渲染粒子 (client-only particle),只在客户端存在,没有生命值、没有碰撞箱、没有生成条件、 不能被 /summon 召唤、不进世界存档。把它归为
entity是分类定性错误。
基本信息
| 属性 | 值 |
|---|---|
| 真实类别 | 客户端粒子(Forge EntityFX),非世界实体 |
| 源码包 | logisticspipes.pipefxhandlers |
| 父类 | net.minecraft.client.particle.EntityFX(EntitySparkleFX.java:13) |
| 侧限制 | 仅客户端(ServerProxy.registerParticles() 为空实现) |
| 注册名 | 无。全项目零 EntityRegistry 调用,LP 不注册任何世界实体 |
| 材质 | logisticspipes:textures/particles/particles.png(EntitySparkleFX.java:40-41) |
功能
- 绘制一个四边形粒子,贴图在 8×8 图集中按
particle + particleAge / multiplier取帧 (EntitySparkleFX.java:56-59) - 生命周期:
particleMaxAge = 3 * var12 - 1,其中var12即multiplier(EntitySparkleFX.java:31) - 距玩家 50 格以外自毁:
if (var1.getDistance(...) > 50) setDead();(EntitySparkleFX.java:97-99) - 重力:
particleGravity = 0.07F(EntitySparkleFX.java:26) noClip = true(EntitySparkleFX.java:33)- 混合模式由
blendmode控制(默认 1),renderParticle()手动glPushMatrix/GL_BLEND/ 手动bindTexture
公开字段
| 字段 | 默认值 | 证据 |
|---|---|---|
multiplier |
构造入参 var12 |
EntitySparkleFX.java:17, 32 |
shrink |
false |
EntitySparkleFX.java:22 |
particle |
0 |
EntitySparkleFX.java:23 |
blendmode |
1 |
EntitySparkleFX.java:24 |
🐛 mod 源码缺陷
onUpdate()用catch (Exception ignored) {}吞掉所有异常 (EntitySparkleFX.java:110)。Minecraft.getMinecraft().thePlayer在任何 非正常客户端状态下都可能 NPE,异常被静默吞掉,粒子会静默停止更新。
与 9 个颜色 Provider 的关系
本类是唯一的粒子实体类。9 个 Entity*SparkleFXProvider 都不继承本类,
它们是实现 ParticleProvider 接口的颜色工厂,
通过 GenericSparkleFactory.getSparkleInstance(...) 构造本类的实例。
| Provider | RGB | 注册的枚举 |
|---|---|---|
EntityWhiteSparkleFXProvider |
1 / 1 / 1 | Particles.WhiteParticle |
EntityRedSparkleFXProvider |
1 / 0 / 0 | Particles.RedParticle |
EntityBlueSparkleFXProvider |
0 / 0 / 1 | Particles.BlueParticle |
EntityGreenSparkleFXProvider |
0 / 1 / 0 | Particles.GreenParticle |
EntityGoldSparkleFXProvider |
0.93 / 0.80 / 0.36 | Particles.GoldParticle |
EntityVioletSparkleFXProvider |
0.51 / 0.04 / 0.73 | Particles.VioletParticle |
EntityOrangeSparkleFXProvider |
0.97 / 0.46 / 0.19 | Particles.OrangeParticle |
EntityLightGreenSparkleFXProvider |
0.8125 / 0.9411764705882353 / 0.3098039215686275 | Particles.LightGreenParticle |
EntityLightRedSparkleFXProvider |
0.9375 / 0.3203125 / 0.30859375 | Particles.LightRedParticle |
注册点:proxy/side/ClientProxy.java:145-156。
⚠️ 命名易误导:类名以 Entity 开头且字段名叫 EntityXXX,
但它们不是实体,而是 ParticleProvider 的实现。
不要因为类名带 Entity 就当成 Minecraft 实体。
第三方集成
| 集成 Mod | 集成类型 | 功能 |
|---|---|---|
| Minecraft Forge | 粒子渲染 | EntityFX 粒子特效系统(非 mod 依赖) |