Skip to content

View Finders on sub-levels don't track position — no sub-level ReferenceFrame implementation (rotation works, translation doesn't) #1499

Description

@polycitrine-glitch

Summary

Sable's Vista compatibility mixin no longer applies, because its target class was removed/refactored in current Vista. The failure is silent (a startup WARN, no crash), and the user-visible result is that View Finders placed on a sub-level do not move their virtual camera with the sub-level — the camera stays at the world position where the View Finder was originally placed.

Environment

Minecraft 1.21.1
NeoForge 21.1.243
Sable 2.0.3 (sable-neoforge-1.21.1-2.0.3.jar)
Vista 5.4.4 (vista-1.21.1-5.4.4-neoforge.jar)
Create Aeronautics 1.3.0

Evidence

Startup log:

[main/WARN]: @Mixin target net.mehvahdjukaar.vista.common.view_finder.ViewFinderAccess$Block
    was not found sable.mixins.json:compatibility.vista.ViewFinderAccessMixin from mod sable

[main/WARN]: Error loading class: net/mehvahdjukaar/vista/common/view_finder/ViewFinderAccess$Block
    (java.lang.ClassNotFoundException: net.mehvahdjukaar.vista.common.view_finder.ViewFinderAccess$Block)

ViewFinderAccess$Block is not present in vista-1.21.1-5.4.4-neoforge.jar. The package now contains:

net/mehvahdjukaar/vista/common/view_finder/
    ViewFinderBlock.class
    ViewFinderBlockEntity.class
    ViewFinderMenu.class
    ReferenceFrame.class
    WorldReferenceFrame.class
    EntityReferenceFrame.class
    YawPitchRestraint.class
    EndermanLookResult.class

Vista appears to have moved to a ReferenceFrame abstraction (WorldReferenceFrame / EntityReferenceFrame).

Reproduction

  1. Install Sable 2.0.3 + Vista 5.4.4 on 1.21.1 / NeoForge 21.1.243
  2. Assemble a sub-level
  3. Place a View Finder on the sub-level and link it to a TV
  4. Move the sub-level

Expected: the virtual camera moves with the sub-level.
Actual: the camera remains at the original world position; the TV shows a static view of where the View Finder used to be.

Probable cause

With ViewFinderAccessMixin failing to apply, the View Finder falls back to WorldReferenceFrame (fixed world coordinates) rather than being given a sub-level-relative frame. A ReferenceFrame implementation backed by the sub-level's transform looks like the natural fix against the current Vista API.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions