← Назад к ресурсам

env.json

A small FabricMC library allowing to convert an `env.json` file into a Java Object. It is mostly used by Environment Driven Assets and Environment Driven Data.

Modrinth game-mechanics library management

Описание

[![MModding](https://raw.githubusercontent.com/MModding/art/main/brand/mmodding_dark_banner.png)](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)