Aktualizacja – v1.19.4 – Stableified glue!
Drodzy Gracze po wprowadzeniu ponad 200 funkcji, modyfikacji i poprawek, aktualizacja 1.19.4 wydaje się twórcom teraz być w dobrym stanie. Nowy tryb widoku z perspektywy pierwszej osoby (fp) wprowadzony w 1.19 również wydaje się być już w przyzwoitym stanie.
Do ważniejszych zmian należy rebalansowanie łupów w ruinach – zdobywanie bloków bałaganu jest teraz bardziej wymagające i wymaga obfitego stosowania kleju, ale jednocześnie pojawia się większa różnorodność mniejszych przedmiotów znalezionych w skrzyniach i pojemnikach wśród ruin. Dodaliśmy również możliwość ustawienia skór, oraz nowe ustawienie koloru szkieletu w zakładce Dostępność, aby pomóc graczom z zaburzeniami widzenia kolorów.
Zdjęcia ekranu
![](https://vintagestory.pl/wp-content/uploads/2024/03/2024-02-25_21-46-49.png.f111258cfc053c3fee85b885c6c634c8-1024x576.png)
![](https://vintagestory.pl/wp-content/uploads/2024/03/cy.png.6decda2b9bc6b011c8781e442b893d48-1024x495.png)
Aktualizacje gry
Wszystkie zmiany z 1.19.4-rc.1, 1.19.4-rc.2 i 1.19.4-rc.3:
- Funkcja – rozpad bloków bałaganu po zniszczeniu, chyba że zostaną najpierw naprawione przy użyciu kleju:
- Bloki bałaganu teraz wymagają naprawy na miejscu zamiast bycia uzyskiwanymi z 50% szansą przez ich zniszczenie. Częściowo naprawione bloki mają szansę nie rozpaść się. Bloki bałaganu już uzyskane przez graczy są bezpieczne przed rozpadaniem.
- Możliwość konfiguracji reguły rozpadu dla każdego świata (domyślnie wyłączona w stylu gry Eksploracja). Nowa opcja konfiguracji świata „Bałagan możliwy do uzyskania”.
- Produkcja kleju smołowego:
- Klej smołowy można wytworzyć przez gotowanie żywicy i proszku węglowego. Aby naprawić bloki bałaganu w ruinach, wystarczy użyć garnka z klejem, klikając nim prawym przyciskiem myszy.
- Klej twardnieje w ciągu kilku godzin, ale stwardniały klej można ponownie podgrzać w ognisku. Może być konieczne stworzenie ogniska w pobliżu ruin w celu naprawy bałaganu.
- Gotowanie substancji niejadalnych w garnku powoduje powstanie „Garnka pokrytego osadem”, który nie nadaje się do dalszego gotowania posiłków.
- Produkcja proszku węglowego:
- Proszek węglowy uzyskuje się przez mielenie węgla na żarnach.
- Funkcja – większa łupieżność ruin:
- Zwiększono różnorodność potencjalnych łupów dostępnych w skrzyniach i innych kontenerach w ruinach, zarówno na powierzchni, jak i pod ziemią.
- Niektóre kontenery mogą zawierać mniejsze przedmioty bałaganu, które można uzyskać bez potrzeby naprawy.
- W jednej z dużych ruin dodano nową piwnicę.
- Funkcja – możliwość przypisania przycisków myszy:
- Kontrole klawiatury lub makra mogą być teraz konfigurowane do przycisków myszy. Kliknięcia myszą w grze (lewe, prawe, środkowe) mogą być przypisane na nowo do innych przycisków myszy lub klawiszy klawiatury.
- Wybór bloku jest teraz możliwy do przypisania do dowolnego klawisza lub przycisku myszy.
- Funkcja – dostosowania dla osób z zaburzeniami widzenia kolorów:
- W zakładce ustawień Dostępność, kolory siatki voxelowej dla knapping, formowania gliny, kucia są teraz konfigurowalne między różnymi predefiniowanymi ustawieniami, z opcjami lepszego kontrastu dla graczy z pewnymi rodzajami zaburzeń widzenia kolorów.
- Dopracowanie – ulepszone wizualizacje beczek i koryt:
- Nowe modele beczek.
- Wygląd zawartości beczek na surowe warzywa bardziej odpowiada rzeczywistym warzywom (kapusta, marchew, cebula, pasternak, dynia, rzepa i papryka).
- Poprawiono wygląd niektórych innych przedmiotów w beczkach (gotowane mięso z krzewów, ryby, drób, czerwone mięso; surowe mieszane warzywa).
- Warzywa w korytach mają teraz taki sam wygląd jak warzywa w beczkach, z kilkoma dodatkowymi dopracowaniami na brzegach.
Ulepszenia wydajności
- Zmniejszenie zużycia RAM przez serwer i pojedynczego gracza o około 250MB. Szczegół: schematy używane przez ruiny i wioski są teraz buforowane i częściowo ładowane leniwie.
- Zmniejszenie wzrostu zużycia RAM przez klienta przy przemieszczaniu się do nowych obszarów świata.
- Dodatkowe optymalizacje pamięci RAM dla załadowanych ruin i innych schematów, z większymi oszczędnościami przy użyciu niektórych modów.
- Łagodzenie szybko rosnącego zużycia RAM i spowolnień z nim związanych, szczególnie gdy ten sam fragment musiał być rysowany wielokrotnie, gdy bloki wewnątrz fragmentu były często modyfikowane. Szczegóły techniczne: zmniejszenie obciążenia GC przez redukcję alokacji na stercie podczas teselacji chunka, poprzez ponowne wykorzystanie zamiast ponownego alokowania obiektów MeshData. Można wyłączyć, dodając następującą nową linię w obszarze boolSettings clientsettings.json: „disableMeshRecycler: true” lub odpowiednią komendę .clientconfigcreate, wymaga restartu gry).
- Drobne optymalizacje pamięci RAM po stronie serwera przy zapisywaniu lub wysyłaniu fragmentów.
- Drobne optymalizacje pamięci RAM dla Mikrobloków, Bałaganu itp.
- Naprawiono: powolny kumulacyjny wyciek pamięci w długotrwałym kliencie gry, widoczny po wielu godzinach gry.
- Naprawiono: spowolnienia przy rozpoczynaniu pisania na czacie lub w podręczniku (widoczne tylko przy ustawieniu trybu RAM na „Agresywnie optymalizuj”).
- Naprawiono: całkowite zużycie pamięci – ekran debugowania i komenda /stats pokazywały wartość zbyt wysoką, większą niż pokazuje Menedżer Zadań.
- Zmniejszenie wykorzystania sieci w grach wieloosobowych na dużą skalę. Szczegół: Mniej pakietów aktualizacji pozycji encji dla upuszczonych przedmiotów, martwych stworzeń i innych nieruchomych encji.
- Drobne optymalizacje formowania z gliny.
- Zmniejszenie spowolnień po stronie klienta spowodowanych drzwiami w nowo załadowanych fragmentach.
API Modyfikacji
- Dopracowanie: brakujące zależności są teraz wyświetlane w menedżerze modów.
- Dopracowanie: dodano nowy punkt mocowania na modelu serafa dla animacji w drugiej ręce .
- Dopracowanie: logowanie błędu, jeśli dla przedmiotu ustawiono tę samą animację dla HeldRightReadyAnimation i HeldRightTpIdleAnimation.
- Dopracowanie: nowe i zaktualizowane stackrandomizers są dostępne, aby umożliwić umieszczanie losowego łupu w kontenerach w schematach. Te randomizery mogą być modyfikowane, aby dodać lub zmienić łup w standardowych ruinach. Szczegóły znajdziesz w randomizers w assets/survival/itemtypes/meta.
- Dopracowanie: jeśli przedmiot określa renderVariant, a kształt nie może być znaleziony, loguje błąd zamiast powodować awarię.
- Dopracowanie: modyfikowane włócznie powinny teraz zawierać zachowanie „AnimationAuthoritative”, zobacz vanilla spear.json dla przykładu .
- Dopracowanie: dodano właściwość entity fallDamageMultiplier. Ogłoszenie- właściwość bool entity fallDamage stanie się przestarzała w wersji v1.20 i zostanie usunięta w v1.21. Zamiast tego użyj fallDamageMultiplier:
- Naprawiono: bloki z umiejscowieniem NearSeaWater teraz poprawnie wykrywają słoną wodę.
- Naprawiono: nieprawidłowe drzwi i skrzynie przyjmowały niewłaściwy wygląd podczas animacji w mocno zmodyfikowanych grach, z powodu wielokrotnego tworzenia atlasu tekstur, przy użyciu domyślnych rozmiarów atlasu tekstur .
- Naprawiono: mikrobloki nie pozwalające na 255 materiałów. Dodatkowe drobne dopracowania relevantne tylko dla modów kodowanych:
- KeyConfiguration używana dla skrótów klawiszowych może teraz również reprezentować przycisk myszy. Przyciski myszy są traktowane jak klawisze klawiatury z kodami klawiszy 240-247.
- Dla AITasks, system EntityPartitioning jest teraz podzielony bardziej logicznie na Creatures i Inanimate entities, użyj EnumEntitySearchType aby to określić.
- Dla wszystkich operacji IndexOf(), StartsWith() lub EndsWith() na ciągach reprezentujących wewnętrzne elementy gry, na przykład AssetLocation, kody tekstur i inne klucze słownika lub cokolwiek znajdującego się w kodzie JSON, należy używać StringComparison.Ordinal dla niezależności kulturowej. Zobacz .NET Best Practice Guide. Vintagestory.API.Util teraz dostarcza pomocnicze metody string.IndexOfOrdinal(), string.StartsWithOrdinal() i string.EndsWithOrdinal(), które możesz użyć; a dla AssetLocations, porównanie porządkowe jest wbudowane w nową metodę wygody AssetLocation.PathStartsWith().
- Mody mogą uzyskać dostęp i zmienić climbUpSpeed i climbDownSpeed w BehaviorControlledPhysics encji.
- Oznaczono UsingHeldItemTransformBefore/After jako przestarzałe.
- Udostępniono GetRecipeRegistry() w IWorldAccessor.
- Wyjątki BlockEntity.GetBlockInfo() są teraz przechwytywane i logowane, prosty błąd jest pokazywany w HUD informacji o bloku.
- Wyjątki wyrzucane przez ticking BlockEntity są teraz logowane z pozycją encji i typem; nadpisz BlockEntity.TickingExceptionHandler aby zmienić to zachowanie
- Wyjątki wyrzucane przez BlockEntity.FromTreeAttributes() są teraz logowane z pozycją encji i typem.
- Każdy mod bezpośrednio uzyskujący dostęp do BlockEntityMicroBlock.sideAlmostSolid lub .sidecenterSolid powinien ponownie skompilować dla 1.19.4 .
zmiany od wersji 1.19.4-rc.3 (także wymienione powyżej):
- Dopracowanie: zaktualizowano do najnowszych tłumaczeń społeczności.
- Naprawiono: komenda .cam była dostępna dla graczy w trybie przetrwania.
- Naprawiono: brakująca zależność moda od innego moda powodująca awarię menedżera modów.
- Naprawiono: Komenda /db prune nie usuwała lokalizacji struktur, co zapobiegało ich regeneracji.
- Naprawiono: cząsteczki trzymanej pochodni pojawiały się w złym miejscu, gdy pole widzenia (FoV) rąk w pierwszej osobie znacznie różniło się od ustawień FoV w zakładce grafiki.
- Naprawiono: import pewnych schematów przez WorldEdit mógł logować błędy z BETransient i powiązane problemy.
- Naprawiono: wolny kumulacyjny wyciek pamięci w długotrwałym kliencie gry.
- Naprawiono: w WorldEdit, błędy GL podczas podglądu importowanych/kopiowanych schematów zawierających otwarte beczki z zawartością płynną.
- Naprawiono: w podglądzie bloków WorldEdit, kolor trawy powierzchniowej (gleba) i płyny w ogóle nie były rysowane.
- Naprawiono: 2 rzadkie problemy z Clutter bookshelf w schematach, powodujące niekompletne importy.
- Naprawiono: rzadki wyjątek zamykania w ChunkTesselator, widoczny tylko w środowisku Dev.
- Naprawiono: zamrożenie i wyciek atlasu tekstur spowodowany przez skrzynie z etykietami.
- Naprawiono: brakujące tekstury na Thunderlordzie (również czule nazywanym „Dave”).