Описание
[](https://mmodding.github.io/discord-link)
# env.json
[](https://modrinth.com/mod/env.json)
## Supports
[](https://fabricmc.net)
[](https://quiltmc.org)
## Requirements
[](https://modrinth.com/mod/fabric-api)
## Concept
env.json is a Minecraft Library introducing a new sub json file extension format, with the goal of
redirecting minecraft resources to other ones based on the environment context.
## Implementations
env.json doesn't provide these redirections directly, but only the operations around env.json files
and their resource reload management.
There is currently two official implementations of env.json:
- [Environment Driven Assets (EDA)](https://modrinth.com/mod/env-driven-assets)
Mod Identifier: env-driven-assets.
Environments: Client
Applies env.json operations to Minecraft Vanilla asset types.
- [Environment Driven Data (EDD)](https://modrinth.com/mod/env-driven-data)
Mod Identifier: env-driven-data.
Environments: Common & Server
Applies env.json operations to Minecraft Vanilla data types.
## The env.json Format
```json
[
{
"rules": [ // the primary set of rules, is an "any" type
{
"type": "sequence", // all rules in the sequence must pass
"rule": [] // the rules
},
{
"type": "any", // passes if at least one rule passes
"rule": [] // the rules
},
{
"type": "not", // reverses the rule
"rule": { // the rule
"type": "...",
"rule": "..."
}
},
{
"type": "dimension", // passes if the current dimension matches this one
"rule": "minecraft:overworld" // the dimension, can also be a tag
},
{
"type": "biome", // passes if the current biome matches this one
"rule": "minecraft:plains" // the biome, can also be a tag
},
{
"type": "x_coord", // passes if the following operations on the x-axis are valid
"rule": {
"comparator": "==", // must be , ==, =, =< or =>
"value": "100" // must be an integer
}
},
{
"type": "y_coord", // passes if the following operations on the y-axis are valid
"rule": {
"comparator": "==", // must be , ==, =, =< or =>
"value": "100" // must be an integer
}
},
{
"type": "z_coord", // passes if the following operations on the z-axis are valid
"rule": {
"comparator": "==", // must be , ==, =, =< or =>
"value": "100" // must be an integer
}
},
{
"type": "submerged", // passes if the current context is surrounded by water or not
"rule": true // true for "if it is submerged" and false for "if it is not submerged"
},
{
"type": "sky", // passes if the context is above the sky limit, at or below
"rule": "at" // must be "above", "at" or "below"
},
{
"type": "water", // passes if the context is above the water level, at or below
"rule": "at" // must be "above", "at" or "below"
},
{
"type": "void", // passes if the context is above the void limit, at or below
"rule": "at" // must be "above", "at" or "below"
}
],
"result": "minecraft:block/stone" // the redirected resource
}
]
```
The file must be registered under this format: `redirected_resource_name-redirected_resource_extension.env.json`.
## Usage For Developers
In your `build.gradle`
```groovy
repositories {
// ...
maven { url 'https://jitpack.io' }
}
// ...
dependencies {
// ...
modImplementation "com.mmodding:env.json:${theMostBeautifulVersionYouCanFind}"
}
```
You can now get your `EnvJson` object from a `Resource` object thanks to `ExtendedResource#of(Resource)#getEnvJson`
or parse it with `EnvJson#parse(Path)` or `EnvJson#parse(InputStream)`.
## Badge For Developers
[](https://modrinth.com/mod/env.json)
`[](https://modrinth.com/mod/env.json)`
## Promotion
[](https://modfest.net/1.20)