Описание
# Snow! Real Magic! ⛄
A simple tweak mod that enriches the vanilla snow layer's behavior.
## Features
With this mod you can:
- Place snow and a fence/wall/tall grass in the same block!
- Enjoy snow-covered slabs, stairs, walls, fences and fence gates — they can also generate naturally in the world!
- Watch snow layers fall like sand. Falling snow that touches a water source turns into ice
- See snow layers pile up during a snowstorm (thunder) — or during any snowfall
- Walk on snow layers with a thinner collision box, just like in Bedrock Edition
- Land softly on snow: the more layers, the less fall damage
- Place blocks into snow directly — snow is always replaceable as long as it is not a full layer
- Right-click snow with a shovel, or sneak + right-click with an empty hand, to scrape off a snowball (consumes one layer)
- Right-click a snow-covered block with both hands empty to toggle its fancy snow overlay
- Make snow never melt, make it melt in warm biomes, or let it melt away naturally over time
- And more!
All features can be toggled in the config.
Joke feature
Two game rules, `snowrealmagic:blizzardStrength` (1–8, max layers) and `snowrealmagic:blizzardFrequency` (N/10000 per tick per chunk), make snow blocks fall from the sky. Have fun!
## Customization
Tweaking behavior with block tags
Datapacks can change which blocks interact with snow by adding to the mod's block tags. To append entries, create the file under the `snowrealmagic` namespace in your datapack, e.g. `data/snowrealmagic/tags/block/containables.json`:
(Also see [Editing tags using KubeJS](https://kubejs.com/wiki/tutorials/tags))
```json
{
"values": [
"mymod:my_flower",
{
"id": "#mymod:my_pebbles",
"required": false
}
]
}
```
Available tags:
- **containables**: Blocks that snow can be placed into, turning them snow-covered. (Default: `plants`, `offset_y`, `expand_model` and `#c:chains`)
- **not_containables**: Blacklist. Blocks here can never contain snow, even if they are in `containables`. (Default: `#minecraft:leaves`)
- **plants**: Plants that become snowy plants when snow covers them. Compared to #containables, it will be able to be detected by shaderpacks to make them swing, but as far as I know, no shaderpacks support this yet. (Default: dead bush, flowers, saplings, mushrooms, etc.)
- **entity_inside**: Snow-covered blocks that keep their touch effects, e.g. wither rose damage. (Default: wither rose, sweet berry bush)
- **animate_tick**: Snow-covered blocks that keep their ambient particles, e.g. firefly bush. (Default: wither rose, open eyeblossom, dry grass, firefly bush)
- **offset_y**: Flat blocks that are rendered slightly raised when snow-covered, to avoid z-fighting with the snow layer. (Default: pebbles, twigs and similar decorations from supported mods)
- **expand_model**: Blocks whose model should be treated as a full cube when snow-covered. Used for compat with mods like vertical slabs.
- **cannot_accumulate_on**: Snow will not naturally accumulate on top of these blocks. (Default: hay block, slabs)
Custom snowy models with .mcmeta
Resource packs can change how a block looks when it is snow-covered. Add a `.json.mcmeta` file next to the block's **model** file with an `srm` section pointing to the model to use instead. For example, `assets/minecraft/models/block/dandelion.json.mcmeta`:
```json
{
"srm": {
"model": "mypack:block/snowy_dandelion"
}
}
```
The snowy model is a regular block model. For cross-shaped foliage you can parent the built-in template, which renders the plant together with a snow overlay:
```json
{
"parent": "snowrealmagic:block/snowy_cross",
"textures": {
"cross": "block/dandelion",
"snow": "mypack:block/snowy_dandelion"
}
}
```
For double-height plants such as tall grass, put the mcmeta on the top-half model and add an `overrideBlocks` list with the block ID, so the upper half also renders snowy:
```json
{
"srm": {
"model": "mypack:block/snowy_tall_grass_top",
"overrideBlocks": ["minecraft:tall_grass"]
}
}
```
This feature requires the client config `snowVariants` to be enabled (it is by default).
## Uninstalling
Before removing the mod, you may want to enable `snow-cover.restoreOriginalBlocks` in the config. Snow-covered blocks will then be restored to their original blocks as chunks load, leaving no modded blocks behind.
## Configuration
Common
- **snowGravity** (default: true): Snow layer falls like sand. \[Performance impact: low]
- **snowMakingIce** (default: true): Falling snow becomes ice when it touches water. \[Performance impact: none]
- **snowAlwaysReplaceable** (default: true): Snow layer can always be replaced by other blocks, as long as it is not full. \[Performance impact: none]
- **thinnerBoundingBox** (default: true): Shrink the collision box of the snow layer. \[Performance impact: none]
- **snowNeverMelt** (default: false): Snow layer never melts. \[Performance impact: none]
- **snowSpawnMaxLightLevel** (default: 9): Maximum light level for snow to spawn. \[Performance impact: none]
- **snowPersistMaxLightLevel** (default: 11): Maximum light level for snow to not melt. \[Performance impact: none]
- **snowReduceFallDamage** (default: true): Reduce fall damage when landing on snow, depending on the snow layers. \[Performance impact: none]
- **sustainGrassIfLayerMoreThanOne** (default: true): Prevents grass block from turning into dirt when snow layer is more than 1. \[Performance impact: none]
- **sneakSnowball** (default: true): Sneak+use on snow layer to obtain snowball, consuming one layer of snow. \[Performance impact: none]
- **fancySnowOnUpperSlab** (default: true): Snow layer on upper slab will render snow overlay on the side of the slab. \[Performance impact: low]
- **rightClickToggleFancySnow** (default: true): Right click with empty hands to toggle the fancy snow overlay on any snow layer. \[Performance impact: none]
- **mobSpawningMaxLayers** (default: 8, range: 1–8): Maximum layers of snow for mobs to spawn. \[Performance impact: none]
- **snow-cover.placeSnowOnBlock** (default: true): Snow can be placed on some blocks to make them snow-covered. \[Performance impact: low]
- **snow-cover.placeNaturally** (default: true): Snow can be placed on some blocks not only by player, but also from snowfall or world generation. \[Performance impact: low]
- **snow-cover.replaceWorldgenFeature** (default: true): Replace the vanilla world generation feature to also generate snow-covered blocks. \[Performance impact: low]
- **snow-cover.restoreOriginalBlocks** (default: false): If you want to uninstall this mod, you can restore snow-covered blocks to their original blocks on chunk loaded. \[Performance impact: low]
- **accumulation.accumulatesDuringSnowfall** (default: false): Snow layer accumulates during snowfall. \[Performance impact: medium]
- **accumulation.accumulatesDuringSnowstorm** (default: true): Snow layer accumulates during thundering. \[Performance impact: medium]
- **accumulation.maxLayers** (default: 6, range: 0–9): Maximum layers of snow that can accumulate. 9 is unlimited. \[Performance impact: low]
- **accumulation.snowAndIceMeltInWarmBiomes** (default: false): Snow and ice will melt in warm biomes. \[Performance impact: low]
- **accumulation.naturalMelting** (default: true): Snow melts with time if its layer is more than 1. \[Performance impact: medium]
- **accumulation.smoothAccumulation** (default: true): Snow layer will accumulate and melt more smoothly. \[Performance impact: low]
- **integration.accumulationWinterOnly** (default: false): If you have a mod that adds seasons, snow accumulation only happens in winter. \[Performance impact: none]
Client
- **particleThroughLeaves** (default: true): Generates snowflake particles under snow that is above leaves. \[Performance impact: low]
- **snowVariants** (default: true): Some snow-covered foliage will be rendered differently. \[Performance impact: low]
[](https://rb.gy/sscocj)