Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/modflower/genflower
World generator utilities
https://github.com/modflower/genflower
Last synced: about 1 month ago
JSON representation
World generator utilities
- Host: GitHub
- URL: https://github.com/modflower/genflower
- Owner: Modflower
- License: apache-2.0
- Created: 2024-01-05T05:00:13.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-20T03:10:24.000Z (12 months ago)
- Last Synced: 2024-01-20T04:22:57.311Z (12 months ago)
- Language: Java
- Size: 85.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Genflower
A small worldgen and loot utility library for mods and datapacks
## What does it add?
Genflower adds two new structure processors and a loot function to help speed up the development of datapacks,
allowing one to do things that weren't possible, were difficult or tedious before with vanilla's processors.### Loot Functions
#### Set Random Potion `genflower:set_random_potion`
A potion randomiser function for potions found in brewing stands and chests.
- `potions`: A potion->weight map expressed in one of two ways:
- Map of ID to Weight: `{"minecraft:luck": 1}`
- Object-in-List: `[{"data":"minecraft:luck","weight":1}]`The `weight` field is optional and defaults to 1 when using the object-in-list notation.
Example JSON file
```json5
// data/useyourname/loot_tables/chests/your_loot.json -> /pools[]
{
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "genflower:set_random_potion",
"potions": {
"minecraft:long_invisibility": 1,
"minecraft:invisibility": 5
}
}
],
"name": "minecraft:potion"
},
{
"type": "minecraft:item",
"functions": [
{
"function": "genflower:set_random_potion",
"potions": [
{
"data": "minecraft:long_invisibility",
"weight": 1
},
{
"data": "minecraft:invisibility",
"weight": 5
}
]
}
],
"name": "minecraft:splash_potion"
}
]
}
```### Structure Processors
#### Block Map `genflower:block_map`
A block to blocks mapping to reduce the verbosity of structure processors.
- `block_map`: A block to list of blocks map used for replacing blocks.
- `probability`: The likelihood of a block being replaced with a new one.
- Scale of 0-1, defaults to 1.Example JSON file
```json5
// data/useyourname/worldgen/processor_list/your_processor.json
{
"processors": [
{
"processor_type": "genflower:block_map",
"block_map": {
"minecraft:cobweb": ["minecraft:air"],
"supplementaries:ash": ["minecraft:air"]
}
},
{
"processor_type": "genflower:block_map",
"block_map": {
"minecraft:deepslate_bricks": [
"minecraft:cobbled_deepslate",
"minecraft:deepslate_brick_stairs",
"minecraft:deepslate_brick_slab"
],
"minecraft:lantern": ["wilderwild:display_lantern"],
"minecraft:deepslate_brick_stairs": [
"minecraft:deepslate_brick_slab"
],
"minecraft:mangrove_stairs": [
"minecraft:mangrove_slab",
"minecraft:cobweb"
],
"minecraft:anvil": [
"minecraft:chipped_anvil",
"minecraft:damaged_anvil"
]
},
"probability": 0.25
}
]
}
```#### Loot `genflower:loot`
A worldgen-time loot applicator for blocks that have inventories but don't support the `LootTable` NBT tag.
- `loot_table`: A loot table to apply to given blocks
- `blocks`: An allowed list of blocks to inject loot into.
- `slots`: How many slots the block normally supports.
- `probability`: The likelihood of a block having the loot table applied.
- Scale of 0-1, defaults to 1.Example JSON file
```json5
// data/useyourname/worldgen/processor_list/your_processor.json
{
"processors": [
{
"processor_type": "genflower:loot",
"loot_table": "useyourname:chests/library_bookshelves",
"blocks": ["minecraft:chiseled_bookshelf"],
"slots": 6,
"probability": 0.8
},
{
"processor_type": "genflower:loot",
"loot_table": "useyourname:chests/library_brewing_stands",
"blocks": ["minecraft:brewing_stand"],
"slots": 3
}
]
}
```