
Paginated Advancements & Custom Frames — Minecraft Java Edition 1.18.1 - 26.1+
Zależności · Loader: Fabric, NeoForge, Quilt · Wersja Minecraft: 1.18.1 - 26.1+ · Wersja moda: 2.8.2 · Wymagane zależności: Fabric API…
Zależności · Loader: Fabric, NeoForge, Quilt · Wersja Minecraft: 1.18.1 - 26.1+ · Wersja moda: 2.8.2 · Wymagane zależności: Fabric API, Cloth Config API (dla wersji Fabric/Quilt oraz NeoForge przed 2.8.0) Waniliowy inte
Zależności
· Loader: Fabric, NeoForge, Quilt
· Wersja Minecraft: 1.18.1 - 26.1+
· Wersja moda: 2.8.2
· Wymagane zależności: Fabric API, Cloth Config API (dla wersji Fabric/Quilt oraz NeoForge przed 2.8.0)
Waniliowy interfejs osiągnięć ogranicza wyświetlanie zakładek. Standardowe okno ma stałą szerokość i wysokość, obliczone jedynie na sześć zakładek. Jeśli zainstalujesz dużą modpaczkę, w której każdy duży mod dodaje własną gałąź progresji, nowe zakładki zaczynają wychodzić poza krawędzie ekranu, nakładać się na siebie lub całkowicie znikać z interfejsu. Modyfikacja Paginated Advancements & Custom Frames rozszerza standardowe okno menu osiągnięć, dodając nawigację stronicowaną, system przypinania priorytetowych gałęzi, wbudowane narzędzie do debugowania oraz obsługę całkowicie nowych ramek dla ikon za pomocą paczek zasobów lub paczek danych.
Techniczna zasada działania i rozwiązanie ograniczeń waniliowego interfejsu
Waniliowa klasa AdvancementsScreen używa zakodowanych na stałe współrzędnych do renderowania okna osiągnięć (rozmiar wynosi 252 na 140 pikseli). Elementy sterujące, takie jak siatka zakładek i renderowanie tła, są przypisane do statycznych rozmiarów okna, co uniemożliwia skalowanie pod wysoką rozdzielczość monitora. Klasa AdvancementTab również ma sztywne granice rysowania ikon zakładek wzdłuż obwodu głównej ramki.
Paginated Advancements & Custom Frames wprowadza zmiany bezpośrednio w logice renderowania graficznego interfejsu klienta za pomocą iniekcji Mixin do klas MixinAdvancementsScreen oraz MixinAdvancementTab. Zamiast używać zakodowanych na stałe stałych, modyfikacja przechwytuje inicjalizację interfejsu i odczytuje bieżący rozmiar okna gry. Na podstawie tych danych obliczany jest optymalny rozmiar ramki osiągnięć, która adaptacyjnie się rozszerza, zajmując większą część ekranu.
System automatycznie grupuje wszystkie zarejestrowane zakładki w oddzielne strony (paginacja). Algorytm oblicza maksymalną liczbę zakładek, które mogą zmieścić się w obrębie górnego i dolnego panelu okna, według wzoru uwzględniającego szerokość okna i ustawione marginesy. Jeśli liczba gałęzi osiągnięć przekracza limit strony, modyfikacja tworzy dodatkowe wirtualne strony i dodaje interaktywne przyciski strzałek w dolnej części interfejsu. Podczas przełączania stron renderer ukrywa zakładki z nieaktywnych stron, zapobiegając przeciążeniu pamięci operacyjnej obiektami graficznymi i eliminując konflikty nakładania się elementów.
Kluczowe możliwości i funkcjonalność
Główną funkcją Paginated Advancements & Custom Frames jest reorganizacja graficznego menu osiągnięć. Modyfikacja oferuje kilka praktycznych narzędzi do nawigacji:
· Dynamiczna paginacja: Dodaje strzałki przełączania stron w dolnym rogu okna osiągnięć. Gracze mogą przeglądać dowolną liczbę zakładek, nawet jeśli w paczce aktywowano ponad pięćdziesiąt modyfikacji z własnymi łańcuchami zadań.
· Przypinanie zakładek: Użytkownik może dodać dowolną zakładkę do listy ulubionych. Służy do tego specjalny przycisk w kształcie gwiazdki na każdej zakładce. Przypięta zakładka jest automatycznie przenoszona na pierwszą stronę i wyświetlana na początku listy, niezależnie od jej alfabetycznej lub wewnątrzgrowej kolejności sortowania.
· Zachowanie stanu sesji: Mod zapamiętuje ostatnio otwartą zakładkę osiągnięć. W przypadku zamknięcia menu i jego ponownego otwarcia za pomocą klawisza L interfejs pokaże tę samą zakładkę, na której zatrzymał się gracz, zamiast resetować się do pierwszej standardowej zakładki.
· Debuger osiągnięć (Advancement Debugger): Specjalny tryb dla twórców paczek i autorów questów. Aktywuje się go w konfiguracji lub po włączeniu rozszerzonych podpowiedzi (klawisze F3 + H). Po najechaniu kursorem na ikonę osiągnięcia wyświetlane jest dodatkowe okno podpowiedzi z informacjami technicznymi: wewnętrznym identyfikatorem (na przykład minecraft:adventure/arbalistic) oraz listą wyzwalaczy (warunków) niezbędnych do jego wykonania. Kombinacja klawiszy Ctrl + C kopiuje identyfikator zaznaczonego osiągnięcia do schowka.
Ustawienia, kompatybilność i ekosystem
Parametry wyświetlania menu osiągnięć użytkownik może zmienić za pomocą pliku konfiguracyjnego. Lokalizacja i format pliku zależą od loadera modyfikacji:
· Fabric i Quilt: Do działania ustawień wymagana jest instalacja biblioteki Cloth Config API. Parametry zapisywane są w pliku paginatedadvancements.json (lub paginatedadvancements.json5) w folderze config.
· NeoForge: Wersje moda począwszy od 2.8.0 korzystają z wbudowanego systemu konfiguracji NeoForge, co eliminuje potrzebę dodatkowych bibliotek. Plik generowany jest pod nazwą paginatedadvancements-client.toml w folderze config.
W pliku konfiguracyjnym dostępne są następujące kluczowe parametry:
· showDebugTooltips – wartość logiczna (true lub false), która steruje wyświetlaniem informacji technicznych do debugowania osiągnięć.
· maxDebugLines – liczba całkowita ograniczająca maksymalną liczbę wierszy wyzwalaczy w oknie podpowiedzi, zapobiegająca wyjściu tekstu poza ekran w przypadku dużej liczby wymagań.
· disableBackgroundFade – parametr wyłączający przyciemnianie tła gry podczas przeglądania menu osiągnięć.
· spacing – krok w pikselach do regulacji odstępu między sąsiednimi zakładkami na panelu.
· enablePinning – zezwala lub zabrania graczom przypinania wybranych zakładek.
Modyfikacja obsługuje system personalizacji ikon poprzez mechanizm Custom Frames (niestandardowe ramki). Domyślnie Minecraft oferuje trzy typy ramek: task (zwykłe zadanie), goal (cel) oraz challenge (wyzwanie). Mod pozwala tworzyć nowe typy za pomocą paczek danych.
Aby dodać nową ramkę, należy utworzyć plik JSON w paczce danych pod ścieżką:
assets/<identyfikator_moda>/advancement_frame_types/<nazwa_ramki>.json
Przykładowa zawartość pliku:
{ |
Tekstury ramki umieszcza się pod ścieżkami:
· assets/<identyfikator_moda>/textures/gui/sprites/advancements/<nazwa_ramki>_unobtained.png – wygląd ramki przed wykonaniem osiągnięcia.
· assets/<identyfikator_moda>/textures/gui/sprites/advancements/<nazwa_ramki>_obtained.png – wygląd ramki po wykonaniu.
Aby przypisać utworzoną ramkę do konkretnego osiągnięcia, używa się pliku mapowania w paczce danych pod ścieżką assets/<identyfikator_moda>/advancement_frames/<nazwa_pliku>.json:
[ |
Mod został opracowany jako narzędzie czysto klienckie, dlatego nie wymaga instalacji na serwerze. Jest w pełni kompatybilny z dużymi modami przemysłowymi i magicznymi (takimi jak Create, Ender IO, Botania), które dodają złożone systemy questów i liczne zakładki osiągnięć. Dla użytkowników starego loadera Forge dostępna jest nieoficjalna adaptacja moda o nazwie ForgedPaginatedAdvancements. Do uruchomienia najnowszych wersji moda na platformie NeoForge 26.1+ obowiązkowe jest korzystanie ze środowiska uruchomieniowego Java 25.
Podsumowanie
Paginated Advancements & Custom Frames skutecznie rozwiązuje problem ograniczonej przestrzeni waniliowego interfejsu osiągnięć, który staje się krytyczny w dużych modpaczkach. W przeciwieństwie do odpowiednika Better Advancements, który głównie skaluje okno bez dodawania stron, ten mod oferuje wyraźny podział na strony i wygodne przypinanie zakładek. Modyfikacja upraszcza pracę twórców modyfikowanych paczek dzięki wbudowanemu debugerowi i elastycznemu systemowi rejestrowania nowych typów ramek poprzez struktury JSON paczek danych. Jedynym zauważalnym ograniczeniem jest konieczność tworzenia dodatkowych paczek zasobów klienta dla poprawnego wyświetlania niestandardowych ramek graficznych.
Instalacja
Typowa instalacja zajmuje około 5 minut. Procedura jest taka sama; różni się tylko loader i odpowiedni build.
- 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.











