
Paginated Advancements & Custom Frames — Minecraft Java Edition 1.18.1 - 26.1+
Afhængigheder · Loader: Fabric, NeoForge, Quilt · Minecraft-version: 1.18.1 - 26.1+ · Mod-version: 2.8.2 · Påkrævede afhængigheder: Fabric…
Afhængigheder · Loader: Fabric, NeoForge, Quilt · Minecraft-version: 1.18.1 - 26.1+ · Mod-version: 2.8.2 · Påkrævede afhængigheder: Fabric API, Cloth Config API (til Fabric/Quilt- og NeoForge-versioner før 2.8.0) Den va
Afhængigheder
· Loader: Fabric, NeoForge, Quilt
· Minecraft-version: 1.18.1 - 26.1+
· Mod-version: 2.8.2
· Påkrævede afhængigheder: Fabric API, Cloth Config API (til Fabric/Quilt- og NeoForge-versioner før 2.8.0)
Den vanilla-baserede grænseflade til fremskridt begrænser visningen af faner. Standardvinduet har en fast bredde og højde, der kun er beregnet til seks faner. Hvis du installerer en stor modpakke, hvor hvert stort mod tilføjer sin egen progressionsgren, begynder de nye faner at gå ud over skærmkanten, overlappe hinanden eller helt forsvinde fra grænsefladen. Modifikationen Paginated Advancements & Custom Frames udvider standardvinduet i fremskridtsmenuen ved at tilføje sidebaseret navigation, et system til fastgørelse af prioriterede grene, et indbygget fejlsøgningsværktøj og understøttelse af helt nye rammer til ikoner via ressourcepakker eller datapakker.
Teknisk arbejdsprincip og løsning af begrænsningerne i vanilla-grænsefladen
Vanilla-klassen AdvancementsScreen bruger hardkodede koordinater til at rendere fremskridtsvinduet (størrelsen er 252 gange 140 pixels). Betjeningselementer såsom fanegitteret og baggrundsrenderingen er bundet til statiske vinduesstørrelser, hvilket gør det umuligt at skalere til en høj skærmopløsning. Klassen AdvancementTab har også faste grænser for tegning af faneikonerne langs hovedrammens kant.
Paginated Advancements & Custom Frames implementerer ændringer direkte i renderingslogikken for klientens grafiske grænseflade ved hjælp af Mixin-injektioner i klasserne MixinAdvancementsScreen og MixinAdvancementTab. I stedet for at bruge hardkodede konstanter opfanger modifikationen initialiseringen af grænsefladen og aflæser spilvinduets aktuelle størrelse. På baggrund af disse data beregnes den optimale størrelse på fremskridtsrammen, som udvides adaptivt og fylder størstedelen af skærmen.
Systemet grupperer automatisk alle registrerede faner i separate sider (paginering). Algoritmen beregner det maksimale antal faner, der kan være inden for vinduets øverste og nederste panel, ud fra en formel, der tager højde for vinduets bredde og de indstillede margener. Hvis antallet af fremskridtsgrene overstiger sidegrænsen, opretter modifikationen ekstra virtuelle sider og tilføjer interaktive pileknapper nederst i grænsefladen. Når der skiftes side, skjuler rendereren faner fra inaktive sider, hvilket forhindrer overbelastning af arbejdshukommelsen med grafiske objekter og eliminerer konflikter med overlappende elementer.
Nøglefunktioner og funktionalitet
Hovedfunktionen i Paginated Advancements & Custom Frames er en omorganisering af den grafiske fremskridtsmenu. Modifikationen tilbyder flere praktiske værktøjer til navigation:
· Dynamisk paginering: Tilføjer pile til sideskift i nederste hjørne af fremskridtsvinduet. Spillere kan gennemse et vilkårligt antal faner, selv hvis der er aktiveret over halvtreds modifikationer med deres egne opgavekæder i pakken.
· Fastgørelse af faner: Brugeren kan tilføje en hvilken som helst fane til listen over favoritter. Til dette formål findes der en særlig knap i form af en stjerne på hver fane. En fastgjort fane flyttes automatisk til den første side og vises i begyndelsen af listen, uanset dens alfabetiske eller spilinterne sorteringsrækkefølge.
· Bevaring af sessionstilstand: Moddet husker den sidst åbnede fremskridtsfane. Hvis menuen lukkes og åbnes igen med tasten L, viser grænsefladen den samme fane, som spilleren stoppede ved, i stedet for at nulstille til den første standardfane.
· Fremskridtsfejlsøger (Advancement Debugger): En særlig tilstand for udviklere af pakker og forfattere af quests. Den aktiveres i konfigurationen eller ved at slå avancerede værktøjstips til (tasterne F3 + H). Når markøren føres hen over et fremskridtsikon, vises et ekstra værktøjstipsvindue med teknisk information: den interne identifikator (for eksempel minecraft:adventure/arbalistic) og en liste over triggere (betingelser), der kræves for at fuldføre det. Tastekombinationen Ctrl + C kopierer det markerede fremskridts identifikator til udklipsholderen.
Indstillinger, kompatibilitet og økosystem
Visningsindstillingerne for fremskridtsmenuen kan ændres af brugeren via konfigurationsfilen. Filens placering og format afhænger af modifikationsloaderen:
· Fabric og Quilt: For at indstillingerne fungerer, kræves installation af biblioteket Cloth Config API. Parametrene skrives til filen paginatedadvancements.json (eller paginatedadvancements.json5) i mappen config.
· NeoForge: Mod-versioner fra og med 2.8.0 bruger NeoForges indbyggede konfigurationssystem, hvilket udelukker behovet for yderligere biblioteker. Filen genereres under navnet paginatedadvancements-client.toml i mappen config.
Følgende nøgleparametre er tilgængelige i konfigurationsfilen:
· showDebugTooltips – en boolesk værdi (true eller false), der styrer visningen af teknisk information til fejlsøgning af fremskridt.
· maxDebugLines – et heltal, der begrænser det maksimale antal triggerlinjer i værktøjstipsvinduet og forhindrer, at teksten går ud over skærmkanten ved et stort antal krav.
· disableBackgroundFade – en parameter til at deaktivere nedtoningen af spilbaggrunden, mens fremskridtsmenuen vises.
· spacing – et trin i pixels til at justere afstanden mellem nabofaner på panelet.
· enablePinning – tillader eller forbyder spillere at fastgøre udvalgte faner.
Modifikationen understøtter et system til tilpasning af ikoner via mekanismen Custom Frames (brugerdefinerede rammer). Som standard tilbyder Minecraft tre typer rammer: task (almindelig opgave), goal (mål) og challenge (udfordring). Moddet gør det muligt at oprette nye typer ved hjælp af datapakker.
For at tilføje en ny ramme skal du oprette en JSON-fil i datapakken på stien:
assets/<mod_identifikator>/advancement_frame_types/<rammenavn>.json
Eksempel på filens indhold:
{ |
Teksturer til rammen placeres på stierne:
· assets/<mod_identifikator>/textures/gui/sprites/advancements/<rammenavn>_unobtained.png – rammens udseende, før fremskridtet er fuldført.
· assets/<mod_identifikator>/textures/gui/sprites/advancements/<rammenavn>_obtained.png – rammens udseende efter fuldførelse.
For at knytte den oprettede ramme til et bestemt fremskridt bruges en mappingfil i datapakken på stien assets/<mod_identifikator>/advancement_frames/<filnavn>.json:
[ |
Moddet blev udviklet som et rent klientsidet værktøj, så det kræver ikke installation på serveren. Det er fuldt ud kompatibelt med store industri- og magimods (såsom Create, Ender IO, Botania), der tilføjer komplekse questsystemer og talrige fremskridtsfaner. For brugere af den gamle Forge-loader er der en uofficiel tilpasning af moddet ved navn ForgedPaginatedAdvancements. For at køre de seneste versioner af moddet på platformen NeoForge 26.1+ er det obligatorisk at bruge køremiljøet Java 25.
Konklusion
Paginated Advancements & Custom Frames løser effektivt problemet med den begrænsede plads i vanilla-fremskridtsgrænsefladen, som bliver kritisk i store modpakker. I modsætning til pendanten Better Advancements, som primært skalerer vinduet uden at tilføje sider, tilbyder dette mod en klar opdeling i sider og praktisk fastgørelse af faner. Modifikationen forenkler arbejdet for udviklere af modificerede pakker takket være den indbyggede debugger og det fleksible system til registrering af nye rammetyper via JSON-strukturer i datapakker. Den eneste mærkbare begrænsning er behovet for at oprette yderligere ressourcepakker på klienten for korrekt visning af de brugerdefinerede grafiske rammer.
Installation
En typisk installation tager omkring 5 minutter. Forløbet er det samme; kun Loader og den matchende build er forskellige.
- 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.











