probably definitely fix up all the datagen

This commit is contained in:
gamma-delta 2022-04-09 23:32:58 -05:00
parent 225f97d8a4
commit 325ea3e4a3
30 changed files with 328 additions and 24 deletions

View file

@ -293,10 +293,13 @@ c966b7ab46808f86bdb7bbd07049146f0dfb24ec data/hexcasting/advancements/recipes/br
5a17fa9a1496f5fbedd0362f94a5231e0e5ebbfc data/hexcasting/advancements/recipes/hexcasting/ageing_scroll_paper_lantern.json
c498998fcffe3d1a0b6dfd6459db64e9389f5c15 data/hexcasting/advancements/recipes/hexcasting/akashic_bookshelf.json
d9f9fc153bf8e8861f79f982b185d2e4c7048067 data/hexcasting/advancements/recipes/hexcasting/akashic_connector.json
1266b263056dd15c862bff27b05a119c4bbc89ee data/hexcasting/advancements/recipes/hexcasting/akashic_door.json
149179e18b1b8db5dc3fb96e6faa6cb6ffaecb75 data/hexcasting/advancements/recipes/hexcasting/akashic_panel.json
4f852507d843f82dce1512f55abfb205b9829ed4 data/hexcasting/advancements/recipes/hexcasting/akashic_planks.json
99aae9efc13ff2b8a4612579b2f865ed2fbe8985 data/hexcasting/advancements/recipes/hexcasting/akashic_tile.json
d5122f034678cc53a2921c65f30451caf708046c data/hexcasting/advancements/recipes/hexcasting/akashic_trapdoor.json
55dded121a8dddb2ee7fb1f3ffcdcd1ada4afbd5 data/hexcasting/advancements/recipes/hexcasting/akashic_wood.json
4066f098ef104eadf6729bb372d9e643c598b477 data/hexcasting/advancements/recipes/hexcasting/akashic_wood_stripped.json
ddd7bd92b9e1586cebd2cee658315a9336a80a76 data/hexcasting/advancements/recipes/hexcasting/amethyst_dust_packing.json
e5ae652aee1567ac2e626fa0f88f160993a6f9a5 data/hexcasting/advancements/recipes/hexcasting/amethyst_dust_unpacking.json
337c4370fd24b66a6b4b3f6c296a33d9a799034e data/hexcasting/advancements/recipes/hexcasting/amethyst_sconce.json
@ -362,10 +365,14 @@ afecba3144e00505977a4ab4de7940f949ab7818 data/hexcasting/loot_modifiers/scroll_d
0e8c8a56161586a4021487b27059ca151465af67 data/hexcasting/loot_modifiers/scroll_jungle.json
50e7ad657a0ab43f3bd632120e09f109791aaf34 data/hexcasting/loot_modifiers/scroll_shipwreck.json
7ffa361bd8a108b504fe450749b42997dc898e5e data/hexcasting/loot_modifiers/scroll_stronghold_library.json
9f900c50680a155c876080a039ed9dce1d84d457 data/hexcasting/loot_tables/blocks/akashic_door.json
cfd72df535fe95cd2b0d800696e7b4b3429a0459 data/hexcasting/loot_tables/blocks/akashic_bookshelf.json
2e5958279471fa57ae2929d9f9da46e59495f50e data/hexcasting/loot_tables/blocks/akashic_connector.json
3794453f5412af9c7307c9cd91fe2d01ffb763af data/hexcasting/loot_tables/blocks/akashic_door.json
4b0b1c0a353b8768c1c56d8dc4764a10c2cd7c5f data/hexcasting/loot_tables/blocks/akashic_log.json
ff25315e494e3b79667a1fa90d22a80d0eb6d208 data/hexcasting/loot_tables/blocks/akashic_log_stripped.json
7400ffa5214a5d7ed34be2ac2ffcc2b50cdf299c data/hexcasting/loot_tables/blocks/akashic_panel.json
f59f016a4fa4edaad0b2731f8f1bb2c7b9299ede data/hexcasting/loot_tables/blocks/akashic_planks.json
22517cb8c8063a6a2752cd80f63f224c88bc2ede data/hexcasting/loot_tables/blocks/akashic_record.json
0ddb27503a7266d126661bad496047a069a07670 data/hexcasting/loot_tables/blocks/akashic_tile.json
659b7e6d539474357532c1207b21354e19cbd4b1 data/hexcasting/loot_tables/blocks/akashic_trapdoor.json
1590fee356080d4dd3f4e0718d87269bdd7f3519 data/hexcasting/loot_tables/blocks/akashic_wood.json
@ -389,10 +396,13 @@ fd662ce6977b96065bd438ff332bc5b9f62560e6 data/hexcasting/loot_tables/blocks/scro
1f0c9a98d97fb81e1f504cdb6619a3dfab52ba5f data/hexcasting/recipes/ageing_scroll_paper_lantern.json
fa04d5bc32f5646cd67bc8e8b572bdb7849b735e data/hexcasting/recipes/akashic_bookshelf.json
2c542a616b312e41537fb25a2362877dd50d2692 data/hexcasting/recipes/akashic_connector.json
add097a7a749bd1ebd5828216f013f6cd5b72b62 data/hexcasting/recipes/akashic_door.json
f74f8389f1e8bdb77a92ecfb8d7d7d6f4418d818 data/hexcasting/recipes/akashic_panel.json
ce9ca7b98a89540996f2ad18eea98e31df7974b5 data/hexcasting/recipes/akashic_planks.json
ac285195e958804bcbd0b87e443d2851fd3a4856 data/hexcasting/recipes/akashic_tile.json
62b120d8943a9e73778ad1468f12532b21774994 data/hexcasting/recipes/akashic_trapdoor.json
a84bf48a188d7b250db5c971a6d9b63d82279ba3 data/hexcasting/recipes/akashic_wood.json
c386a7294db6ed97f9b131cb8402ca6203092b63 data/hexcasting/recipes/akashic_wood_stripped.json
ef016ca292fa4edc7496b64e6f2931f4e7d90636 data/hexcasting/recipes/amethyst_dust_packing.json
91bb341776ce64a68e1c4200aa8f5b2fa6669820 data/hexcasting/recipes/amethyst_dust_unpacking.json
4b3f5fe572ec06feab786e3ba93b0d80b145dd69 data/hexcasting/recipes/amethyst_sconce.json
@ -456,14 +466,14 @@ d14cf2f8f0895a5b6dc09b7582c0abf1c2514adf data/hexcasting/recipes/sub_sandwich.js
0521d57838cb3e9795fc02ce47aa58db3b0188f9 data/hexcasting/recipes/wand.json
f3c6b6917e504e1c3d5d8875f7cce6f311e791d2 data/hexcasting/tags/blocks/akashic_logs.json
b596d96eebb4f7bad5930f4eebc589f292b59c98 data/hexcasting/tags/blocks/akashic_planks.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/hexcasting/tags/items/akashic_logs.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/hexcasting/tags/items/akashic_planks.json
f3c6b6917e504e1c3d5d8875f7cce6f311e791d2 data/hexcasting/tags/items/akashic_logs.json
b596d96eebb4f7bad5930f4eebc589f292b59c98 data/hexcasting/tags/items/akashic_planks.json
f930dbc5b41d42150d388e39b29b940229658809 data/minecraft/tags/blocks/crystal_sound_blocks.json
556d2e6068965e90c307a435b372ae761cd1c606 data/minecraft/tags/blocks/doors.json
c25784941d6416744fb2ca2d43a3203e5c3e7c8a data/minecraft/tags/blocks/leaves.json
f3c6b6917e504e1c3d5d8875f7cce6f311e791d2 data/minecraft/tags/blocks/logs.json
f3c6b6917e504e1c3d5d8875f7cce6f311e791d2 data/minecraft/tags/blocks/logs_that_burn.json
b82b77e12cb853aae355a5fabcad7c57b7becc3e data/minecraft/tags/blocks/mineable/axe.json
766fac802aa499c8341dca1bf9dc94782e6d385e data/minecraft/tags/blocks/mineable/axe.json
c25784941d6416744fb2ca2d43a3203e5c3e7c8a data/minecraft/tags/blocks/mineable/hoe.json
eb4bfbd7fc7632a5c16aa1d50d6090a1f466069b data/minecraft/tags/blocks/mineable/pickaxe.json
f55afc2c05d93b5a44bc9fd73c5e81e71b183965 data/minecraft/tags/blocks/mineable/shovel.json
@ -471,9 +481,11 @@ b596d96eebb4f7bad5930f4eebc589f292b59c98 data/minecraft/tags/blocks/planks.json
b8b58bbaf1ddca3514896af14db83f304e415305 data/minecraft/tags/blocks/trapdoors.json
556d2e6068965e90c307a435b372ae761cd1c606 data/minecraft/tags/blocks/wooden_doors.json
b8b58bbaf1ddca3514896af14db83f304e415305 data/minecraft/tags/blocks/wooden_trapdoors.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/minecraft/tags/items/doors.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/minecraft/tags/items/leaves.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/minecraft/tags/items/logs.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/minecraft/tags/items/logs_that_burn.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/minecraft/tags/items/planks.json
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/minecraft/tags/items/wooden_doors.json
556d2e6068965e90c307a435b372ae761cd1c606 data/minecraft/tags/items/doors.json
c25784941d6416744fb2ca2d43a3203e5c3e7c8a data/minecraft/tags/items/leaves.json
f3c6b6917e504e1c3d5d8875f7cce6f311e791d2 data/minecraft/tags/items/logs.json
f3c6b6917e504e1c3d5d8875f7cce6f311e791d2 data/minecraft/tags/items/logs_that_burn.json
b596d96eebb4f7bad5930f4eebc589f292b59c98 data/minecraft/tags/items/planks.json
b8b58bbaf1ddca3514896af14db83f304e415305 data/minecraft/tags/items/trapdoors.json
556d2e6068965e90c307a435b372ae761cd1c606 data/minecraft/tags/items/wooden_doors.json
b8b58bbaf1ddca3514896af14db83f304e415305 data/minecraft/tags/items/wooden_trapdoors.json

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"hexcasting:akashic_door"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "hexcasting:akashic_planks"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "hexcasting:akashic_door"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"hexcasting:akashic_trapdoor"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "hexcasting:akashic_planks"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "hexcasting:akashic_trapdoor"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,34 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"hexcasting:akashic_wood_stripped"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": [
"hexcasting:akashic_log_stripped"
]
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "hexcasting:akashic_wood_stripped"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:block",
"pools": [
{
"name": "akashic_bookshelf",
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "hexcasting:akashic_bookshelf"
}
]
}
]
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:block",
"pools": [
{
"name": "akashic_connector",
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "hexcasting:akashic_connector"
}
]
}
]
}

View file

@ -10,6 +10,15 @@
"type": "minecraft:item",
"name": "hexcasting:akashic_door"
}
],
"conditions": [
{
"condition": "minecraft:block_state_property",
"block": "hexcasting:akashic_door",
"properties": {
"half": "lower"
}
}
]
}
]

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:block",
"pools": [
{
"name": "akashic_planks",
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "hexcasting:akashic_planks"
}
]
}
]
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:block",
"pools": [
{
"name": "akashic_record",
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "hexcasting:akashic_record"
}
]
}
]
}

View file

@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"WW",
"WW",
"WW"
],
"key": {
"W": {
"tag": "hexcasting:akashic_planks"
}
},
"result": {
"item": "hexcasting:akashic_door",
"count": 3
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"WWW",
"WWW"
],
"key": {
"W": {
"tag": "hexcasting:akashic_planks"
}
},
"result": {
"item": "hexcasting:akashic_trapdoor",
"count": 2
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"WW",
"WW"
],
"key": {
"W": {
"item": "hexcasting:akashic_log_stripped"
}
},
"result": {
"item": "hexcasting:akashic_wood_stripped",
"count": 3
}
}

View file

@ -1,4 +1,9 @@
{
"replace": false,
"values": []
"values": [
"hexcasting:akashic_log",
"hexcasting:akashic_log_stripped",
"hexcasting:akashic_wood",
"hexcasting:akashic_wood_stripped"
]
}

View file

@ -1,4 +1,8 @@
{
"replace": false,
"values": []
"values": [
"hexcasting:akashic_planks",
"hexcasting:akashic_panel",
"hexcasting:akashic_tile"
]
}

View file

@ -3,6 +3,7 @@
"values": [
"hexcasting:akashic_record",
"hexcasting:akashic_bookshelf",
"hexcasting:akashic_connector",
"hexcasting:akashic_log",
"hexcasting:akashic_log_stripped",
"hexcasting:akashic_wood",

View file

@ -1,4 +1,6 @@
{
"replace": false,
"values": []
"values": [
"hexcasting:akashic_door"
]
}

View file

@ -1,4 +1,8 @@
{
"replace": false,
"values": []
"values": [
"hexcasting:akashic_leaves1",
"hexcasting:akashic_leaves2",
"hexcasting:akashic_leaves3"
]
}

View file

@ -1,4 +1,9 @@
{
"replace": false,
"values": []
"values": [
"hexcasting:akashic_log",
"hexcasting:akashic_log_stripped",
"hexcasting:akashic_wood",
"hexcasting:akashic_wood_stripped"
]
}

View file

@ -1,4 +1,9 @@
{
"replace": false,
"values": []
"values": [
"hexcasting:akashic_log",
"hexcasting:akashic_log_stripped",
"hexcasting:akashic_wood",
"hexcasting:akashic_wood_stripped"
]
}

View file

@ -1,4 +1,8 @@
{
"replace": false,
"values": []
"values": [
"hexcasting:akashic_planks",
"hexcasting:akashic_panel",
"hexcasting:akashic_tile"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"hexcasting:akashic_trapdoor"
]
}

View file

@ -1,4 +1,6 @@
{
"replace": false,
"values": []
"values": [
"hexcasting:akashic_door"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"hexcasting:akashic_trapdoor"
]
}

View file

@ -28,7 +28,11 @@ public class BlockStrippable extends RotatedPillarBlock {
public BlockState getToolModifiedState(BlockState state, Level world, BlockPos pos, Player player, ItemStack stack,
ToolAction toolAction) {
if (toolAction == ToolActions.AXE_STRIP) {
return stripped.get().defaultBlockState().setValue(AXIS, state.getValue(AXIS));
var out = stripped.get().defaultBlockState();
if (state.hasProperty(AXIS)) {
out = out.setValue(AXIS, state.getValue(AXIS));
}
return out;
} else {
return null;
}

View file

@ -36,7 +36,7 @@ public class AkashicTreeGrower extends AbstractTreeGrower {
new TreeConfiguration.TreeConfigurationBuilder(
BlockStateProvider.simple(HexBlocks.AKASHIC_LOG.get()),
// baseHeight, heightRandA, heightRandB
new FancyTrunkPlacer(3, 5, 2),
new FancyTrunkPlacer(5, 5, 3),
BlockStateProvider.simple(leaves[i]),
// radius, offset, height
new FancyFoliagePlacer(ConstantInt.of(1), ConstantInt.of(5), 5),

View file

@ -28,7 +28,7 @@ public class HexBlockTagProvider extends BlockTagsProvider {
.add(HexBlocks.AMETHYST_DUST_BLOCK.get());
tag(BlockTags.MINEABLE_WITH_AXE)
.add(HexBlocks.AKASHIC_RECORD.get(), HexBlocks.AKASHIC_BOOKSHELF.get(),
.add(HexBlocks.AKASHIC_RECORD.get(), HexBlocks.AKASHIC_BOOKSHELF.get(), HexBlocks.AKASHIC_CONNECTOR.get(),
HexBlocks.AKASHIC_LOG.get(), HexBlocks.AKASHIC_LOG_STRIPPED.get(),
HexBlocks.AKASHIC_WOOD.get(), HexBlocks.AKASHIC_WOOD_STRIPPED.get(),
HexBlocks.AKASHIC_PLANKS.get(), HexBlocks.AKASHIC_PANEL.get(), HexBlocks.AKASHIC_TILE.get(),

View file

@ -20,8 +20,8 @@ public class HexDataGenerators {
gen.addProvider(new HexRecipes(gen));
gen.addProvider(new HexLootModifiers(gen));
gen.addProvider(new HexAdvancements(gen, efh));
gen.addProvider(new HexItemTagProvider(gen, blockTagProvider, efh));
gen.addProvider(blockTagProvider);
gen.addProvider(new HexItemTagProvider(gen, blockTagProvider, efh));
gen.addProvider(new HexLootTables(gen));
}
}

View file

@ -31,6 +31,8 @@ public class HexItemTagProvider extends ItemTagsProvider {
this.copy(BlockTags.PLANKS, ItemTags.PLANKS);
this.copy(BlockTags.DOORS, ItemTags.DOORS);
this.copy(BlockTags.WOODEN_DOORS, ItemTags.WOODEN_DOORS);
this.copy(BlockTags.TRAPDOORS, ItemTags.TRAPDOORS);
this.copy(BlockTags.WOODEN_TRAPDOORS, ItemTags.WOODEN_TRAPDOORS);
this.copy(BlockTags.LEAVES, ItemTags.LEAVES);
}
}

View file

@ -3,12 +3,16 @@ package at.petrak.hexcasting.datagen;
import at.petrak.hexcasting.common.blocks.HexBlocks;
import at.petrak.hexcasting.common.blocks.circles.BlockEntitySlate;
import at.petrak.paucal.api.datagen.PaucalLootTableProvider;
import net.minecraft.advancements.critereon.StatePropertiesPredicate;
import net.minecraft.data.DataGenerator;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.DoorBlock;
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf;
import net.minecraft.world.level.storage.loot.LootPool;
import net.minecraft.world.level.storage.loot.LootTable;
import net.minecraft.world.level.storage.loot.entries.LootItem;
import net.minecraft.world.level.storage.loot.functions.CopyNbtFunction;
import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition;
import net.minecraft.world.level.storage.loot.providers.nbt.ContextNbtProvider;
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
@ -26,13 +30,14 @@ public class HexLootTables extends PaucalLootTableProvider {
dropSelf(lootTables, HexBlocks.EMPTY_IMPETUS,
HexBlocks.IMPETUS_RIGHTCLICK, HexBlocks.IMPETUS_LOOK, HexBlocks.IMPETUS_STOREDPLAYER,
HexBlocks.DIRECTRIX_REDSTONE, HexBlocks.EMPTY_DIRECTRIX,
HexBlocks.AKASHIC_RECORD, HexBlocks.AKASHIC_BOOKSHELF, HexBlocks.AKASHIC_CONNECTOR,
HexBlocks.SLATE_BLOCK, HexBlocks.AMETHYST_DUST_BLOCK, HexBlocks.AMETHYST_TILES, HexBlocks.SCROLL_PAPER,
HexBlocks.ANCIENT_SCROLL_PAPER, HexBlocks.SCROLL_PAPER_LANTERN, HexBlocks.ANCIENT_SCROLL_PAPER_LANTERN,
HexBlocks.SCONCE,
HexBlocks.AKASHIC_LOG, HexBlocks.AKASHIC_LOG_STRIPPED, HexBlocks.AKASHIC_WOOD,
HexBlocks.AKASHIC_WOOD_STRIPPED,
HexBlocks.AKASHIC_TILE, HexBlocks.AKASHIC_PANEL,
HexBlocks.AKASHIC_DOOR, HexBlocks.AKASHIC_TRAPDOOR);
HexBlocks.AKASHIC_PLANKS, HexBlocks.AKASHIC_TILE, HexBlocks.AKASHIC_PANEL,
HexBlocks.AKASHIC_TRAPDOOR);
var slatePool = LootPool.lootPool().name("slate").
setRolls(ConstantValue.exactly(1))
@ -40,5 +45,11 @@ public class HexLootTables extends PaucalLootTableProvider {
.apply(CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY)
.copy(BlockEntitySlate.TAG_PATTERN, "BlockEntityTag." + BlockEntitySlate.TAG_PATTERN)));
lootTables.put(HexBlocks.SLATE.get(), LootTable.lootTable().withPool(slatePool));
var doorPool = dropThisPool(HexBlocks.AKASHIC_DOOR.get(), 1)
.when(new LootItemBlockStatePropertyCondition.Builder(HexBlocks.AKASHIC_DOOR.get()).setProperties(
StatePropertiesPredicate.Builder.properties().hasProperty(DoorBlock.HALF, DoubleBlockHalf.LOWER)
));
lootTables.put(HexBlocks.AKASHIC_DOOR.get(), LootTable.lootTable().withPool(doorPool));
}
}

View file

@ -234,6 +234,17 @@ public class HexRecipes extends PaucalRecipeProvider {
.pattern("W W")
.pattern(" WW")
.unlockedBy("has_item", has(HexItemTags.AKASHIC_PLANKS)).save(recipes);
ShapedRecipeBuilder.shaped(HexBlocks.AKASHIC_DOOR.get(), 3)
.define('W', HexItemTags.AKASHIC_PLANKS)
.pattern("WW")
.pattern("WW")
.pattern("WW")
.unlockedBy("has_item", has(HexItemTags.AKASHIC_PLANKS)).save(recipes);
ShapedRecipeBuilder.shaped(HexBlocks.AKASHIC_TRAPDOOR.get(), 2)
.define('W', HexItemTags.AKASHIC_PLANKS)
.pattern("WWW")
.pattern("WWW")
.unlockedBy("has_item", has(HexItemTags.AKASHIC_PLANKS)).save(recipes);
var enlightenment = new OvercastTrigger.Instance(EntityPredicate.Composite.ANY,
MinMaxBounds.Ints.ANY,