Skip to content

Conversation

@Saereth
Copy link

@Saereth Saereth commented Dec 26, 2025

fixed mixin injection points for compatibility with the new MC version.

Build System

  • Updated Architectury Loom from 1.7-SNAPSHOT to 1.9-SNAPSHOT
  • Updated Gradle from 8.8 to 8.11 (required by Loom 1.9)
  • Fixed neoforge/build.gradle to use correct resource path META-INF/neoforge.mods.toml

Mixin Update

  • Updated turnPlayer() method signature to turnPlayer(D)V - now takes a double parameter for movement time in 1.21
  • Added @Shadow for the new turnPlayer(double d) method
  • Updated injection to pass calculated movement time: Blaze3D.getTime() - this.lastHandleMovementTime
  • Rewrote onMove injection to properly handle the 1.21 MouseHandler changes
  • Cursor is reset to origin (0, 0) rather than screen center for grabbed mode

Accessor Updates (MinecraftAccessor.java)

  • Added setMissTime(int) and getMissTime() accessors for the missTime field which is no longer directly accessible

API Fixes (ModUtils.java)

  • Replaced deprecated chunk.getHighestSectionPosition() with world.getMaxBuildHeight() and world.getMinBuildHeight() for block position calculations

Testing

  • Verified build completes successfully for both Fabric and NeoForge
  • Eye tracker input properly controls player look direction
  • Cursor is properly grabbed/hidden during gameplay
  • GUI screens still function normally with visible cursor

…and fixing mixin injection points for compatibility with the new Minecraft version.

### Build System
  - Updated Architectury Loom from 1.7-SNAPSHOT to 1.9-SNAPSHOT
  - Updated Gradle from 8.8 to 8.11 (required by Loom 1.9)
  - Fixed neoforge/build.gradle to use correct resource path `META-INF/neoforge.mods.toml`

  ### Mixin Update
  - Updated `turnPlayer()` method signature to `turnPlayer(D)V` - now takes a double parameter for movement time in 1.21
  - Added `@Shadow` for the new `turnPlayer(double d)` method
  - Updated injection to pass calculated movement time: `Blaze3D.getTime() - this.lastHandleMovementTime`
  - Rewrote `onMove` injection to properly handle the 1.21 MouseHandler changes
  - Cursor is reset to origin (0, 0) rather than screen center for grabbed mode

  ### Accessor Updates (MinecraftAccessor.java)
  - Added `setMissTime(int)` and `getMissTime()` accessors for the `missTime` field which is no longer directly accessible

  ### API Fixes (ModUtils.java)
  - Replaced deprecated `chunk.getHighestSectionPosition()` with `world.getMaxBuildHeight()` and `world.getMinBuildHeight()` for block position calculations

  ## Testing
  - Verified build completes successfully for both Fabric and NeoForge
  - Eye tracker input properly controls player look direction
  - Cursor is properly grabbed/hidden during gameplay
  - GUI screens still function normally with visible cursor
@kmcnaught
Copy link
Collaborator

Fantastic, thanks so much! @Mrbysco did you want to review any of this before I merge the PR?

@Mrbysco
Copy link
Collaborator

Mrbysco commented Dec 31, 2025

Not really, I just need confirmation it works as intended ;)

@Saereth
Copy link
Author

Saereth commented Dec 31, 2025

It works, Saturday and Eyegazegirl have been using it but when you look down at the onscreen keyboard it doesn't fully stop right now, I plan to fix that once I get some more debug logs from them. I can either do a separate pr for that when I get the info and adjustments for that or we can transitions this to a draft pr until that part is fixed as well. The important features are in and working now though yeah.

Enhances the gaze-based movement system by pausing movement when the user is looking at the on-screen keyboard area (below a configurable threshold) or outside the game window. This prevents unintended movement when interacting with the keyboard or when gaze tracking is lost.

Also, fixes mouse handling in ungrabbed mode to recalculate accumulated values correctly.
@Saereth
Copy link
Author

Saereth commented Jan 5, 2026

ok I've had a chance to cleanup the autopausing when your gaze leaves the area now and improved the responsiveness in general. It should be good to go now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants