
Paginated Advancements & Custom Frames — Minecraft Java Edition 1.18.1 - 26.1+
Avhengigheter · Laster: Fabric, NeoForge, Quilt · Minecraft-versjon: 1.18.1 - 26.1+ · Mod-versjon: 2.8.2 · Obligatoriske avhengigheter…
Avhengigheter · Laster: Fabric, NeoForge, Quilt · Minecraft-versjon: 1.18.1 - 26.1+ · Mod-versjon: 2.8.2 · Obligatoriske avhengigheter: Fabric API, Cloth Config API (for Fabric/Quilt- og NeoForge-versjoner før 2.8.0) Va
Avhengigheter
· Laster: Fabric, NeoForge, Quilt
· Minecraft-versjon: 1.18.1 - 26.1+
· Mod-versjon: 2.8.2
· Obligatoriske avhengigheter: Fabric API, Cloth Config API (for Fabric/Quilt- og NeoForge-versjoner før 2.8.0)
Vanilla-grensesnittet for prestasjoner begrenser visningen av faner. Standardvinduet har en fast bredde og høyde, beregnet for kun seks faner. Hvis du installerer en stor modpakke, der hver store mod legger til sin egen progresjonsgren, begynner de nye fanene å gå utenfor skjermkanten, å overlappe hverandre eller å forsvinne helt fra grensesnittet. Modifikasjonen Paginated Advancements & Custom Frames utvider standardvinduet i prestasjonsmenyen ved å legge til sidebasert navigasjon, et system for å feste prioriterte grener, et innebygd feilsøkingsverktøy og støtte for helt nye rammer for ikoner ved hjelp av ressurspakker eller datapakker.
Teknisk virkemåte og løsning av begrensningene i vanilla-grensesnittet
Vanilla-klassen AdvancementsScreen bruker hardkodede koordinater for å rendre prestasjonsvinduet (størrelsen er 252 ganger 140 piksler). Kontrollelementer som faneraster og bakgrunnsrendring er bundet til statiske vindusstørrelser, noe som gjør det umulig å skalere til høy skjermoppløsning. Klassen AdvancementTab har også harde grenser for å tegne faneikonene langs omkretsen av hovedrammen.
Paginated Advancements & Custom Frames innfører endringer direkte i renderingslogikken til klientens grafiske grensesnitt ved hjelp av Mixin-injeksjoner i klassene MixinAdvancementsScreen og MixinAdvancementTab. I stedet for å bruke hardkodede konstanter avskjærer modifikasjonen initialiseringen av grensesnittet og leser av de gjeldende størrelsene på spillvinduet. På grunnlag av disse dataene beregnes den optimale størrelsen på prestasjonsrammen, som utvides adaptivt og opptar mesteparten av skjermen.
Systemet grupperer automatisk alle registrerte faner i separate sider (paginering). Algoritmen beregner det maksimale antallet faner som får plass innenfor grensene til de øvre og nedre panelene i vinduet ved hjelp av en formel som tar hensyn til vindusbredden og de angitte margene. Hvis antallet prestasjonsgrener overskrider sidegrensen, oppretter modifikasjonen ekstra virtuelle sider og legger til interaktive pilknapper i den nedre delen av grensesnittet. Ved bytte av sider skjuler rendereren fanene fra de inaktive sidene, noe som forhindrer overbelastning av arbeidsminnet med grafiske objekter og eliminerer overlappingskonflikter mellom elementer.
Sentrale funksjoner og funksjonalitet
Hovedfunksjonen til Paginated Advancements & Custom Frames er omorganiseringen av den grafiske prestasjonsmenyen. Modifikasjonen tilbyr flere praktiske verktøy for navigering:
· Dynamisk paginering: Legger til piler for å bytte side i det nedre hjørnet av prestasjonsvinduet. Spillere kan bla gjennom et hvilket som helst antall faner, selv om det er aktivert mer enn femti modifikasjoner med egne oppgavekjeder i pakken.
· Festing av faner: Brukeren kan legge til hvilken som helst fane i favorittlisten. Til dette er det en spesiell knapp i form av en stjerne på hver fane. En festet fane flyttes automatisk til den første siden og vises i begynnelsen av listen, uavhengig av dens alfabetiske eller spillinterne sorteringsrekkefølge.
· Bevaring av økttilstanden: Moden husker den sist åpnede prestasjonsfanen. Hvis menyen lukkes og åpnes på nytt med tasten L, viser grensesnittet den samme fanen som spilleren stoppet på, i stedet for å tilbakestilles til den første standardfanen.
· Prestasjonsfeilsøker (Advancement Debugger): En spesiell modus for pakkeutviklere og oppdragsforfattere. Den aktiveres i konfigurasjonen eller ved aktivering av de avanserte verktøytipsene (tastene F3 + H). Når du holder markøren over et prestasjonsikon, vises et ekstra verktøytipsvindu med teknisk informasjon: den interne identifikatoren (for eksempel minecraft:adventure/arbalistic) og listen over utløsere (betingelser) som kreves for å fullføre. Tastekombinasjonen Ctrl + C kopierer identifikatoren til den markerte prestasjonen til utklippstavlen.
Konfigurasjon, kompatibilitet og økosystem
Brukeren kan endre visningsparametrene for prestasjonsmenyen via konfigurasjonsfilen. Filens plassering og format avhenger av modlasteren:
· Fabric og Quilt: For at innstillingene skal fungere, kreves installasjon av biblioteket Cloth Config API. Parametrene skrives til filen paginatedadvancements.json (eller paginatedadvancements.json5) i mappen config.
· NeoForge: Mod-versjoner fra og med 2.8.0 bruker NeoForges innebygde konfigurasjonssystem, noe som eliminerer behovet for ekstra biblioteker. Filen genereres under navnet paginatedadvancements-client.toml i mappen config.
I konfigurasjonsfilen er følgende nøkkelparametere tilgjengelige:
· showDebugTooltips – en boolsk verdi (true eller false) som styrer visningen av teknisk informasjon for feilsøking av prestasjoner.
· maxDebugLines – et heltall som begrenser det maksimale antallet utløserlinjer i verktøytipsvinduet, og forhindrer at teksten går utenfor skjermkanten ved et stort antall krav.
· disableBackgroundFade – en parameter for å deaktivere nedtoningen av spillbakgrunnen mens prestasjonsmenyen vises.
· spacing – skrittet i piksler for å justere avstanden mellom tilstøtende faner på panelet.
· enablePinning – tillater eller forbyr spillere å feste de utvalgte fanene.
Modifikasjonen støtter et system for tilpasning av ikoner via mekanismen Custom Frames (egendefinerte rammer). Som standard tilbyr Minecraft tre typer rammer: task (vanlig oppgave), goal (mål) og challenge (utfordring). Moden gjør det mulig å opprette nye typer ved hjelp av datapakker.
For å legge til en ny ramme må du opprette en JSON-fil i datapakken på følgende bane:
assets/<mod_identifikator>/advancement_frame_types/<rammenavn>.json
Eksempel på filens innhold:
{ |
Teksturene for rammen plasseres på følgende baner:
· assets/<mod_identifikator>/textures/gui/sprites/advancements/<rammenavn>_unobtained.png – rammens utseende før prestasjonen er fullført.
· assets/<mod_identifikator>/textures/gui/sprites/advancements/<rammenavn>_obtained.png – rammens utseende etter fullføring.
For å knytte den opprettede rammen til en bestemt prestasjon brukes en mappingfil i datapakken på banen assets/<mod_identifikator>/advancement_frames/<filnavn>.json:
[ |
Moden ble utviklet som et rent klientverktøy, og krever derfor ikke installasjon på serveren. Den er fullt kompatibel med store industri- og magimoder (som Create, Ender IO, Botania), som legger til komplekse oppdragssystemer og tallrike prestasjonsfaner. For brukere av den gamle lasteren Forge er en uoffisiell tilpasning av moden tilgjengelig under navnet ForgedPaginatedAdvancements. For å kjøre de nyeste versjonene av moden på plattformen NeoForge 26.1+ er det obligatorisk å bruke kjøretidsmiljøet Java 25.
Konklusjon
Paginated Advancements & Custom Frames løser effektivt problemet med den begrensede plassen i vanilla-prestasjonsgrensesnittet, som blir kritisk i store modpakker. I motsetning til motstykket Better Advancements, som hovedsakelig skalerer vinduet uten å legge til sider, tilbyr denne moden en tydelig inndeling i sider og en praktisk festing av faner. Modifikasjonen forenkler arbeidet til utviklere av modifiserte pakker takket være den innebygde feilsøkeren og det fleksible systemet for registrering av nye rammetyper via JSON-strukturene i datapakker. Den eneste merkbare begrensningen er behovet for å opprette ekstra klientressurspakker for korrekt visning av egendefinerte grafiske rammer.
Installasjon
En typisk installasjon tar omtrent 5 minutter. Flyten er den samme; bare Loader og den matchende builden er forskjellige.
- 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.











