Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add client biome schema #319

Merged
merged 1 commit into from
Oct 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ JSON validation can give snippets for sub items, as well as description, but thi
- [Animations](resource/animations/animations.json)
- [Animation Controllers](resource/animation_controllers/animation_controller.json)
- [Attachables](resource/attachables/attachables.json)
- [Biomes](resource/biomes/biomes.json)
- [Biomes client](resource/biomes_client.json)
- [Blocks](resource/blocks.json)
- [Entity](resource/entity/entities.json)
Expand Down
1 change: 1 addition & 0 deletions source/compress_specification.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
{ "Source": "./resource/animation_controllers/animation_controller.json", "Destination": "../resource/animation_controllers/animation_controller.json" },
{ "Source": "./resource/animations/actor_animation.json", "Destination": "../resource/animations/actor_animation.json" },
{ "Source": "./resource/attachables/attachables.json", "Destination": "../resource/attachables/attachables.json" },
{ "Source": "./resource/biomes/biomes.json", "Destination": "../resource/biomes/biomes.json" },
{ "Source": "./resource/biomes_client.json", "Destination": "../resource/biomes_client.json" },
{ "Source": "./resource/blocks.json", "Destination": "../resource/blocks.json" },
{ "Source": "./resource/entity/entity.json", "Destination": "../resource/entity/entity.json" },
Expand Down
26 changes: 26 additions & 0 deletions source/resource/biomes/biomes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"$id": "blockception.minecraft.resource.biomes",
"title": "Client Biome",
"description": "Minecraft client_biome files define client-side settings for biomes in resource packs. This is the new preferred location for per-biome settings that used to be in biomes_client.json.",
"type": "object",
"required": ["format_version", "minecraft:client_biome"],
"additionalProperties": false,
"properties": {
"format_version": { "$ref": "../../general/format_version.json" },
"minecraft:client_biome": { "$ref": "./format/minecraft.client_biome.json" }
},
"defaultSnippets": [
{
"label": "New client biome",
"body": {
"format_version": "${1:1.21.40}",
"minecraft:client_biome": {
"description": {
"identifier": "${3:${TM_FILENAME/[\\.].*//}}"
},
"components": "^{$4}"
}
}
}
]
}
15 changes: 15 additions & 0 deletions source/resource/biomes/format/components/fog_appearance.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"$id": "blockception.minecraft.resource.biomes.minecraft.fog_appearance",
"title": "Fog Appearance",
"description": "Set the fog settings used during rendering. Biomes without this component will have default fog settings.",
"type": "object",
"required": ["fog_identifier"],
"additionalProperties": false,
"properties": {
"fog_identifier": {
"title": "Fog Identifier",
"description": "Identifier of fog definition to use.",
"type": "string"
}
}
}
17 changes: 17 additions & 0 deletions source/resource/biomes/format/components/sky_color.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"$id": "blockception.minecraft.resource.biomes.minecraft.sky_color",
"title": "Sky Color",
"description": "Set the sky color used during rendering. Biomes without this component will have default sky color behavior.",
"type": "object",
"required": ["sky_color"],
"additionalProperties": false,
"properties": {
"sky_color": {
"title": "Sky Color",
"description": "RGB color of the sky.",
"type": "string",
"format": "color-hex",
"examples": ["#FFFFFF"]
}
}
}
17 changes: 17 additions & 0 deletions source/resource/biomes/format/components/water_appearance.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"$id": "blockception.minecraft.resource.biomes.minecraft.water_appearance",
"title": "Water Appearance",
"description": "Set the water surface color used during rendering. Biomes without this component will have default water surface color behavior.",
"type": "object",
"required": ["surface_color"],
"additionalProperties": false,
"properties": {
"surface_color": {
"title": "Surface Color",
"description": "RGB color of the water surface.",
"type": "string",
"format": "color-hex",
"examples": ["#FFFFFF"]
}
}
}
39 changes: 39 additions & 0 deletions source/resource/biomes/format/minecraft.client_biome.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"$id": "blockception.minecraft.resource.biomes",
"title": "Client Biome Definitions",
"description": "A client biome definition.",
"type": "object",
"additionalProperties": false,
"required": ["description", "components"],
"definitions": {
"components_ref": {
"type": "object",
"title": "Components",
"description": "Any components that this Client Biome uses.",
"additionalProperties": false,
"properties": {
// Components
"minecraft:fog_appearance": { "$ref": "./components/fog_appearance.json" },
"minecraft:sky_color": { "$ref": "./components/sky_color.json" },
"minecraft:water_appearance": { "$ref": "./components/water_appearance.json" }
}
}
},
"properties": {
"description": {
"title": "Client Biome Description",
"description": "Contains non-component settings for a Client Biome.",
"type": "object",
"additionalProperties": false,
"required": ["identifier"],
"properties": {
"identifier": {
"title": "Identifier",
"description": "The name of the Client Biome, used by other features like the '/locate biome' command. Must match the name of a Biome defined by the game or a behavior pack.",
"type": "string"
}
}
},
"components": { "$ref": "#/definitions/components_ref" }
}
}
16 changes: 16 additions & 0 deletions vscode-settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,22 @@
"fileMatch": ["attachables/*.{json,jsonc,json5}", "attachables/**/*.{json,jsonc,json5}", "*.{attachable,attach,at}.{json,jsonc,json5}"],
"url": "https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/main/resource/attachables/attachables.json"
},
{
"fileMatch": [
"resource_packs/*/biomes/*.{json,jsonc,json5}",
"*resource*pack*/biomes/*.{json,jsonc,json5}",
"*Resource*Pack*/biomes/*.{json,jsonc,json5}",
"*RP*/biomes/*.{json,jsonc,json5}",
"*rp*/biomes/*.{json,jsonc,json5}",
"resource_packs/*/biomes/**/*.{json,jsonc,json5}",
"*resource*pack*/biomes/**/*.{json,jsonc,json5}",
"*Resource*Pack*/biomes/**/*.{json,jsonc,json5}",
"*RP*/biomes/**/*.{json,jsonc,json5}",
"*rp*/biomes/**/*.{json,jsonc,json5}",
"*.{client_biome}.{json,jsonc,json5}"
],
"url": "https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/main/resource/biomes/biomes.json"
},
{
"fileMatch": ["biomes_client.{json,jsonc,json5}"],
"url": "https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/main/resource/biomes_client.json"
Expand Down
Loading