chore: upgrading to v3 for json compression (#351)

* chore: upgrading to v3 for json compression

* adding local build step

* adding test for compress

* auto: generate
This commit is contained in:
Daan Verstraten
2025-06-02 21:17:32 +02:00
committed by GitHub
parent ca6239c35c
commit b957fc93e8
34 changed files with 302 additions and 311 deletions

View File

@@ -30,7 +30,7 @@ jobs:
format: "YYYY-MM-DD" format: "YYYY-MM-DD"
- name: 💾 Compress Json - name: 💾 Compress Json
uses: DaanV2/Json-Schema-Action-Compression@v2.1 uses: DaanV2/Json-Schema-Action-Compression@v3
with: with:
specificationFile: "${{github.workspace}}/source/compress_specification.json" specificationFile: "${{github.workspace}}/source/compress_specification.json"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"$id":"blockception.minecraft.behavior.lighting.atmospherics","type":"object","title":"Atmospherics","description":"The properties of the atmosphere","additionalProperties":false,"properties":{"horizon_blend_stops":{"type":"object","title":"Horizon Blend Stops","description":"How the atmosphere is divided up","additionalProperties":false,"properties":{"min":{"title":"Minimum Horizon Height","description":"The minimum horizon height","type":"number"},"start":{"title":"Start","description":"The height relative to the horizon where the zenith contribution will take over","type":"number"},"mie_start":{"title":"Mie Start","description":"The height relative to the horizon where mie scattering begins","type":"number"},"max":{"title":"Maximum Horizon Height","description":"The maximum horizon height","type":"number"}}},"rayleigh_strength":{"title":"Rayleigh Strength","description":"How strong the atmosphere's rayleigh scattering term is","type":"number"},"sun_mie_strength":{"title":"Sun Mie Strength","description":"How strong the sun's mie scattering term is","type":"number"},"moon_mie_strength":{"title":"Moon Mie Strength","description":"How strong the moon's mie scattering term is","type":"number"},"sun_glare_shape":{"title":"Sun Glare Shape","description":"How the lobe of the mie scattering is shaped","type":"number"},"sky_zenith_color":{"title":"Sky Zenith Color","description":"The RGB color of the zenith region of the atmosphere","$ref":"#/definitions/A"},"sky_horizon_color":{"title":"Sky Horizon Color","description":"The RGB color of the horizon region of the atmosphere","$ref":"#/definitions/A"}},"definitions":{"A":{"title":"Lighting Color","description":"The color of the light emitted by the block, in RGB format or hex format.","oneOf":[{"type":"string","format":"color-hex","examples":["#FFFFFF","#000000"]},{"type":"array","items":[{"title":"Red","type":"integer","minimum":0,"maximum":255},{"title":"Blue","type":"integer","minimum":0,"maximum":255},{"title":"Green","type":"integer","minimum":0,"maximum":255}]}]}}}

View File

@@ -1 +0,0 @@
{"$id":"blockception.minecraft.behavior.lighting.global","type":"object","additionalProperties":false,"properties":{"format_version":{"$ref":"#/definitions/A"},"directional_lights":{"type":"object","additionalProperties":false,"title":"Directional Lights","description":"The directional lights that affect the world","properties":{"sun":{"type":"object","title":"Sun","description":"The sun directional light","additionalProperties":false,"properties":{"illuminance":{"type":"number","title":"Illuminance","description":"How bright the sun is, measured in lux (lx)"},"color":{"title":"Color","description":"The RGB color that the sun contributes to direct surface lighting; supports RGB array or HEX string","$ref":"#/definitions/B"}}},"moon":{"type":"object","title":"Moon","description":"The moon directional light","additionalProperties":false,"properties":{"illuminance":{"type":"number","title":"Illuminance","description":"How bright the moon is, measured in lux (lx)"},"color":{"title":"Color","description":"The RGB color that the moon contributes to direct surface lighting; supports RGB array or HEX string","$ref":"#/definitions/B"}}},"orbital_offset_degrees":{"type":"number","title":"Orbital Offset Degrees","description":"The rotational offset of the sun and moon from their standard orbital axis; measured in degrees"},"point_lights":{"type":"object","title":"Point Lights","description":"The point lights that affect the world","additionalProperties":false,"properties":{"colors":{"type":"object","title":"Colors","description":"List of key-value pairs where the key is a namespace-qualified block name and the value is a color","additionalProperties":{"$ref":"#/definitions/B"},"examples":[{"minecraft:stone":"#ffffff","minecraft:grass":[0,255,0]}]}}},"pbr":{"title":"PBR","description":"The physically-based rendering properties for the world","type":"object","additionalProperties":false,"properties":{"blocks":{"title":"Blocks","description":"The PBR properties for blocks","type":"object","additionalProperties":false,"properties":{"color":{"title":"Color","description":"The default MER value to use for blocks when not defined via textureset; supports RGB array or HEX string","$ref":"#/definitions/B"}}},"actors":{"title":"Actors","description":"The PBR properties for actors","type":"object","additionalProperties":false,"properties":{"color":{"title":"Color","description":"The default MER value to use for actors/mobs when not defined via textureset; supports RGB array or HEX string","$ref":"#/definitions/B"}}},"particles":{"title":"Particles","description":"The PBR properties for particles","type":"object","additionalProperties":false,"properties":{"color":{"title":"Color","description":"The default MER value to use for particles when not defined via textureset; supports RGB array or HEX string","$ref":"#/definitions/B"}}}}}}}},"definitions":{"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.21.60","examples":["1.21.50","1.20.80","1.20.40","1.19.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"B":{"title":"Lighting Color","description":"The color of the light emitted by the block, in RGB format or hex format.","oneOf":[{"type":"string","format":"color-hex","examples":["#FFFFFF","#000000"]},{"type":"array","items":[{"title":"Red","type":"integer","minimum":0,"maximum":255},{"title":"Blue","type":"integer","minimum":0,"maximum":255},{"title":"Green","type":"integer","minimum":0,"maximum":255}]}]}}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -104,7 +104,7 @@ const config: Config = {
// projects: undefined, // projects: undefined,
// Use this configuration option to add custom reporters to Jest // Use this configuration option to add custom reporters to Jest
// reporters: undefined, reporters: [["github-actions", { silent: false }], "summary", "default"],
// Automatically reset mock state before every test // Automatically reset mock state before every test
// resetMocks: false, // resetMocks: false,

View File

@@ -1,3 +1,6 @@
test-schemas: test-schemas:
npm run test npm run test
schemas:
docker run --rm -v $(pwd):/source ghcr.io/daanv2/jsonschemavalidationcompressor.net:v1.0.6 /source/source/compress_specification.json

1
resource/atmospherics/atmospherics.json generated Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.resource.block_culling","title":"Block Culling","description":"A resource pack file that helps the system determine how to change the appearance of this block.","type":"object","additionalProperties":false,"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:block_culling_rules":{"title":"Block Culling Rules","description":"JSON container used for descriptions, especially the identifier for the name of the culled version of the block.","type":"object","additionalProperties":false,"properties":{"description":{"title":"Description","description":"Contains the identifier used by minecraft:geometry block components to refer to this culling data","type":"object","additionalProperties":false,"properties":{"identifier":{"$ref":"#/definitions/B","description":"Sets the identifier for this rule's description.","title":"Identifier"}}},"rules":{"title":"Rules","description":"List of all components used to identify geometry parts used in culling.","type":"array","minItems":1,"items":{"$ref":"#/definitions/rule"}}}}},"definitions":{"rule":{"title":"Rule","description":"The rules that specifies a \"geometry_part\" and \"direction\"","type":"object","additionalProperties":false,"properties":{"geometry_part":{"title":"Geometry Part","description":"Specifies the bone, cube, and face that the block will be culled. The cube and face fields are optional to allow culling a specific face. Omitting these fields will cull the whole bone.","type":"object","additionalProperties":false,"properties":{"condition":{"title":"Condition","description":"It provides more control over which neighbor blocks will trigger a face or part to be culled.\n- \"default\" will pass the condition if the neighbor block is full and opaque. All conditions are an extension of \"default\", meaning a full and opaque neighbor will always be a passing condition, before the extended \"same_*\" condition is checked.\n- \"same_culling_layer\" will pass the condition if the neighbor block shares the same \"culling_layer\" as the block being occluded, defined in the geometry component. If either of the culling layers being compared is \"minecraft:culling_layer.undefined\", the condition will never pass.\n- \"same_block\" will pass the condition if the neighbor block has the same identifier.\n- \"same_block_permutation\" will pass the condition if the neighbor block has the same identifier and is the exact same permutation.","type":"string","enum":["default","same_culling_layer","same_block","same_block_permutation"]},"bone":{"title":"Bone","description":"The bone within the geometry part","type":"string"},"cube":{"title":"Cube","description":"The cube within the geometry part","type":"integer","minimum":0},"face":{"title":"Face","description":"The face within the geometry part","type":"string","enum":["up","down","north","south","east","west"]}}},"direction":{"title":"Direction","description":"Specifies the direction of the neighbor block to check for culling. This direction rotates with a block's Transform component.","type":"string","enum":["up","down","north","south","east","west"]}}},"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.21.60","examples":["1.21.50","1.20.80","1.20.40","1.19.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"B":{"description":"The minecraft block culling rule identifier.","examples":["namespace:rule"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Block Culling Rule Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]}},"examples":[{"format_version":"1.20.60","minecraft:block_culling_rules":{"description":{"identifier":":"},"rules":[{"part":{"bone":"","cube":0,"face":""}}]}}]} {"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.resource.block_culling","title":"Block Culling","description":"A resource pack file that helps the system determine how to change the appearance of this block.","type":"object","additionalProperties":false,"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:block_culling_rules":{"title":"Block Culling Rules","description":"JSON container used for descriptions, especially the identifier for the name of the culled version of the block.","type":"object","additionalProperties":false,"properties":{"description":{"title":"Description","description":"Contains the identifier used by minecraft:geometry block components to refer to this culling data","type":"object","additionalProperties":false,"properties":{"identifier":{"$ref":"#/definitions/B","description":"Sets the identifier for this rule's description.","title":"Identifier"}}},"rules":{"title":"Rules","description":"List of all components used to identify geometry parts used in culling.","type":"array","minItems":1,"items":{"$ref":"#/definitions/rule"}}}}},"definitions":{"rule":{"title":"Rule","description":"The rules that specifies a \"geometry_part\" and \"direction\"","type":"object","additionalProperties":false,"properties":{"geometry_part":{"title":"Geometry Part","description":"Specifies the bone, cube, and face that the block will be culled. The cube and face fields are optional to allow culling a specific face. Omitting these fields will cull the whole bone.","type":"object","additionalProperties":false,"properties":{"bone":{"title":"Bone","description":"The bone within the geometry part","type":"string"},"cube":{"title":"Cube","description":"The cube within the geometry part","type":"integer","minimum":0},"face":{"title":"Face","description":"The face within the geometry part","type":"string","enum":["up","down","north","south","east","west"]}}},"cull_against_full_and_opaque":{"title":"Cull Against Full And Opaque","description":"Whether to cull against a full, opaque block.","type":"boolean","default":true},"condition":{"title":"Condition","description":"It provides more control over which neighbor blocks will trigger a face or part to be culled.\n- \"default\" will pass the condition if the neighbor block is full and opaque. All conditions are an extension of \"default\", meaning a full and opaque neighbor will always be a passing condition, before the extended \"same_*\" condition is checked.\n- \"same_culling_layer\" will pass the condition if the neighbor block shares the same \"culling_layer\" as the block being occluded, defined in the geometry component. If either of the culling layers being compared is \"minecraft:culling_layer.undefined\", the condition will never pass.\n- \"same_block\" will pass the condition if the neighbor block has the same identifier.\n- \"same_block_permutation\" will pass the condition if the neighbor block has the same identifier and is the exact same permutation.","type":"string","enum":["same_culling_layer","same_block","same_block_permutation"]},"direction":{"title":"Direction","description":"Specifies the direction of the neighbor block to check for culling. This direction rotates with a block's Transform component.","type":"string","enum":["up","down","north","south","east","west"]}}},"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.21.60","examples":["1.21.50","1.20.80","1.20.40","1.19.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"B":{"description":"The minecraft block culling rule identifier.","examples":["namespace:rule"],"pattern":"^[0-9a-zA-Z:_\\.\\-]+$","title":"Block Culling Rule Identifier","type":"string","defaultSnippets":[{"label":"New Identifier","body":"$1:$2"}]}},"examples":[{"format_version":"1.20.60","minecraft:block_culling_rules":{"description":{"identifier":":"},"rules":[{"part":{"bone":"","cube":0,"face":""}}]}}]}

File diff suppressed because one or more lines are too long

2
resource/fog/fog.json generated

File diff suppressed because one or more lines are too long

1
resource/lighting/lighting.json generated Normal file

File diff suppressed because one or more lines are too long

1
resource/pbr/pbr.json generated Normal file
View File

@@ -0,0 +1 @@
{"$id":"blockception.minecraft.behavior.pbr.global","type":"object","additionalProperties":false,"definitions":{"rgbaOrHex":{"oneOf":[{"type":"array","items":[{"type":"number","minimum":0,"maximum":255,"title":"Red"},{"type":"number","minimum":0,"maximum":255,"title":"Green"},{"type":"number","minimum":0,"maximum":255,"title":"Blue"},{"type":"number","minimum":0,"maximum":255,"title":"Alpha"}]},{"type":"string","format":"color-hex","pattern":"^\\#[0-9a-fA-F]{6}$"}]},"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.21.60","examples":["1.21.50","1.20.80","1.20.40","1.19.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]}},"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:pbr_fallback_settings":{"title":"PBR Fallback Settings","description":"UNDOCUMENTED","type":"object","additionalProperties":false,"required":["colors"],"properties":{"blocks":{"title":"Blocks","description":"UNDOCUMENTED","type":"object","additionalProperties":false,"properties":{"global_metalness_emissive_roughness_subsurface":{"title":"Global Metalness Emissive Roughness Subsurface","description":"The default MERS value to use for blocks when not defined via textureset","$ref":"#/definitions/rgbaOrHex"}}},"actors":{"title":"Actors","description":"UNDOCUMENTED","type":"object","additionalProperties":false,"properties":{"global_metalness_emissive_roughness_subsurface":{"title":"Global Metalness Emissive Roughness Subsurface","description":"The default MERS value to use for actors/mobs when not defined via textureset","$ref":"#/definitions/rgbaOrHex"}}},"particles":{"title":"Particles","description":"UNDOCUMENTED","type":"object","additionalProperties":false,"properties":{"global_metalness_emissive_roughness_subsurface":{"title":"Global Metalness Emissive Roughness Subsurface","description":"The default MERS value to use for particles when not defined via textureset","$ref":"#/definitions/rgbaOrHex"}}},"items":{"title":"Items","description":"UNDOCUMENTED","type":"object","additionalProperties":false,"properties":{"global_metalness_emissive_roughness_subsurface":{"title":"Global Metalness Emissive Roughness Subsurface","description":"The default MERS value to use for items when not defined via textureset","$ref":"#/definitions/rgbaOrHex"}}}}}}}

1
resource/point_lights/point_lights.json generated Normal file
View File

@@ -0,0 +1 @@
{"$id":"blockception.minecraft.behavior.point_lights.global","type":"object","additionalProperties":false,"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:point_light_settings":{"title":"Point Light Settings","description":"UNDOCUMENTED","type":"object","additionalProperties":false,"required":["colors"],"properties":{"colors":{"title":"Colors","description":" List of key-value pairs where the key is a namespace-qualified block name and the value is a color","type":"object","additionalProperties":false,"patternProperties":{"^[0-9a-zA-Z:_\\.\\-]+$":{"$ref":"#/definitions/B"},"tile.[\\w.]+.name":{"$ref":"#/definitions/B"}}}}}},"definitions":{"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.21.60","examples":["1.21.50","1.20.80","1.20.40","1.19.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]},"B":{"title":"Lighting Color","description":"The color of the light emitted by the block, in RGB format or hex format.","oneOf":[{"type":"string","format":"color-hex","examples":["#FFFFFF","#000000"]},{"type":"array","items":[{"title":"Red","type":"integer","minimum":0,"maximum":255},{"title":"Blue","type":"integer","minimum":0,"maximum":255},{"title":"Green","type":"integer","minimum":0,"maximum":255}]}]}}}

1
resource/shadows/shadows.json generated Normal file
View File

@@ -0,0 +1 @@
{"$id":"blockception.minecraft.behavior.shadows.color_grading","type":"object","title":"Shadows","description":"The properties of the shadows","additionalProperties":false,"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:shadow_settings":{"title":"Shadow Settings","description":"UNDOCUMENTED","type":"object","additionalProperties":false,"required":["shadow_style"],"properties":{"shadow_style":{"title":"Shadow Style","description":"The type of shadows to use.","type":"string","enum":["blocky_shadows","soft_shadows"]},"texel_size":{"title":"Texel Size","description":"The resolution to snap shadow texels to; recommended to use the same resolution as block texture assets in the accompanying pack","type":"integer"}}}},"definitions":{"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.21.60","examples":["1.21.50","1.20.80","1.20.40","1.19.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]}}}

View File

@@ -1 +1 @@
{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.resource.texture.item_texture","additionalProperties":false,"type":"object","title":"Item Texture File","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","definitions":{"texture":{"oneOf":[{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Texture"},{"type":"object","additionalProperties":false,"description":"A collection of texture files.","title":"Texture","properties":{"overlay_color":{"description":"The color to apply to the texture.","title":"Overlay Color","format":"color-hex","examples":["#FFFFFF"]},"path":{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Path"},"tint_color":{"title":"Tint Color","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","format":"color-hex","examples":["#FFFFFF"],"type":"string"},"variations":{"type":"array","title":"Variantions","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","items":{"type":"object","title":"Variantion","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","required":["path"],"properties":{"path":{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Path"},"weight":{"type":"integer","title":"Weight","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"}}}}}}]}},"properties":{"resource_pack_name":{"type":"string","title":"Resource Pack Name","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"},"texture_data":{"title":"Texture Data","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"object","propertyNames":{"pattern":"^[a-z0-9_:\\-]*$"},"additionalProperties":{"title":"Texture Data","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"object","additionalProperties":false,"properties":{"textures":{"oneOf":[{"$ref":"#/definitions/texture"},{"description":"A collection of textures.","title":"Texture Data","type":"array","items":{"$ref":"#/definitions/texture"}}]}}}},"texture_name":{"title":"Texture Name","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"string"}}} {"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.resource.texture.item_texture","additionalProperties":false,"type":"object","title":"Item Texture File","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","definitions":{"texture":{"oneOf":[{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Texture"},{"type":"object","additionalProperties":false,"description":"A collection of texture files.","title":"Texture","properties":{"overlay_color":{"description":"The color to apply to the texture.","title":"Overlay Color","format":"color-hex","examples":["#FFFFFF"]},"path":{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Path"},"tint_color":{"title":"Tint Color","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","format":"color-hex","examples":["#FFFFFF"],"type":"string"},"variations":{"type":"array","title":"Variantions","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","items":{"type":"object","title":"Variantion","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","required":["path"],"properties":{"path":{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Path"},"weight":{"type":"integer","title":"Weight","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"}}}}}}]}},"properties":{"resource_pack_name":{"type":"string","title":"Resource Pack Name","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"},"texture_data":{"title":"Texture Data","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"object","propertyNames":{"pattern":"^[a-z0-9_:.\\-]*$"},"additionalProperties":{"title":"Texture Data","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","type":"object","additionalProperties":false,"properties":{"textures":{"oneOf":[{"$ref":"#/definitions/texture"},{"description":"A collection of textures.","title":"Texture Data","type":"array","items":{"$ref":"#/definitions/texture"}}]}}}},"texture_name":{"const":"atlas.items"}}}

View File

@@ -1 +1 @@
{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.resource.texture.terrain_texture","additionalProperties":false,"type":"object","title":"Terrain Texture File","description":"An collection of texture definitions.","$comment":"UNDOCUMENTED","definitions":{"texture":{"oneOf":[{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Texture"},{"type":"object","additionalProperties":false,"description":"A collection of texture files.","title":"Texture","properties":{"overlay_color":{"description":"The color to apply to the texture.","title":"Overlay Color","format":"color-hex","examples":["#FFFFFF"]},"path":{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Path"},"tint_color":{"title":"Tint Color","description":"The tint color to be applied to the texture.","$comment":"UNDOCUMENTED","format":"color-hex","examples":["#FFFFFF"],"type":"string"},"variations":{"type":"array","title":"Variantions","description":"The possible variations to use for this texture.","$comment":"UNDOCUMENTED","items":{"type":"object","title":"Variantion","description":"One of the variantions, specified along with a possible weight.","$comment":"UNDOCUMENTED","required":["path"],"properties":{"path":{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Path"},"weight":{"type":"integer","title":"Weight","description":"The weight of the texture.","$comment":"UNDOCUMENTED"}}}}}}]}},"properties":{"num_mip_levels":{"type":"integer","title":"Num Mip Levels","description":"Sets the number of mipmap levels for better texture quality at varying distances.","$comment":"UNDOCUMENTED"},"padding":{"type":"integer","title":"Padding","description":"Adds buffer space to prevent textures from bleeding into each other.","$comment":"UNDOCUMENTED"},"resource_pack_name":{"type":"string","title":"Resource Pack Name","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"},"texture_data":{"type":"object","propertyNames":{"pattern":"^[a-z0-9_:\\-]*$"},"additionalProperties":{"type":"object","title":"Texture Data","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","properties":{"textures":{"oneOf":[{"$ref":"#/definitions/texture"},{"type":"array","items":{"$ref":"#/definitions/texture"}}]}}},"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Texture Data"},"texture_name":{"type":"string","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Texture Name"}}} {"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.resource.texture.terrain_texture","additionalProperties":false,"type":"object","title":"Terrain Texture File","description":"An collection of texture definitions.","$comment":"UNDOCUMENTED","definitions":{"texture":{"oneOf":[{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Texture"},{"type":"object","additionalProperties":false,"description":"A collection of texture files.","title":"Texture","properties":{"overlay_color":{"description":"The color to apply to the texture.","title":"Overlay Color","format":"color-hex","examples":["#FFFFFF"]},"path":{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Path"},"tint_color":{"title":"Tint Color","description":"The tint color to be applied to the texture.","$comment":"UNDOCUMENTED","format":"color-hex","examples":["#FFFFFF"],"type":"string"},"variations":{"type":"array","title":"Variantions","description":"The possible variations to use for this texture.","$comment":"UNDOCUMENTED","items":{"type":"object","title":"Variantion","description":"One of the variantions, specified along with a possible weight.","$comment":"UNDOCUMENTED","required":["path"],"properties":{"path":{"description":"A texture file.","type":"string","pattern":"^textures/.+$","title":"Path"},"weight":{"type":"integer","title":"Weight","description":"The weight of the texture.","$comment":"UNDOCUMENTED"}}}}}}]}},"properties":{"num_mip_levels":{"type":"integer","title":"Num Mip Levels","description":"Sets the number of mipmap levels for better texture quality at varying distances.","$comment":"UNDOCUMENTED"},"padding":{"type":"integer","title":"Padding","description":"Adds buffer space to prevent textures from bleeding into each other.","$comment":"UNDOCUMENTED"},"resource_pack_name":{"type":"string","title":"Resource Pack Name","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED"},"texture_data":{"type":"object","propertyNames":{"pattern":"^[a-z0-9_:.\\-]*$"},"additionalProperties":{"type":"object","title":"Texture Data","description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","properties":{"textures":{"oneOf":[{"$ref":"#/definitions/texture"},{"type":"array","items":{"$ref":"#/definitions/texture"}}]}}},"description":"UNDOCUMENTED.","$comment":"UNDOCUMENTED","title":"Texture Data"},"texture_name":{"const":"atlas.terrain"}}}

1
resource/water/water.json generated Normal file
View File

@@ -0,0 +1 @@
{"$id":"blockception.minecraft.behavior.water.water","type":"object","title":"Water","description":"The properties of the water","additionalProperties":false,"properties":{"format_version":{"$ref":"#/definitions/A"},"minecraft:water_settings":{"title":"Water Settings","description":"UNDOCUMENTED","type":"object","additionalProperties":false,"required":["description"],"properties":{"description":{"title":"Water Settings Description","description":"Contains non-component settings for the water settings.","type":"object","additionalProperties":false,"required":["identifier"],"properties":{"identifier":{"title":"Identifier","description":"The identifier for these water settings.","type":"string"}}},"particle_concentrations":{"title":"Particle Concentrations","description":"The composition of particles in a body of water is what determines its color and how light behaves as it travels through the water","type":"object","additionalProperties":false,"properties":{"cdom":{"title":"Cdom","description":"Concentration of chromophoric dissolved organic matter in mg/L; higher concentrations produce more yellow/yellow-brown colors","type":"number","minimum":0,"maximum":15},"chlorophyll":{"title":"Chlorophyll","description":"Concentration of chlorophyll in mg/L; higher concentrations produce more green colors","type":"number","minimum":0,"maximum":10},"suspended_sediment":{"title":"Suspended Sediment","description":"Concentration of suspended sediment in mg/L; higher concentrations produce more red/red-brown colors","type":"number","minimum":0,"maximum":300}}},"waves":{"title":"Waves","description":"Waves are an optional effect that can be used to complement water surface animations to make your water appear more realistic.","type":"object","additionalProperties":false,"properties":{"enabled":{"title":"Enabled","description":"Whether or not waves are on or off","type":"boolean"},"depth":{"title":"Depth","description":"Controls the amount of wave displacement","type":"number","minimum":0,"maximum":3},"direction_increment":{"title":"Direction Increment","description":"Controls how much the heading changes between each octave","type":"number","minimum":0,"maximum":360},"frequency":{"title":"Frequency","description":"Controls the size of individual waves; higher values create more tightly packed waves","type":"number","minimum":0.01,"maximum":3},"frequency_scaling":{"title":"Frequency Scaling","description":"Controls how much frequencies change in subsequent octaves","type":"number","minimum":0,"maximum":2},"mix":{"title":"Mix","description":"Controls how much each octave will blend into the neighboring octave","type":"number","minimum":0,"maximum":1},"octaves":{"title":"Octaves","description":"Determines how many layers of waves to simulate; high values result in more complex waves","type":"integer","minimum":1,"maximum":30},"pull":{"title":"Pull","description":"Controls how much smaller waves are pulled into larger ones","type":"number","minimum":-1,"maximum":1},"sampleWidth":{"title":"Sample Width","description":"Controls the resolutions of the fractal effect; higher values result in smoother waves","type":"number","minimum":0.01,"maximum":1},"shape":{"title":"Shape","description":"Adjusts the shape of the wave","type":"number","minimum":1,"maximum":10},"speed":{"title":"Speed","description":"Controls the starting speed of the first waves","type":"number","minimum":0.01,"maximum":10},"speed_scaling":{"title":"Speed Scaling","description":"Controls how much faster/slower subsequent octaves move","type":"number","minimum":0,"maximum":2}}},"caustics":{"title":"Caustics","description":"Caustics are an effect that make bodies of water more realistic by projecting light rays on underwater surfaces.","type":"object","additionalProperties":false,"properties":{"enabled":{"title":"Enabled","description":"Whether or not caustics are on or off","type":"boolean"},"frame_length":{"title":"Frame Length","description":"How many seconds to spend on each frame of animation in the caustics texture","type":"number","minimum":0.01,"maximum":5},"power":{"title":"Power","description":"Controls how bright the caustics effect appears","type":"integer","minimum":1,"maximum":6},"scale":{"title":"Scale","description":"Controls how size of the repetition of the caustics texture","type":"number","minimum":0.1,"maximum":5},"texture":{"title":"Texture","description":"Resource location to a texture for controlling the shape of the caustics; if not used, a built-in Minecraft texture will be supplied automatically","type":"string"}}}}}},"definitions":{"A":{"title":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","default":"1.21.60","examples":["1.21.50","1.20.80","1.20.40","1.19.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18,19,20|}.${3|2|0|}"}]}}}

View File

@@ -3,13 +3,7 @@
"type": "object", "type": "object",
"title": "Jigsaw", "title": "Jigsaw",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": ["description", "max_depth", "start_height", "start_pool", "step"],
"description",
"max_depth",
"start_height",
"start_pool",
"step"
],
"properties": { "properties": {
"biome_filters": { "biome_filters": {
"title": "Biome Filters", "title": "Biome Filters",
@@ -21,7 +15,7 @@
"description": "The description of this jigsaw.", "description": "The description of this jigsaw.",
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "identifier" ], "required": ["identifier"],
"properties": { "properties": {
"identifier": { "identifier": {
"title": "Identifier", "title": "Identifier",
@@ -34,10 +28,7 @@
"title": "Heightmap Projection", "title": "Heightmap Projection",
"description": "Heightmap used to calculate the relative start height. For example, a heightmap_projection of ocean_floor and a start_height of 10 means the Jigsaw Structure will begin generating 10 blocks above the ocean floor.", "description": "Heightmap used to calculate the relative start height. For example, a heightmap_projection of ocean_floor and a start_height of 10 means the Jigsaw Structure will begin generating 10 blocks above the ocean floor.",
"type": "string", "type": "string",
"enum": [ "enum": ["ocean_floor", "world_surface"]
"ocean_floor",
"world_surface"
]
}, },
"max_depth": { "max_depth": {
"title": "Max Depth", "title": "Max Depth",
@@ -131,19 +122,13 @@
"title": "Terrain Adaptation", "title": "Terrain Adaptation",
"description": "How the terrain should adapt relative to the generated Jigsaw Structure.", "description": "How the terrain should adapt relative to the generated Jigsaw Structure.",
"type": "string", "type": "string",
"enum": [ "enum": ["beard_box", "beard_thin", "bury", "encapsulate", "none"]
"beard_box",
"beard_thin",
"bury",
"encapsulate",
"none"
]
}, },
"liquid_settings": { "liquid_settings": {
"title": "Liquid Settings", "title": "Liquid Settings",
"description": "How to handle waterloggable blocks overlapping with existing liquid.", "description": "How to handle waterloggable blocks overlapping with existing liquid.",
"type": "string", "type": "string",
"enum": [ "apply_waterlogging", "ignore_waterlogging" ] "enum": ["apply_waterlogging", "ignore_waterlogging"]
} }
} }
} }

View File

@@ -1,4 +1,7 @@
{ {
"$ref": "#/definitions/pool_alias",
"definitions": {
"pool_alias": {
"title": "Pool Alias", "title": "Pool Alias",
"description": "Used to rewire jigsaw pool connections by redirecting pool references in an individual structure. Done by specifying aliases for Template Pools. This can allow for themes across a full structure.", "description": "Used to rewire jigsaw pool connections by redirecting pool references in an individual structure. Done by specifying aliases for Template Pools. This can allow for themes across a full structure.",
"type": "object", "type": "object",
@@ -6,12 +9,51 @@
"type": { "type": {
"title": "Type", "title": "Type",
"type": "string", "type": "string",
"enum": [ "direct", "random", "random_group" ] "enum": ["direct", "random", "random_group"]
} }
}, },
"allOf": [ "allOf": [
{ "if": { "properties": { "processor_type": { "const": "direct" } } }, "then": { "$ref": "./pool_aliases/direct.json" } }, { "if": { "properties": { "processor_type": { "const": "direct" } } }, "then": { "$ref": "./pool_aliases/direct.json" } },
{ "if": { "properties": { "processor_type": { "const": "random" } } }, "then": { "$ref": "./pool_aliases/random.json" } }, { "if": { "properties": { "processor_type": { "const": "random" } } }, "then": { "$ref": "./pool_aliases/random.json" } },
{ "if": { "properties": { "processor_type": { "const": "random_group" } } }, "then": { "$ref": "./pool_aliases/random_group.json" } } { "if": { "properties": { "processor_type": { "const": "random_group" } } }, "then": { "$ref": "#/definitions/random_group" } }
] ]
},
// Inifite loop
"random_group": {
"title": "Random Group",
"type": "object",
"properties": {
"type": {
"title": "Type",
"type": "string",
"const": "random_group"
},
"groups": {
"title": "Groups",
"description": "A weighted random list containing items that contain pool alias items. The pool alias types can be any valid type except random_group.",
"type": "array",
"items": {
"title": "Weighted Random Item",
"description": "A used by Weighted Random Lists.",
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"title": "Data",
"description": "The data used when randomly selected.",
"$ref": "#/definitions/pool_alias"
},
"weight": {
"title": "Weight",
"description": "The weight of the item relative to the total weight of all items in the list.",
"type": "integer",
"minimum": 1
}
}
}
}
},
"required": ["groups", "type"]
}
}
} }

View File

@@ -18,9 +18,5 @@
"type": "string" "type": "string"
} }
}, },
"required": [ "required": ["target", "alias", "type"]
"target",
"alias",
"type"
]
} }

View File

@@ -39,9 +39,5 @@
"maxItems": 2 "maxItems": 2
} }
}, },
"required": [ "required": ["targets", "alias", "type"]
"targets",
"alias",
"type"
]
} }

View File

@@ -1,39 +0,0 @@
{
"title": "Random Group",
"type": "object",
"properties": {
"type": {
"title": "Type",
"type": "string",
"const": "random_group"
},
"groups": {
"title": "Groups",
"description": "A weighted random list containing items that contain pool alias items. The pool alias types can be any valid type except random_group.",
"type": "array",
"items": {
"title": "Weighted Random Item",
"description": "A used by Weighted Random Lists.",
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"title": "Data",
"description": "The data used when randomly selected.",
"$ref": "../pool_aliases.json"
},
"weight": {
"title": "Weight",
"description": "The weight of the item relative to the total weight of all items in the list.",
"type": "integer",
"minimum": 1
}
}
}
}
},
"required": [
"groups",
"type"
]
}

View File

@@ -4,7 +4,7 @@
"type": "object", "type": "object",
"title": "Jigsaw", "title": "Jigsaw",
"description": "A Jigsaw Structure is a group of Structure Templates that make up a larger structure. Jigsaw Structures are placed during world generation.", "description": "A Jigsaw Structure is a group of Structure Templates that make up a larger structure. Jigsaw Structures are placed during world generation.",
"required": [ "format_version", "minecraft:jigsaw" ], "required": ["format_version", "minecraft:jigsaw"],
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"format_version": { "$ref": "../../../general/format_version.json" }, "format_version": { "$ref": "../../../general/format_version.json" },

View File

@@ -30,28 +30,20 @@
{ "Source": "./behavior/worldgen/structure_sets/structure_set.json", "Destination": "../behavior/worldgen/structure_sets/structure_set.json" }, { "Source": "./behavior/worldgen/structure_sets/structure_set.json", "Destination": "../behavior/worldgen/structure_sets/structure_set.json" },
{ "Source": "./behavior/worldgen/template_pools/template_pool.json", "Destination": "../behavior/worldgen/template_pools/template_pool.json" }, { "Source": "./behavior/worldgen/template_pools/template_pool.json", "Destination": "../behavior/worldgen/template_pools/template_pool.json" },
{ "Source": "./resource/block_culling/block_culling.json", "Destination": "../resource/block_culling/block_culling.json" }, { "Source": "./resource//block_culling/block_culling.json", "Destination": "../resource/block_culling/block_culling.json" },
{ "Source": "./resource/animation_controllers/animation_controller.json", "Destination": "../resource/animation_controllers/animation_controller.json" }, { "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/animations/actor_animation.json", "Destination": "../resource/animations/actor_animation.json" },
{ "Source": "./resource/atmospherics/atmospherics.json", "Destination": "../resource/atmospherics/atmospherics.json" },
{ "Source": "./resource/attachables/attachables.json", "Destination": "../resource/attachables/attachables.json" }, { "Source": "./resource/attachables/attachables.json", "Destination": "../resource/attachables/attachables.json" },
{ "Source": "./resource/biomes_client.json", "Destination": "../resource/biomes_client.json" },
{ "Source": "./resource/biomes/biomes.json", "Destination": "../resource/biomes/biomes.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/blocks.json", "Destination": "../resource/blocks.json" },
{ "Source": "./resource/color_grading/color_grading.json", "Destination": "../resource/color_grading/color_grading.json" },
{ "Source": "./resource/entity/entity.json", "Destination": "../resource/entity/entity.json" }, { "Source": "./resource/entity/entity.json", "Destination": "../resource/entity/entity.json" },
{ "Source": "./resource/fog/fog.json", "Destination": "../resource/fog/fog.json" }, { "Source": "./resource/fog/fog.json", "Destination": "../resource/fog/fog.json" },
{ "Source": "./resource/items/items.json", "Destination": "../resource/items/items.json" }, { "Source": "./resource/items/items.json", "Destination": "../resource/items/items.json" },
{ "Source": "./resource/lighting/atmospherics.json", "Destination": "../resource/lighting/atmospherics.json" },
{ "Source": "./resource/lighting/global.json", "Destination": "../resource/lighting/global.json" },
{ "Source": "./resource/lighting/lighting.json", "Destination": "../resource/lighting/lighting.json" },
{ "Source": "./resource/materials/materials.json", "Destination": "../resource/materials/materials.json" }, { "Source": "./resource/materials/materials.json", "Destination": "../resource/materials/materials.json" },
{ "Source": "./resource/models/entity/model_entity.json", "Destination": "../resource/models/entity/model_entity.json" }, { "Source": "./resource/models/entity/model_entity.json", "Destination": "../resource/models/entity/model_entity.json" },
{ "Source": "./resource/particles/particles.json", "Destination": "../resource/particles/particles.json" }, { "Source": "./resource/particles/particles.json", "Destination": "../resource/particles/particles.json" },
{ "Source": "./resource/pbr/global.json", "Destination": "../resource/pbr/pbr.json" },
{ "Source": "./resource/point_lights/global.json", "Destination": "../resource/point_lights/point_lights.json" },
{ "Source": "./resource/render_controllers/render_controllers.json", "Destination": "../resource/render_controllers/render_controllers.json" }, { "Source": "./resource/render_controllers/render_controllers.json", "Destination": "../resource/render_controllers/render_controllers.json" },
{ "Source": "./resource/shadows/global.json", "Destination": "../resource/shadows/shadows.json" },
{ "Source": "./resource/sounds.json", "Destination": "../resource/sounds.json" }, { "Source": "./resource/sounds.json", "Destination": "../resource/sounds.json" },
{ "Source": "./resource/sounds/music_definitions.json", "Destination": "../resource/sounds/music_definitions.json" }, { "Source": "./resource/sounds/music_definitions.json", "Destination": "../resource/sounds/music_definitions.json" },
{ "Source": "./resource/sounds/sound_definitions.json", "Destination": "../resource/sounds/sound_definitions.json" }, { "Source": "./resource/sounds/sound_definitions.json", "Destination": "../resource/sounds/sound_definitions.json" },
@@ -63,7 +55,6 @@
{ "Source": "./resource/textures/ui_texture_definition.json", "Destination": "../resource/textures/ui_texture_definition.json" }, { "Source": "./resource/textures/ui_texture_definition.json", "Destination": "../resource/textures/ui_texture_definition.json" },
{ "Source": "./resource/ui/_global_variables.json", "Destination": "../resource/ui/_global_variables.json" }, { "Source": "./resource/ui/_global_variables.json", "Destination": "../resource/ui/_global_variables.json" },
{ "Source": "./resource/ui/_ui_defs.json", "Destination": "../resource/ui/_ui_defs.json" }, { "Source": "./resource/ui/_ui_defs.json", "Destination": "../resource/ui/_ui_defs.json" },
{ "Source": "./resource/ui/ui.json", "Destination": "../resource/ui/ui.json" }, { "Source": "./resource/ui/ui.json", "Destination": "../resource/ui/ui.json" }
{ "Source": "./resource/water/water.json", "Destination": "../resource/water/water.json" }
] ]
} }

View File

@@ -0,0 +1,12 @@
import { statSync } from "node:fs";
import * as specification from "../../source/compress_specification.json";
import * as path from "path";
describe("Compress Specification", function () {
const files = specification.Files;
test.each(files)("$Source", ({ Source }) => {
const p = path.join(".", "source", Source);
expect(statSync(p).isFile()).toBeTruthy();
});
});