希瑟

希瑟

添加可配置的生成雾气的方块,用于营造氛围和细节

装饰

Hísëa(昆雅语,意为“雾蒙蒙的”)是为 ArdaCraft 项目开发的一个模组。它添加了可生成雾气的方块,这些方块对用户不可见,除非用户手持该方块。这些方块没有碰撞体积,这意味着玩家可以在不干扰探索或沉浸感的情况下,为建筑添加有趣细节,例如瀑布水雾、热水浴产生的蒸汽和雾气。

这些方块生成的雾气的各种属性可以通过 Ctrl+右键点击进行配置:

配置界面

更详细的说明可以在下面找到。

Hísëa 使用说明

强度 (0-50%)

说明:控制雾气看起来的浓密程度。数值越高,雾气越浓密、越明显。在最大值时,雾气会变得非常显眼,形成浓厚的迷雾效果。

代码层面:缩放生成的粒子数量和大小。内部存储为浮点数 (0.0-5.0),其中:

  • 界面上的每 10% 对应代码中的 1.0
  • 影响粒子缩放和生成速率
  • 影响粒子生命周期的计算

速度 (0-200%)

说明:决定雾气粒子移动的快慢。低数值产生静止、悬挂的雾气。高数值产生流动、漂移的雾气,在空间中移动得更明显。

代码层面:存储为浮点数 (0.0-2.0),并与运动值直接相乘:

 .setMotion(
      velocityMultiplier == 0 ? 0 : (world.getRandom().nextFloat() * 0.01f) * Math.signum(offsetX) * velocityMultiplier,
      velocityMultiplier == 0 ? 0 : (world.getRandom().nextFloat() * 0.005f) * velocityMultiplier, // 垂直方向更慢
      velocityMultiplier == 0 ? 0 : (world.getRandom().nextFloat() * 0.01f) * Math.signum(offsetZ) * velocityMultiplier
  )

生命周期 (5-30 秒)

说明:控制雾气粒子在消散前保持可见的时间。较长的生命周期产生更持久的雾气效果,而较短的生命周期产生更短暂、缥缈的效果。

代码层面:存储为刻 (100-600),其中:

  • 每秒 = 20 刻(Minecraft 以每秒 20 刻运行)
  • 直接在粒子构建器中使用:
.setLifetime(lifetime)

颜色 (RGB)

说明:设置雾气粒子的颜色。可用于创造氛围效果,如彩色雾气、魔法迷雾、毒云、不同温度的蒸汽等。

代码层面:存储为标准 RGB 整数 (0x000000 至 0xFFFFFF):

  .setColorData(ColorParticleData.create(particleColor).build())

透明度 (0-100%)

说明:控制雾气的透视程度。较低的值会产生半透明、幽灵般的雾气,几乎不遮挡视线。较高的值会产生更不透明的雾气,可以隐藏其后的元素。

代码层面:存储为浮点数 (0.0-1.0),并用于透明度渐变计算:

  .setTransparencyData(
      GenericParticleData.create(0.001f, 0.7f * customTransparency, 0f)
      .setEasing(Easing.EXPO_OUT, Easing.SINE_OUT)
      .build()
  )

这会创建平滑的淡入/淡出效果,峰值可见度由此设置控制。

半径 (1-100 格)

说明:决定雾气从源方块扩散的距离。较大的半径产生的雾气覆盖更广的区域,而较小的半径产生集中的云团。

代码层面:存储为整数,用于缩放粒子位置偏移:

  double radiusScale = customRadius / 3.0; // 缩放因子,其中 3 为默认半径
  double scaledOffsetX = offsetX * radiusScale;
  double scaledOffsetZ = offsetZ * radiusScale;

启用 (开/关)

说明:简单的开关,用于在不移除方块的情况下打开或关闭雾气发射。对于暂时禁用效果或在不同场景间切换非常有用。

代码层面:存储为布尔值,并在生成任何粒子之前进行检查:

  if (cachedEnabled != null && !cachedEnabled) {
      // 用户已禁用此方块
      return;
  }

技术实现说明

  • 客户端-服务器同步:所有设置都存储在服务器的方块实体中,并同步到已连接的客户端
  • 持久性:设置保存到世界的 NBT 数据中,以便服务器重启后恢复
  • 效率:粒子使用可见性检查和优化以最小化性能影响
  • 上次使用的设置:模组会记住您上次放置新方块时使用的设置

该模组由 Divined(Discord 上的 .divined)为 ArdaCraft 开发。非常感谢 Effective 的开发者的帮助。

项目图标致谢 Instagram 上的 kameh.space