A small worldgen and loot utility library for mods and datapacks
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.
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}]
- Map of ID to Weight:
The weight field is optional and defaults to 1 when using the object-in-list notation.
Example JSON file
// 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"}]}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
// 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}]}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 blocksblocks: 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
// 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}]}