From 0875fbf2e6e8c5873db96c077081226e1a72c506 Mon Sep 17 00:00:00 2001 From: DaanV2 Date: Thu, 11 Mar 2021 10:59:08 +0100 Subject: [PATCH] Updated fog validation to 1.16.210 --- source/resource/fog/1.16.100/fog.json | 244 +++++++++++++++++--------- 1 file changed, 159 insertions(+), 85 deletions(-) diff --git a/source/resource/fog/1.16.100/fog.json b/source/resource/fog/1.16.100/fog.json index 39d4a0b5..367951c0 100644 --- a/source/resource/fog/1.16.100/fog.json +++ b/source/resource/fog/1.16.100/fog.json @@ -7,6 +7,7 @@ "description": "TODO", "definitions": { "colorHexOrArray": { + "examples": ["#056bd1"], "oneOf": [ { "type": "array", @@ -22,6 +23,88 @@ "pattern": "^\\#[0-9a-fA-F]{6}$" } ] + }, + "defaultFogSettings": { + "type": "object", + "additionalProperties": false, + "required": ["fog_start", "fog_end", "fog_color", "render_distance_type"], + "examples": [{ "fog_start": 100, "fog_end": 200, "fog_color": "#056bd1", "render_distance_type": "render" }], + "properties": { + "fog_start": { + "title": "Fog start", + "description": "The distance from the player that the fog will begin to appear. 'fog_start' must be less than or equal to 'fog_end'.", + "type": "number", + "minimum": 0 + }, + "fog_end": { + "title": "Fog end", + "description": "The distance from the player that the fog will become fully opaque. 'fog_end' must be greater than or equal to 'fog_start'.", + "type": "number", + "minimum": 0 + }, + "fog_color": { + "title": "Fog color", + "description": "The color that the fog will take on.", + "type": "string", + "format": "color-hex" + }, + "render_distance_type": { + "title": "Render distance type", + "description": "Determines how distance value is used. Fixed distance is measured in blocks. Dynamic distance is multiplied by the current render distance.", + "type": "string", + "enum": ["fixed", "render"] + } + } + }, + "volumeDensityObject": { + "type": "object", + "additionalProperties": false, + "required": ["max_density"], + "examples": [{ "max_density": 0.25 }, { "max_density": 0.25, "max_density_height": 128, "zero_density_height": 20, "uniform": true }], + "properties": { + "max_density": { + "title": "Max density", + "description": "The maximum amount of opaqueness that the ground fog will take on. A value from [0.0, 1.0].", + "minimum": 0, + "maximum": 1, + "type": "number" + }, + "max_density_height": { + "title": "Max density height", + "description": "The height in blocks that the ground fog will become it's maximum density.", + "minimum": 0, + "maximum": 128, + "type": "number" + }, + "zero_density_height": { + "title": "Zero density height", + "description": "The height in blocks that the ground fog will be completely transparent and begin to appear. This value needs to be at least 1 higher than 'max_density_height'.", + "minimum": 0, + "maximum": 128, + "type": "number" + }, + "uniform": { + "title": "Uniform", + "description": "When set to true, the density will be uniform across all heights.", + "type": "boolean" + } + } + }, + "volumeMediaObject": { + "type": "object", + "additionalProperties": false, + "properties": { + "absorption": { + "title": "Absorption", + "description": "Proportion of light that is absorbed (lost) per block.", + "$ref": "#/definitions/colorHexOrArray" + }, + "scattering": { + "title": "Scattering", + "description": "Proportion of light that is scattered per block.", + "$ref": "#/definitions/colorHexOrArray" + } + } } }, "properties": { @@ -32,7 +115,7 @@ }, "minecraft:fog_settings": { "title": "Fog settings", - "description": "TODO", + "description": "The definition of a single fog", "type": "object", "additionalProperties": false, "properties": { @@ -45,111 +128,102 @@ "identifier": { "type": "string", "title": "Identifier", + "description": "The identifier for these fog settings. The identifier must include a namespace.", "$ref": "../../../general/fog/identifier.json" } } }, "distance": { "title": "Distance", - "description": "The fog that is generated by the distance of the players view", + "description": "The distance fog settings for different camera locations.", "type": "object", - "propertyNames": { - "enum": ["water", "air", "weather", "lava", "lava_resistance"] - }, - "additionalProperties": { - "title": "Fog specification", - "description": "TODO", - "type": "object", - "additionalProperties": false, - "properties": { - "fog_start": { - "title": "Fog start", - "description": "The distance where the fog will start", - "type": "number" - }, - "fog_end": { - "title": "Fog end", - "description": "The distance where the fog will be opague", - "type": "number" - }, - "fog_color": { - "title": "Fog color", - "description": "The color of the fog", - "type": "string", - "format": "color-hex" - }, - "render_distance_type": { - "title": "Render distance type", - "description": "Wheter the fog should be calculated from the render distance or a fixed depth", - "type": "string", - "enum": ["fixed", "render"] - } + "additionalProperties": false, + "properties": { + "air": { + "title": "Air", + "description": "The fog settings when the camera is in the air.", + "$ref": "#/defintions/defaultFogSettings" + }, + "weather": { + "title": "Weather", + "description": " The fog settings for when the camera is in the air with active weather (rain, snow, etc..).", + "$ref": "#/defintions/defaultFogSettings" + }, + "water": { + "title": "Water", + "description": "The fog settings when the camera is in water.", + "$ref": "#/defintions/defaultFogSettings" + }, + "lava": { + "title": "Lava", + "description": "The fog settings when the camera is in lava.", + "$ref": "#/defintions/defaultFogSettings" + }, + "lava_resistance": { + "title": "Lava resistance", + "description": "The fog settings when the camera is in lava and the player has the lava resistance effect active.", + "$ref": "#/defintions/defaultFogSettings" + }, + "powder_snow": { + "title": "Powder snow", + "description": "The fog settings when the camera is inside a Powder Snow block.", + "$ref": "#/defintions/defaultFogSettings" } } }, "volumetric": { "title": "Volumetric", - "description": "Settings for light passing through blocks and the resulting fog", + "description": "The volumetric fog settings.", "type": "object", "additionalProperties": false, "properties": { "density": { "title": "Density", - "description": "TODO", - "propertyNames": { - "enum": ["water", "air", "weather", "lava", "lava_resistance"] - }, - "additionalProperties": { - "description": "TODO", - "type": "object", - "additionalProperties": false, - "properties": { - "max_density": { - "title": "Max density", - "description": "How much the fog disrupts the light", - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "uniform": { - "title": "Uniform", - "description": "If the fog should be evenly spread", - "type": "boolean" - }, - "zero_density_height": { - "title": "Zero density height", - "description": "NOTE: only works if uniform is false, The amount of blocks this fog will appear above blocks", - "type": "number" - }, - "max_density_height": { - "title": "Max density height", - "description": "NOTE: only works if uniform is false, The amount of blocks that the fog will become its maximum", - "type": "number" - } + "description": "The density settings for different camera locations.", + "type": "object", + "additionalProperties": false, + "properties": { + "air": { + "title": "Air", + "description": "Fog density values as light passes through air blocks.", + "$ref": "#/definitions/volumeDensityObject" + }, + "water": { + "title": "Water", + "description": "Fog density values as light passes through water blocks.", + "$ref": "#/definitions/volumeDensityObject" + }, + "lava": { + "title": "Lava", + "description": "Fog density values as light passes through lava blocks.", + "$ref": "#/definitions/volumeDensityObject" + }, + "lava_resistance": { + "title": "Lava resistance", + "description": "Fog density values as light passes through lava blocks while the player has lava resistance.", + "$ref": "#/definitions/volumeDensityObject" } } }, "media_coefficients": { - "title": "Density", - "description": "Describes what happens to the light when it passes through a medium", - "propertyNames": { - "enum": ["water", "air", "cloud"] - }, - "additionalProperties": { - "description": "TODO", - "type": "object", - "additionalProperties": false, - "properties": { - "absorption": { - "title": "Absorption", - "description": "How much of the light will be absorbed accross the RGB range", - "$ref": "#/definitions/colorHexOrArray" - }, - "scattering": { - "title": "Scattering", - "description": "How much of the light will be spread accross the RGB range", - "$ref": "#/definitions/colorHexOrArray" - } + "title": "Media coefficients", + "description": "The coefficient settings for the volumetric fog in different blocks.", + "additionalProperties": false, + "properties": { + "air": { + "title": "Air", + "description": "Fog coefficient values while light passes through air.", + "$ref": "#/definitions/volumeMediaObject" + }, + "water": { + "title": "Water", + "description": "Fog coefficient values while light passes through water.", + "$ref": "#/definitions/volumeMediaObject" + }, + "cloud": { + "title": "Cloud", + "description": "Fog coefficient values while light passes through clouds.", + "$ref": "#/definitions/volumeMediaObject" } } }