Skip to content

Updating the buildscript - #29

Open
brunoxkk0 wants to merge 21 commits into
masterfrom
migration
Open

Updating the buildscript#29
brunoxkk0 wants to merge 21 commits into
masterfrom
migration

Conversation

@brunoxkk0

@brunoxkk0 brunoxkk0 commented Jul 8, 2026

Copy link
Copy Markdown
Member

Overview

This pull request updates NecroTempus to the current GTNH build infrastructure and modernizes several compatibility and rendering systems.

What changed

Build system and CI

  • Updated the Gradle wrapper and build configuration.
  • Migrated the project to JDK 25 and the current GTNH build tooling.
  • Updated the staging workflow to:
    • Validate pull requests.
    • Use current GitHub Actions versions.
    • Configure JDK 25.
    • Use GITHUB_OUTPUT for step outputs.
    • Build the project distribution packages.
  • Kept client execution tests outside CI to avoid duplicating expensive runtime validation.

Mixin and mod compatibility

  • Refactored mixin loading and targeted-mod detection.
  • Improved the organization of early, late, client, and server mixins.
  • Updated compatibility handling for optional dependencies such as Angelica.
  • Replaced obsolete mixin and targeted-mod implementations.
  • Improved mod identity and version constant usage.

Font and glyph rendering

  • Added and refactored Angelica font batching compatibility.
  • Added ModernFont rendering support for additional character sets.
  • Added updated font atlases and glyph size resources.
  • Preserved support for custom glyphs, padding, fit modes, and dynamic sizing.
  • Improved glyph shadow alignment and rendering state handling.
  • Fixed ModernFont color continuity when rendering normal characters after ModernFont glyphs.
  • Kept full-color custom glyph textures separate from ModernFont colorized rendering.

Resource and dependency handling

  • Updated dependency scopes to distinguish compile-time, runtime, and optional compatibility dependencies.
  • Kept GTNHLib available where required by client execution tests.
  • Preserved the Minecraft font resources required to match updated game versions.
  • Made optional glyph registry files fail-safe when a resource domain does not provide glyphs/glyphs.json.
  • Improved error logging with resource and domain context.

Cleanup

  • Removed deprecated and redundant rendering code.
  • Removed the experimental HexColors implementation, since Angelica now provides this functionality natively.
  • Simplified glyph registries and related lookup structures.
  • Removed obsolete imports and unused compatibility code.

brunoxkk0 added 14 commits July 7, 2026 22:01
…h hardcoded values for `necrotempus`; updated Gradle wrapper to 9.6.1.
…d NecroTempusMixins for improved modularity and dropped deprecated logic.
…ing and Angelica font batching bypass through mixins. Updated dependencies to include Angelica.
… redundant array usage, improving code clarity and consistency.
…endering alignment.

Refactored glyph batching in `BatchingFontRendererMixin`: introduced `nt$pendingGlyphQuad` to manage shadow-copy overwrites and optimized quad commit logic.

Adjusted glyph Y-offset in `BatchingFontRendererMixin` to improve rendering alignment.

Refactored glyph rendering in `BatchingFontRendererMixin`: simplified `GlyphQuad` structure, removed obsolete fit mode logic, and delegated rendering to `GlyphsRender`.

Enhanced glyph rendering in `BatchingFontRendererMixin`: added support for custom glyph padding, fit modes, and dynamic sizing logic.

Improved glyph rendering in `BatchingFontRendererMixin`: added custom glyph batching logic, introduced `GlyphQuad` abstraction, and optimized state handling for Angelica font rendering.
…ntProviderGlyph`: implemented `ModernFontEntry` batching, rendering, and compatibility logic.
…usting `cachedGlyphScale` and Y-offset calculations.

Adjusted glyph X and Y offsets in `BatchingFontRendererMixin` for improved rendering alignment.

Excluded formatting character (§) from width calculation in `BatchingFontRendererMixin` to prevent inflated string width.

Replaced direct OpenGL calls with `GLStateManager` in `BatchingFontRendererMixin` to improve synchronization with Angelica's state cache.

Refactored `ModernFontQuad` batching in `BatchingFontRendererMixin`: added shadow copy filtering, updated glyph deduplication logic, and unified glyph rendering with `GlyphsRender`.

Added shadow rendering pass for `ModernFontEntry` in `BatchingFontRendererMixin` to match vanilla shadow behavior.
…d textures for `accented` and `nonlatin_european` fonts.
…gins. Replaced `Char2ObjectArrayMap` with `Char2ObjectOpenHashMap` across multiple modules for improved performance. Refactored mixin targeting and modern font glyph rendering logic.
…endererMixin`. Refactored glyph and modern font rendering logic, removed experimental hex colors config, and cleaned up unused comments and redundant code.
@brunoxkk0 brunoxkk0 self-assigned this Jul 20, 2026
@brunoxkk0 brunoxkk0 added the enhancement New feature or request label Jul 20, 2026
@EverNife
EverNife self-requested a review July 20, 2026 00:42
… adjusted dependencies to reflect these changes. Refactored modern font rendering logic, updated `GlyphsRegistry`, and improved error handling for glyph loading. Adjusted workflow to JDK 25 and streamlined staging build process.
Treat absent glyphs.json files as an expected resource-pack condition while preserving diagnostics for malformed or unreadable resources.
Read the active vanilla OpenGL color for ModernFont rendering and restore the same RGB and alpha values so following standard characters keep their original color.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants