SDF - HUD 罗盘

SDF - HUD 罗盘

面向Super Duper Fuel整合包的简易指南针HUD,带有便捷的标记API

HUD 指南针

一个轻量级的指南针 HUD 模组,在屏幕顶部显示实时指南针,并支持外部标记模组。

指南针在屏幕顶部中央绘制一条水平条带。当你转身时,条带会滚动以显示 N / E / S / W(以及四个中间方向 - NE、SE、SW、NW 的小刻度线),其位置精确对应真实指南针上相对于你视线方向的位置。正前方的内容位于条带中央;其他内容在你转身时平滑滑动,并在边缘被干净地裁剪,而不是突然弹出或消失。

配置

首次启动时会生成客户端配置文件(config/hudcompass-client.toml):

  • enabled - 完全启用/禁用指南针条带
  • barWidth / barHeight - 条带的像素尺寸
  • offsetX / offsetY - 微调条带的位置(默认:居中,靠近顶部)
  • visibleSpanDegrees - 条带上一次可见的指南针度数范围,以你面对的方向为中心(默认 270)
  • markerIconSize - 下方 API 添加的标记的绘制尺寸
  • showMarkerLabels - 切换每个标记下方的小文字标签

标记 API(供其他模组/整合包开发者使用)

HUD 指南针提供了一个简单的公共 API,其他模组可以用它来在条带上显示自己的标记——一个图标加上一段简短的文字标签,位置由玩家到标记位置的现实世界方位角决定。

// 一次性操作 - 例如在客户端设置期间:注册一个标记类型(唯一 ID + 要使用的图标,
// 一个独立的 PNG 纹理)。
static final ResourceLocation DEATH_MARKER_TYPE =
        ResourceLocation.fromNamespaceAndPath("mydeathmod", "death");

CompassMarkerApi.registerMarkerType(DEATH_MARKER_TYPE, ResourceLocation.fromNamespaceAndPath("mydeathmod", "textures/gui/skull_marker.png"));

// 每当你想让一个标记出现时:用世界坐标和维度添加它。 // 你会得到一个句柄,以便稍后移动或移除它。 Deque<MarkerHandle> recentDeaths = new ArrayDeque<>();

void onPlayerDeath(Vec3 deathPos, ResourceKey<Level> dimension) { if (recentDeaths.size() >= 10) { CompassMarkerApi.removeMarker(recentDeaths.removeFirst()); } String label = String.valueOf(recentDeaths.size() + 1); recentDeaths.addLast(CompassMarkerApi.addMarker(DEATH_MARKER_TYPE, label, deathPos, dimension)); }

// 追踪移动目标(Boss、其他玩家)?只需在位置变化时用新位置再次调用此方法。 CompassMarkerApi.updateMarkerPosition(handle, newPos, dimension);

// 当不再需要某个标记时: CompassMarkerApi.removeMarker(handle);

需求

  • Minecraft 1.21.1
  • NeoForge 21.1.176

免责声明: 本模组专为 Super Duper Fuel (SDF) 整合包构建,并仅支持该整合包,针对上述列出的确切 Minecraft/NeoForge 版本。它不会更新以兼容其他 Minecraft 版本、其他模组加载器(Forge、Fabric、Quilt 等)或 SDF 整合包自身所用之外的未来 NeoForge 版本。目前没有扩大支持范围的计划。在 Super Duper Fuel 之外使用是可行的,但完全不受支持。欢迎制作自己的版本,并用于你自己的整合包!

许可证: MIT 许可证