玩家烟花是的

玩家烟花是的

发射,收集,堆叠,吞噬。一些随机特性。

杂项

一个 Minecraft Forge 模组:站在烟花发射器上,给它一个红石信号,你就会被发射到空中——在弧线顶端你会爆炸成一朵形状像你自己皮肤脸庞的烟花。

它会添加非常非常非常随机的东西。

如果你想要更多细节,你应该阅读下面的句子。

日文描述

Minecraft 1.20.1
加载器 Forge 47.4.22+
适用端 客户端和服务器都需要

合成配方

烟花发射器(火药8+粘液块1)

火药 火药 火药
火药 粘液块 火药
火药 火药 火药

头颅收集器(铁锭4+剪刀1)

铁锭
铁锭 剪刀 铁锭
铁锭

使用方法 1:让自己变成烟花

  1. 放置 烟花发射器
  2. 站在它上面
  3. 输入红石信号

你会被发射到约50格高空,并在顶点爆炸。烟花绽开的同时,你会伴随着

<玩家名> 变成了烟花

的死亡消息而死亡。由于在约50格高空死亡,你的物品会散落。 建议启用 keepInventory。

使用方法 2:放置头颅发射(无人死亡)

将玩家头颅放在烟花发射器上,输入红石信号后,那个头颅主人的烟花就会升空。头颅不会被消耗,也不会有人死亡。 可以反复发射,因此可用于烟花表演装置。

发射后约1.6秒,烟花会在50格高空绽放。

即使头颅的主人不在线,或者从未登录过该服务器,也可以正常工作。

获取玩家头颅

使用 头颅收集器。

操作 结果
左手拿着生物头颅,右键点击玩家 获得该玩家的头颅
左手拿着生物头颅,潜行+右键点击 获得自己的头颅

作为材料的生物头颅有骷髅、凋灵骷髅、僵尸、苦力怕、猪灵、末影龙六种(物品标签 playerfireworksyeah:mob_heads。可通过数据包添加)。 生物头颅会被消耗1个,但头颅收集器本身不会损耗。

工作原理

  • 皮肤获取全部在客户端进行。服务器只发送“谁·在哪里爆炸”,各客户端从本地皮肤读取像素来组装烟花。不与任何外部 API 通信
  • 从头颅发射时,会发送 GameProfile 而不是实体ID。这是为了即使主人不在世界中也能获取皮肤,因此离线玩家的烟花也能升空
  • 皮肤像素首先从 ResourceManager 获取(用于默认皮肤·资源包替换),如果获取不到则从 GPU 读回纹理(用于实际下载的皮肤)
  • 烟花图像会根据每个观看者的摄像机位置决定朝向,因此无论从哪个角度看都正面朝上,左右也不会反转
  • 粒子使用原版烟花火花(spark_0〜spark_7)。每个皮肤像素对应3×3 = 9颗粒子,共576粒来绘制脸庞

构建

./gradlew build

jar 文件将输出到 build/libs/。在开发环境中运行请使用 ./gradlew runClient。

调整

所有数值都已提取为常量。

项目 位置
发射初速度(3.5 ≒ 50格,上限3.9) LaunchManager.LAUNCH_POWER
烟花大小·粒子密度·散落 ClientBurstHandler 开头
脸庞保持时间·寿命·下落 SkinSparkParticle

许可证

MIT License。请参阅 LICENSE。