25w16a ist eine Entwicklungsversion zur Vollversion 1.21.6 der Java Edition. Mit 25w16a kommen folgende Neuerungen, Änderungen und Fehlerkorrekturen ins Spiel:
Leinen
- Leinen sind jetzt doppelt so dick, passend zur „Bedrock Edition“.
- Leinen können jetzt verwendet werden, um zwei Kreaturen aneinanderzubinden.
- Schleichinteraktion mit einer Kreatur, während mehrere Kreaturen an der Leine gehalten werden, bindet diese an die interagierende Kreatur.
- Es ist nicht möglich, etwas an sich selbst anzubinden.
- Wenn das erneute Anbinden einer Kreatur aufgrund der Entfernung zu einem sofortigen Reißen der Leine führen würde, wird das erneute Anbinden nicht durchgeführt.
- Leinen können von einer Kreatur abgeschnitten werden, wenn man mit Scheren interagiert.
- Dies gilt sowohl für die eigene Leinenverbindung als auch für alle daran angeschlossenen Kreaturen.
- Werfer können jetzt Leinen von Kreaturen vor ihnen abschneiden, wenn sie mit Scheren ausgerüstet sind.
- Die Leinenmechanik wurde verbessert. Die Leinenphysik wurde überarbeitet, um eine stabilere Leinenverbindung zu ermöglichen, insbesondere wenn sich angeleinte Objekte nicht am Boden befinden.
- An der Leine gezogene Objekte orientieren sich nun zum Anleiner.
- Der Einsatz einer Feuerwerksrakete beim Fliegen mit angeleinten Objekten unterbricht nun die Leinenverbindungen.
- Beim Anleinen eines bereits angeleinten Kreaturen reißt die aktuelle Leine und der Spieler bindet das Objekt erneut an den Spieler.
- Es ist nicht möglich, angeleinte Objekte von anderen Spielern zu stehlen.
- Die Interaktionen mit einem Leinenknoten und Zaunblöcken haben sich geändert:
- Befinden sich bei der Interaktion mit einem Leinenknoten oder Zaun vom Spieler angebundene Objekte in Reichweite des Knotens, werden diese erneut an den Leinenknoten oder Zaun gebunden.
- Falls das Anbinden von Kreaturen aufgrund der Entfernung fehlschlägt oder nichts zum Anbinden vorhanden ist, überträgt der Spieler nun alle am Zaun angeleinten Objekte auf sich selbst.
- Wenn nichts mehr am Leinenknoten hängt, verschwindet dieser.
- Schleichinteraktion kann nur dazu führen, dass die Kreaturen des Spielers am Zaun befestigt werden.
- Die Interaktion mit Scheren oder das Schlagen des Leinenknotens führt dazu, dass alle bestehenden Verbindungen unterbrochen werden.
- Boote und große Kreaturen, die angeleint werden können, aber nicht in das Boot passen (Pferde, Esel, Maultiere, Dromedaren und Schnüffler), können jetzt in einer speziellen 4-Leinen-Konfiguration an den glücklichen Ghast angeleint werden.
- Der glückliche Ghast präsentiert außerdem eine benutzerdefinierte Ebene, wenn er etwas über eine Vierfachverbindung angeleint.
- Angeleinte Objekte in Vierfachverbindungen werden jetzt ohne Spiel gerendert.
- Die Distanz zum Einrasten der Leine wurde von 10 auf 12 Blöcke geändert.
- Der Abstand zwischen den Mittelpunkten der Begrenzungsrahmen von Kreaturen und nicht deren Füßen wird zur Bestimmung des Abstands zwischen zwei angeleinten Kreaturen verwendet.
- Die Leine des glücklichen Ghast ist jetzt länger – mit einer freien Bewegungsdistanz von 10 Blöcken und einem Einrasten der Leine bei 16 Blöcken.
Blockmodelle
- Der Wert von
elements[].rotation.angle
in Blockmodellen ist nicht mehr auf Multiplikatoren von 22,5
Grad beschränkt und kann nun einen beliebigen Winkel zwischen -45
und +45
annehmen.
Gegenstandskomponenten
painting/variant
- Inline-Varianten werden nicht mehr akzeptiert.
Datenpaket
- Die Version des Paketformats ist jetzt
73
.
Ressourcenpaket
- Die Version des Paketformats lautet jetzt
57
.
- Alle Core-Shader-Uniformen sind jetzt Uniformblöcke.
- Die Wolkentextur (
clouds.png
) kann nicht mehr eingefärbt werden.
- Blockmodellrotationen sind nicht mehr auf ein Vielfaches von
22,5
beschränkt.
Shaderdaten
- Alle integrierten Uniformen sind jetzt Uniformblöcke anstelle von undurchsichtigen, losen Uniformen.
- Benutzerdefinierte Uniformen für Post-Processing-Shader sind jetzt Uniformblöcke.
- Uniformdefinitionen in JSON-Dateien erfolgen jetzt blockweise.
- Post-Processing-Effektdefinitionen
- Die Einträge in der Zielkarte wurden erweitert, um neue Eigenschaften zu unterstützen.
- Neues optionales Boolean-Feld:
persistent
- Standard:
false
- Wenn „true“, bleibt dieses Renderziel über mehrere Frames hinweg persistent.
- Der Inhalt des Ziels wird gelöscht, wenn die Bildschirmgröße geändert wird.
- Neues optionales Feld:
clear_color
- Standard:
[0, 0, 0, 0]
- Format: ganzzahliger ARGB-Wert oder Float-Array in der Reihenfolge
[R, G, B, A]
- Wenn dieses Ziel erstellt oder gelöscht wird, wird es mit dieser Farbe gefüllt.
- Die Uniformwerte sind jetzt eine Liste pro Block statt einer globalen Liste.
- z. B.
uniforms: { "UniformBlockName": [ { "type": "vec2", "value": [...] } ] }
- Die Reihenfolge der Uniformen in einem Block muss der Reihenfolge im Shader entsprechen.
name
wird als Teil einer Uniformdefinition nicht mehr verwendet.
value
ersetzt als Teil einer einheitlichen Definition das alte values
, und der Typ hängt vom Feld type
ab.
- Dieses Feld ist obligatorisch.
"type": "int"
benötigt "value": 123
(einen Int-Wert).
"type": "float"
benötigt "value": 123,4
(einen Float-Wert).
"type": "vec2"
benötigt "value": [1,2, 3,4]
(zwei Float-Werte).
"type": "vec3"
benötigt "value": [1,2, 3,4, 5,6]
(drei Float-Werte).
"type": "ivec3"
benötigt "value": [1, 2, 3]
(drei Int-Werte).
"type": "vec4"
benötigt "value": [1.2, 3.4, 5.6, 7.8]
(vier Floats).
"type": "matrix4x4"
benötigt "value": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0]
(vier Zeilen mit je vier Spalten aus Floats).
- Nachbearbeitung von Effekt-Shadern
- Anstatt jedes Uniform als eigenen opaken Typ zu verwenden, werden sie nun in Uniform-Blöcken gruppiert.
- Sie werden gemäß der Pass-Definition in der JSON-Datei festgelegt und können sowohl von Vertex- als auch von Fragment-Shadern gemeinsam genutzt werden.
- Die Größenliste (alle
vec2 *Size
Uniformen) wird nun durch einen einzigen SamplerInfo
Uniform-Block ersetzt.
- Enthält in der Reihenfolge die Größe der Ausgabetextur, gefolgt von der Größe jeder Eingabetextur.
- Die Reihenfolge der Texturen in der Definitionsdatei bestimmt die Reihenfolge der Sampler in dieser Uniform.
- Für die meisten Postchains sind dies wie zuvor einfach
OutSize
und InSize
.
- Alle Größen sind
vec2
post/bits.fsh
- Erwartet eine
BitsConfig
von float Resolution
und float MosaicSize
.
post/blit.fsh
- Erwartet eine
BlitConfig
von vec4 ColorModulate
.
post/blur.vsh
und post/box_blur.fsh
- Erwartet eine
BlurConfig
von vec2 BlurDir
und float Radius
.
post/color_convolve.fsh
- Erwartet eine
ColorConfig
von vec3 RedMatrix
, vec3 GreenMatrix
und vec3 BlueMatrix
.
post/invert.fsh
- Erwartet eine
InvertConfig
von float InverseAmount
.
post/rotscale.vsh
- Erwartet eine
RotScaleConfig
von vec2 InScale
, vec2 InOffset
und float InRotation
.
post/spiderclip.fsh
- Erwartet eine
SpiderConfig
von vec4 Scissor
und vec4 Vignette
.
Globals
Uniform Block
- Verfügbar über #moj_import <minecraft:globals.glsl>
- Die meisten Shader können diesen Uniform Block empfangen, auch wenn sie ihn normalerweise nicht verwenden.
- Enthält
ScreenSize
, GlintAlpha
, GameTime
und MenuBlurRadius
.
MenuBlurRadius
ist der Unschärferadius des Hintergrunds bei geöffnetem Menü.
Fog
Uniformblock
- Verfügbar über #moj_import <minecraft:fog.glsl>
- Die meisten Shader können diesen Uniformblock empfangen, auch wenn sie ihn normalerweise nicht verwenden.
- Enthält
FogColor
, FogShape
, FogStart
, FogEnd
, FogSkyEnd
und FogCloudsEnd
.
FogSkyEnd
ist neu und gibt an, wo der Nebel beim Zeichnen des Himmels enden soll.
FogCloudsEnd
ist neu und gibt an, wo der Nebel beim Zeichnen der Wolken enden soll.
FogEnd
ist wie bisher die „normale“ Nebelgrenze.
FOG_IS_SKY
ist jetzt für die Shader position.vsh/position.fsh verfügbar, wenn sie den Himmel rendern.
Projection
Uniform Block
- Verfügbar über #moj_import <minecraft:projection.glsl>
- Die meisten Shader können diesen Uniform Block empfangen, auch wenn sie ihn normalerweise nicht verwenden.
- Enthält
ProjMat
unverändert.
DynamicTransforms
Uniform Block
- Verfügbar über #moj_import <minecraft:dynamictransforms.glsl>
- Ist nicht mehr für Shader verfügbar, die ihn normalerweise nicht verwenden.
- Enthält
ModelViewMat
, ColorModulator
, ModelOffset
, TextureMat
, LineWidth
.
Lighting
Uniform Block
- Verfügbar über #moj_import <minecraft:light.glsl>
- Die meisten Shader können diesen Uniform Block empfangen, auch wenn sie ihn normalerweise nicht verwenden.
- Die Werte sind jedoch möglicherweise nicht sinnvoll, wenn der Shader sie normalerweise nicht erwartet.
- Enthält
Light0_Direction
und Light1_Direction
.
CloudInfo
Uniform Block
- Nur verfügbar für die Wolken-Shader (rendertype_clouds.vsh/rendertype_clouds.fsh).
- Enthält
CloudColor
, CloudOffset
und CellSize
(neu).
CellSize
enthält die Größe einer einzelnen Wolkenzelle.
LightmapInfo
Einheitlicher Block
- Nur für den Lightmap-Shader (lightmap.fsh) verfügbar.
- Enthält
AmbientLightFactor
, SkyFactor
, BlockFactor
, UseBrightLightmap
, NightVisionFactor
, DarknessScale
, DarkenWorldFactor
, BrightnessFactor
, SkyLightColor
ohne Verhaltensänderung.
Fehlerkorrekturen