遗物武器

遗物武器

用于逐项RGB闪光、辐射和粒子的无内容视觉特效API。

装备

遗物武器

一个数据驱动的视觉效果 API,适用于任何物品。

遗物武器 0.3 提供三种独立的物品堆叠效果,无需注册任何催化剂物品或默认配方:

  • 彩色附魔闪光 使用 minecraft:enchantment_glint_override 以及 relic_weapons:glint_color。它不会添加附魔或参与附魔规则。
  • 光辉 存储 relic_weapons:radiance_level,以全亮度渲染可见物品表面,并将配置的光照级别暴露给 Sodium Dynamic Lights。
  • 粒子 在 relic_weapons:particle_effect 中存储一个注册表分发的原版或模组粒子选项,以及有界的动画参数。

数据包作者决定效果的获取方式。该模组不附带任何物品或主动配方。

Java API

VisualEffects.setGlint(stack, 0xFF7700);
VisualEffects.setRadiance(stack, 2);
VisualEffects.setParticle(stack, new ParticleEffect(
    ParticleTypes.END_ROD,
    ParticleAnimation.Shape.RING,
    12.0F,  // 每秒粒子数
    0.45F,  // 扩散范围(方块)
    ParticleAnimation.Direction.OUTWARD,
    0.04F,  // 粒子速度
    0.30F   // 继承载体运动
));

VisualEffects.copy(source, target) 复制完整的视觉效果配置文件,而不会复制不相关的物品组件。VisualEffects.clear(stack) 仅移除遗物武器效果和显式的闪光覆盖。

数据包锻造 API

保留的 relic_weapons:glow_smithing 配方类型允许数据包使用任何外部物品作为催化剂。

彩色闪光:

{
  "type": "relic_weapons:glow_smithing",
  "template": { "item": "minecraft:amethyst_shard" },
  "glow_type": "enchantment",
  "color": 16742144
}

任意粒子选项和动画:

{
  "type": "relic_weapons:glow_smithing",
  "template": { "item": "minecraft:blaze_powder" },
  "glow_type": "particle",
  "particle": {
    "type": "minecraft:flame"
  },
  "shape": "trail",
  "rate": 10.0,
  "spread": 0.5,
  "direction": "forward",
  "speed": 0.08,
  "inherit_motion": 0.4
}

支持的形状有 point、sphere、ring 和 trail。支持的方向有 random、up、outward、forward 和 motion。速率和运动值在组件编解码器中设有边界,客户端还强制执行全局每 tick 粒子预算。

当受影响物品被手持、作为类人生物盔甲穿戴或作为物品实体存在时,粒子会渲染。每物品闪光着色覆盖原版物品模型和类人生物盔甲;自定义物品渲染器必须自行选择接入该 API 或使用原版闪光缓冲区。

0.3 迁移

版本 0.3 移除了旧的 relic_weapons:enchantment_glow 和 relic_weapons:texture_light 物品及其捆绑的配方。现有的视觉效果组件和锻造配方序列化器仍然可用。使用已移除催化剂物品的数据包必须提供自己的获取物品或调用 Java API。

要求

  • Minecraft 1.21.1
  • NeoForge 21.1 或更新版本,或 Fabric Loader 0.19.2 或更新版本(搭配 Fabric API)

两个加载器工件均基于相同的视觉效果配置、粒子、配方、着色器和渲染器实现构建:

./gradlew :neoforge:build :fabric:build