Links
Tags
Creators
Details
Licensed MIT
Published last month
Updated last month
All versions
v1.3
Release
Aeronautics Display Link Fix 1.3last month 1,386
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Server-side
Client and server
Required content
Changes
v1.3 — 全面 TargetOffset 保护
修复
- 修复所有场景下 TargetOffset 损坏问题:此前的修复仅针对 Case 3(DL 和目标告示牌在同一结构上),但现在发现即使是 Case 1/2(DL 在结构中但告示牌不在),DisplayLink 的 TargetOffset 也会在 Sable 物理化/反物理化过程中被损坏。
- 根本原因:物理化后 DL 的
target()方法使用物理化空间坐标重新计算 offset=告示牌物理化位置-DL物理化位置,产生巨大异常值并持久化
- 根本原因:物理化后 DL 的
- 移除 Case 3 检测:不再需要 HashSet 预处理器或复杂的 Case 3 判定逻辑。所有被物理化的 DisplayLink 都需要保护。
更改
- 简化架构:仅用一个 ThreadLocal
DL_LIST存储 (原始坐标, 新坐标, 修正后 offset) 三元组 - Phase 1 在
loadWithComponents之前保存所有 DisplayLink 的原始 TargetOffset 及旋转变换 - Phase 2 在 TAIL 无条件恢复所有 DisplayLink 的正确 TargetOffset
BLOCKSET_CACHE、LIST_NEWPOS、LIST_OFFSETThreadLocal 全部移除
性能
- O(1) 无:无需遍历方块列表或构造 HashSet,只处理 DisplayLink 本身
- 对任意规模和任意数量 DisplayLink 的结构保持恒定开销
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:Cgz0OfnH:xDNjmgBl"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Cgz0OfnH:xDNjmgBl"
}




