
It's yet another Tuesday, and it seems that we've officially run out of quippy snapshot intros until the next delivery. Anyway, here's Snapshot 6, bringing some tweaks and improvements to the Abandoned Camp, a new World Options UI, as well as changing up how terrain is rendered.
Happy camping!
publish#gamemode argument has been removeddefaultgamemode command or the Game Mode button in the World Options screen, while player-specific game modes should be set using the gamemode commandminecraft:cooking_fuel#burn_time and speed_multiplier can now additionally be defined by an inline numberminecraft:brewing_fuel#uses and speed_multiplier can now additionally be defined by an inline numberminecraft:compostable#layers can now additionally be defined by an inline numberinvulnerable_time tag which makes a mob temporarily invulnerable for a specific number of ticksminecraft:block_interact#origin is now available in context, as the center of the block being interacted withThe format of Noises (defined in the worldgen/noise registry, or inline in noise-based Block State Providers) has been updated.
Noises define a fractal Brownian motion (fBm) configuration with the following properties:
Unless otherwise specified, fits the output amplitude to [-1; 1]
Parameterized by persistence=0.5, lacunarity=2.0
firstOctave to base_octaveAdded base_amplitude - non-negative float, a scale factor to apply to the noise output
1.0octave_count - integer between 1 and 32, the number of octaves to sampleAdded normalize - boolean, or "legacy", controls how the output amplitude should be normalized
true, base_amplitude is the expected amplitude of the output (i.e. 99.7% of all samples in [-base_amplitude; base_amplitude])false, base_amplitude is the amplitude of the first octave"legacy", inherits the same normalization behavior as expressed by the previous formattrueamplitude_modifiers field - as such, modifying the amplitude of a single octave will not affect the amplitude of othersRenamed amplitudes to amplitude_modifiers - list of floats, a scaling factor to apply to each octave
octave_count1.0pow#Raises the given base value to an exponent.
Format: object with fields:
base - Density Function, the base valueexponent - Density Function, the exponentsqrt#Computes the square root of the given input.
Format: object with fields:
input - Density Function, the value for which to compute the square rootlog#Computes the natural logarithm of the given input.
Format: object with fields:
input - Density Function, the value for which to compute the natural logarithmsign#Computes the sign of the input:
10, returns 0-1Format: object with fields:
input - Density Function, the value of which to compute the signdistance_to_point#Computes the distance to a fixed point using the specified distance function.
Format: object with fields:
point - array of 3 integers in form [x, y, z], the point to compute distance tometric - one of:euclidean - i.e. sqrt(dx^2 + dy^2 + dz^2)euclidean_squared - i.e. dx^2 + dy^2 + dz^2manhattan - i.e. abs(dx) + abs(dy) + abs(dz)chebyshev - i.e. max(abs(dx), abs(dy), abs(dz))gradient (renamed from y_clamped_gradient)#Format: object with fields:
axis - x, y, or z, the axis over which to define this gradienttiling - one of:clamp_to_edge - outside the gradient boundaries, the value at the nearest boundary will be usedrepeat - the gradient will be repeated outside its boundariesmirrored_repeat - the gradient will be repeated such that odd repetitions are mirrored, ensuring continuity between repetitionsfrom_coordinate - int, the coordinate at which the gradient startsto_coordinate - int, the coordinate at which the gradient endsfrom_coordinatefrom_value - float, the value at which the gradient startsto_value - float, the value at which the gradient endsslice#Removes a dimension from the input domain by taking a "slice" along an axis with a specific coordinate. For example, with axis=y and coordinate=0, a slice will be taken along the XZ plane, with all values sampled at y=0.
Format: object with fields:
axis - x, y, or z, the axis to removecoordinate - int, the fixed coordinate to be passed to the input functioninput - Density Function, the input functionend_outer_islands#Renamed from end_islands. No longer computes the density of the main island.
minecraft:feature_pool_element#minecraft:bottomterrain.vsh and terrain.fsh shaders are refactored to support multi-drawGlobals and DynamicTransforms are shuffled to use less memory for those uniform blocksRENDERPEARL_EXPLICIT_DEPTH_INVARIANCE - If present, indicates that an OIT shader should explicitly output a depth value because a device it is running on can produce a slightly different implicit valueThe trim_palette_replacements field has been replaced with trim_overrides. This can be used to swap out the texture or palette used with specific trim materials or patterns for a given equipment asset, not just swap specific palettes.
when - object with fields, the material and/or pattern to matchmaterial - optional Trim Material ID, the material to match (if specified)pattern - optional Trim Pattern ID, the pattern to match (if specified)trim_palette_replacements used to be!material or pattern must be specifiedtexture - optional trim pattern asset ID, a replacement texture to use if this entry matchesasset_idpalette - optional palette ID, a replacement palette to use if this entry matchestexture or palette must be definedlimited_crafting game ruleStd140Builder incorrectly pads vec3s and ivec3sfillModeNonSolid Vulkan featureSynchedEntityData.Builder#definespider post effect is appliedcreeper post effect is ineffectiveGL_UNPACK_ALIGNMENT, which is invalidmipLevel is not respected when copyTextureToTexture is usedclearColorTexture and clearDepthTexture clear all mipmaps with the Vulkan rendering backend, unlike with the OpenGL one#include with uppercase characters in the pathcaves and floating_islands noise settings no longer generate as intendedcopyTextureToBuffer produces padded rows with the OpenGL rendering backend but tightly-packed rows with the Vulkan one