在场而非位置

在场而非位置

为地点增加更多存在感,使其更具意义

在场而非位置

在场而非位置 是一个 NeoForge 1.21.1 框架,旨在让 Minecraft 中的地点感觉像是真正的位置。

它能够检测玩家何时进入结构、生物群系、维度以及他们的家,然后向客户端提供必要的信息,通过标题、美术、音效和自适应音乐来呈现这些位置。

开箱即用,它无需任何自定义资源即可运行。进入一个已注册的位置可以自动显示一个清晰可读的名称。整合包作者随后可以通过资源包或 KubeJS 在其上叠加自己的呈现方式。

对于玩家

在场而非位置可以在不改变世界生成方式的情况下,让探索感觉更有目的性。

根据整合包的不同,进入新区域可以触发:

  • 结构、生物群系、维度和家的进入标题
  • 自定义副标题和进入音效
  • 静态或动画化标题美术
  • 特定于位置的背景音乐
  • 独立的白天和夜晚音乐
  • 位置之间平滑的音乐过渡
  • 返回先前区域时音乐可恢复
  • 位置重叠时自动进行优先级处理
  • 在你当前的出生点床周围有一个个人化的家上下

位置音乐会自动让位于唱片机、Boss 音乐和其他优先级更高的音乐,而不是与它们争抢配乐。

玩家可以独立配置他们想要启用的标题和音乐类别,以及位置标题的重复频率。

对于整合包作者

在场而非位置被设计为一个可复用的位置呈现层,而不是要求为每个单独的结构或生物群系模组编写兼容性代码。

任何基于注册表的结构、生物群系或维度都可以通过资源包获得自己的呈现方式。

你可以定义:

  • 自定义位置名称和副标题
  • 本地化文本
  • 静态标题图形
  • 动画精灵表或逐帧动画
  • 进入音效池
  • 特定于结构的音乐
  • 特定于生物群系的音乐
  • 特定于维度的音乐
  • 家的音乐
  • 白天/夜晚配乐变体
  • 随机播放、随机或顺序播放列表
  • 音轨延迟和交叉淡入淡出
  • 音量标准化
  • 呈现优先级
  • 为应停止低优先级音乐的特定位置提供有意的静音

可以组合多个资源命名空间和音乐文件夹,这使得将呈现内容拆分到整合包及其支持的资源包中变得切实可行。

在场而非位置还处理重叠的位置上下文。音乐遵循优先级:

家 → 结构 → 生物群系 → 维度

如果优先级较高的位置没有可用的音乐,则较低优先级的配乐可以继续播放,而无需被不必要地中断。

KubeJS 支持

KubeJS 完全是可选的。

安装后,服务器脚本可以响应玩家进入或离开:

  • 结构
  • 生物群系
  • 维度
  • 家
  • 任何受支持的位置上下文

脚本还可以更改标题、副标题、音效、持续时间和优先级,抑制自动呈现,或触发完全自定义的呈现。

这使得《在场而非位置》对于任务、脚本化遭遇、进度系统、警告、发现、恐怖效果、成就以及其他整合包特定行为非常有用,而无需另一个自定义模组。

资源包友好

呈现内容完全存在于普通的 Minecraft 资源包中。

这意味着资源包可以添加或替换《在场而非位置》的呈现,而无需修改模组本身,并且正常的资源包优先级规则适用。

自定义资源是可选的。如果某个位置不存在呈现,在场而非位置可以回退到从其注册表 ID 生成的可读名称。

该模组不要求你附带自定义配乐。

家检测

玩家可以根据当前的出生点床拥有一个位置上下文。

当他们进入该床周围的可配置区域时,资源包可以提供专门的家的标题、进入音效和配乐。

家跟随单个玩家,而不是代表服务器范围内固定的位置。

Instanced Not Infinite 集成

当安装了 Instanced Not Infinite 时,在场而非位置会识别其临时实例维度,并避免为它们显示冗余的自动维度进入标题。

结构和生物群系检测、音乐、脚本事件以及显式请求的呈现继续正常工作。

Instanced Not Infinite 是可选的。

要求

  • Minecraft 1.21.1
  • NeoForge 21.1.244+
  • Java 21
  • KubeJS — 可选

《在场而非位置》应安装在服务器和客户端上。