
Paginated Advancements & Custom Frames — Minecraft Java Edition 1.18.1 - 26.1+
Afhankelijkheden · Loader: Fabric, NeoForge, Quilt · Minecraft-versie: 1.18.1 - 26.1+ · Mod-versie: 2.8.2 · Vereiste afhankelijkheden…
Afhankelijkheden · Loader: Fabric, NeoForge, Quilt · Minecraft-versie: 1.18.1 - 26.1+ · Mod-versie: 2.8.2 · Vereiste afhankelijkheden: Fabric API, Cloth Config API (voor Fabric/Quilt- en NeoForge-versies vóór 2.8.0) De
Afhankelijkheden
· Loader: Fabric, NeoForge, Quilt
· Minecraft-versie: 1.18.1 - 26.1+
· Mod-versie: 2.8.2
· Vereiste afhankelijkheden: Fabric API, Cloth Config API (voor Fabric/Quilt- en NeoForge-versies vóór 2.8.0)
De vanilla-interface voor vorderingen beperkt de weergave van tabbladen. Het standaardvenster heeft een vaste breedte en hoogte, die slechts op zes tabbladen zijn berekend. Als je een grote modpack installeert waarin elke grote mod zijn eigen progressietak toevoegt, beginnen de nieuwe tabbladen buiten de schermranden te vallen, elkaar te overlappen of helemaal uit de interface te verdwijnen. De modificatie Paginated Advancements & Custom Frames breidt het standaardvenster van het vorderingenmenu uit door paginanavigatie, een systeem voor het vastzetten van prioritaire takken, een ingebouwd debughulpmiddel en ondersteuning voor volledig nieuwe kaders voor pictogrammen via resourcepacks of datapacks toe te voegen.
Technisch werkingsprincipe en het oplossen van de beperkingen van de vanilla-interface
De vanilla-klasse AdvancementsScreen gebruikt hardgecodeerde coördinaten om het vorderingenvenster te renderen (de grootte is 252 bij 140 pixels). Bedieningselementen zoals het tabbladenraster en de achtergrondweergave zijn gebonden aan statische venstergroottes, waardoor schalen naar een hoge schermresolutie onmogelijk is. De klasse AdvancementTab heeft eveneens vaste grenzen voor het tekenen van de tabbladpictogrammen langs de rand van het hoofdframe.
Paginated Advancements & Custom Frames brengt wijzigingen rechtstreeks aan in de renderingslogica van de grafische interface van de client met behulp van Mixin-injecties in de klassen MixinAdvancementsScreen en MixinAdvancementTab. In plaats van hardgecodeerde constanten te gebruiken, onderschept de modificatie de initialisatie van de interface en leest ze de huidige grootte van het spelvenster uit. Op basis van deze gegevens wordt de optimale grootte van het vorderingenframe berekend, dat zich adaptief uitbreidt en het grootste deel van het scherm inneemt.
Het systeem groepeert automatisch alle geregistreerde tabbladen in afzonderlijke pagina's (paginering). Het algoritme berekent het maximale aantal tabbladen dat binnen het bovenste en onderste paneel van het venster past, volgens een formule die rekening houdt met de breedte van het venster en de ingestelde marges. Als het aantal vorderingentakken de paginalimiet overschrijdt, maakt de modificatie extra virtuele pagina's aan en voegt ze interactieve pijlknoppen onderaan de interface toe. Bij het wisselen van pagina's verbergt de renderer de tabbladen van inactieve pagina's, waardoor overbelasting van het werkgeheugen met grafische objecten wordt voorkomen en conflicten door overlappende elementen worden weggenomen.
Belangrijkste mogelijkheden en functionaliteit
De hoofdfunctie van Paginated Advancements & Custom Frames is de herorganisatie van het grafische vorderingenmenu. De modificatie biedt verschillende praktische hulpmiddelen voor navigatie:
· Dynamische paginering: Voegt pagina-wisselpijlen toe in de onderhoek van het vorderingenvenster. Spelers kunnen een onbeperkt aantal tabbladen bekijken, zelfs als er in de pack meer dan vijftig modificaties met hun eigen taakketens zijn geactiveerd.
· Tabbladen vastzetten: De gebruiker kan elk tabblad aan de lijst met favorieten toevoegen. Hiervoor is op elk tabblad een speciale knop in de vorm van een sterretje voorzien. Een vastgezet tabblad wordt automatisch naar de eerste pagina verplaatst en aan het begin van de lijst weergegeven, ongeacht zijn alfabetische of in-game sorteervolgorde.
· Behoud van de sessiestatus: De mod onthoudt het laatst geopende vorderingentabblad. Als het menu wordt gesloten en opnieuw wordt geopend met de toets L, toont de interface hetzelfde tabblad waar de speler was gebleven, in plaats van terug te keren naar het eerste standaardtabblad.
· Vorderingen-debugger (Advancement Debugger): Een speciale modus voor ontwikkelaars van packs en auteurs van quests. Deze wordt geactiveerd in de configuratie of bij het inschakelen van geavanceerde tooltips (de toetsen F3 + H). Wanneer je de cursor op een vorderingenpictogram plaatst, wordt een extra tooltipvenster met technische informatie weergegeven: de interne identificatie (bijvoorbeeld minecraft:adventure/arbalistic) en een lijst met triggers (voorwaarden) die nodig zijn om de vordering te voltooien. De toetscombinatie Ctrl + C kopieert de identificatie van de geselecteerde vordering naar het klembord.
Instellingen, compatibiliteit en ecosysteem
De weergave-instellingen van het vorderingenmenu kan de gebruiker wijzigen via het configuratiebestand. De locatie en het formaat van het bestand zijn afhankelijk van de modloader:
· Fabric en Quilt: Voor de werking van de instellingen is de installatie van de bibliotheek Cloth Config API vereist. De parameters worden weggeschreven naar het bestand paginatedadvancements.json (of paginatedadvancements.json5) in de map config.
· NeoForge: Mod-versies vanaf 2.8.0 gebruiken het ingebouwde configuratiesysteem van NeoForge, waardoor er geen extra bibliotheken nodig zijn. Het bestand wordt gegenereerd onder de naam paginatedadvancements-client.toml in de map config.
In het configuratiebestand zijn de volgende belangrijke parameters beschikbaar:
· showDebugTooltips – een booleaanse waarde (true of false) die de weergave van technische informatie voor het debuggen van vorderingen regelt.
· maxDebugLines – een geheel getal dat het maximale aantal triggerregels in het tooltipvenster beperkt en voorkomt dat de tekst buiten het scherm valt bij een groot aantal vereisten.
· disableBackgroundFade – een parameter om het verduisteren van de spelachtergrond uit te schakelen tijdens het bekijken van het vorderingenmenu.
· spacing – een stap in pixels om de afstand tussen aangrenzende tabbladen op het paneel aan te passen.
· enablePinning – staat spelers toe of verbiedt hen om geselecteerde tabbladen vast te zetten.
De modificatie ondersteunt een systeem voor het aanpassen van pictogrammen via het mechanisme Custom Frames (aangepaste kaders). Standaard biedt Minecraft drie soorten kaders: task (gewone taak), goal (doel) en challenge (uitdaging). De mod maakt het mogelijk om nieuwe soorten te maken met behulp van datapacks.
Om een nieuw kader toe te voegen, moet je een JSON-bestand in de datapack aanmaken op het pad:
assets/<mod_identificatie>/advancement_frame_types/<kadernaam>.json
Voorbeeld van de bestandsinhoud:
{ |
De texturen voor het kader plaats je op de paden:
· assets/<mod_identificatie>/textures/gui/sprites/advancements/<kadernaam>_unobtained.png – het uiterlijk van het kader vóór het voltooien van de vordering.
· assets/<mod_identificatie>/textures/gui/sprites/advancements/<kadernaam>_obtained.png – het uiterlijk van het kader na voltooiing.
Om het aangemaakte kader aan een specifieke vordering te koppelen, gebruik je een mappingbestand in de datapack op het pad assets/<mod_identificatie>/advancement_frames/<bestandsnaam>.json:
[ |
De mod is ontwikkeld als een puur clientzijdig hulpmiddel en hoeft daarom niet op de server te worden geïnstalleerd. Hij is volledig compatibel met grote industriële en magische mods (zoals Create, Ender IO, Botania) die complexe questsystemen en talrijke vorderingentabbladen toevoegen. Voor gebruikers van de oude Forge-loader is er een onofficiële aanpassing van de mod beschikbaar onder de naam ForgedPaginatedAdvancements. Om de nieuwste versies van de mod op het platform NeoForge 26.1+ uit te voeren, is het gebruik van de runtime-omgeving Java 25 verplicht.
Conclusie
Paginated Advancements & Custom Frames lost het probleem van de beperkte ruimte in de vanilla-vorderingeninterface effectief op, een probleem dat kritiek wordt in grote modpacks. In tegenstelling tot het vergelijkbare Better Advancements, dat het venster voornamelijk schaalt zonder pagina's toe te voegen, biedt deze mod een duidelijke onderverdeling in pagina's en het handig vastzetten van tabbladen. De modificatie vereenvoudigt het werk van ontwikkelaars van gemodificeerde packs dankzij de ingebouwde debugger en het flexibele systeem voor het registreren van nieuwe kadertypes via JSON-structuren in datapacks. De enige merkbare beperking is de noodzaak om aanvullende clientresourcepacks aan te maken voor een correcte weergave van de aangepaste grafische kaders.
Installatie
Een typische installatie duurt ongeveer 5 minuten. De stappen zijn gelijk; alleen de loader en de bijbehorende build verschillen.
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











