跳到正文
烈焰甘蔗Wiki

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 依赖)
浏览全部模组