diff --git a/build.gradle b/build.gradle index 2a03fc20..facff986 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { id 'eclipse' id 'idea' id 'maven-publish' - id 'net.neoforged.gradle.userdev' version '7.1.20' + id 'net.neoforged.gradle.userdev' version '7.0.192' id 'org.jetbrains.kotlin.jvm' version "${kotlin_version}" } diff --git a/gradle.properties b/gradle.properties index fe7e7735..a2dec444 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ neogradle.subsystems.parchment.mappingsVersion=2024.11.17 #### minecraft_version=1.21.1 use_runtime_optional_deps=true -neo_version=21.1.217 +neo_version=21.1.216 kff_version=5.10.0 jei_version=19.25.1.332 emi_version=1.1.22+1.21.1 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23449a2b..d4081da4 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/raw-assets/game-icons-map.md b/raw-assets/game-icons-map.md index 2810b5bd..30de6896 100644 --- a/raw-assets/game-icons-map.md +++ b/raw-assets/game-icons-map.md @@ -4,26 +4,41 @@ transparent background, black blur 16 shadows and 64px dimensions. ## Map between Game-Icons names and Aspect names - ignis: Small fire +- aer: Gold shell - aqua: At sea - terra: Mountains +- ordo: Overmind +- perditio: Shatter +- vacuos: Glass ball - lux: Candle light +- motus: Dodging +- gelum: Snowflake 2 - vitreus: Emerald - metallum: Metal bar - victus: Shining heart -- aether: Fairy wand -- alkimia: Cauldron +- mortuus: Pirate grave +- potentia: Thor fist +- permutatio: Cycle +- praecantatio: Fairy wand +- auram: Sun +- alkimia: Round potion +- vitium: Tentacle strike - tenebrae: Eclipse +- alienis: Orbital +- volatus: Feather - herba: Three leaves - instrumentum: Dig dug - fabrico: Hammer and nails - machina: Gears +- vinculum: Wolf trap +- spiritus: Spectre - cognitio: Brain -- ornatus: Owl +- sensus: Owl +- aversio: Broad dagger - praemunio: Breastplate -- civilis: Two shadows -- vas: Locked Chest -- hostilis: Dread Skull -- corpus: Dinosaur Bones -- ornatus: Painted Pottery +- desiderium: Grab +- exanimis: Dread skull +- bestia: Wolf +- humanus: Two shadows - unknown: Help \ No newline at end of file diff --git a/raw-assets/public/description.md b/raw-assets/public/description.md index 0e75c441..eb97cebb 100644 --- a/raw-assets/public/description.md +++ b/raw-assets/public/description.md @@ -1 +1 @@ -A complete rewrite & reimagination of my favorite classic magic mod, for Neoforge! Thavma means miracle in greek. This mod is all about manipulating the elements of nature, and creating powerful arcane contraptions. ![a thavma user, on a platform with magical devices](https://cdn.modrinth.com/data/cached_images/1f98a12ef6fe7e555430a66580d968f0ee9ae85a.png) To get started, craft a basic wand, and right click a bookcase, to obtain the guide book:  ![](https://media.forgecdn.net/attachments/description/1271073/description_1eda43c7-b5fc-42ab-9d16-d3ab41f17957.png)![](https://media.forgecdn.net/attachments/description/1271073/description_8876b566-cc23-4ca8-a6c9-00c7d3d10d2c.png) That book will allow you to research and discover magical equipment and blocks! ![research book preview](https://cdn.modrinth.com/data/cached_images/f0685b6557be9868b6833aa9a349287db2632e55.png) **This mod is in alpha**, so many features are work-in-progress. I am doing my best to reach a feature complete version asap. ![the infusion altar, on a platform of greatwood planks](https://cdn.modrinth.com/data/cached_images/39b4275c431548e227ee29bfdd553216099d1e86_0.webp) All code is original and open source. Most assets are original, except some that are from open art libraries online. \ No newline at end of file +A complete rewrite & reimagination of my favorite classic magic mod, for Neoforge! Thavma means miracle in greek. This mod is all about manipulating the elements of nature, and creating powerful arcane contraptions. To get started, craft a basic wand, and right click a bookcase, to obtain the guide book: ![image](https://media.forgecdn.net/attachments/description/1271073/description_c918c158-1a5e-4a49-8df0-6bc6a6b5ec53.png) ![image](https://media.forgecdn.net/attachments/description/1271073/description_20c7c6ce-9b1d-40e4-81f8-f6096a594951.png) That book will allow you to research and discover magical equipment and blocks! ![image](https://media.forgecdn.net/attachments/description/1271073/description_5b575c0c-3140-4658-86d8-98905833e667.png) **This mod is in early alpha**, do not expect it to be playable yet. I am doing my best to reach a stable release asap. ![the infusion altar, on a platform of greatwood planks](https://media.forgecdn.net/attachments/description/1271073/description_465ac439-b6c6-44b6-9b4a-05dcccfa81f2.png) All code is original and open source. Most assets are original, except some that are from open art libraries online. \ No newline at end of file diff --git a/raw-assets/public/handle_crafting.png b/raw-assets/public/handle_crafting.png new file mode 100644 index 00000000..2254a4d3 Binary files /dev/null and b/raw-assets/public/handle_crafting.png differ diff --git a/raw-assets/public/plating_crafting.png b/raw-assets/public/plating_crafting.png deleted file mode 100644 index b53e42f5..00000000 Binary files a/raw-assets/public/plating_crafting.png and /dev/null differ diff --git a/raw-assets/public/summary.txt b/raw-assets/public/summary.txt deleted file mode 100644 index 94253ff9..00000000 --- a/raw-assets/public/summary.txt +++ /dev/null @@ -1 +0,0 @@ -Unseal ancient knowledge, harness the primal aspects, and make powerful arcane machinery! diff --git a/raw-assets/public/thavma.png b/raw-assets/public/thavma.png index bc7c9ad0..7f26c325 100644 Binary files a/raw-assets/public/thavma.png and b/raw-assets/public/thavma.png differ diff --git a/raw-assets/public/wand_crafting.png b/raw-assets/public/wand_crafting.png index e3cb0436..9ef317f6 100644 Binary files a/raw-assets/public/wand_crafting.png and b/raw-assets/public/wand_crafting.png differ diff --git a/src/generated/resources/assets/thavma/blockstates/aer_infused_deepslate.json b/src/generated/resources/assets/thavma/blockstates/aer_infused_deepslate.json new file mode 100644 index 00000000..53342505 --- /dev/null +++ b/src/generated/resources/assets/thavma/blockstates/aer_infused_deepslate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "thavma:block/aer_infused_deepslate" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/thavma/blockstates/aer_infused_stone.json b/src/generated/resources/assets/thavma/blockstates/aer_infused_stone.json new file mode 100644 index 00000000..c166d59b --- /dev/null +++ b/src/generated/resources/assets/thavma/blockstates/aer_infused_stone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "thavma:block/aer_infused_stone" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/thavma/lang/en_us.json b/src/generated/resources/assets/thavma/lang/en_us.json index ff9662ae..964113ad 100644 --- a/src/generated/resources/assets/thavma/lang/en_us.json +++ b/src/generated/resources/assets/thavma/lang/en_us.json @@ -1,26 +1,42 @@ { + "aspect.thavma.aer": "Aer", "aspect.thavma.aether": "Aether", + "aspect.thavma.alienis": "Alienis", "aspect.thavma.alkimia": "Alkimia", "aspect.thavma.aqua": "Aqua", - "aspect.thavma.civilis": "Civilis", + "aspect.thavma.auram": "Auram", + "aspect.thavma.aversio": "Aversio", + "aspect.thavma.bestia": "Bestia", "aspect.thavma.cognitio": "Cognitio", - "aspect.thavma.corpus": "Corpus", + "aspect.thavma.desiderium": "Desiderium", + "aspect.thavma.exanimis": "Exanimis", "aspect.thavma.fabrico": "Fabrico", + "aspect.thavma.gelum": "Gelum", "aspect.thavma.herba": "Herba", - "aspect.thavma.hostilis": "Hostilis", + "aspect.thavma.humanus": "Humanus", "aspect.thavma.ignis": "Ignis", "aspect.thavma.instrumentum": "Instrumentum", "aspect.thavma.lux": "Lux", "aspect.thavma.machina": "Machina", "aspect.thavma.metallum": "Metallum", - "aspect.thavma.ornatus": "Ornatus", + "aspect.thavma.mortuus": "Mortuus", + "aspect.thavma.motus": "Motus", + "aspect.thavma.permutatio": "Permutatio", + "aspect.thavma.potentia": "Potentia", + "aspect.thavma.praecantatio": "Praecantatio", "aspect.thavma.praemunio": "Praemunio", + "aspect.thavma.sensus": "Sensus", "aspect.thavma.tenebrae": "Tenebrae", "aspect.thavma.terra": "Terra", - "aspect.thavma.vas": "Vas", + "aspect.thavma.vacuos": "Vacuos", "aspect.thavma.victus": "Victus", + "aspect.thavma.vinculum": "Vinculum", + "aspect.thavma.vitium": "Vitium", "aspect.thavma.vitreus": "Vitreus", + "aspect.thavma.volatus": "Volatus", "attribute.thavma.revealing": "Revealing", + "block.thavma.aer_infused_deepslate": "Aer Infused Deepslate", + "block.thavma.aer_infused_stone": "Aer Infused Stone", "block.thavma.aether_infused_deepslate": "Aether Infused Deepslate", "block.thavma.aether_infused_stone": "Aether Infused Stone", "block.thavma.aqua_infused_deepslate": "Aqua Infused Deepslate", @@ -71,6 +87,7 @@ "container.thavma.research_table.socketWidget.remove": "Click to remove", "entity.thavma.angry_zombie": "Angry Zombie", "gui.layer.thavma.arcane_lens.no_aspects": "Nothing can be learned from this", + "item.thavma.aer_shard": "Aer Shard", "item.thavma.aether_shard": "Aether Shard", "item.thavma.angry_zombie_spawn_egg": "Angry Zombie Spawn Egg", "item.thavma.apprentice_boots": "[WIP]Apprentice Boots", diff --git a/src/generated/resources/assets/thavma/models/block/aer_infused_deepslate.json b/src/generated/resources/assets/thavma/models/block/aer_infused_deepslate.json new file mode 100644 index 00000000..10897368 --- /dev/null +++ b/src/generated/resources/assets/thavma/models/block/aer_infused_deepslate.json @@ -0,0 +1,7 @@ +{ + "parent": "thavma:block/cube_all_emissive_overlay", + "textures": { + "layer0": "minecraft:block/deepslate", + "layer1": "thavma:block/infused_stone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/thavma/models/block/aer_infused_stone.json b/src/generated/resources/assets/thavma/models/block/aer_infused_stone.json new file mode 100644 index 00000000..cefaad15 --- /dev/null +++ b/src/generated/resources/assets/thavma/models/block/aer_infused_stone.json @@ -0,0 +1,7 @@ +{ + "parent": "thavma:block/cube_all_emissive_overlay", + "textures": { + "layer0": "minecraft:block/stone", + "layer1": "thavma:block/infused_stone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/thavma/models/item/aer_infused_deepslate.json b/src/generated/resources/assets/thavma/models/item/aer_infused_deepslate.json new file mode 100644 index 00000000..4d658156 --- /dev/null +++ b/src/generated/resources/assets/thavma/models/item/aer_infused_deepslate.json @@ -0,0 +1,3 @@ +{ + "parent": "thavma:block/aer_infused_deepslate" +} \ No newline at end of file diff --git a/src/generated/resources/assets/thavma/models/item/aer_infused_stone.json b/src/generated/resources/assets/thavma/models/item/aer_infused_stone.json new file mode 100644 index 00000000..f89dc107 --- /dev/null +++ b/src/generated/resources/assets/thavma/models/item/aer_infused_stone.json @@ -0,0 +1,3 @@ +{ + "parent": "thavma:block/aer_infused_stone" +} \ No newline at end of file diff --git a/src/generated/resources/assets/thavma/models/item/aer_shard.json b/src/generated/resources/assets/thavma/models/item/aer_shard.json new file mode 100644 index 00000000..3892f60f --- /dev/null +++ b/src/generated/resources/assets/thavma/models/item/aer_shard.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "thavma:item/shard" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/ore_rates/singular.json b/src/generated/resources/data/c/tags/block/ore_rates/singular.json index 86267856..cb5100c7 100644 --- a/src/generated/resources/data/c/tags/block/ore_rates/singular.json +++ b/src/generated/resources/data/c/tags/block/ore_rates/singular.json @@ -1,10 +1,12 @@ { "values": [ "thavma:ignis_infused_stone", + "thavma:aer_infused_stone", "thavma:terra_infused_stone", "thavma:aqua_infused_stone", "thavma:aether_infused_stone", "thavma:ignis_infused_deepslate", + "thavma:aer_infused_deepslate", "thavma:terra_infused_deepslate", "thavma:aqua_infused_deepslate", "thavma:aether_infused_deepslate" diff --git a/src/generated/resources/data/c/tags/block/ores.json b/src/generated/resources/data/c/tags/block/ores.json index 86267856..cb5100c7 100644 --- a/src/generated/resources/data/c/tags/block/ores.json +++ b/src/generated/resources/data/c/tags/block/ores.json @@ -1,10 +1,12 @@ { "values": [ "thavma:ignis_infused_stone", + "thavma:aer_infused_stone", "thavma:terra_infused_stone", "thavma:aqua_infused_stone", "thavma:aether_infused_stone", "thavma:ignis_infused_deepslate", + "thavma:aer_infused_deepslate", "thavma:terra_infused_deepslate", "thavma:aqua_infused_deepslate", "thavma:aether_infused_deepslate" diff --git a/src/generated/resources/data/c/tags/block/ores_in_ground/deepslate.json b/src/generated/resources/data/c/tags/block/ores_in_ground/deepslate.json index 861c96e8..5179bc9c 100644 --- a/src/generated/resources/data/c/tags/block/ores_in_ground/deepslate.json +++ b/src/generated/resources/data/c/tags/block/ores_in_ground/deepslate.json @@ -1,6 +1,7 @@ { "values": [ "thavma:ignis_infused_deepslate", + "thavma:aer_infused_deepslate", "thavma:terra_infused_deepslate", "thavma:aqua_infused_deepslate", "thavma:aether_infused_deepslate" diff --git a/src/generated/resources/data/c/tags/block/ores_in_ground/stone.json b/src/generated/resources/data/c/tags/block/ores_in_ground/stone.json index 468d2df2..b5a3285c 100644 --- a/src/generated/resources/data/c/tags/block/ores_in_ground/stone.json +++ b/src/generated/resources/data/c/tags/block/ores_in_ground/stone.json @@ -1,6 +1,7 @@ { "values": [ "thavma:ignis_infused_stone", + "thavma:aer_infused_stone", "thavma:terra_infused_stone", "thavma:aqua_infused_stone", "thavma:aether_infused_stone" diff --git a/src/generated/resources/data/c/tags/item/ore_rates/singular.json b/src/generated/resources/data/c/tags/item/ore_rates/singular.json index 86267856..cb5100c7 100644 --- a/src/generated/resources/data/c/tags/item/ore_rates/singular.json +++ b/src/generated/resources/data/c/tags/item/ore_rates/singular.json @@ -1,10 +1,12 @@ { "values": [ "thavma:ignis_infused_stone", + "thavma:aer_infused_stone", "thavma:terra_infused_stone", "thavma:aqua_infused_stone", "thavma:aether_infused_stone", "thavma:ignis_infused_deepslate", + "thavma:aer_infused_deepslate", "thavma:terra_infused_deepslate", "thavma:aqua_infused_deepslate", "thavma:aether_infused_deepslate" diff --git a/src/generated/resources/data/c/tags/item/ores.json b/src/generated/resources/data/c/tags/item/ores.json index 86267856..cb5100c7 100644 --- a/src/generated/resources/data/c/tags/item/ores.json +++ b/src/generated/resources/data/c/tags/item/ores.json @@ -1,10 +1,12 @@ { "values": [ "thavma:ignis_infused_stone", + "thavma:aer_infused_stone", "thavma:terra_infused_stone", "thavma:aqua_infused_stone", "thavma:aether_infused_stone", "thavma:ignis_infused_deepslate", + "thavma:aer_infused_deepslate", "thavma:terra_infused_deepslate", "thavma:aqua_infused_deepslate", "thavma:aether_infused_deepslate" diff --git a/src/generated/resources/data/c/tags/item/ores_in_ground/deepslate.json b/src/generated/resources/data/c/tags/item/ores_in_ground/deepslate.json index 861c96e8..5179bc9c 100644 --- a/src/generated/resources/data/c/tags/item/ores_in_ground/deepslate.json +++ b/src/generated/resources/data/c/tags/item/ores_in_ground/deepslate.json @@ -1,6 +1,7 @@ { "values": [ "thavma:ignis_infused_deepslate", + "thavma:aer_infused_deepslate", "thavma:terra_infused_deepslate", "thavma:aqua_infused_deepslate", "thavma:aether_infused_deepslate" diff --git a/src/generated/resources/data/c/tags/item/ores_in_ground/stone.json b/src/generated/resources/data/c/tags/item/ores_in_ground/stone.json index 468d2df2..b5a3285c 100644 --- a/src/generated/resources/data/c/tags/item/ores_in_ground/stone.json +++ b/src/generated/resources/data/c/tags/item/ores_in_ground/stone.json @@ -1,6 +1,7 @@ { "values": [ "thavma:ignis_infused_stone", + "thavma:aer_infused_stone", "thavma:terra_infused_stone", "thavma:aqua_infused_stone", "thavma:aether_infused_stone" diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json index 86267856..cb5100c7 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -1,10 +1,12 @@ { "values": [ "thavma:ignis_infused_stone", + "thavma:aer_infused_stone", "thavma:terra_infused_stone", "thavma:aqua_infused_stone", "thavma:aether_infused_stone", "thavma:ignis_infused_deepslate", + "thavma:aer_infused_deepslate", "thavma:terra_infused_deepslate", "thavma:aqua_infused_deepslate", "thavma:aether_infused_deepslate" diff --git a/src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json b/src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json index 86267856..cb5100c7 100644 --- a/src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json +++ b/src/generated/resources/data/minecraft/tags/block/needs_stone_tool.json @@ -1,10 +1,12 @@ { "values": [ "thavma:ignis_infused_stone", + "thavma:aer_infused_stone", "thavma:terra_infused_stone", "thavma:aqua_infused_stone", "thavma:aether_infused_stone", "thavma:ignis_infused_deepslate", + "thavma:aer_infused_deepslate", "thavma:terra_infused_deepslate", "thavma:aqua_infused_deepslate", "thavma:aether_infused_deepslate" diff --git a/src/generated/resources/data/thavma/advancement/recipes/misc/aer_shard_blasting.json b/src/generated/resources/data/thavma/advancement/recipes/misc/aer_shard_blasting.json new file mode 100644 index 00000000..1426aabb --- /dev/null +++ b/src/generated/resources/data/thavma/advancement/recipes/misc/aer_shard_blasting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_infused_stones": { + "conditions": { + "items": [ + { + "items": "#thavma:infused_stones" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "thavma:aer_shard_blasting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_infused_stones" + ] + ], + "rewards": { + "recipes": [ + "thavma:aer_shard_blasting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/thavma/advancement/recipes/misc/aer_shard_smelting.json b/src/generated/resources/data/thavma/advancement/recipes/misc/aer_shard_smelting.json new file mode 100644 index 00000000..edccc38f --- /dev/null +++ b/src/generated/resources/data/thavma/advancement/recipes/misc/aer_shard_smelting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_infused_stones": { + "conditions": { + "items": [ + { + "items": "#thavma:infused_stones" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "thavma:aer_shard_smelting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_infused_stones" + ] + ], + "rewards": { + "recipes": [ + "thavma:aer_shard_smelting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/thavma/data_maps/entity_type/aspect_content.json b/src/generated/resources/data/thavma/data_maps/entity_type/aspect_content.json index 2eb02295..98ae4a90 100644 --- a/src/generated/resources/data/thavma/data_maps/entity_type/aspect_content.json +++ b/src/generated/resources/data/thavma/data_maps/entity_type/aspect_content.json @@ -17,8 +17,8 @@ "minecraft:chicken": {}, "minecraft:cod": {}, "minecraft:cow": { - "thavma:terra": 8, - "thavma:victus": 8 + "thavma:bestia": 15, + "thavma:terra": 15 }, "minecraft:creeper": { "thavma:herba": 15, @@ -30,16 +30,17 @@ "minecraft:elder_guardian": {}, "minecraft:ender_dragon": {}, "minecraft:enderman": { - "thavma:civilis": 4, - "thavma:hostilis": 4, - "thavma:tenebrae": 8 + "thavma:alienis": 8, + "thavma:desiderium": 4, + "thavma:humanus": 4, + "thavma:motus": 12 }, "minecraft:endermite": {}, "minecraft:evoker": {}, "minecraft:fox": {}, "minecraft:frog": {}, "minecraft:ghast": { - "thavma:hostilis": 12, + "thavma:exanimis": 12, "thavma:ignis": 8 }, "minecraft:glow_squid": {}, @@ -58,8 +59,9 @@ "minecraft:parrot": {}, "minecraft:phantom": {}, "minecraft:pig": { - "thavma:terra": 8, - "thavma:victus": 8 + "thavma:bestia": 10, + "thavma:desiderium": 5, + "thavma:terra": 10 }, "minecraft:piglin": {}, "minecraft:piglin_brute": {}, @@ -70,14 +72,15 @@ "minecraft:ravager": {}, "minecraft:salmon": {}, "minecraft:sheep": { - "thavma:terra": 8, - "thavma:victus": 8 + "thavma:bestia": 10, + "thavma:terra": 10 }, "minecraft:shulker": {}, "minecraft:silverfish": {}, "minecraft:skeleton": { - "thavma:hostilis": 8, - "thavma:terra": 8 + "thavma:exanimis": 20, + "thavma:humanus": 5, + "thavma:terra": 5 }, "minecraft:skeleton_horse": {}, "minecraft:slime": { @@ -89,8 +92,8 @@ "minecraft:snow_golem": {}, "minecraft:spectral_arrow": {}, "minecraft:spider": { - "thavma:hostilis": 8, - "thavma:terra": 8 + "thavma:bestia": 10, + "thavma:vinculum": 10 }, "minecraft:squid": {}, "minecraft:stray": {}, @@ -101,7 +104,7 @@ "minecraft:turtle": {}, "minecraft:vex": {}, "minecraft:villager": { - "thavma:civilis": 12 + "thavma:humanus": 15 }, "minecraft:vindicator": {}, "minecraft:wandering_trader": {}, @@ -112,8 +115,9 @@ "minecraft:wolf": {}, "minecraft:zoglin": {}, "minecraft:zombie": { - "thavma:hostilis": 8, - "thavma:terra": 8 + "thavma:exanimis": 20, + "thavma:humanus": 10, + "thavma:terra": 5 }, "minecraft:zombie_horse": {}, "minecraft:zombie_villager": {}, diff --git a/src/generated/resources/data/thavma/data_maps/item/aspect_content.json b/src/generated/resources/data/thavma/data_maps/item/aspect_content.json index bec323ff..40bf2efd 100644 --- a/src/generated/resources/data/thavma/data_maps/item/aspect_content.json +++ b/src/generated/resources/data/thavma/data_maps/item/aspect_content.json @@ -4,11 +4,12 @@ "thavma:terra": 2 }, "#c:concrete_powders": { - "thavma:terra": 2 + "thavma:terra": 3 }, "#c:concretes": { + "thavma:aether": 1, "thavma:aqua": 1, - "thavma:terra": 2 + "thavma:terra": 3 }, "#c:crops/wheat": { "thavma:herba": 2, @@ -19,33 +20,35 @@ "thavma:terra": 1 }, "#c:dusts/redstone": { - "thavma:machina": 1, + "thavma:potentia": 4, "thavma:terra": 1 }, "#c:eggs": { - "thavma:corpus": 2, + "thavma:bestia": 2, "thavma:victus": 4 }, "#c:ender_pearls": { - "thavma:corpus": 2, - "thavma:instrumentum": 4, - "thavma:tenebrae": 4 + "thavma:alienis": 4, + "thavma:motus": 4 }, "#c:feathers": { - "thavma:corpus": 2, - "thavma:instrumentum": 1 + "thavma:aer": 4, + "thavma:volatus": 4 }, "#c:gems/amethyst": { + "thavma:sensus": 1, "thavma:vitreus": 4 }, "#c:gems/diamond": { + "thavma:desiderium": 8, "thavma:vitreus": 8 }, "#c:gems/emerald": { + "thavma:desiderium": 4, "thavma:vitreus": 8 }, "#c:gems/lapis": { - "thavma:cognitio": 1, + "thavma:sensus": 2, "thavma:vitreus": 4 }, "#c:gems/quartz": { @@ -63,24 +66,27 @@ }, "#c:gunpowders": { "thavma:alkimia": 2, - "thavma:ignis": 4, + "thavma:potentia": 4, "thavma:terra": 1 }, "#c:ingots/copper": { - "thavma:metallum": 4 + "thavma:metallum": 4, + "thavma:permutatio": 4 }, "#c:ingots/gold": { + "thavma:desiderium": 8, "thavma:metallum": 4 }, "#c:ingots/iron": { "thavma:metallum": 8 }, "#c:ingots/netherite": { + "thavma:desiderium": 8, "thavma:metallum": 16, "thavma:tenebrae": 4 }, "#c:leathers": { - "thavma:corpus": 3 + "thavma:bestia": 8 }, "#c:netherracks": { "thavma:ignis": 1, @@ -90,53 +96,60 @@ "thavma:terra": 1 }, "#c:ores/coal": { - "thavma:ignis": 2, + "thavma:ignis": 8, + "thavma:potentia": 8, "thavma:terra": 4 }, "#c:ores/copper": { "thavma:metallum": 4, - "thavma:terra": 2 + "thavma:permutatio": 4, + "thavma:terra": 4 }, "#c:ores/diamond": { - "thavma:terra": 2, + "thavma:desiderium": 8, + "thavma:terra": 4, "thavma:vitreus": 8 }, "#c:ores/emerald": { - "thavma:terra": 2, + "thavma:desiderium": 4, + "thavma:terra": 4, "thavma:vitreus": 8 }, "#c:ores/gold": { + "thavma:desiderium": 8, "thavma:metallum": 4, - "thavma:terra": 2 + "thavma:terra": 4 }, "#c:ores/iron": { "thavma:metallum": 8, - "thavma:terra": 2 + "thavma:terra": 4 }, "#c:ores/lapis": { - "thavma:cognitio": 1, - "thavma:terra": 2, + "thavma:sensus": 2, + "thavma:terra": 4, "thavma:vitreus": 4 }, "#c:ores/netherite_scrap": { "thavma:metallum": 2, "thavma:tenebrae": 1, - "thavma:terra": 4 + "thavma:terra": 6 }, "#c:ores/quartz": { "thavma:ignis": 1, - "thavma:terra": 2, + "thavma:terra": 4, "thavma:vitreus": 4 }, "#c:ores/redstone": { - "thavma:machina": 1, - "thavma:terra": 3 + "thavma:potentia": 4, + "thavma:terra": 4 }, "#c:raw_materials/copper": { "thavma:metallum": 2, + "thavma:permutatio": 2, "thavma:terra": 2 }, "#c:raw_materials/gold": { + "thavma:desiderium": 4, "thavma:metallum": 2, "thavma:terra": 2 }, @@ -145,16 +158,15 @@ "thavma:terra": 2 }, "#c:rods/blaze": { - "thavma:alkimia": 2, - "thavma:corpus": 2, - "thavma:ignis": 4 + "thavma:ignis": 8, + "thavma:potentia": 4 }, "#c:rods/breeze": { - "thavma:aether": 6, - "thavma:corpus": 2 + "thavma:aer": 8, + "thavma:motus": 4 }, "#c:rods/wooden": { - "thavma:herba": 1 + "thavma:herba": 2 }, "#c:sands": { "thavma:terra": 2 @@ -163,37 +175,44 @@ "thavma:terra": 2 }, "#c:storage_blocks/coal": { - "thavma:ignis": 18, - "thavma:terra": 18 + "thavma:ignis": 72, + "thavma:potentia": 72 }, "#c:storage_blocks/copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "#c:storage_blocks/diamond": { + "thavma:desiderium": 72, "thavma:vitreus": 72 }, "#c:storage_blocks/emerald": { + "thavma:desiderium": 36, "thavma:vitreus": 72 }, "#c:storage_blocks/gold": { + "thavma:desiderium": 72, "thavma:metallum": 36 }, "#c:storage_blocks/iron": { "thavma:metallum": 72 }, "#c:storage_blocks/lapis": { - "thavma:cognitio": 9, + "thavma:sensus": 18, "thavma:vitreus": 36 }, "#c:storage_blocks/netherite": { + "thavma:desiderium": 72, "thavma:metallum": 144, "thavma:tenebrae": 36 }, "#c:storage_blocks/raw_copper": { "thavma:metallum": 18, + "thavma:permutatio": 18, "thavma:terra": 18 }, "#c:storage_blocks/raw_gold": { + "thavma:desiderium": 36, "thavma:metallum": 18, "thavma:terra": 18 }, @@ -202,36 +221,33 @@ "thavma:terra": 18 }, "#c:storage_blocks/redstone": { - "thavma:machina": 9, + "thavma:potentia": 36, "thavma:terra": 9 }, "#c:strings": { - "thavma:corpus": 1, + "thavma:bestia": 1, "thavma:fabrico": 1 }, "#c:tools/bow": { - "thavma:fabrico": 3, - "thavma:herba": 3, - "thavma:instrumentum": 8 + "thavma:aversio": 8, + "thavma:fabrico": 2, + "thavma:herba": 2 }, "#c:tools/crossbow": { + "thavma:aversio": 8, "thavma:fabrico": 2, - "thavma:herba": 5, - "thavma:instrumentum": 8, - "thavma:machina": 2, - "thavma:metallum": 12 + "thavma:metallum": 4 }, "#minecraft:arrows": { - "thavma:herba": 1, - "thavma:instrumentum": 2, - "thavma:terra": 1 + "thavma:aversio": 2, + "thavma:motus": 1 }, "#minecraft:bamboo_blocks": { "thavma:herba": 4 }, "#minecraft:coals": { - "thavma:ignis": 2, - "thavma:terra": 2 + "thavma:ignis": 8, + "thavma:potentia": 8 }, "#minecraft:dirt": { "thavma:terra": 1 @@ -252,18 +268,18 @@ }, "#minecraft:terracotta": { "thavma:ignis": 4, - "thavma:ornatus": 1, + "thavma:sensus": 1, "thavma:terra": 4 }, "#minecraft:wool": { - "thavma:corpus": 4, + "thavma:bestia": 8, "thavma:fabrico": 4 }, "#thavma:goggles": { - "thavma:aether": 8, - "thavma:instrumentum": 8, - "thavma:metallum": 40, - "thavma:vitreus": 2 + "thavma:desiderium": 32, + "thavma:metallum": 32, + "thavma:praecantatio": 4, + "thavma:vitreus": 4 }, "minecraft:acacia_button": { "thavma:herba": 2 @@ -296,6 +312,7 @@ "thavma:herba": 6 }, "minecraft:amethyst_block": { + "thavma:sensus": 4, "thavma:vitreus": 16 }, "minecraft:andesite": { @@ -311,7 +328,7 @@ "thavma:terra": 2 }, "minecraft:armadillo_scute": { - "thavma:corpus": 2, + "thavma:bestia": 2, "thavma:praemunio": 1 }, "minecraft:bamboo": { @@ -358,7 +375,8 @@ }, "minecraft:bedrock": { "thavma:tenebrae": 25, - "thavma:terra": 25 + "thavma:terra": 25, + "thavma:vacuos": 25 }, "minecraft:birch_button": { "thavma:herba": 2 @@ -407,8 +425,9 @@ "thavma:terra": 2 }, "minecraft:blaze_powder": { - "thavma:alkimia": 1, - "thavma:ignis": 2 + "thavma:alkimia": 2, + "thavma:ignis": 2, + "thavma:potentia": 1 }, "minecraft:brick": { "thavma:ignis": 1, @@ -481,7 +500,8 @@ "thavma:herba": 6 }, "minecraft:chiseled_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:chiseled_deepslate": { "thavma:terra": 2 @@ -499,10 +519,10 @@ "thavma:vitreus": 16 }, "minecraft:chiseled_red_sandstone": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:chiseled_sandstone": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:chiseled_stone_bricks": { "thavma:terra": 2 @@ -514,16 +534,16 @@ "thavma:terra": 2 }, "minecraft:chorus_flower": { - "thavma:herba": 4, - "thavma:tenebrae": 4 + "thavma:alienis": 4, + "thavma:herba": 4 }, "minecraft:chorus_fruit": { - "thavma:herba": 2, - "thavma:tenebrae": 2 + "thavma:alienis": 2, + "thavma:herba": 2 }, "minecraft:chorus_plant": { - "thavma:herba": 2, - "thavma:tenebrae": 2 + "thavma:alienis": 2, + "thavma:herba": 2 }, "minecraft:clay": { "thavma:aqua": 4, @@ -534,7 +554,7 @@ "thavma:terra": 1 }, "minecraft:coarse_dirt": { - "thavma:terra": 2 + "thavma:terra": 1 }, "minecraft:cobbled_deepslate": { "thavma:terra": 2 @@ -561,7 +581,8 @@ "thavma:terra": 2 }, "minecraft:copper_block": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:cracked_deepslate_bricks": { "thavma:terra": 2 @@ -581,8 +602,8 @@ "thavma:terra": 2 }, "minecraft:crafting_table": { - "thavma:fabrico": 4, - "thavma:herba": 8 + "thavma:fabrico": 8, + "thavma:herba": 4 }, "minecraft:crimson_button": { "thavma:herba": 2, @@ -625,25 +646,28 @@ "thavma:ignis": 6 }, "minecraft:cut_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:cut_copper_slab": { - "thavma:metallum": 18 + "thavma:metallum": 18, + "thavma:permutatio": 18 }, "minecraft:cut_copper_stairs": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:cut_red_sandstone": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:cut_red_sandstone_slab": { - "thavma:terra": 4 + "thavma:terra": 2 }, "minecraft:cut_sandstone": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:cut_sandstone_slab": { - "thavma:terra": 4 + "thavma:terra": 2 }, "minecraft:dark_oak_button": { "thavma:herba": 2 @@ -676,19 +700,16 @@ "thavma:herba": 6 }, "minecraft:dark_prismarine": { - "thavma:aqua": 10, - "thavma:corpus": 2, - "thavma:terra": 8 + "thavma:aqua": 4, + "thavma:terra": 4 }, "minecraft:dark_prismarine_slab": { - "thavma:aqua": 5, - "thavma:corpus": 1, - "thavma:terra": 4 + "thavma:aqua": 2, + "thavma:terra": 2 }, "minecraft:dark_prismarine_stairs": { - "thavma:aqua": 10, - "thavma:corpus": 2, - "thavma:terra": 8 + "thavma:aqua": 4, + "thavma:terra": 4 }, "minecraft:deepslate": { "thavma:terra": 2 @@ -718,48 +739,54 @@ "thavma:terra": 2 }, "minecraft:diamond_axe": { - "thavma:herba": 2, + "thavma:desiderium": 24, "thavma:instrumentum": 4, "thavma:vitreus": 24 }, "minecraft:diamond_boots": { + "thavma:desiderium": 32, "thavma:praemunio": 8, "thavma:vitreus": 32 }, "minecraft:diamond_chestplate": { + "thavma:desiderium": 64, "thavma:praemunio": 18, "thavma:vitreus": 64 }, "minecraft:diamond_helmet": { + "thavma:desiderium": 40, "thavma:praemunio": 8, "thavma:vitreus": 40 }, "minecraft:diamond_hoe": { - "thavma:herba": 2, + "thavma:desiderium": 16, "thavma:instrumentum": 4, "thavma:vitreus": 16 }, "minecraft:diamond_horse_armor": { + "thavma:bestia": 8, + "thavma:desiderium": 16, "thavma:praemunio": 12, - "thavma:vitreus": 56 + "thavma:vitreus": 16 }, "minecraft:diamond_leggings": { + "thavma:desiderium": 56, "thavma:praemunio": 14, "thavma:vitreus": 56 }, "minecraft:diamond_pickaxe": { - "thavma:herba": 2, + "thavma:desiderium": 24, "thavma:instrumentum": 4, "thavma:vitreus": 24 }, "minecraft:diamond_shovel": { - "thavma:herba": 2, + "thavma:desiderium": 8, "thavma:instrumentum": 4, "thavma:vitreus": 8 }, "minecraft:diamond_sword": { - "thavma:herba": 1, - "thavma:instrumentum": 4, + "thavma:aversio": 4, + "thavma:desiderium": 16, "thavma:vitreus": 16 }, "minecraft:diorite": { @@ -775,125 +802,126 @@ "thavma:terra": 2 }, "minecraft:end_crystal": { - "thavma:aether": 2, - "thavma:alkimia": 5, - "thavma:hostilis": 4, - "thavma:ignis": 2, - "thavma:instrumentum": 4, - "thavma:tenebrae": 4, + "thavma:alienis": 4, + "thavma:ignis": 4, + "thavma:potentia": 8, "thavma:vitreus": 14 }, "minecraft:end_stone_brick_slab": { - "thavma:tenebrae": 1, + "thavma:alienis": 1, "thavma:terra": 1 }, "minecraft:end_stone_brick_stairs": { - "thavma:tenebrae": 2, + "thavma:alienis": 2, "thavma:terra": 2 }, "minecraft:end_stone_brick_wall": { - "thavma:tenebrae": 2, + "thavma:alienis": 2, "thavma:terra": 2 }, "minecraft:end_stone_bricks": { - "thavma:tenebrae": 2, + "thavma:alienis": 2, "thavma:terra": 2 }, "minecraft:ender_eye": { - "thavma:aether": 2, - "thavma:alkimia": 1, - "thavma:ignis": 2, - "thavma:instrumentum": 4, - "thavma:tenebrae": 4 + "thavma:alienis": 4, + "thavma:motus": 4, + "thavma:praecantatio": 2 }, "minecraft:exposed_chiseled_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:exposed_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:exposed_cut_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:exposed_cut_copper_slab": { - "thavma:metallum": 18 + "thavma:metallum": 18, + "thavma:permutatio": 18 }, "minecraft:exposed_cut_copper_stairs": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:fire_charge": { - "thavma:alkimia": 4, + "thavma:aversio": 2, "thavma:ignis": 4, - "thavma:instrumentum": 2 + "thavma:potentia": 4 }, "minecraft:firework_rocket": { - "thavma:ignis": 1, - "thavma:ornatus": 1 + "thavma:potentia": 1, + "thavma:sensus": 1 }, "minecraft:firework_star": { - "thavma:ignis": 1, - "thavma:ornatus": 2 + "thavma:potentia": 1, + "thavma:sensus": 2 }, "minecraft:flint": { - "thavma:instrumentum": 1, - "thavma:terra": 1 + "thavma:instrumentum": 2, + "thavma:terra": 4 }, "minecraft:ghast_tear": { "thavma:alkimia": 4, - "thavma:hostilis": 4 - }, - "minecraft:glow_ink_sac": { - "thavma:aqua": 2, - "thavma:corpus": 2, - "thavma:lux": 2 + "thavma:exanimis": 4 }, "minecraft:glowstone": { "thavma:lux": 16, "thavma:terra": 4 }, "minecraft:golden_axe": { - "thavma:herba": 2, + "thavma:desiderium": 24, "thavma:instrumentum": 2, "thavma:metallum": 12 }, "minecraft:golden_boots": { + "thavma:desiderium": 32, "thavma:metallum": 16, "thavma:praemunio": 2 }, "minecraft:golden_chestplate": { + "thavma:desiderium": 64, "thavma:metallum": 32, "thavma:praemunio": 10 }, "minecraft:golden_helmet": { + "thavma:desiderium": 40, "thavma:metallum": 20, "thavma:praemunio": 4 }, "minecraft:golden_hoe": { - "thavma:herba": 2, + "thavma:desiderium": 16, "thavma:instrumentum": 2, "thavma:metallum": 8 }, "minecraft:golden_horse_armor": { - "thavma:metallum": 28, + "thavma:bestia": 8, + "thavma:desiderium": 16, + "thavma:metallum": 8, "thavma:praemunio": 8 }, "minecraft:golden_leggings": { + "thavma:desiderium": 56, "thavma:metallum": 28, "thavma:praemunio": 6 }, "minecraft:golden_pickaxe": { - "thavma:herba": 2, + "thavma:desiderium": 24, "thavma:instrumentum": 2, "thavma:metallum": 12 }, "minecraft:golden_shovel": { - "thavma:herba": 2, + "thavma:desiderium": 8, "thavma:instrumentum": 2, "thavma:metallum": 4 }, "minecraft:golden_sword": { - "thavma:herba": 1, - "thavma:instrumentum": 2, + "thavma:aversio": 2, + "thavma:desiderium": 16, "thavma:metallum": 8 }, "minecraft:granite": { @@ -913,15 +941,11 @@ "thavma:terra": 1 }, "minecraft:heavy_core": { - "thavma:instrumentum": 6, - "thavma:metallum": 16 - }, - "minecraft:ink_sac": { - "thavma:aqua": 2, - "thavma:corpus": 2 + "thavma:desiderium": 8, + "thavma:metallum": 16, + "thavma:vacuos": 2 }, "minecraft:iron_axe": { - "thavma:herba": 2, "thavma:instrumentum": 3, "thavma:metallum": 24 }, @@ -938,12 +962,12 @@ "thavma:praemunio": 4 }, "minecraft:iron_hoe": { - "thavma:herba": 2, "thavma:instrumentum": 3, "thavma:metallum": 16 }, "minecraft:iron_horse_armor": { - "thavma:metallum": 56, + "thavma:bestia": 8, + "thavma:metallum": 16, "thavma:praemunio": 6 }, "minecraft:iron_leggings": { @@ -951,18 +975,15 @@ "thavma:praemunio": 10 }, "minecraft:iron_pickaxe": { - "thavma:herba": 2, "thavma:instrumentum": 3, "thavma:metallum": 24 }, "minecraft:iron_shovel": { - "thavma:herba": 2, "thavma:instrumentum": 3, "thavma:metallum": 8 }, "minecraft:iron_sword": { - "thavma:herba": 1, - "thavma:instrumentum": 3, + "thavma:aversio": 3, "thavma:metallum": 16 }, "minecraft:jungle_button": { @@ -996,29 +1017,29 @@ "thavma:herba": 6 }, "minecraft:leather_boots": { - "thavma:corpus": 12, + "thavma:bestia": 32, "thavma:praemunio": 2 }, "minecraft:leather_chestplate": { - "thavma:corpus": 24, + "thavma:bestia": 64, "thavma:praemunio": 6 }, "minecraft:leather_helmet": { - "thavma:corpus": 15, + "thavma:bestia": 40, "thavma:praemunio": 2 }, "minecraft:leather_horse_armor": { - "thavma:corpus": 21, + "thavma:bestia": 16, "thavma:praemunio": 4 }, "minecraft:leather_leggings": { - "thavma:corpus": 21, + "thavma:bestia": 56, "thavma:praemunio": 4 }, "minecraft:mace": { - "thavma:aether": 6, - "thavma:instrumentum": 6, - "thavma:metallum": 16 + "thavma:aer": 8, + "thavma:metallum": 16, + "thavma:motus": 8 }, "minecraft:mangrove_button": { "thavma:herba": 2 @@ -1051,52 +1072,55 @@ "thavma:herba": 6 }, "minecraft:mossy_cobblestone": { - "thavma:herba": 1, + "thavma:herba": 2, "thavma:terra": 2 }, "minecraft:mossy_cobblestone_slab": { + "thavma:herba": 1, "thavma:terra": 1 }, "minecraft:mossy_cobblestone_stairs": { - "thavma:herba": 1, + "thavma:herba": 2, "thavma:terra": 2 }, "minecraft:mossy_cobblestone_wall": { - "thavma:herba": 1, + "thavma:herba": 2, "thavma:terra": 2 }, "minecraft:mossy_stone_brick_slab": { + "thavma:herba": 1, "thavma:terra": 1 }, "minecraft:mossy_stone_brick_stairs": { - "thavma:herba": 1, + "thavma:herba": 2, "thavma:terra": 2 }, "minecraft:mossy_stone_brick_wall": { - "thavma:herba": 1, + "thavma:herba": 2, "thavma:terra": 2 }, "minecraft:mossy_stone_bricks": { - "thavma:herba": 1, + "thavma:herba": 2, "thavma:terra": 2 }, "minecraft:mud": { "thavma:aqua": 1, - "thavma:terra": 2 + "thavma:terra": 1 }, "minecraft:mud_brick_slab": { + "thavma:herba": 1, "thavma:terra": 1 }, "minecraft:mud_brick_stairs": { - "thavma:aqua": 1, + "thavma:herba": 2, "thavma:terra": 2 }, "minecraft:mud_brick_wall": { - "thavma:aqua": 1, + "thavma:herba": 2, "thavma:terra": 2 }, "minecraft:mud_bricks": { - "thavma:aqua": 1, + "thavma:herba": 2, "thavma:terra": 2 }, "minecraft:nether_brick": { @@ -1128,43 +1152,43 @@ "thavma:ignis": 2 }, "minecraft:netherite_axe": { - "thavma:herba": 2, + "thavma:desiderium": 24, "thavma:instrumentum": 6, "thavma:metallum": 48, "thavma:tenebrae": 12 }, "minecraft:netherite_boots": { - "thavma:metallum": 16, + "thavma:desiderium": 32, + "thavma:metallum": 32, "thavma:praemunio": 9, - "thavma:tenebrae": 4, - "thavma:vitreus": 32 + "thavma:tenebrae": 4 }, "minecraft:netherite_chestplate": { - "thavma:metallum": 16, + "thavma:desiderium": 64, + "thavma:metallum": 64, "thavma:praemunio": 19, - "thavma:tenebrae": 4, - "thavma:vitreus": 64 + "thavma:tenebrae": 4 }, "minecraft:netherite_helmet": { - "thavma:metallum": 16, + "thavma:desiderium": 40, + "thavma:metallum": 40, "thavma:praemunio": 9, - "thavma:tenebrae": 4, - "thavma:vitreus": 40 + "thavma:tenebrae": 4 }, "minecraft:netherite_hoe": { - "thavma:herba": 2, + "thavma:desiderium": 16, "thavma:instrumentum": 6, "thavma:metallum": 32, "thavma:tenebrae": 8 }, "minecraft:netherite_leggings": { - "thavma:metallum": 16, + "thavma:desiderium": 56, + "thavma:metallum": 56, "thavma:praemunio": 15, - "thavma:tenebrae": 4, - "thavma:vitreus": 56 + "thavma:tenebrae": 4 }, "minecraft:netherite_pickaxe": { - "thavma:herba": 2, + "thavma:desiderium": 24, "thavma:instrumentum": 6, "thavma:metallum": 48, "thavma:tenebrae": 12 @@ -1175,14 +1199,14 @@ "thavma:terra": 2 }, "minecraft:netherite_shovel": { - "thavma:herba": 2, + "thavma:desiderium": 8, "thavma:instrumentum": 6, "thavma:metallum": 16, "thavma:tenebrae": 4 }, "minecraft:netherite_sword": { - "thavma:herba": 1, - "thavma:instrumentum": 6, + "thavma:aversio": 6, + "thavma:desiderium": 16, "thavma:metallum": 32, "thavma:tenebrae": 8 }, @@ -1217,25 +1241,28 @@ "thavma:herba": 6 }, "minecraft:oxidized_chiseled_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:oxidized_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:oxidized_cut_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:oxidized_cut_copper_slab": { - "thavma:metallum": 18 + "thavma:metallum": 18, + "thavma:permutatio": 18 }, "minecraft:oxidized_cut_copper_stairs": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:packed_mud": { - "thavma:aqua": 1, "thavma:herba": 2, - "thavma:terra": 2, - "thavma:victus": 2 + "thavma:terra": 2 }, "minecraft:paper": { "thavma:cognitio": 1, @@ -1337,11 +1364,11 @@ "thavma:terra": 2 }, "minecraft:popped_chorus_fruit": { - "thavma:herba": 2, - "thavma:tenebrae": 2 + "thavma:alienis": 2, + "thavma:herba": 2 }, "minecraft:powder_snow_bucket": { - "thavma:aqua": 2 + "thavma:gelum": 2 }, "minecraft:prismarine": { "thavma:aqua": 4, @@ -1352,21 +1379,21 @@ "thavma:terra": 4 }, "minecraft:prismarine_brick_stairs": { - "thavma:aqua": 9, - "thavma:terra": 9 + "thavma:aqua": 8, + "thavma:terra": 8 }, "minecraft:prismarine_bricks": { - "thavma:aqua": 9, - "thavma:terra": 9 + "thavma:aqua": 8, + "thavma:terra": 8 }, "minecraft:prismarine_crystals": { - "thavma:aqua": 1, - "thavma:lux": 1, - "thavma:vitreus": 2 + "thavma:aqua": 4, + "thavma:lux": 2, + "thavma:vitreus": 4 }, "minecraft:prismarine_shard": { - "thavma:aqua": 1, - "thavma:terra": 1 + "thavma:aqua": 2, + "thavma:terra": 2 }, "minecraft:prismarine_slab": { "thavma:aqua": 2, @@ -1381,16 +1408,16 @@ "thavma:terra": 4 }, "minecraft:purpur_block": { - "thavma:herba": 2, - "thavma:tenebrae": 2 + "thavma:alienis": 2, + "thavma:herba": 2 }, "minecraft:purpur_slab": { - "thavma:herba": 1, - "thavma:tenebrae": 1 + "thavma:alienis": 1, + "thavma:herba": 1 }, "minecraft:purpur_stairs": { - "thavma:herba": 2, - "thavma:tenebrae": 2 + "thavma:alienis": 2, + "thavma:herba": 2 }, "minecraft:quartz_block": { "thavma:ignis": 4, @@ -1405,60 +1432,55 @@ "thavma:vitreus": 16 }, "minecraft:red_nether_brick_slab": { - "thavma:herba": 2, - "thavma:ignis": 3, + "thavma:herba": 1, + "thavma:ignis": 1, "thavma:terra": 1 }, "minecraft:red_nether_brick_stairs": { - "thavma:herba": 4, - "thavma:ignis": 6, + "thavma:herba": 2, + "thavma:ignis": 2, "thavma:terra": 2 }, "minecraft:red_nether_brick_wall": { - "thavma:herba": 4, - "thavma:ignis": 6, + "thavma:herba": 2, + "thavma:ignis": 2, "thavma:terra": 2 }, "minecraft:red_nether_bricks": { - "thavma:herba": 4, - "thavma:ignis": 6, + "thavma:herba": 2, + "thavma:ignis": 2, "thavma:terra": 2 }, "minecraft:red_sandstone": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:red_sandstone_slab": { - "thavma:terra": 4 + "thavma:terra": 2 }, "minecraft:red_sandstone_stairs": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:red_sandstone_wall": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:rotten_flesh": { - "thavma:corpus": 2, - "thavma:hostilis": 2 + "thavma:exanimis": 2, + "thavma:humanus": 2 }, "minecraft:sandstone": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:sandstone_slab": { - "thavma:terra": 4 + "thavma:terra": 2 }, "minecraft:sandstone_stairs": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:sandstone_wall": { - "thavma:terra": 8 - }, - "minecraft:sea_lantern": { - "thavma:aqua": 41, - "thavma:lux": 5, - "thavma:terra": 36, - "thavma:vitreus": 10 + "thavma:terra": 4 }, "minecraft:short_grass": { + "thavma:aer": 1, "thavma:herba": 1 }, "minecraft:smooth_quartz": { @@ -1474,31 +1496,31 @@ "thavma:vitreus": 16 }, "minecraft:smooth_red_sandstone": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:smooth_red_sandstone_slab": { - "thavma:terra": 4 + "thavma:terra": 2 }, "minecraft:smooth_red_sandstone_stairs": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:smooth_sandstone": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:smooth_sandstone_slab": { - "thavma:terra": 4 + "thavma:terra": 2 }, "minecraft:smooth_sandstone_stairs": { - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:snow": { - "thavma:aqua": 1 + "thavma:gelum": 1 }, "minecraft:snow_block": { - "thavma:aqua": 4 + "thavma:gelum": 4 }, "minecraft:snowball": { - "thavma:aqua": 1 + "thavma:gelum": 1 }, "minecraft:spruce_button": { "thavma:herba": 2 @@ -1534,9 +1556,8 @@ "thavma:terra": 2 }, "minecraft:stone_axe": { - "thavma:herba": 2, "thavma:instrumentum": 2, - "thavma:terra": 6 + "thavma:terra": 12 }, "minecraft:stone_brick_slab": { "thavma:terra": 1 @@ -1554,22 +1575,19 @@ "thavma:terra": 2 }, "minecraft:stone_hoe": { - "thavma:herba": 2, "thavma:instrumentum": 2, - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:stone_pickaxe": { - "thavma:herba": 2, "thavma:instrumentum": 2, - "thavma:terra": 6 + "thavma:terra": 12 }, "minecraft:stone_pressure_plate": { "thavma:terra": 4 }, "minecraft:stone_shovel": { - "thavma:herba": 2, "thavma:instrumentum": 2, - "thavma:terra": 2 + "thavma:terra": 4 }, "minecraft:stone_slab": { "thavma:terra": 1 @@ -1578,41 +1596,42 @@ "thavma:terra": 2 }, "minecraft:stone_sword": { - "thavma:herba": 1, - "thavma:instrumentum": 2, - "thavma:terra": 4 + "thavma:aversio": 2, + "thavma:terra": 8 }, "minecraft:sugar": { "thavma:herba": 2, "thavma:victus": 1 }, "minecraft:sugar_cane": { + "thavma:aer": 1, "thavma:aqua": 1, "thavma:herba": 2 }, "minecraft:tall_grass": { + "thavma:aer": 1, "thavma:herba": 1 }, "minecraft:tnt": { - "thavma:alkimia": 10, - "thavma:ignis": 20, - "thavma:terra": 13 + "thavma:potentia": 20, + "thavma:terra": 1 }, "minecraft:torch": { "thavma:lux": 4 }, "minecraft:totem_of_undying": { - "thavma:aether": 8, + "thavma:desiderium": 8, + "thavma:praecantatio": 8, "thavma:victus": 16 }, "minecraft:trident": { "thavma:aqua": 8, - "thavma:metallum": 12 + "thavma:metallum": 12, + "thavma:motus": 8 }, "minecraft:tripwire_hook": { - "thavma:herba": 2, - "thavma:machina": 2, - "thavma:metallum": 4 + "thavma:metallum": 2, + "thavma:vinculum": 2 }, "minecraft:tuff": { "thavma:terra": 2 @@ -1640,12 +1659,12 @@ }, "minecraft:turtle_helmet": { "thavma:aqua": 5, - "thavma:corpus": 10, - "thavma:praemunio": 5 + "thavma:bestia": 10, + "thavma:praemunio": 4 }, "minecraft:turtle_scute": { "thavma:aqua": 1, - "thavma:corpus": 2, + "thavma:bestia": 2, "thavma:praemunio": 1 }, "minecraft:warped_button": { @@ -1689,99 +1708,123 @@ "thavma:ignis": 6 }, "minecraft:waxed_chiseled_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_copper_block": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_cut_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_cut_copper_slab": { - "thavma:metallum": 18 + "thavma:metallum": 18, + "thavma:permutatio": 18 }, "minecraft:waxed_cut_copper_stairs": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_exposed_chiseled_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_exposed_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_exposed_cut_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_exposed_cut_copper_slab": { - "thavma:metallum": 18 + "thavma:metallum": 18, + "thavma:permutatio": 18 }, "minecraft:waxed_exposed_cut_copper_stairs": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_oxidized_chiseled_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_oxidized_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_oxidized_cut_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_oxidized_cut_copper_slab": { - "thavma:metallum": 18 + "thavma:metallum": 18, + "thavma:permutatio": 18 }, "minecraft:waxed_oxidized_cut_copper_stairs": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_weathered_chiseled_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_weathered_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_weathered_cut_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:waxed_weathered_cut_copper_slab": { - "thavma:metallum": 18 + "thavma:metallum": 18, + "thavma:permutatio": 18 }, "minecraft:waxed_weathered_cut_copper_stairs": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:weathered_chiseled_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:weathered_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:weathered_cut_copper": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:weathered_cut_copper_slab": { - "thavma:metallum": 18 + "thavma:metallum": 18, + "thavma:permutatio": 18 }, "minecraft:weathered_cut_copper_stairs": { - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36 }, "minecraft:wind_charge": { - "thavma:aether": 4, - "thavma:alkimia": 4, - "thavma:instrumentum": 2 + "thavma:aer": 2, + "thavma:motus": 1 }, "minecraft:wolf_armor": { - "thavma:corpus": 12, + "thavma:bestia": 8, "thavma:praemunio": 6 }, "minecraft:wooden_axe": { - "thavma:herba": 8, + "thavma:herba": 12, "thavma:instrumentum": 1 }, "minecraft:wooden_hoe": { - "thavma:herba": 6, + "thavma:herba": 8, "thavma:instrumentum": 1 }, "minecraft:wooden_pickaxe": { - "thavma:herba": 8, + "thavma:herba": 12, "thavma:instrumentum": 1 }, "minecraft:wooden_shovel": { @@ -1789,8 +1832,17 @@ "thavma:instrumentum": 1 }, "minecraft:wooden_sword": { - "thavma:herba": 5, - "thavma:instrumentum": 1 + "thavma:aversio": 1, + "thavma:herba": 8 + }, + "thavma:aer_infused_deepslate": { + "thavma:aer": 4 + }, + "thavma:aer_infused_stone": { + "thavma:aer": 4 + }, + "thavma:aer_shard": { + "thavma:aer": 4 }, "thavma:aether_infused_deepslate": { "thavma:aether": 4 @@ -1802,18 +1854,18 @@ "thavma:aether": 4 }, "thavma:apprentice_boots": { - "thavma:aether": 4, "thavma:fabrico": 16, + "thavma:praecantatio": 4, "thavma:praemunio": 2 }, "thavma:apprentice_chestplate": { - "thavma:aether": 8, "thavma:fabrico": 32, + "thavma:praecantatio": 8, "thavma:praemunio": 2 }, "thavma:apprentice_leggings": { - "thavma:aether": 7, "thavma:fabrico": 28, + "thavma:praecantatio": 7, "thavma:praemunio": 2 }, "thavma:aqua_infused_deepslate": { @@ -1826,52 +1878,55 @@ "thavma:aqua": 4 }, "thavma:arcane_lens": { - "thavma:aether": 4, + "thavma:desiderium": 32, "thavma:metallum": 16, - "thavma:vitreus": 1 + "thavma:praecantatio": 2, + "thavma:vitreus": 2 }, "thavma:arcane_workbench": { - "thavma:aether": 2, - "thavma:fabrico": 8, - "thavma:herba": 8 + "thavma:fabrico": 12, + "thavma:herba": 4, + "thavma:praecantatio": 2 }, "thavma:cracked_elemental_stone": { - "thavma:aether": 1, + "thavma:praecantatio": 1, "thavma:terra": 4 }, "thavma:crucible": { - "thavma:aether": 2, "thavma:alkimia": 8, - "thavma:metallum": 56 + "thavma:metallum": 56, + "thavma:praecantatio": 2 }, "thavma:elemental_core": { - "thavma:aether": 2, + "thavma:praecantatio": 2, "thavma:terra": 6 }, "thavma:elemental_stone": { - "thavma:aether": 1, + "thavma:praecantatio": 1, "thavma:terra": 4 }, "thavma:elemental_stone_bricks": { - "thavma:aether": 1, + "thavma:praecantatio": 1, "thavma:terra": 4 }, "thavma:elemental_stone_slab": { "thavma:terra": 2 }, "thavma:elemental_stone_stairs": { - "thavma:aether": 1, + "thavma:praecantatio": 1, "thavma:terra": 4 }, "thavma:eternal_flame": { "thavma:ignis": 8, - "thavma:lux": 12 + "thavma:lux": 12, + "thavma:potentia": 8 }, "thavma:fabric": { - "thavma:aether": 1, - "thavma:fabrico": 4 + "thavma:fabrico": 4, + "thavma:praecantatio": 1 }, "thavma:gold_plating": { + "thavma:desiderium": 16, "thavma:metallum": 8 }, "thavma:greatwood_planks": { @@ -1896,34 +1951,35 @@ "thavma:metallum": 16 }, "thavma:orichalcum_block": { - "thavma:instrumentum": 36, - "thavma:metallum": 36 + "thavma:metallum": 36, + "thavma:permutatio": 36, + "thavma:praecantatio": 36 }, "thavma:orichalcum_ingot": { "thavma:instrumentum": 4, - "thavma:metallum": 4 + "thavma:metallum": 4, + "thavma:permutatio": 4 }, "thavma:orichalcum_plating": { "thavma:instrumentum": 8, - "thavma:metallum": 8 + "thavma:metallum": 8, + "thavma:permutatio": 8 }, "thavma:research_table": { - "thavma:aether": 2, - "thavma:herba": 12 + "thavma:herba": 12, + "thavma:praecantatio": 2 }, "thavma:rotten_brain": { - "thavma:cognitio": 12, - "thavma:corpus": 2, - "thavma:hostilis": 2 + "thavma:cognitio": 16, + "thavma:exanimis": 8 }, "thavma:sealing_jar": { - "thavma:aether": 2, - "thavma:alkimia": 2, + "thavma:praecantatio": 2, + "thavma:vacuos": 2, "thavma:vitreus": 4 }, "thavma:table": { - "thavma:fabrico": 2, - "thavma:herba": 11 + "thavma:herba": 12 }, "thavma:terra_infused_deepslate": { "thavma:terra": 4 @@ -1935,72 +1991,66 @@ "thavma:terra": 4 }, "thavma:thavmite_axe": { - "thavma:aether": 12, - "thavma:herba": 2, "thavma:instrumentum": 4, - "thavma:metallum": 24 + "thavma:metallum": 24, + "thavma:praecantatio": 12 }, "thavma:thavmite_block": { - "thavma:aether": 36, - "thavma:metallum": 72 + "thavma:metallum": 72, + "thavma:praecantatio": 36 }, "thavma:thavmite_boots": { - "thavma:aether": 16, "thavma:metallum": 32, + "thavma:praecantatio": 16, "thavma:praemunio": 5 }, "thavma:thavmite_chestplate": { - "thavma:aether": 32, "thavma:metallum": 64, + "thavma:praecantatio": 32, "thavma:praemunio": 13 }, "thavma:thavmite_hammer": { - "thavma:aether": 24, - "thavma:herba": 1, "thavma:instrumentum": 4, - "thavma:metallum": 48 + "thavma:metallum": 48, + "thavma:praecantatio": 24 }, "thavma:thavmite_helmet": { - "thavma:aether": 20, "thavma:metallum": 40, + "thavma:praecantatio": 20, "thavma:praemunio": 7 }, "thavma:thavmite_hoe": { - "thavma:aether": 8, - "thavma:herba": 2, "thavma:instrumentum": 4, - "thavma:metallum": 16 + "thavma:metallum": 16, + "thavma:praecantatio": 8 }, "thavma:thavmite_ingot": { - "thavma:aether": 4, - "thavma:metallum": 8 + "thavma:metallum": 8, + "thavma:praecantatio": 4 }, "thavma:thavmite_leggings": { - "thavma:aether": 28, "thavma:metallum": 56, + "thavma:praecantatio": 28, "thavma:praemunio": 11 }, "thavma:thavmite_pickaxe": { - "thavma:aether": 12, - "thavma:herba": 2, "thavma:instrumentum": 4, - "thavma:metallum": 24 + "thavma:metallum": 24, + "thavma:praecantatio": 12 }, "thavma:thavmite_plating": { - "thavma:aether": 8, - "thavma:metallum": 16 + "thavma:metallum": 16, + "thavma:praecantatio": 8 }, "thavma:thavmite_shovel": { - "thavma:aether": 4, - "thavma:herba": 2, "thavma:instrumentum": 4, - "thavma:metallum": 8 + "thavma:metallum": 8, + "thavma:praecantatio": 4 }, "thavma:thavmite_sword": { - "thavma:aether": 8, - "thavma:herba": 1, - "thavma:instrumentum": 4, - "thavma:metallum": 16 + "thavma:aversio": 4, + "thavma:metallum": 16, + "thavma:praecantatio": 8 } } } \ No newline at end of file diff --git a/src/generated/resources/data/thavma/data_maps/thavma/aspect/aspect_relations.json b/src/generated/resources/data/thavma/data_maps/thavma/aspect/aspect_relations.json deleted file mode 100644 index e28c797b..00000000 --- a/src/generated/resources/data/thavma/data_maps/thavma/aspect/aspect_relations.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "values": { - "thavma:aether": [ - "thavma:alkimia", - "thavma:cognitio", - "thavma:tenebrae" - ], - "thavma:alkimia": [], - "thavma:aqua": [ - "thavma:herba", - "thavma:victus", - "thavma:alkimia" - ], - "thavma:civilis": [], - "thavma:cognitio": [ - "thavma:civilis" - ], - "thavma:corpus": [], - "thavma:fabrico": [ - "thavma:cognitio", - "thavma:vas", - "thavma:ornatus", - "thavma:praemunio" - ], - "thavma:herba": [], - "thavma:hostilis": [], - "thavma:ignis": [ - "thavma:metallum", - "thavma:lux" - ], - "thavma:instrumentum": [ - "thavma:fabrico", - "thavma:machina" - ], - "thavma:lux": [], - "thavma:machina": [], - "thavma:metallum": [ - "thavma:instrumentum", - "thavma:praemunio", - "thavma:machina" - ], - "thavma:ornatus": [ - "thavma:civilis" - ], - "thavma:praemunio": [], - "thavma:tenebrae": [ - "thavma:hostilis" - ], - "thavma:terra": [ - "thavma:vitreus", - "thavma:metallum", - "thavma:herba", - "thavma:victus" - ], - "thavma:vas": [], - "thavma:victus": [ - "thavma:hostilis", - "thavma:civilis", - "thavma:corpus" - ], - "thavma:vitreus": [ - "thavma:ornatus", - "thavma:instrumentum", - "thavma:praemunio" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/thavma/loot_table/blocks/aer_infused_deepslate.json b/src/generated/resources/data/thavma/loot_table/blocks/aer_infused_deepslate.json new file mode 100644 index 00000000..62095c94 --- /dev/null +++ b/src/generated/resources/data/thavma/loot_table/blocks/aer_infused_deepslate.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "thavma:aer_infused_deepslate" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "thavma:aer_shard" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "thavma:blocks/aer_infused_deepslate" +} \ No newline at end of file diff --git a/src/generated/resources/data/thavma/loot_table/blocks/aer_infused_stone.json b/src/generated/resources/data/thavma/loot_table/blocks/aer_infused_stone.json new file mode 100644 index 00000000..b8955056 --- /dev/null +++ b/src/generated/resources/data/thavma/loot_table/blocks/aer_infused_stone.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "thavma:aer_infused_stone" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "thavma:aer_shard" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "thavma:blocks/aer_infused_stone" +} \ No newline at end of file diff --git a/src/generated/resources/data/thavma/recipe/aer_shard_blasting.json b/src/generated/resources/data/thavma/recipe/aer_shard_blasting.json new file mode 100644 index 00000000..46775f8f --- /dev/null +++ b/src/generated/resources/data/thavma/recipe/aer_shard_blasting.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 1.0, + "ingredient": [ + { + "item": "thavma:aer_infused_stone" + }, + { + "item": "thavma:aer_infused_deepslate" + } + ], + "result": { + "count": 1, + "id": "thavma:aer_shard" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/thavma/recipe/aer_shard_smelting.json b/src/generated/resources/data/thavma/recipe/aer_shard_smelting.json new file mode 100644 index 00000000..8a19b547 --- /dev/null +++ b/src/generated/resources/data/thavma/recipe/aer_shard_smelting.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 200, + "experience": 1.0, + "ingredient": [ + { + "item": "thavma:aer_infused_stone" + }, + { + "item": "thavma:aer_infused_deepslate" + } + ], + "result": { + "count": 1, + "id": "thavma:aer_shard" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/thavma/recipe/arcane_levitator_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/arcane_levitator_arcane_workbench.json index ed44aa41..3c0352a1 100644 --- a/src/generated/resources/data/thavma/recipe/arcane_levitator_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/arcane_levitator_arcane_workbench.json @@ -1,12 +1,13 @@ { "type": "thavma:arcane_workbench", "aspects": { - "thavma:aether": 8, - "thavma:terra": 8 + "thavma:aer": 12, + "thavma:aether": 4, + "thavma:terra": 4 }, "key": { "a": { - "item": "thavma:terra_shard" + "item": "thavma:aer_shard" }, "c": { "item": "thavma:elemental_core" diff --git a/src/generated/resources/data/thavma/recipe/elemental_core_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/elemental_core_arcane_workbench.json index 4ca6a4a1..fddd71c9 100644 --- a/src/generated/resources/data/thavma/recipe/elemental_core_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/elemental_core_arcane_workbench.json @@ -1,6 +1,7 @@ { "type": "thavma:arcane_workbench", "aspects": { + "thavma:aer": 8, "thavma:aether": 8, "thavma:aqua": 8, "thavma:ignis": 8, diff --git a/src/generated/resources/data/thavma/recipe/elemental_stone_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/elemental_stone_arcane_workbench.json index 40fe2e16..8488a20b 100644 --- a/src/generated/resources/data/thavma/recipe/elemental_stone_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/elemental_stone_arcane_workbench.json @@ -1,6 +1,7 @@ { "type": "thavma:arcane_workbench", "aspects": { + "thavma:aer": 16, "thavma:aether": 16, "thavma:aqua": 16, "thavma:ignis": 16, diff --git a/src/generated/resources/data/thavma/recipe/elemental_stone_bricks.json b/src/generated/resources/data/thavma/recipe/elemental_stone_bricks.json index 95ca4a4d..3a40ccc9 100644 --- a/src/generated/resources/data/thavma/recipe/elemental_stone_bricks.json +++ b/src/generated/resources/data/thavma/recipe/elemental_stone_bricks.json @@ -11,7 +11,7 @@ "ss" ], "result": { - "count": 4, + "count": 1, "id": "thavma:elemental_stone_bricks" } } \ No newline at end of file diff --git a/src/generated/resources/data/thavma/recipe/eternal_flame_crucible.json b/src/generated/resources/data/thavma/recipe/eternal_flame_crucible.json index abb1fed5..5e665160 100644 --- a/src/generated/resources/data/thavma/recipe/eternal_flame_crucible.json +++ b/src/generated/resources/data/thavma/recipe/eternal_flame_crucible.json @@ -2,7 +2,8 @@ "type": "thavma:crucible", "aspects": { "thavma:ignis": 8, - "thavma:lux": 8 + "thavma:lux": 8, + "thavma:potentia": 8 }, "catalyst": { "item": "minecraft:glowstone_dust" diff --git a/src/generated/resources/data/thavma/recipe/fabric_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/fabric_arcane_workbench.json index 08bb880d..11b4bbe0 100644 --- a/src/generated/resources/data/thavma/recipe/fabric_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/fabric_arcane_workbench.json @@ -1,6 +1,7 @@ { "type": "thavma:arcane_workbench", "aspects": { + "thavma:aer": 8, "thavma:aether": 8, "thavma:aqua": 8, "thavma:ignis": 8, diff --git a/src/generated/resources/data/thavma/recipe/focus_enderchest_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/focus_enderchest_arcane_workbench.json index b6dc91d7..e9ef6a10 100644 --- a/src/generated/resources/data/thavma/recipe/focus_enderchest_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/focus_enderchest_arcane_workbench.json @@ -1,7 +1,7 @@ { "type": "thavma:arcane_workbench", "aspects": { - "thavma:aether": 12, + "thavma:aer": 12, "thavma:terra": 12 }, "key": { diff --git a/src/generated/resources/data/thavma/recipe/focus_enderpearl_infusion.json b/src/generated/resources/data/thavma/recipe/focus_enderpearl_infusion.json index dc8d0710..01137e24 100644 --- a/src/generated/resources/data/thavma/recipe/focus_enderpearl_infusion.json +++ b/src/generated/resources/data/thavma/recipe/focus_enderpearl_infusion.json @@ -1,9 +1,9 @@ { "type": "thavma:infusion", "aspects": { - "thavma:aether": 20, + "thavma:alienis": 16, "thavma:instrumentum": 16, - "thavma:tenebrae": 16 + "thavma:motus": 32 }, "base": { "item": "minecraft:ender_pearl" diff --git a/src/generated/resources/data/thavma/recipe/focus_exchange_infusion.json b/src/generated/resources/data/thavma/recipe/focus_exchange_infusion.json index a683c8d8..873ac866 100644 --- a/src/generated/resources/data/thavma/recipe/focus_exchange_infusion.json +++ b/src/generated/resources/data/thavma/recipe/focus_exchange_infusion.json @@ -2,7 +2,7 @@ "type": "thavma:infusion", "aspects": { "thavma:instrumentum": 16, - "thavma:ornatus": 40 + "thavma:permutatio": 40 }, "base": { "item": "minecraft:quartz_block" diff --git a/src/generated/resources/data/thavma/recipe/goggles_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/goggles_arcane_workbench.json index fd349aa0..85638baf 100644 --- a/src/generated/resources/data/thavma/recipe/goggles_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/goggles_arcane_workbench.json @@ -1,6 +1,7 @@ { "type": "thavma:arcane_workbench", "aspects": { + "thavma:aer": 4, "thavma:aether": 4, "thavma:aqua": 4, "thavma:ignis": 4, diff --git a/src/generated/resources/data/thavma/recipe/gold_plating_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/gold_plating_arcane_workbench.json index e9ba8ef6..6517a812 100644 --- a/src/generated/resources/data/thavma/recipe/gold_plating_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/gold_plating_arcane_workbench.json @@ -1,6 +1,7 @@ { "type": "thavma:arcane_workbench", "aspects": { + "thavma:aer": 8, "thavma:aether": 8, "thavma:aqua": 8, "thavma:ignis": 8, diff --git a/src/generated/resources/data/thavma/recipe/greatwood_core_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/greatwood_core_arcane_workbench.json index 003ee5b6..f6c84741 100644 --- a/src/generated/resources/data/thavma/recipe/greatwood_core_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/greatwood_core_arcane_workbench.json @@ -1,6 +1,7 @@ { "type": "thavma:arcane_workbench", "aspects": { + "thavma:aer": 8, "thavma:aether": 8, "thavma:aqua": 8, "thavma:ignis": 8, diff --git a/src/generated/resources/data/thavma/recipe/hungry_chest_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/hungry_chest_arcane_workbench.json index fa2c1e67..cce3b2cf 100644 --- a/src/generated/resources/data/thavma/recipe/hungry_chest_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/hungry_chest_arcane_workbench.json @@ -1,8 +1,8 @@ { "type": "thavma:arcane_workbench", "aspects": { - "thavma:aether": 4, - "thavma:terra": 8 + "thavma:aer": 8, + "thavma:aether": 4 }, "key": { "t": { diff --git a/src/generated/resources/data/thavma/recipe/orichalcum_plating_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/orichalcum_plating_arcane_workbench.json index fb6f5faf..be5ec803 100644 --- a/src/generated/resources/data/thavma/recipe/orichalcum_plating_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/orichalcum_plating_arcane_workbench.json @@ -1,6 +1,7 @@ { "type": "thavma:arcane_workbench", "aspects": { + "thavma:aer": 4, "thavma:aether": 4, "thavma:aqua": 4, "thavma:ignis": 4, diff --git a/src/generated/resources/data/thavma/recipe/rune_arcane_workbench.json b/src/generated/resources/data/thavma/recipe/rune_arcane_workbench.json index 1074812d..3d00df91 100644 --- a/src/generated/resources/data/thavma/recipe/rune_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/rune_arcane_workbench.json @@ -1,6 +1,7 @@ { "type": "thavma:arcane_workbench", "aspects": { + "thavma:aer": 8, "thavma:aether": 8, "thavma:aqua": 8, "thavma:ignis": 8, diff --git a/src/generated/resources/data/thavma/recipe/silverwood_core_infusion.json b/src/generated/resources/data/thavma/recipe/silverwood_core_infusion.json index b8166fb0..edda876e 100644 --- a/src/generated/resources/data/thavma/recipe/silverwood_core_infusion.json +++ b/src/generated/resources/data/thavma/recipe/silverwood_core_infusion.json @@ -1,7 +1,7 @@ { "type": "thavma:infusion", "aspects": { - "thavma:aether": 16 + "thavma:praecantatio": 16 }, "base": { "item": "thavma:silverwood_log" diff --git a/src/generated/resources/data/thavma/recipe/thavmite_ingot_crucible.json b/src/generated/resources/data/thavma/recipe/thavmite_ingot_crucible.json index dcfc3d9a..d34116d0 100644 --- a/src/generated/resources/data/thavma/recipe/thavmite_ingot_crucible.json +++ b/src/generated/resources/data/thavma/recipe/thavmite_ingot_crucible.json @@ -1,7 +1,7 @@ { "type": "thavma:crucible", "aspects": { - "thavma:aether": 4 + "thavma:praecantatio": 4 }, "catalyst": { "item": "minecraft:iron_ingot" diff --git a/src/generated/resources/data/thavma/recipe/thavmite_katana_infusion.json b/src/generated/resources/data/thavma/recipe/thavmite_katana_infusion.json index fdd64853..54831af4 100644 --- a/src/generated/resources/data/thavma/recipe/thavmite_katana_infusion.json +++ b/src/generated/resources/data/thavma/recipe/thavmite_katana_infusion.json @@ -1,8 +1,8 @@ { "type": "thavma:infusion", "aspects": { - "thavma:aether": 16, - "thavma:instrumentum": 16 + "thavma:aversio": 16, + "thavma:praecantatio": 16 }, "base": { "item": "thavma:thavmite_sword" diff --git a/src/generated/resources/data/thavma/recipe/thavmite_plating_infusion.json b/src/generated/resources/data/thavma/recipe/thavmite_plating_infusion.json index 954d0951..212d70a6 100644 --- a/src/generated/resources/data/thavma/recipe/thavmite_plating_infusion.json +++ b/src/generated/resources/data/thavma/recipe/thavmite_plating_infusion.json @@ -1,7 +1,7 @@ { "type": "thavma:infusion", "aspects": { - "thavma:aether": 16 + "thavma:praecantatio": 16 }, "base": { "item": "thavma:thavmite_ingot" diff --git a/src/generated/resources/data/thavma/recipe/thavmite_vanguard_boots_infusion.json b/src/generated/resources/data/thavma/recipe/thavmite_vanguard_boots_infusion.json index 970a56cc..ec837704 100644 --- a/src/generated/resources/data/thavma/recipe/thavmite_vanguard_boots_infusion.json +++ b/src/generated/resources/data/thavma/recipe/thavmite_vanguard_boots_infusion.json @@ -1,7 +1,7 @@ { "type": "thavma:infusion", "aspects": { - "thavma:aether": 16, + "thavma:praecantatio": 16, "thavma:praemunio": 32 }, "base": { diff --git a/src/generated/resources/data/thavma/recipe/thavmite_vanguard_chestplate_infusion.json b/src/generated/resources/data/thavma/recipe/thavmite_vanguard_chestplate_infusion.json index 65c91e12..884c7e7e 100644 --- a/src/generated/resources/data/thavma/recipe/thavmite_vanguard_chestplate_infusion.json +++ b/src/generated/resources/data/thavma/recipe/thavmite_vanguard_chestplate_infusion.json @@ -1,7 +1,7 @@ { "type": "thavma:infusion", "aspects": { - "thavma:aether": 16, + "thavma:praecantatio": 16, "thavma:praemunio": 32 }, "base": { diff --git a/src/generated/resources/data/thavma/recipe/thavmite_vanguard_helmet_infusion.json b/src/generated/resources/data/thavma/recipe/thavmite_vanguard_helmet_infusion.json index 6b2d4fff..8b0792c5 100644 --- a/src/generated/resources/data/thavma/recipe/thavmite_vanguard_helmet_infusion.json +++ b/src/generated/resources/data/thavma/recipe/thavmite_vanguard_helmet_infusion.json @@ -1,7 +1,7 @@ { "type": "thavma:infusion", "aspects": { - "thavma:aether": 16, + "thavma:praecantatio": 16, "thavma:praemunio": 32 }, "base": { diff --git a/src/generated/resources/data/thavma/recipe/thavmite_vanguard_leggings_infusion.json b/src/generated/resources/data/thavma/recipe/thavmite_vanguard_leggings_infusion.json index 394d87d9..c95d7690 100644 --- a/src/generated/resources/data/thavma/recipe/thavmite_vanguard_leggings_infusion.json +++ b/src/generated/resources/data/thavma/recipe/thavmite_vanguard_leggings_infusion.json @@ -1,7 +1,7 @@ { "type": "thavma:infusion", "aspects": { - "thavma:aether": 16, + "thavma:praecantatio": 16, "thavma:praemunio": 32 }, "base": { diff --git a/src/generated/resources/data/thavma/tags/block/infused_stones.json b/src/generated/resources/data/thavma/tags/block/infused_stones.json index 86267856..cb5100c7 100644 --- a/src/generated/resources/data/thavma/tags/block/infused_stones.json +++ b/src/generated/resources/data/thavma/tags/block/infused_stones.json @@ -1,10 +1,12 @@ { "values": [ "thavma:ignis_infused_stone", + "thavma:aer_infused_stone", "thavma:terra_infused_stone", "thavma:aqua_infused_stone", "thavma:aether_infused_stone", "thavma:ignis_infused_deepslate", + "thavma:aer_infused_deepslate", "thavma:terra_infused_deepslate", "thavma:aqua_infused_deepslate", "thavma:aether_infused_deepslate" diff --git a/src/generated/resources/data/thavma/tags/item/infused_stones.json b/src/generated/resources/data/thavma/tags/item/infused_stones.json index 86267856..cb5100c7 100644 --- a/src/generated/resources/data/thavma/tags/item/infused_stones.json +++ b/src/generated/resources/data/thavma/tags/item/infused_stones.json @@ -1,10 +1,12 @@ { "values": [ "thavma:ignis_infused_stone", + "thavma:aer_infused_stone", "thavma:terra_infused_stone", "thavma:aqua_infused_stone", "thavma:aether_infused_stone", "thavma:ignis_infused_deepslate", + "thavma:aer_infused_deepslate", "thavma:terra_infused_deepslate", "thavma:aqua_infused_deepslate", "thavma:aether_infused_deepslate" diff --git a/src/generated/resources/data/thavma/tags/item/shards.json b/src/generated/resources/data/thavma/tags/item/shards.json index 9b3046d5..1b8a2205 100644 --- a/src/generated/resources/data/thavma/tags/item/shards.json +++ b/src/generated/resources/data/thavma/tags/item/shards.json @@ -1,6 +1,7 @@ { "values": [ "thavma:ignis_shard", + "thavma:aer_shard", "thavma:terra_shard", "thavma:aqua_shard", "thavma:aether_shard" diff --git a/src/generated/resources/data/thavma/thavma/research/entry/thavma/arcane_lens.json b/src/generated/resources/data/thavma/thavma/research/entry/thavma/arcane_lens.json index b1cf4745..95883011 100644 --- a/src/generated/resources/data/thavma/thavma/research/entry/thavma/arcane_lens.json +++ b/src/generated/resources/data/thavma/thavma/research/entry/thavma/arcane_lens.json @@ -15,7 +15,7 @@ "locked": true }, { - "aspect": "thavma:aether", + "aspect": "thavma:praecantatio", "broken": false, "indices": { "col": 4, diff --git a/src/generated/resources/data/thavma/thavma/research/entry/thavma/infusion.json b/src/generated/resources/data/thavma/thavma/research/entry/thavma/infusion.json index ca774a8a..a1fa98fe 100644 --- a/src/generated/resources/data/thavma/thavma/research/entry/thavma/infusion.json +++ b/src/generated/resources/data/thavma/thavma/research/entry/thavma/infusion.json @@ -13,7 +13,7 @@ "locked": true }, { - "aspect": "thavma:aether", + "aspect": "thavma:praecantatio", "broken": false, "indices": { "col": 4, diff --git a/src/generated/resources/data/thavma/thavma/research/entry/thavma/research_proficiency.json b/src/generated/resources/data/thavma/thavma/research/entry/thavma/research_proficiency.json index 382dde7e..8baf795f 100644 --- a/src/generated/resources/data/thavma/thavma/research/entry/thavma/research_proficiency.json +++ b/src/generated/resources/data/thavma/thavma/research/entry/thavma/research_proficiency.json @@ -4,7 +4,7 @@ "defaultKnown": false, "defaultResearchState": [ { - "aspect": "thavma:aether", + "aspect": "thavma:praecantatio", "broken": false, "indices": { "col": 0, diff --git a/src/generated/resources/data/thavma/thavma/research/entry/thavma/research_table.json b/src/generated/resources/data/thavma/thavma/research/entry/thavma/research_table.json index 1edfaf76..b05d2012 100644 --- a/src/generated/resources/data/thavma/thavma/research/entry/thavma/research_table.json +++ b/src/generated/resources/data/thavma/thavma/research/entry/thavma/research_table.json @@ -10,7 +10,7 @@ "defaultKnown": false, "defaultResearchState": [ { - "aspect": "thavma:aether", + "aspect": "thavma:praecantatio", "broken": false, "indices": { "col": 0, diff --git a/src/generated/resources/data/thavma/thavma/research/entry/thavma/technology.json b/src/generated/resources/data/thavma/thavma/research/entry/thavma/technology.json index 03f96e16..448ccb96 100644 --- a/src/generated/resources/data/thavma/thavma/research/entry/thavma/technology.json +++ b/src/generated/resources/data/thavma/thavma/research/entry/thavma/technology.json @@ -13,7 +13,7 @@ "locked": true }, { - "aspect": "thavma:civilis", + "aspect": "thavma:humanus", "broken": false, "indices": { "col": 4, diff --git a/src/generated/resources/data/thavma/thavma/research/entry/thavma/thavma.json b/src/generated/resources/data/thavma/thavma/research/entry/thavma/thavma.json index 8c91c2af..6f2e27ff 100644 --- a/src/generated/resources/data/thavma/thavma/research/entry/thavma/thavma.json +++ b/src/generated/resources/data/thavma/thavma/research/entry/thavma/thavma.json @@ -16,7 +16,7 @@ "locked": true }, { - "aspect": "thavma:aether", + "aspect": "thavma:praecantatio", "broken": false, "indices": { "col": 4, diff --git a/src/generated/resources/data/thavma/thavma/research/entry/thavma/wands.json b/src/generated/resources/data/thavma/thavma/research/entry/thavma/wands.json index 77ccd882..dbb56255 100644 --- a/src/generated/resources/data/thavma/thavma/research/entry/thavma/wands.json +++ b/src/generated/resources/data/thavma/thavma/research/entry/thavma/wands.json @@ -4,7 +4,7 @@ "defaultKnown": false, "defaultResearchState": [ { - "aspect": "thavma:aether", + "aspect": "thavma:praecantatio", "broken": false, "indices": { "col": 0, diff --git a/src/generated/resources/data/thavma/worldgen/configured_feature/ore_aer.json b/src/generated/resources/data/thavma/worldgen/configured_feature/ore_aer.json new file mode 100644 index 00000000..1c89d540 --- /dev/null +++ b/src/generated/resources/data/thavma/worldgen/configured_feature/ore_aer.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 7, + "targets": [ + { + "state": { + "Name": "thavma:aer_infused_stone" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "thavma:aer_infused_deepslate" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/thavma/worldgen/configured_feature/ore_infused_stone.json b/src/generated/resources/data/thavma/worldgen/configured_feature/ore_infused_stone.json index 5553d841..45718fd2 100644 --- a/src/generated/resources/data/thavma/worldgen/configured_feature/ore_infused_stone.json +++ b/src/generated/resources/data/thavma/worldgen/configured_feature/ore_infused_stone.json @@ -3,6 +3,7 @@ "config": { "features": [ "thavma:ore_ignis", + "thavma:ore_aer", "thavma:ore_terra", "thavma:ore_aqua", "thavma:ore_aether" diff --git a/src/generated/resources/data/thavma/worldgen/placed_feature/ore_aer.json b/src/generated/resources/data/thavma/worldgen/placed_feature/ore_aer.json new file mode 100644 index 00000000..5b9856be --- /dev/null +++ b/src/generated/resources/data/thavma/worldgen/placed_feature/ore_aer.json @@ -0,0 +1,4 @@ +{ + "feature": "thavma:ore_aer", + "placement": [] +} \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/client/ClientHelper.kt b/src/main/java/me/alegian/thavma/impl/client/ClientHelper.kt index 37aac7af..6266a558 100644 --- a/src/main/java/me/alegian/thavma/impl/client/ClientHelper.kt +++ b/src/main/java/me/alegian/thavma/impl/client/ClientHelper.kt @@ -39,8 +39,4 @@ fun clientSound(sound: SoundEvent, source: SoundSource, volume: Float, pitch: Fl object ClientHelper { fun hitResult() = Minecraft.getInstance().hitResult fun player() = Minecraft.getInstance().player - fun bufferSource() = Minecraft.getInstance().renderBuffers().bufferSource() - fun entityRenderDispatcher() = Minecraft.getInstance().entityRenderDispatcher - fun camera() = Minecraft.getInstance().gameRenderer.mainCamera - fun firstPerson() = Minecraft.getInstance().options.cameraType.isFirstPerson } \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/client/event/T7ClientGameEvents.kt b/src/main/java/me/alegian/thavma/impl/client/event/T7ClientGameEvents.kt index 984e7bba..fa2875af 100644 --- a/src/main/java/me/alegian/thavma/impl/client/event/T7ClientGameEvents.kt +++ b/src/main/java/me/alegian/thavma/impl/client/event/T7ClientGameEvents.kt @@ -7,10 +7,9 @@ import me.alegian.thavma.impl.client.getClientPlayerEquipmentItem import me.alegian.thavma.impl.client.gui.foci.FociScreen import me.alegian.thavma.impl.client.gui.tooltip.AspectClientTooltipComponent import me.alegian.thavma.impl.client.gui.tooltip.AspectTooltipComponent -import me.alegian.thavma.impl.client.gui.tooltip.containedAspectsComponents import me.alegian.thavma.impl.client.gui.tooltip.containedPrimalsComponent +import me.alegian.thavma.impl.client.gui.tooltip.containedAspectsComponents import me.alegian.thavma.impl.client.renderer.AspectRenderer -import me.alegian.thavma.impl.client.renderer.ExcavationRenderer import me.alegian.thavma.impl.client.renderer.HammerHighlightRenderer import me.alegian.thavma.impl.common.aspect.AspectHelper import me.alegian.thavma.impl.common.block.AuraNodeBlock @@ -160,6 +159,5 @@ fun registerClientGameEvents() { KFF_GAME_BUS.addListener(::jarTooltip) KFF_GAME_BUS.addListener(::aspectTooltip) KFF_GAME_BUS.addListener(::renderPlayerPre) - KFF_GAME_BUS.addListener(ExcavationRenderer::renderLevelAfterEntities) KFF_GAME_BUS.addListener(::clientTick) } \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/client/event/T7ClientModEvents.kt b/src/main/java/me/alegian/thavma/impl/client/event/T7ClientModEvents.kt index b634b82b..0f179c4b 100644 --- a/src/main/java/me/alegian/thavma/impl/client/event/T7ClientModEvents.kt +++ b/src/main/java/me/alegian/thavma/impl/client/event/T7ClientModEvents.kt @@ -111,7 +111,7 @@ private fun registerGeometryLoaders(event: RegisterGeometryLoaders) { } private fun registerItemColorHandlers(event: RegisterColorHandlersEvent.Item) { - for (aspect in Aspects.DATAGEN_PRIMALS) { + for (aspect in Aspects.PRIMAL_ASPECTS) { event.register( { _, tintIndex -> when (tintIndex) { @@ -156,7 +156,7 @@ private fun registerItemColorHandlers(event: RegisterColorHandlersEvent.Item) { } private fun registerBlockColorHandlers(event: RegisterColorHandlersEvent.Block) { - for (aspect in Aspects.DATAGEN_PRIMALS) { + for (aspect in Aspects.PRIMAL_ASPECTS) { event.register( { _, _, _, tintIndex -> when (tintIndex) { diff --git a/src/main/java/me/alegian/thavma/impl/client/gui/WorkbenchScreen.kt b/src/main/java/me/alegian/thavma/impl/client/gui/WorkbenchScreen.kt index df35c4e1..24a353ff 100644 --- a/src/main/java/me/alegian/thavma/impl/client/gui/WorkbenchScreen.kt +++ b/src/main/java/me/alegian/thavma/impl/client/gui/WorkbenchScreen.kt @@ -65,7 +65,7 @@ open class WorkbenchScreen(val menu: WorkbenchMenu, pPlayerInventory: Inventory, // TODO: cleanup protected open val renderAspects = Renderable { guiGraphics: GuiGraphics, _: Int, _: Int, _: Float -> val BASE_RADIUS = 50 - val ANGLE = 360f / Aspects.DATAGEN_PRIMALS.size + val ANGLE = 360f / Aspects.PRIMAL_ASPECTS.size val middleSlot = menu.craftingContainer.range.slots[4] if (middleSlot !is DynamicSlot<*>) return@Renderable @@ -74,7 +74,7 @@ open class WorkbenchScreen(val menu: WorkbenchMenu, pPlayerInventory: Inventory, translateXY((middleSlot.size - ASPECT_SOCKET.width) / 2.0, (middleSlot.size - ASPECT_SOCKET.height) / 2.0) // draw aspects at pentagon points (or N-gon if more primals are added by addons) - for ((i, a) in Aspects.DATAGEN_PRIMALS.withIndex()) { + for ((i, a) in Aspects.PRIMAL_ASPECTS.withIndex()) { val requiredAmount = menu.requiredAspects[a.get()] val requiredStack = AspectStack(a.get(), requiredAmount) guiGraphics.usePose { diff --git a/src/main/java/me/alegian/thavma/impl/client/gui/layer/WandLayer.kt b/src/main/java/me/alegian/thavma/impl/client/gui/layer/WandLayer.kt index ed95abec..ebb155f4 100644 --- a/src/main/java/me/alegian/thavma/impl/client/gui/layer/WandLayer.kt +++ b/src/main/java/me/alegian/thavma/impl/client/gui/layer/WandLayer.kt @@ -35,7 +35,7 @@ object WandLayer : LayeredDraw.Layer { rotateZ(-16f) // draw the bars with stacking rotations - for (deferredAspect in Aspects.DATAGEN_PRIMALS) { + for (deferredAspect in Aspects.PRIMAL_ASPECTS) { val a = deferredAspect.get() graphics.usePose { translateXY(0.0, CIRCLE.height) diff --git a/src/main/java/me/alegian/thavma/impl/client/gui/research_table/AspectWidget.kt b/src/main/java/me/alegian/thavma/impl/client/gui/research_table/AspectWidget.kt index 46efa581..d1b17484 100644 --- a/src/main/java/me/alegian/thavma/impl/client/gui/research_table/AspectWidget.kt +++ b/src/main/java/me/alegian/thavma/impl/client/gui/research_table/AspectWidget.kt @@ -19,7 +19,7 @@ class AspectWidget(position: Vec2, private val researchScreen: ResearchScreen, p tooltip = T7Tooltip( message, Component.translatable(descriptionTranslationId).withStyle(ChatFormatting.GRAY), - Component.translatable(costTranslationId).append(" 1").withStyle(ChatFormatting.GRAY) + Component.translatable(costTranslationId).append(" ${aspect.rank}").withStyle(ChatFormatting.GRAY) ) } diff --git a/src/main/java/me/alegian/thavma/impl/client/gui/research_table/SocketWidget.kt b/src/main/java/me/alegian/thavma/impl/client/gui/research_table/SocketWidget.kt index 1f2846f4..9d395a02 100644 --- a/src/main/java/me/alegian/thavma/impl/client/gui/research_table/SocketWidget.kt +++ b/src/main/java/me/alegian/thavma/impl/client/gui/research_table/SocketWidget.kt @@ -6,7 +6,6 @@ import me.alegian.thavma.impl.client.renderer.AspectRenderer import me.alegian.thavma.impl.client.texture.Texture import me.alegian.thavma.impl.client.util.* import me.alegian.thavma.impl.common.aspect.Aspect -import me.alegian.thavma.impl.common.aspect.relatedTo import me.alegian.thavma.impl.common.block.ResearchTableBlock import me.alegian.thavma.impl.common.payload.SocketStatePayload import me.alegian.thavma.impl.common.research.SocketState @@ -79,8 +78,9 @@ class SocketWidget(val position: Vec2, private val indices: Indices, private val private fun renderConnections(aspect: Aspect, guiGraphics: GuiGraphics) { for (neighborIdx in indices.axial.axialNeighbors) { - val neighbor = screen.socketWidgets[neighborIdx] ?: continue - if (neighbor.state.aspect?.wrapAsHolder()?.relatedTo(aspect.wrapAsHolder()) != true) continue + val neighbor = screen.socketWidgets[neighborIdx] + if (neighbor == null) continue + if (neighbor.state.aspect?.components?.map { it.get() }?.contains(aspect) != true) continue val dx = neighbor.position.x - position.x val dy = neighbor.position.y - position.y val angleDegrees = atan2(dy, dx) * 180 / Math.PI diff --git a/src/main/java/me/alegian/thavma/impl/client/gui/tooltip/TooltipHelper.kt b/src/main/java/me/alegian/thavma/impl/client/gui/tooltip/TooltipHelper.kt index 8688959e..8739451b 100644 --- a/src/main/java/me/alegian/thavma/impl/client/gui/tooltip/TooltipHelper.kt +++ b/src/main/java/me/alegian/thavma/impl/client/gui/tooltip/TooltipHelper.kt @@ -1,17 +1,17 @@ package me.alegian.thavma.impl.client.gui.tooltip import me.alegian.thavma.impl.common.aspect.AspectMap -import me.alegian.thavma.impl.init.registries.deferred.Aspects.DATAGEN_PRIMALS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRIMAL_ASPECTS import net.minecraft.network.chat.Component import net.minecraft.network.chat.MutableComponent fun containedPrimalsComponent(contents: AspectMap): MutableComponent { return Component.empty().also { - for (i in DATAGEN_PRIMALS.indices) { - val a = DATAGEN_PRIMALS[i].get() + for (i in PRIMAL_ASPECTS.indices) { + val a = PRIMAL_ASPECTS[i].get() val newPart = Component.literal(contents[a].toString()).withColor(a.color) it.append(newPart) - if (i != DATAGEN_PRIMALS.size - 1) it.append(Component.literal(" | ")) + if (i != PRIMAL_ASPECTS.size - 1) it.append(Component.literal(" | ")) } } } diff --git a/src/main/java/me/alegian/thavma/impl/client/renderer/ExcavationRenderer.kt b/src/main/java/me/alegian/thavma/impl/client/renderer/ExcavationRenderer.kt deleted file mode 100644 index 2d239124..00000000 --- a/src/main/java/me/alegian/thavma/impl/client/renderer/ExcavationRenderer.kt +++ /dev/null @@ -1,103 +0,0 @@ -package me.alegian.thavma.impl.client.renderer - -import com.mojang.blaze3d.systems.RenderSystem -import com.mojang.blaze3d.vertex.PoseStack -import com.mojang.math.Axis -import me.alegian.thavma.impl.client.ClientHelper -import me.alegian.thavma.impl.client.util.transformOrigin -import me.alegian.thavma.impl.client.util.translate -import me.alegian.thavma.impl.common.entity.lerpedPosition -import me.alegian.thavma.impl.common.item.WandItem.Companion.equippedFocus -import me.alegian.thavma.impl.common.level.Excavation -import me.alegian.thavma.impl.common.util.minus -import me.alegian.thavma.impl.common.util.use -import me.alegian.thavma.impl.init.registries.deferred.Aspects -import me.alegian.thavma.impl.init.registries.deferred.T7Items -import net.minecraft.client.Minecraft -import net.minecraft.client.player.AbstractClientPlayer -import net.minecraft.client.renderer.MultiBufferSource -import net.minecraft.client.renderer.blockentity.BeaconRenderer -import net.minecraft.client.renderer.entity.player.PlayerRenderer -import net.minecraft.world.entity.HumanoidArm -import net.minecraft.world.level.ClipContext -import net.neoforged.neoforge.client.event.RenderLevelStageEvent -import org.joml.Matrix4f -import org.joml.Quaternionf -import org.joml.Vector3f -import kotlin.math.ceil - -object ExcavationRenderer { - fun renderLevelAfterEntities(event: RenderLevelStageEvent) { - if (event.stage != RenderLevelStageEvent.Stage.AFTER_ENTITIES) return - val level = Minecraft.getInstance().level ?: return - val players = level.players() - val partialTick = event.partialTick.gameTimeDeltaTicks - - for (player in players) { - if (player.useItem.equippedFocus?.item != T7Items.FOCUS_EXCAVATION.get()) return - val playerRenderer = ClientHelper.entityRenderDispatcher().getRenderer(player) - if (playerRenderer !is PlayerRenderer) return - - val from = player.lerpedPosition(partialTick).add(0.0, player.eyeHeight.toDouble(), 0.0) - val to = from.add(player.getViewVector(partialTick).scale(Excavation.RANGE)) - val hitresult = level.clip(ClipContext(from, to, ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)) - val hitPos = hitresult.location.toVector3f() - - event.poseStack.use { - setUpWandPose(player, playerRenderer, partialTick) - render(event.poseStack, ClientHelper.bufferSource(), partialTick, player.level().gameTime, hitPos) - } - } - } - - private fun PoseStack.setUpWandPose(player: AbstractClientPlayer, playerRenderer: PlayerRenderer, partialTick: Float) { - translate(player.lerpedPosition(partialTick) - ClientHelper.camera().position) - if (player == ClientHelper.player() && ClientHelper.firstPerson()) { - translate(0f, player.eyeHeight, 0f) - mulPose(ClientHelper.camera().rotation()) - - // go to first person hand - val sideMultiplier = if (player.mainArm == HumanoidArm.RIGHT) 1.0 else -1.0 - translate(0.6 * sideMultiplier, -0.3, -0.5) - // go to the tip of the wand - translate(-0.4, 0.1, -0.2) - } else { - mulPose(Axis.YP.rotationDegrees(-player.yBodyRot)) - // go to arm pivot point (hours of reverse engineering led to this constant) - translate(0.0, 19 / 16.0, 0.0) - playerRenderer.model.translateToHand(player.mainArm, this) - // go to the tip of the wand - translate(0.0, -0.6, 0.8) - } - } - - fun render(handPose: PoseStack, bufferSource: MultiBufferSource, partialTick: Float, gameTime: Long, hitPos: Vector3f) { - handPose.use { - // rotate towards target block - val targetPos = hitPos - ClientHelper.camera().position.toVector3f() - val wandTipPos = transformOrigin() - val currentUp = Vector3f(0f, 1f, 0f) - val localDiff = (targetPos - wandTipPos).mulDirection(handPose.last().pose().invert(Matrix4f())) - val correctUp = localDiff.normalize(Vector3f()) - mulPose(Quaternionf().rotationTo(currentUp, correctUp)) - - // undo built-in translation of beacon - translate(-0.5, 0.0, -0.5) - RenderSystem.disableCull() - BeaconRenderer.renderBeaconBeam( - handPose, - bufferSource, - BeaconRenderer.BEAM_LOCATION, - partialTick, - 1f, - gameTime, - 0, - ceil(localDiff.length()).toInt(), - Aspects.TERRA.get().color, - 0.3f, - 0.3f - ) - RenderSystem.enableCull() - } - } -} \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/client/renderer/entity/VisER.kt b/src/main/java/me/alegian/thavma/impl/client/renderer/entity/VisER.kt index af66f5bd..d2bbe934 100644 --- a/src/main/java/me/alegian/thavma/impl/client/renderer/entity/VisER.kt +++ b/src/main/java/me/alegian/thavma/impl/client/renderer/entity/VisER.kt @@ -1,7 +1,6 @@ package me.alegian.thavma.impl.client.renderer.entity import com.mojang.blaze3d.vertex.PoseStack -import me.alegian.thavma.impl.client.ClientHelper import me.alegian.thavma.impl.client.T7Colors import me.alegian.thavma.impl.client.renderer.renderFlyingAspects import me.alegian.thavma.impl.client.util.translate @@ -56,7 +55,7 @@ private fun preparePlayerHandPosition(pPartialTick: Float, player: Player): Vec3 val arm = player.mainArm // for first person, if it is the client player, we follow the camera - if (player === ClientHelper.player() && ClientHelper.firstPerson()) { + if (player === Minecraft.getInstance().player && Minecraft.getInstance().options.cameraType.isFirstPerson) { val angle = Math.PI / 2 - player.getViewYRot(pPartialTick) / 360f * 2 * Math.PI val translation = player.getViewVector(pPartialTick).normalize().scale(.1) position += Vec3(0.0, player.eyeHeight + 0.01, 0.0) diff --git a/src/main/java/me/alegian/thavma/impl/common/aspect/Aspect.kt b/src/main/java/me/alegian/thavma/impl/common/aspect/Aspect.kt index 02364379..6c659429 100644 --- a/src/main/java/me/alegian/thavma/impl/common/aspect/Aspect.kt +++ b/src/main/java/me/alegian/thavma/impl/common/aspect/Aspect.kt @@ -1,36 +1,31 @@ package me.alegian.thavma.impl.common.aspect -import me.alegian.thavma.impl.init.registries.T7DataMaps -import me.alegian.thavma.impl.init.registries.T7Registries +import me.alegian.thavma.impl.init.registries.T7Registries.ASPECT import net.minecraft.Util -import net.minecraft.core.Holder import net.minecraft.network.codec.ByteBufCodecs import net.minecraft.resources.ResourceLocation +import java.util.function.Supplier -class Aspect(var id: String, var color: Int, val isPrimal: Boolean) { +class Aspect(var id: String, var color: Int, var components: List>) { + val isPrimal: Boolean + get() = components.isEmpty() val translationId by lazy { - Util.makeDescriptionId(T7Registries.ASPECT.key().location().path, T7Registries.ASPECT.getKey(this)) + Util.makeDescriptionId(ASPECT.key().location().path, ASPECT.getKey(this)) + } + val rank: Int by lazy { + if (isPrimal) 1 + else components.maxOf { a -> a.get().rank } + 1 } val resourceKey - get() = T7Registries.ASPECT.getResourceKey(this).get() + get() = ASPECT.getResourceKey(this).get() companion object { val STREAM_CODEC = ByteBufCodecs.STRING_UTF8.map( - { s -> T7Registries.ASPECT[ResourceLocation.parse(s)]!! }, - { a -> T7Registries.ASPECT.getKey(a).toString() } + { s -> ASPECT[ResourceLocation.parse(s)]!! }, + { a -> ASPECT.getKey(a).toString() } ) - val CODEC = T7Registries.ASPECT.byNameCodec() + val CODEC = ASPECT.byNameCodec() } fun defaultStack() = AspectStack.of(this, 1) - - fun wrapAsHolder() = T7Registries.ASPECT.wrapAsHolder(this) } - -fun Holder.relatedAspects() = - getData(T7DataMaps.ASPECT_RELATIONS) ?: listOf() - -fun Holder.relatedTo(other: Holder) = - this.relatedAspects().contains(other.value()) || - other.relatedAspects().contains(this.value()) - diff --git a/src/main/java/me/alegian/thavma/impl/common/aspect/AspectMap.kt b/src/main/java/me/alegian/thavma/impl/common/aspect/AspectMap.kt index caa6bf96..67e619f0 100644 --- a/src/main/java/me/alegian/thavma/impl/common/aspect/AspectMap.kt +++ b/src/main/java/me/alegian/thavma/impl/common/aspect/AspectMap.kt @@ -1,15 +1,12 @@ package me.alegian.thavma.impl.common.aspect import com.mojang.serialization.Codec -import me.alegian.thavma.impl.init.registries.deferred.Aspects.DATAGEN_PRIMALS -import net.minecraft.core.Holder +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRIMAL_ASPECTS import net.minecraft.network.codec.ByteBufCodecs import net.minecraft.network.codec.StreamCodec import java.util.* import java.util.function.Consumer import java.util.function.Supplier -import kotlin.math.round -import kotlin.math.roundToInt /** * Immutable. @@ -36,8 +33,6 @@ class AspectMap(map: Map = LinkedHashMap()) : Iterable return builder().copyOf(this).add(aspect, amount).build() } - fun add(aspectHolder: Holder, amount: Int) = add(aspectHolder.value(), amount) - fun add(other: AspectMap): AspectMap { val builder = builder().copyOf(this) other.forEach(Consumer { aspectStack: AspectStack -> builder.add(aspectStack) }) @@ -48,20 +43,12 @@ class AspectMap(map: Map = LinkedHashMap()) : Iterable return builder().copyOf(this).subtract(aspect, amount).build() } - fun subtract(aspectHolder: Holder, amount: Int) = subtract(aspectHolder.value(), amount) - fun subtract(other: AspectMap): AspectMap { val builder = builder().copyOf(this) other.forEach(Consumer { aspectStack: AspectStack -> builder.subtract(aspectStack) }) return builder.build() } - fun remove(aspectHolder: Holder): AspectMap { - val builder = builder().copyOf(this) - builder.remove(aspectHolder.value()) - return builder.build() - } - fun scale(multiplier: Number): AspectMap { return builder().copyOf(this).scale(multiplier).build() } @@ -151,13 +138,8 @@ class AspectMap(map: Map = LinkedHashMap()) : Iterable return this.subtract(aspectStack.aspect, aspectStack.amount) } - fun remove(aspect: Aspect): Builder { - map.remove(aspect) - return this - } - fun scale(multiplier: Number): Builder { - map.forEach { (k: Aspect, v: Int) -> map[k] = round(v * multiplier.toDouble()).toInt() } + map.forEach { (k: Aspect, v: Int) -> map[k] = (v * multiplier.toDouble()).toInt() } map = LinkedHashMap(map.filterValues { it > 0 }) return this } @@ -186,7 +168,7 @@ class AspectMap(map: Map = LinkedHashMap()) : Iterable fun randomPrimals(scale: Int): AspectMap { val random = Random() val map = LinkedHashMap() - val primals = ArrayList(DATAGEN_PRIMALS) + val primals = ArrayList(PRIMAL_ASPECTS) primals.shuffle() val randomPrimals = primals.subList(0, random.nextInt(primals.size) + 1) for (a in randomPrimals) map[a.get()] = random.nextInt(scale) + 1 @@ -199,7 +181,7 @@ class AspectMap(map: Map = LinkedHashMap()) : Iterable fun ofPrimals(amount: Int): AspectMap { val builder = Builder() - for (a in DATAGEN_PRIMALS) { + for (a in PRIMAL_ASPECTS) { builder.add(a.get(), amount) } return builder.build() diff --git a/src/main/java/me/alegian/thavma/impl/common/data/capability/AspectContainer.kt b/src/main/java/me/alegian/thavma/impl/common/data/capability/AspectContainer.kt index ca6e47ce..a3b28023 100644 --- a/src/main/java/me/alegian/thavma/impl/common/data/capability/AspectContainer.kt +++ b/src/main/java/me/alegian/thavma/impl/common/data/capability/AspectContainer.kt @@ -6,7 +6,7 @@ import me.alegian.thavma.impl.common.aspect.AspectStack import me.alegian.thavma.impl.common.aspect.AspectStack.Companion.of import me.alegian.thavma.impl.init.registries.T7Capabilities.AspectContainer.BLOCK import me.alegian.thavma.impl.init.registries.T7Capabilities.AspectContainer.ITEM -import me.alegian.thavma.impl.init.registries.deferred.Aspects.DATAGEN_PRIMALS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRIMAL_ASPECTS import me.alegian.thavma.impl.init.registries.deferred.T7DataComponents.ASPECTS import net.minecraft.core.BlockPos import net.minecraft.world.item.ItemStack @@ -59,7 +59,7 @@ open class AspectContainer( } open fun canTransferPrimals(): Boolean { - return DATAGEN_PRIMALS.stream() + return PRIMAL_ASPECTS.stream() .anyMatch { a -> simulateTransfer(a.get(), 1) > 0 } } @@ -84,9 +84,9 @@ open class AspectContainer( } open fun transferPrimal(indexOffset: Int, idealAmount: Int): AspectStack? { - val primals = DATAGEN_PRIMALS.size + val primals = PRIMAL_ASPECTS.size for (i in 0.. 0) level.updateBlockEntityS2C(blockPosition()) } diff --git a/src/main/java/me/alegian/thavma/impl/common/event/T7CommonGameEvents.kt b/src/main/java/me/alegian/thavma/impl/common/event/T7CommonGameEvents.kt index a9c60081..e5f4ca1a 100644 --- a/src/main/java/me/alegian/thavma/impl/common/event/T7CommonGameEvents.kt +++ b/src/main/java/me/alegian/thavma/impl/common/event/T7CommonGameEvents.kt @@ -3,8 +3,6 @@ package me.alegian.thavma.impl.common.event import me.alegian.thavma.impl.common.enchantment.ShriekResistance import me.alegian.thavma.impl.common.entity.isWearingStepHeightBoots import me.alegian.thavma.impl.common.item.EnderpearlFocus -import me.alegian.thavma.impl.common.item.WandItem -import me.alegian.thavma.impl.common.item.WandItem.Companion.equippedFocus import me.alegian.thavma.impl.common.level.Exchanging import me.alegian.thavma.impl.common.level.TreeFelling import me.alegian.thavma.impl.init.registries.T7AttributeModifiers @@ -20,11 +18,9 @@ import net.minecraft.world.damagesource.DamageTypes import net.minecraft.world.effect.MobEffects import net.minecraft.world.entity.LivingEntity import net.minecraft.world.entity.ai.attributes.Attributes -import net.minecraft.world.item.Items import net.neoforged.neoforge.event.entity.living.LivingDamageEvent import net.neoforged.neoforge.event.entity.living.LivingFallEvent import net.neoforged.neoforge.event.entity.living.MobEffectEvent -import net.neoforged.neoforge.event.entity.player.PlayerEvent import net.neoforged.neoforge.event.tick.EntityTickEvent import kotlin.math.max import thedarkcolour.kotlinforforge.neoforge.forge.FORGE_BUS as KFF_GAME_BUS @@ -98,23 +94,12 @@ fun entityFall(event: LivingFallEvent) { event.entity.setData(T7Attachments.LEVITATES, false) } -fun harvestCheck(event: PlayerEvent.HarvestCheck) { - val stack = event.entity.mainHandItem - if (stack.item !is WandItem) return - if (stack.equippedFocus?.item != T7Items.FOCUS_EXCAVATION.asItem()) return - - // excavation focus is the same as a netherite pickaxe - val netheritePick = Items.NETHERITE_PICKAXE.defaultInstance - event.setCanHarvest(event.canHarvest() || netheritePick.isCorrectToolForDrops(event.targetBlock)) -} - fun registerCommonGameEvents() { KFF_GAME_BUS.addListener(::entityTickPre) KFF_GAME_BUS.addListener(::livingDamagePost) KFF_GAME_BUS.addListener(::mobEffectApplicable) KFF_GAME_BUS.addListener(::preLivingDamage) KFF_GAME_BUS.addListener(::entityFall) - KFF_GAME_BUS.addListener(::harvestCheck) KFF_GAME_BUS.addListener(TreeFelling::blockBreak) KFF_GAME_BUS.addListener(TreeFelling::levelTick) KFF_GAME_BUS.addListener(Exchanging::levelTick) diff --git a/src/main/java/me/alegian/thavma/impl/common/event/T7CommonModEvents.kt b/src/main/java/me/alegian/thavma/impl/common/event/T7CommonModEvents.kt index 242961e3..11eb77d8 100644 --- a/src/main/java/me/alegian/thavma/impl/common/event/T7CommonModEvents.kt +++ b/src/main/java/me/alegian/thavma/impl/common/event/T7CommonModEvents.kt @@ -74,7 +74,6 @@ private fun registerCapabilities(event: RegisterCapabilitiesEvent) { private fun registerDataMapTypes(event: RegisterDataMapTypesEvent) { event.register(T7DataMaps.AspectContent.ITEM) event.register(T7DataMaps.AspectContent.ENTITY) - event.register(T7DataMaps.ASPECT_RELATIONS) } private fun gatherData(event: GatherDataEvent) { diff --git a/src/main/java/me/alegian/thavma/impl/common/item/ExcavationFocus.kt b/src/main/java/me/alegian/thavma/impl/common/item/ExcavationFocus.kt deleted file mode 100644 index c094d23c..00000000 --- a/src/main/java/me/alegian/thavma/impl/common/item/ExcavationFocus.kt +++ /dev/null @@ -1,61 +0,0 @@ -package me.alegian.thavma.impl.common.item - -import me.alegian.thavma.impl.common.aspect.AspectMap -import me.alegian.thavma.impl.common.data.capability.AspectContainer -import me.alegian.thavma.impl.common.level.Excavation -import me.alegian.thavma.impl.init.registries.deferred.Aspects -import net.minecraft.world.InteractionHand -import net.minecraft.world.InteractionResultHolder -import net.minecraft.world.entity.LivingEntity -import net.minecraft.world.entity.player.Player -import net.minecraft.world.item.Item -import net.minecraft.world.item.ItemStack -import net.minecraft.world.level.ClipContext -import net.minecraft.world.level.Level - -class ExcavationFocus : Item( - Properties().stacksTo(1) -) { - fun aspectCost() = AspectMap.builder().add(Aspects.TERRA, 1).build() - - override fun getUseDuration(stack: ItemStack, entity: LivingEntity) = 72000 - - override fun use(level: Level, player: Player, usedHand: InteractionHand): InteractionResultHolder { - val stack = player.getItemInHand(usedHand) - if (stack.item !is WandItem || !hasEnoughAspects(stack)) return InteractionResultHolder.pass(stack) - - player.startUsingItem(usedHand) - return InteractionResultHolder.consume(stack) - } - - override fun onUseTick(level: Level, livingEntity: LivingEntity, stack: ItemStack, remainingUseDuration: Int) { - if ( - level.gameTime % 4 != 0L || - level.isClientSide || - livingEntity !is Player - ) return - - if (!hasEnoughAspects(stack)) return livingEntity.releaseUsingItem() - - if (level.gameTime % 20 == 0L) AspectContainer.from(stack)?.extract(aspectCost()) - advanceBlockBreak(level, livingEntity) - } - - override fun releaseUsing(stack: ItemStack, level: Level, livingEntity: LivingEntity, timeCharged: Int) { - if ( - level.isClientSide || - livingEntity !is Player - ) return - Excavation.stopExcavation(level, livingEntity) - } - - private fun advanceBlockBreak(level: Level, player: Player) { - val from = player.eyePosition - val to = from.add(player.getViewVector(0f).scale(Excavation.RANGE)) - val hitresult = level.clip(ClipContext(from, to, ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)) - Excavation.excavate(level, player, hitresult, 4) - } - - private fun hasEnoughAspects(stack: ItemStack) = - AspectContainer.from(stack)?.aspects?.contains(aspectCost()) ?: false -} \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/common/item/ItemExtensions.kt b/src/main/java/me/alegian/thavma/impl/common/item/ItemExtensions.kt deleted file mode 100644 index 9d2eb38f..00000000 --- a/src/main/java/me/alegian/thavma/impl/common/item/ItemExtensions.kt +++ /dev/null @@ -1,8 +0,0 @@ -package me.alegian.thavma.impl.common.item - -import net.minecraft.core.registries.BuiltInRegistries -import net.minecraft.world.level.ItemLike - -val ItemLike.itemResourceKey - get() = BuiltInRegistries.ITEM.getResourceKey(this.asItem()).orElseThrow() - diff --git a/src/main/java/me/alegian/thavma/impl/common/item/WandItem.kt b/src/main/java/me/alegian/thavma/impl/common/item/WandItem.kt index adc8b4f7..77d69d18 100644 --- a/src/main/java/me/alegian/thavma/impl/common/item/WandItem.kt +++ b/src/main/java/me/alegian/thavma/impl/common/item/WandItem.kt @@ -12,6 +12,7 @@ import me.alegian.thavma.impl.common.wand.WandPlatingMaterial import me.alegian.thavma.impl.init.registries.deferred.T7BlockEntities import me.alegian.thavma.impl.init.registries.deferred.T7Blocks import me.alegian.thavma.impl.init.registries.deferred.T7DataComponents +import me.alegian.thavma.impl.rl import net.minecraft.core.BlockPos import net.minecraft.core.Direction import net.minecraft.server.level.ServerLevel @@ -20,6 +21,7 @@ import net.minecraft.sounds.SoundSource import net.minecraft.world.InteractionHand import net.minecraft.world.InteractionResult import net.minecraft.world.InteractionResultHolder +import net.minecraft.world.entity.Entity import net.minecraft.world.entity.LivingEntity import net.minecraft.world.entity.player.Player import net.minecraft.world.item.Item @@ -30,9 +32,15 @@ import net.minecraft.world.item.context.UseOnContext import net.minecraft.world.level.Level import net.minecraft.world.level.block.Blocks import net.neoforged.neoforge.common.Tags +import software.bernie.geckolib.GeckoLibServices import software.bernie.geckolib.animatable.GeoItem import software.bernie.geckolib.animatable.client.GeoRenderProvider +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache import software.bernie.geckolib.animation.AnimatableManager +import software.bernie.geckolib.animation.AnimationController +import software.bernie.geckolib.animation.PlayState +import software.bernie.geckolib.animation.RawAnimation +import software.bernie.geckolib.network.packet.SingletonAnimTriggerPacket import software.bernie.geckolib.util.GeckoLibUtil import java.util.function.Consumer @@ -50,8 +58,8 @@ open class WandItem(props: Properties, val platingMaterial: WandPlatingMaterial, * 4. Creating "Elements of Thavma" books from Bookcases */ override fun useOn(context: UseOnContext): InteractionResult { - val focus = context.itemInHand.equippedFocus - if (focus != null) return focus.item.useOn(context) + val focusResult = context.itemInHand.equippedFocus?.item?.useOn(context) ?: InteractionResult.PASS + if (focusResult != InteractionResult.PASS) return focusResult val level = context.level val blockPos = context.clickedPos @@ -109,28 +117,17 @@ open class WandItem(props: Properties, val platingMaterial: WandPlatingMaterial, return InteractionResult.PASS } - override fun use(level: Level, player: Player, usedHand: InteractionHand): InteractionResultHolder { - val focus = player.getItemInHand(usedHand).equippedFocus - if (focus != null) return focus.item.use(level, player, usedHand) + override fun use(level: Level, player: Player, usedHand: InteractionHand): InteractionResultHolder { + val itemInHand = player.getItemInHand(usedHand) + val focusResult = itemInHand.equippedFocus?.item?.use(level, player, usedHand) ?: InteractionResultHolder.pass(itemInHand) + if (focusResult.result != InteractionResult.PASS) return focusResult return super.use(level, player, usedHand) } - override fun onUseTick(level: Level, livingEntity: LivingEntity, stack: ItemStack, remainingUseDuration: Int) { - val focus = stack.equippedFocus - if (focus != null) return focus.item.onUseTick(level, livingEntity, stack, remainingUseDuration) - super.onUseTick(level, livingEntity, stack, remainingUseDuration) - } - - override fun releaseUsing(stack: ItemStack, level: Level, livingEntity: LivingEntity, timeCharged: Int) { - val focus = stack.equippedFocus - if (focus != null) return focus.item.releaseUsing(stack, level, livingEntity, timeCharged) - super.releaseUsing(stack, level, livingEntity, timeCharged) - } - override fun interactLivingEntity(stack: ItemStack, player: Player, interactionTarget: LivingEntity, usedHand: InteractionHand): InteractionResult { - val focus = stack.equippedFocus - if (focus != null) return focus.item.interactLivingEntity(stack, player, interactionTarget, usedHand) + val focusResult = stack.equippedFocus?.item?.interactLivingEntity(stack, player, interactionTarget, usedHand) ?: InteractionResult.PASS + if (focusResult != InteractionResult.PASS) return focusResult return super.interactLivingEntity(stack, player, interactionTarget, usedHand) } @@ -139,9 +136,8 @@ open class WandItem(props: Properties, val platingMaterial: WandPlatingMaterial, return UseAnim.CUSTOM } - override fun getUseDuration(stack: ItemStack, entity: LivingEntity): Int { - val focusDuration = stack.equippedFocus?.item?.getUseDuration(stack, entity) - return focusDuration ?: 72000 + override fun getUseDuration(pStack: ItemStack, pEntity: LivingEntity): Int { + return 72000 } /** diff --git a/src/main/java/me/alegian/thavma/impl/common/level/Excavation.kt b/src/main/java/me/alegian/thavma/impl/common/level/Excavation.kt deleted file mode 100644 index b93e7932..00000000 --- a/src/main/java/me/alegian/thavma/impl/common/level/Excavation.kt +++ /dev/null @@ -1,50 +0,0 @@ -package me.alegian.thavma.impl.common.level - -import net.minecraft.core.BlockPos -import net.minecraft.network.protocol.game.ClientboundLevelEventPacket -import net.minecraft.server.level.ServerPlayer -import net.minecraft.world.entity.player.Player -import net.minecraft.world.level.Level -import net.minecraft.world.level.block.Block -import net.minecraft.world.level.block.LevelEvent -import net.minecraft.world.level.block.state.BlockState -import net.minecraft.world.phys.BlockHitResult -import net.minecraft.world.phys.HitResult - -object Excavation { - const val RANGE = 10.0 - private val instances = mutableMapOf() - - fun excavate(level: Level, player: Player, hitResult: BlockHitResult, speed: Int) { - if (level.isClientSide || player !is ServerPlayer) return - if (hitResult.type == HitResult.Type.MISS) return - - val blockPos = hitResult.blockPos - val blockState = level.getBlockState(blockPos) - - val progressObject = instances.compute(player.id) { _, v -> - if (v == null || v.blockPos != blockPos || v.blockState != blockState) - ExcavationProgress(blockPos, blockState, speed) - else - ExcavationProgress(blockPos, blockState, (v.progress + speed).coerceIn(0, 10)) - } ?: return - - level.destroyBlockProgress(-player.id, blockPos, progressObject.progress) - - if (progressObject.progress < 10) return - player.gameMode.destroyBlock(blockPos) - // due to the internals of the previous function, we need to separately send sound to the breaking player - player.connection.send(ClientboundLevelEventPacket(LevelEvent.PARTICLES_DESTROY_BLOCK, blockPos, Block.getId(blockState), false)) - } - - fun stopExcavation(level: Level, player: Player) { - if (level.isClientSide) return - instances.remove(player.id) - } -} - -data class ExcavationProgress( - val blockPos: BlockPos, - val blockState: BlockState, - val progress: Int -) \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/common/research/ResearchState.kt b/src/main/java/me/alegian/thavma/impl/common/research/ResearchState.kt index eab344fd..0535b276 100644 --- a/src/main/java/me/alegian/thavma/impl/common/research/ResearchState.kt +++ b/src/main/java/me/alegian/thavma/impl/common/research/ResearchState.kt @@ -2,7 +2,6 @@ package me.alegian.thavma.impl.common.research import com.mojang.serialization.Codec import com.mojang.serialization.codecs.RecordCodecBuilder -import me.alegian.thavma.impl.common.aspect.relatedTo import me.alegian.thavma.impl.common.util.Indices import me.alegian.thavma.impl.init.registries.T7DatapackRegistries import net.minecraft.core.Holder @@ -75,7 +74,9 @@ private fun calculateCompleted(defaultStates: List, socketStates: M if (explored.contains(neighborIdx)) continue val neighbor = graph[neighborIdx] ?: continue val neighborAspect = neighbor.aspect ?: continue - if (!currAspect.wrapAsHolder().relatedTo(neighborAspect.wrapAsHolder())) continue + val connected = currAspect.components.map { it.get() }.contains(neighborAspect) + || neighborAspect.components.map { it.get() }.contains(currAspect) + if (!connected) continue connections.add(neighborIdx) toExplore.add(neighborIdx) diff --git a/src/main/java/me/alegian/thavma/impl/common/scanning/ScanHelper.kt b/src/main/java/me/alegian/thavma/impl/common/scanning/ScanHelper.kt index d63789c5..39f292fa 100644 --- a/src/main/java/me/alegian/thavma/impl/common/scanning/ScanHelper.kt +++ b/src/main/java/me/alegian/thavma/impl/common/scanning/ScanHelper.kt @@ -3,10 +3,8 @@ package me.alegian.thavma.impl.common.scanning import com.google.common.primitives.Doubles.max import me.alegian.thavma.impl.common.aspect.AspectHelper import me.alegian.thavma.impl.common.aspect.AspectMap -import me.alegian.thavma.impl.common.aspect.relatedAspects import me.alegian.thavma.impl.common.entity.addKnowledge import me.alegian.thavma.impl.common.entity.knowsAspect -import me.alegian.thavma.impl.common.item.itemResourceKey import me.alegian.thavma.impl.common.payload.ScanResultPayload import me.alegian.thavma.impl.common.util.serialize import me.alegian.thavma.impl.init.registries.deferred.T7Attachments @@ -36,11 +34,11 @@ fun Player.hasScanned(entity: Entity): Boolean { // blocks fall back to items fun Player.hasScanned(blockState: BlockState): Boolean { - return hasScanned(blockState.block.itemResourceKey) + return hasScanned(itemKey(blockState.block.asItem())) } fun Player.hasScanned(itemStack: ItemStack): Boolean { - return hasScanned(itemStack.item.itemResourceKey) + return hasScanned(itemKey(itemStack.item)) } private fun ServerPlayer.tryScan(key: ResourceKey<*>, aspectMap: AspectMap?) { @@ -49,7 +47,7 @@ private fun ServerPlayer.tryScan(key: ResourceKey<*>, aspectMap: AspectMap?) { else if (hasScanned(key)) scanResult = ScanResult.SUCCESS else { val aspects = aspectMap.map { it.aspect } - if (aspects.any { it.wrapAsHolder().relatedAspects().none { !knowsAspect(it) } }) scanResult = ScanResult.LOCKED + if (aspects.flatMap { it.components }.any { !knowsAspect(it.get()) }) scanResult = ScanResult.LOCKED else addKnowledge( aspects @@ -67,18 +65,21 @@ private fun ServerPlayer.tryScan(key: ResourceKey<*>, aspectMap: AspectMap?) { // itemEntities fall back to items fun ServerPlayer.tryScan(entity: Entity) { - if (entity is ItemEntity) return tryScan(entity.item.item.itemResourceKey, AspectHelper.getAspects(entity.item)) + if (entity is ItemEntity) return tryScan(itemKey(entity.item.item), AspectHelper.getAspects(entity.item)) tryScan(entityKey(entity.type), AspectHelper.getAspects(entity)) } fun ServerPlayer.tryScan(blockState: BlockState) { - tryScan(blockState.block.itemResourceKey, AspectHelper.getAspects(blockState.block)) + tryScan(itemKey(blockState.block.asItem()), AspectHelper.getAspects(blockState.block)) } private fun entityKey(entityType: EntityType<*>) = BuiltInRegistries.ENTITY_TYPE.getResourceKey(entityType).get() +private fun itemKey(item: Item) = + BuiltInRegistries.ITEM.getResourceKey(item).get() + fun Player.getScanHitResult(): HitResult { val rayVec = getViewVector(0.0f).scale(max(blockInteractionRange(), entityInteractionRange())) val predicate = { entity: Entity -> !entity.isSpectator && (entity.isPickable || entity is ItemEntity) } diff --git a/src/main/java/me/alegian/thavma/impl/common/util/T7StreamCodecs.kt b/src/main/java/me/alegian/thavma/impl/common/util/T7StreamCodecs.kt deleted file mode 100644 index 5b03e55c..00000000 --- a/src/main/java/me/alegian/thavma/impl/common/util/T7StreamCodecs.kt +++ /dev/null @@ -1,17 +0,0 @@ -package me.alegian.thavma.impl.common.util - -import net.minecraft.network.codec.ByteBufCodecs -import net.minecraft.network.codec.StreamCodec -import net.minecraft.world.phys.Vec3 - -object T7StreamCodecs{ - val VEC3 = StreamCodec.composite( - ByteBufCodecs.DOUBLE, - {it.x}, - ByteBufCodecs.DOUBLE, - {it.y}, - ByteBufCodecs.DOUBLE, - {it.z}, - ::Vec3 - ) -} \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/common/util/Vector2iExtensions.kt b/src/main/java/me/alegian/thavma/impl/common/util/Vector2iExtensions.kt index 70e29bab..2a253f16 100644 --- a/src/main/java/me/alegian/thavma/impl/common/util/Vector2iExtensions.kt +++ b/src/main/java/me/alegian/thavma/impl/common/util/Vector2iExtensions.kt @@ -2,4 +2,4 @@ package me.alegian.thavma.impl.common.util import org.joml.Vector2i -operator fun Vector2i.minus(other: Vector2i) = this.sub(other) \ No newline at end of file +operator fun Vector2i.minus(other: Vector2i) = Vector2i(x - other.x, y - other.y) \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/common/util/Vector3fExtensions.kt b/src/main/java/me/alegian/thavma/impl/common/util/Vector3fExtensions.kt deleted file mode 100644 index 1d90ec44..00000000 --- a/src/main/java/me/alegian/thavma/impl/common/util/Vector3fExtensions.kt +++ /dev/null @@ -1,6 +0,0 @@ -package me.alegian.thavma.impl.common.util - -import org.joml.Vector3f - -operator fun Vector3f.minus(other: Vector3f) = this.sub(other) -operator fun Vector3f.plus(other: Vector3f) = this.add(other) diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/T7BlockLootSubProvider.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/T7BlockLootSubProvider.kt index 3c5bb204..b01e39fe 100644 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/T7BlockLootSubProvider.kt +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/T7BlockLootSubProvider.kt @@ -3,7 +3,7 @@ package me.alegian.thavma.impl.init.data.providers import me.alegian.thavma.impl.common.block.InfusedBlock import me.alegian.thavma.impl.common.item.ShardItem import me.alegian.thavma.impl.init.registries.T7BlockStateProperties -import me.alegian.thavma.impl.init.registries.deferred.Aspects.DATAGEN_PRIMALS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRIMAL_ASPECTS import me.alegian.thavma.impl.init.registries.deferred.T7Blocks import me.alegian.thavma.impl.init.registries.deferred.T7Blocks.ARCANE_LEVITATOR import me.alegian.thavma.impl.init.registries.deferred.T7Blocks.ARCANE_WORKBENCH @@ -92,7 +92,7 @@ class T7BlockLootSubProvider(lookupProvider: HolderLookup.Provider) : BlockLootS add(T7Blocks.SEALING_JAR.get()) { b -> createJarTable(b) } - for (aspect in DATAGEN_PRIMALS) { + for (aspect in PRIMAL_ASPECTS) { infusedBlock(INFUSED_STONES[aspect], SHARDS[aspect]) infusedBlock(INFUSED_DEEPSLATES[aspect], SHARDS[aspect]) } diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/T7DataMapProvider.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/T7DataMapProvider.kt index a932e891..153bb450 100644 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/T7DataMapProvider.kt +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/T7DataMapProvider.kt @@ -2,12 +2,53 @@ package me.alegian.thavma.impl.init.data.providers import me.alegian.thavma.impl.common.aspect.AspectMap import me.alegian.thavma.impl.init.data.providers.aspects.* +import me.alegian.thavma.impl.init.registries.T7DataMaps +import me.alegian.thavma.impl.init.registries.deferred.Aspects.AER +import me.alegian.thavma.impl.init.registries.deferred.Aspects.AETHER +import me.alegian.thavma.impl.init.registries.deferred.Aspects.ALIENIS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.ALKIMIA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.AQUA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.AVERSIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.BESTIA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.COGNITIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.DESIDERIUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.EXANIMIS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.FABRICO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.GELUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.HERBA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.HUMANUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.IGNIS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.INSTRUMENTUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.LUX +import me.alegian.thavma.impl.init.registries.deferred.Aspects.METALLUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.MOTUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.POTENTIA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRAECANTATIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRAEMUNIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.SENSUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.TENEBRAE +import me.alegian.thavma.impl.init.registries.deferred.Aspects.TERRA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VACUOS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VICTUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VINCULUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VITREUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VOLATUS +import me.alegian.thavma.impl.init.registries.deferred.T7Blocks +import me.alegian.thavma.impl.init.registries.deferred.T7Items import net.minecraft.core.HolderLookup import net.minecraft.core.registries.BuiltInRegistries +import net.minecraft.data.BlockFamily import net.minecraft.data.PackOutput import net.minecraft.resources.ResourceKey +import net.minecraft.tags.ItemTags import net.minecraft.tags.TagKey import net.minecraft.world.entity.EntityType +import net.minecraft.world.item.Item +import net.minecraft.world.item.Items +import net.minecraft.world.level.ItemLike +import net.minecraft.world.level.block.Block +import net.minecraft.world.level.block.Blocks +import net.neoforged.neoforge.common.Tags import net.neoforged.neoforge.common.data.DataMapProvider import net.neoforged.neoforge.common.data.DataMapProvider.Builder import java.util.concurrent.CompletableFuture @@ -17,17 +58,315 @@ import java.util.function.Supplier class T7DataMapProvider(packOutput: PackOutput, lookupProvider: CompletableFuture) : DataMapProvider(packOutput, lookupProvider) { override fun gather(lookupProvider: HolderLookup.Provider) { - AspectRelations.gather(this) - - BlockAndItemAspects.gather(this, lookupProvider) EntityAspects.gather(this, lookupProvider) MineralAspects.gather(this, lookupProvider) ToolAspects.gather(this, lookupProvider) ArmorAspects.gather(this, lookupProvider) BlockFamilyAspects.gather(this, lookupProvider) + + val i = builder(T7DataMaps.AspectContent.ITEM) + + i.item(Items.BLAZE_POWDER) { + it.add(IGNIS, 2) + .add(POTENTIA, 1) + .add(ALKIMIA, 2) + } + i.item(Tags.Items.GUNPOWDERS) { + it.add(POTENTIA, 4) + .add(ALKIMIA, 2) + .add(TERRA, 1) + } + i.item(Tags.Items.RODS_BLAZE) { + it.add(IGNIS, 8) + .add(POTENTIA, 4) + } + i.item(Tags.Items.RODS_BREEZE) { + it.add(AER, 8) + .add(MOTUS, 4) + } + i.item(Items.WIND_CHARGE) { + it.add(AER, 2) + .add(MOTUS, 1) + } + i.item(Items.FIRE_CHARGE) { + it.add(POTENTIA, 4) + .add(IGNIS, 4) + .add(AVERSIO, 2) + } + i.item(Tags.Items.LEATHERS) { + it.add(BESTIA, 8) + } + i.item(T7Items.FABRIC) { + it.add(FABRICO, 4).add(PRAECANTATIO, 1) + } + i.item(T7Items.ARCANE_LENS) { + it.add(METALLUM, 16) + .add(DESIDERIUM, 32) + .add(PRAECANTATIO, 2) + .add(VITREUS, 2) + } + i.item(T7Items.ROTTEN_BRAIN) { + it.add(COGNITIO, 16) + .add(EXANIMIS, 8) + } + i.item(Items.ROTTEN_FLESH) { + it.add(HUMANUS, 2) + .add(EXANIMIS, 2) + } + i.item(Items.ARMADILLO_SCUTE) { + it.add(BESTIA, 2) + .add(PRAEMUNIO, 1) + } + i.item(Items.TURTLE_SCUTE) { + it.add(BESTIA, 2) + .add(PRAEMUNIO, 1) + .add(AQUA, 1) + } + i.item(Items.FLINT) { + it.add(TERRA, 4) + .add(INSTRUMENTUM, 2) + } + i.item(Tags.Items.FEATHERS) { + it.add(VOLATUS, 4) + .add(AER, 4) + } + i.item(Tags.Items.ENDER_PEARLS) { + it.add(MOTUS, 4) + .add(ALIENIS, 4) + } + i.item(Items.ENDER_EYE) { + it.add(MOTUS, 4) + .add(ALIENIS, 4) + .add(PRAECANTATIO, 2) + } + i.item(Tags.Items.STRINGS) { + it.add(BESTIA, 1) + .add(FABRICO, 1) + } + i.item(Items.GHAST_TEAR) { + it.add(EXANIMIS, 4) + .add(ALKIMIA, 4) + } + i.item(Items.SUGAR) { + it.add(HERBA, 2) + .add(VICTUS, 1) + } + i.item(Items.PAPER) { + it.add(COGNITIO, 1) + .add(HERBA, 1) + } + i.item(Items.FIREWORK_ROCKET) { + it.add(POTENTIA, 1) + .add(SENSUS, 1) + } + i.item(Items.FIREWORK_STAR) { + it.add(POTENTIA, 1) + .add(SENSUS, 2) + } + i.item(Items.SNOWBALL) { it.add(GELUM, 1) } + i.item(Items.NETHER_BRICK) { it.add(TERRA, 1).add(IGNIS, 1) } + i.item(Items.PRISMARINE_CRYSTALS) { it.add(VITREUS, 4).add(AQUA, 4).add(LUX, 2) } + i.item(Items.PRISMARINE_SHARD) { it.add(AQUA, 2).add(TERRA, 2) } + i.item(Items.CHORUS_FRUIT) { it.add(HERBA, 2).add(ALIENIS, 2) } + i.item(Items.POPPED_CHORUS_FRUIT) { it.add(HERBA, 2).add(ALIENIS, 2) } + i.item(Items.CLAY_BALL) { it.add(TERRA, 1).add(AQUA, 1) } + i.item(Items.BRICK) { it.add(TERRA, 1).add(IGNIS, 1) } + + i.item(Tags.Items.RODS_WOODEN) { it.add(HERBA, 2) } + + i.item(Tags.Items.EGGS) { it.add(VICTUS, 4).add(BESTIA, 2) } + + i.item(Tags.Items.CROPS_WHEAT) { it.add(VICTUS, 2).add(HERBA, 2) } + + i.item(Items.END_CRYSTAL) { + it.add(VITREUS, 14) + .add(POTENTIA, 8) + .add(ALIENIS, 4) + .add(IGNIS, 4) + } + + i.item(Blocks.NETHER_WART) { it.add(HERBA, 2).add(IGNIS, 2) } + i.item(Blocks.CHORUS_PLANT) { it.add(HERBA, 2).add(ALIENIS, 2) } + i.item(Blocks.CHORUS_FLOWER) { it.add(HERBA, 4).add(ALIENIS, 4) } + i.item(Tags.Items.NETHERRACKS) { it.add(TERRA, 1).add(IGNIS, 1) } + i.item(Blocks.MUD) { it.add(TERRA, 1).add(AQUA, 1) } + i.item(Blocks.PACKED_MUD) { it.add(TERRA, 2).add(HERBA, 2) } + i.item(ItemTags.DIRT) { it.add(TERRA, 1) } + i.item(Blocks.COARSE_DIRT) { it.add(TERRA, 1) } + i.item(Tags.Items.GRAVELS) { it.add(TERRA, 2) } + i.item(Tags.Items.STONES) { it.add(TERRA, 2) } + i.item(Tags.Items.COBBLESTONES) { it.add(TERRA, 2) } + i.item(Tags.Items.SANDS) { it.add(TERRA, 2) } + i.item(Blocks.CLAY) { it.add(TERRA, 4).add(AQUA, 4) } + + i.item(Blocks.GRASS_BLOCK) { + it.add(TERRA, 1).add(HERBA, 1) + } + i.item(Blocks.PODZOL) { + it.add(TERRA, 1).add(HERBA, 1) + } + i.item(Blocks.SHORT_GRASS) { + it.add(HERBA, 1).add(AER, 1) + } + i.item(Blocks.TALL_GRASS) { + it.add(HERBA, 1).add(AER, 1) + } + + i.item(ItemTags.TERRACOTTA) { + it.add(TERRA, 4) + .add(IGNIS, 4) + .add(SENSUS, 1) + } + i.item(Tags.Items.CONCRETE_POWDERS) { + it.add(TERRA, 3) + } + i.item(Tags.Items.CONCRETES) { + it.add(TERRA, 3) + .add(AQUA, 1) + .add(AETHER, 1) + } + + i.item(ItemTags.LEAVES) { it.add(HERBA, 2) } + i.item(ItemTags.SAPLINGS) { it.add(HERBA, 4).add(VICTUS, 4) } + i.item(ItemTags.LOGS) { it.add(HERBA, 8) } + i.item(ItemTags.FLOWERS) { it.add(HERBA, 4).add(VICTUS, 1) } + + i.item(Blocks.SUGAR_CANE) { + it.add(HERBA, 2) + .add(AQUA, 1) + .add(AER, 1) + } + + i.item(T7Blocks.TABLE) { it.add(HERBA, 12) } + i.item(T7Blocks.RESEARCH_TABLE) { + it.add(HERBA, 12) + .add(PRAECANTATIO, 2) + } + + i.item(ItemTags.WOOL) { + it.add(BESTIA, 4).add(SENSUS, 2).add(FABRICO, 4) + } + + i.item(Tags.Items.GLASS_BLOCKS_CHEAP) { it.add(VITREUS, 2) } + i.item(Tags.Items.GLASS_PANES) { it.add(VITREUS, 1) } + + i.item(ItemTags.WOOL) { it.add(BESTIA, 8).add(FABRICO, 4) } + + i.item(Blocks.TORCH) { it.add(LUX, 4) } + + i.item(Blocks.SNOW) { it.add(GELUM, 1) } + i.item(Blocks.SNOW_BLOCK) { it.add(GELUM, 4) } + i.item(Blocks.POWDER_SNOW) { it.add(GELUM, 2) } + + i.item(Blocks.BEDROCK) { + it.add(VACUOS, 25) + .add(TERRA, 25) + .add(TENEBRAE, 25) + } + i.item(T7Blocks.ETERNAL_FLAME) { + it.add(LUX, 12) + .add(POTENTIA, 8) + .add(IGNIS, 8) + } + i.item(T7Blocks.CRACKED_ELEMENTAL_STONE) { + it.add(TERRA, 4) + .add(PRAECANTATIO, 1) + } + i.item(T7Blocks.ELEMENTAL_STONE_BRICKS) { + it.add(TERRA, 4) + .add(PRAECANTATIO, 1) + } + i.item(T7Blocks.ELEMENTAL_CORE) { + it.add(TERRA, 6) + .add(PRAECANTATIO, 2) + } + i.item(Blocks.CRAFTING_TABLE) { + it.add(FABRICO, 8) + .add(HERBA, 4) + } + i.item(T7Blocks.ARCANE_WORKBENCH) { + it.add(FABRICO, 12) + .add(HERBA, 4) + .add(PRAECANTATIO, 2) + } + i.item(Items.CAULDRON) { + it.add(METALLUM, 56) + .add(ALKIMIA, 8) + } + i.item(T7Blocks.CRUCIBLE) { + it.add(METALLUM, 56) + .add(ALKIMIA, 8) + .add(PRAECANTATIO, 2) + } + i.item(T7Blocks.SEALING_JAR) { + it.add(VITREUS, 4) + .add(VACUOS, 2) + .add(PRAECANTATIO, 2) + } + i.item(Blocks.TNT) { + it.add(POTENTIA, 20) + .add(TERRA, 1) + } + i.item(Blocks.TRIPWIRE_HOOK) { + it.add(VINCULUM, 2) + .add(METALLUM, 2) + } + i.item(Blocks.HEAVY_CORE) { + it.add(METALLUM, 16) + .add(DESIDERIUM, 8) + .add(VACUOS, 2) + } + i.item(Blocks.BAMBOO) { it.add(HERBA, 1) } + i.item(ItemTags.BAMBOO_BLOCKS) { it.add(HERBA, 4) } } } +fun Builder.blockFamily(blockFamily: BlockFamily, builderConsumer: Consumer) { + val aspectBuilder = AspectMap.builder() + builderConsumer.accept(aspectBuilder) + val aspects = aspectBuilder.build() + + fun addFamilyVariant(block: Block?, multiplier: Number) { + if (block == null) return + add(key(block.asItem()), aspects.scale(multiplier), false) + } + + addFamilyVariant(blockFamily.baseBlock, 1) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.BUTTON), 1) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.CHISELED), 1) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.CRACKED), 1) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.CUT), 1) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.DOOR), 2) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.CUSTOM_FENCE), 1.5) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.FENCE), 1.5) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.CUSTOM_FENCE_GATE), 4) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.FENCE_GATE), 4) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.MOSAIC), 1) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.SIGN), 2) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.SLAB), 0.5) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.STAIRS), 1) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.PRESSURE_PLATE), 2) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.POLISHED), 1) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.TRAPDOOR), 3) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.WALL), 1) + addFamilyVariant(blockFamily.get(BlockFamily.Variant.WALL_SIGN), 2) +} + +fun Builder.item(item: ItemLike, builderConsumer: Consumer) { + val aspectBuilder = AspectMap.builder() + builderConsumer.accept(aspectBuilder) + add(key(item.asItem()), aspectBuilder.build(), false) +} + +fun Builder.item(sup: Supplier, builderConsumer: Consumer) = + item(sup.get(), builderConsumer) + +fun Builder.item(tag: TagKey, builderConsumer: Consumer) { + val aspectBuilder = AspectMap.builder() + builderConsumer.accept(aspectBuilder) + add(tag, aspectBuilder.build(), false) +} + fun Builder>.entity(entityType: EntityType<*>, builderConsumer: Consumer) { val aspectBuilder = AspectMap.builder() builderConsumer.accept(aspectBuilder) @@ -46,3 +385,7 @@ fun Builder>.entity(tag: TagKey>, builder private fun key(entityType: EntityType<*>): ResourceKey> { return BuiltInRegistries.ENTITY_TYPE.getResourceKey(entityType).orElseThrow() } + +private fun key(item: Item): ResourceKey { + return BuiltInRegistries.ITEM.getResourceKey(item).orElseThrow() +} diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/T7DatapackBuiltinEntriesProvider.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/T7DatapackBuiltinEntriesProvider.kt index 14da7e58..f219bfa1 100644 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/T7DatapackBuiltinEntriesProvider.kt +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/T7DatapackBuiltinEntriesProvider.kt @@ -117,7 +117,7 @@ class T7DatapackBuiltinEntriesProvider(output: PackOutput, registries: Completab } .add(T7DatapackRegistries.RESEARCH_ENTRY) { ctx -> ResearchEntryBuilder(ResearchEntries.Thavma.THAVMA, Vector2i(0, -6), false, T7Items.BOOK.get().defaultInstance) - .research(lockedAspect(2, 0, Aspects.AETHER), lockedAspect(2, 4, Aspects.AETHER)) + .research(lockedAspect(2, 0, Aspects.AETHER), lockedAspect(2, 4, Aspects.PRAECANTATIO)) .addPage(simpleTextPage(3, true)) .addPage(simpleTextPage(1, false)) .addChild(ResearchEntries.Thavma.TREES) @@ -136,13 +136,13 @@ class T7DatapackBuiltinEntriesProvider(output: PackOutput, registries: Completab .build(ctx) ResearchEntryBuilder(ResearchEntries.Thavma.ARCANE_LENS, Vector2i(2, -2), false, T7Items.ARCANE_LENS.get().defaultInstance) - .research(lockedAspect(2, 0, Aspects.LUX), lockedAspect(2, 4, Aspects.AETHER), broken(2, 2)) + .research(lockedAspect(2, 0, Aspects.LUX), lockedAspect(2, 4, Aspects.PRAECANTATIO), broken(2, 2)) .addChild(ResearchEntries.Thavma.RESEARCH_TABLE) .addPage(simpleTextPage(3, true)) .build(ctx) ResearchEntryBuilder(ResearchEntries.Thavma.RESEARCH_TABLE, Vector2i(0, 0), true, T7Blocks.RESEARCH_TABLE.get().asItem().defaultInstance) - .research(lockedAspect(2, 0, Aspects.AETHER), lockedAspect(2, 4, Aspects.HERBA)) + .research(lockedAspect(2, 0, Aspects.PRAECANTATIO), lockedAspect(2, 4, Aspects.HERBA)) .addPage { _, _ -> CraftingPage(Recipes.CHEST) } .addChild(ResearchEntries.Thavma.WANDS) .addChild(ResearchEntries.Thavma.TECHNOLOGY) @@ -152,7 +152,7 @@ class T7DatapackBuiltinEntriesProvider(output: PackOutput, registries: Completab .build(ctx) ResearchEntryBuilder(ResearchEntries.Thavma.RESEARCH_PROFICIENCY, Vector2i(-1, -1), false, T7Blocks.RESEARCH_TABLE.get().asItem().defaultInstance) - .research(lockedAspect(2, 0, Aspects.AETHER), lockedAspect(2, 4, Aspects.HERBA)) + .research(lockedAspect(2, 0, Aspects.PRAECANTATIO), lockedAspect(2, 4, Aspects.HERBA)) .build(ctx) ResearchEntryBuilder(ResearchEntries.Thavma.ALCHEMY, Vector2i(-2, 2), true, T7Blocks.CRUCIBLE.get().asItem().defaultInstance) @@ -160,15 +160,15 @@ class T7DatapackBuiltinEntriesProvider(output: PackOutput, registries: Completab .build(ctx) ResearchEntryBuilder(ResearchEntries.Thavma.WANDS, Vector2i(-2, 4), true, T7Items.wandOrThrow(WandPlatingMaterials.THAVMITE.get(), WandCoreMaterials.SILVERWOOD.get()).defaultInstance) - .research(lockedAspect(2, 0, Aspects.AETHER), lockedAspect(2, 4, Aspects.INSTRUMENTUM)) + .research(lockedAspect(2, 0, Aspects.PRAECANTATIO), lockedAspect(2, 4, Aspects.INSTRUMENTUM)) .build(ctx) ResearchEntryBuilder(ResearchEntries.Thavma.INFUSION, Vector2i(2, 2), true, T7Blocks.MATRIX.get().asItem().defaultInstance) - .research(lockedAspect(2, 0, Aspects.TERRA), lockedAspect(2, 4, Aspects.AETHER)) + .research(lockedAspect(2, 0, Aspects.TERRA), lockedAspect(2, 4, Aspects.PRAECANTATIO)) .build(ctx) ResearchEntryBuilder(ResearchEntries.Thavma.TECHNOLOGY, Vector2i(2, 4), true, T7Items.GOGGLES.get().defaultInstance) - .research(lockedAspect(2, 0, Aspects.INSTRUMENTUM), lockedAspect(2, 4, Aspects.CIVILIS)) + .research(lockedAspect(2, 0, Aspects.INSTRUMENTUM), lockedAspect(2, 4, Aspects.HUMANUS)) .build(ctx) ResearchEntryBuilder(ResearchEntries.Alchemy.ALCHEMY, Vector2i(0, 0), false, T7Blocks.CRUCIBLE.get().asItem().defaultInstance) diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/T7RecipeProvider.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/T7RecipeProvider.kt index 07da7e96..1ee0ad9a 100644 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/T7RecipeProvider.kt +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/T7RecipeProvider.kt @@ -11,6 +11,8 @@ import me.alegian.thavma.impl.init.registries.deferred.T7Items import me.alegian.thavma.impl.init.registries.deferred.T7Items.wandOrThrow import me.alegian.thavma.impl.init.registries.deferred.WandCoreMaterials import me.alegian.thavma.impl.init.registries.deferred.WandPlatingMaterials +import net.minecraft.advancements.Criterion +import net.minecraft.advancements.critereon.InventoryChangeTrigger import net.minecraft.advancements.critereon.ItemPredicate import net.minecraft.core.HolderLookup import net.minecraft.core.registries.BuiltInRegistries @@ -46,7 +48,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< wandPlatingCrafting(pRecipeOutput, T7Items.IRON_PLATING.get(), Items.IRON_INGOT, Items.IRON_NUGGET) wandPlatingWorkbench(pRecipeOutput, T7Items.GOLD_PLATING.get(), Items.GOLD_INGOT, Items.GOLD_NUGGET, AspectMap.ofPrimals(8)) wandPlatingWorkbench(pRecipeOutput, T7Items.ORICHALCUM_PLATING.get(), T7Items.ORICHALCUM_INGOT, T7Items.ORICHALCUM_NUGGET, AspectMap.ofPrimals(4)) - wandPlatingInfusion(pRecipeOutput, T7Items.THAVMITE_PLATING.get(), T7Items.THAVMITE_INGOT, T7Items.THAVMITE_NUGGET, AspectMap.builder().add(Aspects.AETHER, 16).build()) + wandPlatingInfusion(pRecipeOutput, T7Items.THAVMITE_PLATING.get(), T7Items.THAVMITE_INGOT, T7Items.THAVMITE_NUGGET, AspectMap.builder().add(Aspects.PRAECANTATIO, 16).build()) ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, T7Items.THAVMITE_SWORD.get()) .define('a', T7Items.THAVMITE_INGOT.get()) @@ -118,7 +120,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< T7Items.APPRENTICE_BOOTS, ) - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, T7Blocks.ELEMENTAL_STONE_BRICKS, 4) + ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, T7Blocks.ELEMENTAL_STONE_BRICKS) .define('s', T7Blocks.ELEMENTAL_STONE) .pattern("ss") .pattern("ss") @@ -223,7 +225,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< Ingredient.of(T7Blocks.SILVERWOOD_LOG), listOf(Ingredient.of(T7Items.SHARDS[Aspects.AETHER]!!), Ingredient.of(T7Items.SHARDS[Aspects.AETHER]!!), Ingredient.of(T7Items.SHARDS[Aspects.AETHER]!!), Ingredient.of(T7Items.SHARDS[Aspects.AETHER]!!)), AspectMap.builder() - .add(Aspects.AETHER, 16) + .add(Aspects.PRAECANTATIO, 16) .build(), ).save(pRecipeOutput) @@ -231,7 +233,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< .unlockedBy(T7Blocks.ELEMENTAL_STONE) .save(pRecipeOutput) - for (a in Aspects.DATAGEN_PRIMALS) { + for (a in Aspects.PRIMAL_ASPECTS) { SimpleCookingRecipeBuilder.blasting(Ingredient.of(T7Blocks.INFUSED_STONES[a], T7Blocks.INFUSED_DEEPSLATES[a]), RecipeCategory.MISC, T7Items.SHARDS[a]!!, 1f, 100) .unlockedBy(T7Tags.Items.INFUSED_STONES) .save(pRecipeOutput, T7Items.SHARDS[a]!!.id.withSuffix("_blasting")) @@ -243,7 +245,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< CrucibleRecipeBuilder( T7Items.THAVMITE_INGOT.get().defaultInstance, AspectMap.builder() - .add(Aspects.AETHER.get(), 4) + .add(Aspects.PRAECANTATIO.get(), 4) .build(), Ingredient.of(Items.IRON_INGOT) ).save(pRecipeOutput) @@ -261,6 +263,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< AspectMap.builder() .add(Aspects.IGNIS.get(), 8) .add(Aspects.LUX.get(), 8) + .add(Aspects.POTENTIA.get(), 8) .build(), Ingredient.of(Items.GLOWSTONE_DUST) ).save(pRecipeOutput) @@ -270,7 +273,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< Ingredient.of(T7Items.THAVMITE_HELMET), listOf(Ingredient.of(Items.NETHERITE_INGOT), Ingredient.of(Items.DIAMOND), Ingredient.of(Items.LEATHER)), AspectMap.builder() - .add(Aspects.AETHER, 16) + .add(Aspects.PRAECANTATIO, 16) .add(Aspects.PRAEMUNIO, 32) .build(), ).save(pRecipeOutput) @@ -279,7 +282,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< Ingredient.of(T7Items.THAVMITE_CHESTPLATE), listOf(Ingredient.of(Items.NETHERITE_INGOT), Ingredient.of(Items.DIAMOND), Ingredient.of(Items.LEATHER)), AspectMap.builder() - .add(Aspects.AETHER, 16) + .add(Aspects.PRAECANTATIO, 16) .add(Aspects.PRAEMUNIO, 32) .build(), ).save(pRecipeOutput) @@ -288,7 +291,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< Ingredient.of(T7Items.THAVMITE_LEGGINGS), listOf(Ingredient.of(Items.NETHERITE_INGOT), Ingredient.of(Items.DIAMOND), Ingredient.of(Items.LEATHER)), AspectMap.builder() - .add(Aspects.AETHER, 16) + .add(Aspects.PRAECANTATIO, 16) .add(Aspects.PRAEMUNIO, 32) .build(), ).save(pRecipeOutput) @@ -297,7 +300,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< Ingredient.of(T7Items.THAVMITE_BOOTS), listOf(Ingredient.of(Items.NETHERITE_INGOT), Ingredient.of(Items.DIAMOND), Ingredient.of(Items.LEATHER)), AspectMap.builder() - .add(Aspects.AETHER, 16) + .add(Aspects.PRAECANTATIO, 16) .add(Aspects.PRAEMUNIO, 32) .build(), ).save(pRecipeOutput) @@ -325,8 +328,8 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< Ingredient.of(T7Items.THAVMITE_SWORD), listOf(Ingredient.of(T7Items.THAVMITE_PLATING), Ingredient.of(T7Items.THAVMITE_PLATING), Ingredient.of(T7Items.GREATWOOD_CORE), Ingredient.of(Items.NETHERITE_INGOT)), AspectMap.builder() - .add(Aspects.AETHER, 16) - .add(Aspects.INSTRUMENTUM, 16) + .add(Aspects.PRAECANTATIO, 16) + .add(Aspects.AVERSIO, 16) .build(), ).save(pRecipeOutput) @@ -335,8 +338,8 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< Ingredient.of(Items.ENDER_PEARL), listOf(Ingredient.of(T7Items.THAVMITE_PLATING), Ingredient.of(T7Items.THAVMITE_PLATING), Ingredient.of(Blocks.DISPENSER)), AspectMap.builder() - .add(Aspects.AETHER, 20) - .add(Aspects.TENEBRAE, 16) + .add(Aspects.MOTUS, 32) + .add(Aspects.ALIENIS, 16) .add(Aspects.INSTRUMENTUM, 16) .build(), ).save(pRecipeOutput) @@ -345,7 +348,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< Ingredient.of(Items.QUARTZ_BLOCK), listOf(Ingredient.of(Items.GOLD_INGOT), Ingredient.of(Items.GOLD_INGOT), Ingredient.of(Items.LAPIS_LAZULI)), AspectMap.builder() - .add(Aspects.ORNATUS, 40) + .add(Aspects.PERMUTATIO, 40) .add(Aspects.INSTRUMENTUM, 16) .build(), ).save(pRecipeOutput) @@ -362,7 +365,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< .unlockedBy(Tags.Items.STORAGE_BLOCKS_COAL) .save(pRecipeOutput) WorkbenchRecipeBuilder.shaped(T7Items.FOCUS_ENDERCHEST, 1) - .requireAspects(AspectMap.builder().add(Aspects.TERRA, 12).add(Aspects.AETHER, 12).build()) + .requireAspects(AspectMap.builder().add(Aspects.TERRA, 12).add(Aspects.AER, 12).build()) .define('e', Blocks.ENDER_CHEST) .define('o', Tags.Items.OBSIDIANS) .define('b', Items.BUNDLE) @@ -375,7 +378,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< .save(pRecipeOutput) WorkbenchRecipeBuilder.shaped(T7Blocks.HUNGRY_CHEST, 1) - .requireAspects(AspectMap.builder().add(Aspects.TERRA, 8).add(Aspects.AETHER, 4).build()) + .requireAspects(AspectMap.builder().add(Aspects.AER, 8).add(Aspects.AETHER, 4).build()) .define('t', ItemTags.TRAPDOORS) .define('w', T7Blocks.GREATWOOD_PLANKS) .pattern("wtw") @@ -443,13 +446,14 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< WorkbenchRecipeBuilder.shaped(T7Blocks.ARCANE_LEVITATOR, 1) .requireAspects( AspectMap.builder() - .add(Aspects.TERRA, 8) - .add(Aspects.AETHER, 8) + .add(Aspects.AER, 12) + .add(Aspects.TERRA, 4) + .add(Aspects.AETHER, 4) .build() ) .define('s', T7Blocks.ELEMENTAL_STONE) .define('c', T7Blocks.ELEMENTAL_CORE) - .define('a', T7Items.SHARDS[Aspects.TERRA]!!) + .define('a', T7Items.SHARDS[Aspects.AER]!!) .pattern("sas") .pattern("scs") .pattern("sas") diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/ArmorAspects.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/ArmorAspects.kt index 386763b2..c91ed1db 100644 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/ArmorAspects.kt +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/ArmorAspects.kt @@ -1,111 +1,217 @@ package me.alegian.thavma.impl.init.data.providers.aspects import me.alegian.thavma.impl.init.data.providers.T7DataMapProvider +import me.alegian.thavma.impl.init.data.providers.item import me.alegian.thavma.impl.init.registries.T7DataMaps import me.alegian.thavma.impl.init.registries.T7Tags -import me.alegian.thavma.impl.init.registries.deferred.Aspects +import me.alegian.thavma.impl.init.registries.deferred.Aspects.AQUA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.BESTIA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.DESIDERIUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.FABRICO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.METALLUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRAECANTATIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRAEMUNIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.TENEBRAE +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VITREUS import me.alegian.thavma.impl.init.registries.deferred.T7Items import net.minecraft.core.HolderLookup import net.minecraft.world.item.Items object ArmorAspects { - val ironHelmet = MineralAspects.iron.mutate(Mutations.helmet(4)) - val ironChestplate = MineralAspects.iron.mutate(Mutations.chestplate(12)) - val ironLeggings = MineralAspects.iron.mutate(Mutations.leggings(10)) - val ironBoots = MineralAspects.iron.mutate(Mutations.boots(4)) - val ironHorseArmor = MineralAspects.iron.mutate(Mutations.horseArmor(6)) - - val goldHelmet = MineralAspects.gold.mutate(Mutations.helmet(4)) - val goldChestplate = MineralAspects.gold.mutate(Mutations.chestplate(10)) - val goldLeggings = MineralAspects.gold.mutate(Mutations.leggings(6)) - val goldBoots = MineralAspects.gold.mutate(Mutations.boots(2)) - val goldHorseArmor = MineralAspects.gold.mutate(Mutations.horseArmor(8)) - - val diamondHelmet = MineralAspects.diamond.mutate(Mutations.helmet(8)) - val diamondChestplate = MineralAspects.diamond.mutate(Mutations.chestplate(18)) - val diamondLeggings = MineralAspects.diamond.mutate(Mutations.leggings(14)) - val diamondBoots = MineralAspects.diamond.mutate(Mutations.boots(8)) - val diamondHorseArmor = MineralAspects.diamond.mutate(Mutations.horseArmor(12)) - - private val netheriteUpgrade = MineralAspects.netherite.mutate { it.add(Aspects.PRAEMUNIO, 1) } - val netheriteHelmet = diamondHelmet.add(netheriteUpgrade) - val netheriteChestplate = diamondChestplate.add(netheriteUpgrade) - val netheriteLeggings = diamondLeggings.add(netheriteUpgrade) - val netheriteBoots = diamondBoots.add(netheriteUpgrade) - - val thavmiteHelmet = MineralAspects.thavmite.mutate(Mutations.helmet(7)) - val thavmiteChestplate = MineralAspects.thavmite.mutate(Mutations.chestplate(13)) - val thavmiteLeggings = MineralAspects.thavmite.mutate(Mutations.leggings(11)) - val thavmiteBoots = MineralAspects.thavmite.mutate(Mutations.boots(5)) - - private val chainBase = MineralAspects.iron.mutate { it.scale(0.5) } - val chainHelmet = chainBase.mutate(Mutations.helmet(4)) - val chainChestplate = chainBase.mutate(Mutations.chestplate(10)) - val chainLeggings = chainBase.mutate(Mutations.leggings(8)) - val chainBoots = chainBase.mutate(Mutations.boots(2)) - - val leatherHelmet = BlockAndItemAspects.leather.mutate(Mutations.helmet(2)) - val leatherChestplate = BlockAndItemAspects.leather.mutate(Mutations.chestplate(6)) - val leatherLeggings = BlockAndItemAspects.leather.mutate(Mutations.leggings(4)) - val leatherBoots = BlockAndItemAspects.leather.mutate(Mutations.boots(2)) - val leatherHorseArmor = BlockAndItemAspects.leather.mutate(Mutations.horseArmor(4)) - - val goggles = BlockAndItemAspects.arcaneLens.mutate { it.scale(2) }.add(MineralAspects.orichalcum.mutate { it.scale(2) }) - val apprenticeChestplate = BlockAndItemAspects.fabric.mutate(Mutations.chestplate(2)) - val apprenticeLeggings = BlockAndItemAspects.fabric.mutate(Mutations.leggings(2)) - val apprenticeBoots = BlockAndItemAspects.fabric.mutate(Mutations.boots(2)) - - val wolfArmor = BlockAndItemAspects.armadilloScute.mutate(Mutations.wolfArmor(0)) - val turtleHelmet = BlockAndItemAspects.turtleScute.mutate(Mutations.helmet(0)) - fun gather(datamapProvider: T7DataMapProvider, lookupProvider: HolderLookup.Provider) { datamapProvider.builder(T7DataMaps.AspectContent.ITEM).run { - leatherHelmet.save(this, Items.LEATHER_HELMET) - leatherChestplate.save(this, Items.LEATHER_CHESTPLATE) - leatherLeggings.save(this, Items.LEATHER_LEGGINGS) - leatherBoots.save(this, Items.LEATHER_BOOTS) - leatherHorseArmor.save(this, Items.LEATHER_HORSE_ARMOR) - - goggles.save(this, T7Tags.Items.GOGGLES) - apprenticeChestplate.save(this, T7Items.APPRENTICE_CHESTPLATE) - apprenticeLeggings.save(this, T7Items.APPRENTICE_LEGGINGS) - apprenticeBoots.save(this, T7Items.APPRENTICE_BOOTS) - - chainHelmet.save(this, Items.CHAINMAIL_HELMET) - chainChestplate.save(this, Items.CHAINMAIL_CHESTPLATE) - chainLeggings.save(this, Items.CHAINMAIL_LEGGINGS) - chainBoots.save(this, Items.CHAINMAIL_BOOTS) - - ironHelmet.save(this, Items.IRON_HELMET) - ironChestplate.save(this, Items.IRON_CHESTPLATE) - ironLeggings.save(this, Items.IRON_LEGGINGS) - ironBoots.save(this, Items.IRON_BOOTS) - ironHorseArmor.save(this, Items.IRON_HORSE_ARMOR) - - goldHelmet.save(this, Items.GOLDEN_HELMET) - goldChestplate.save(this, Items.GOLDEN_CHESTPLATE) - goldLeggings.save(this, Items.GOLDEN_LEGGINGS) - goldBoots.save(this, Items.GOLDEN_BOOTS) - goldHorseArmor.save(this, Items.GOLDEN_HORSE_ARMOR) - - diamondHelmet.save(this, Items.DIAMOND_HELMET) - diamondChestplate.save(this, Items.DIAMOND_CHESTPLATE) - diamondLeggings.save(this, Items.DIAMOND_LEGGINGS) - diamondBoots.save(this, Items.DIAMOND_BOOTS) - diamondHorseArmor.save(this, Items.DIAMOND_HORSE_ARMOR) - - netheriteHelmet.save(this, Items.NETHERITE_HELMET) - netheriteChestplate.save(this, Items.NETHERITE_CHESTPLATE) - netheriteLeggings.save(this, Items.NETHERITE_LEGGINGS) - netheriteBoots.save(this, Items.NETHERITE_BOOTS) - - thavmiteHelmet.save(this, T7Items.THAVMITE_HELMET) - thavmiteChestplate.save(this, T7Items.THAVMITE_CHESTPLATE) - thavmiteLeggings.save(this, T7Items.THAVMITE_LEGGINGS) - thavmiteBoots.save(this, T7Items.THAVMITE_BOOTS) - - wolfArmor.save(this, Items.WOLF_ARMOR) - turtleHelmet.save(this, Items.TURTLE_HELMET) + item(Items.LEATHER_HELMET) { + it.add(BESTIA, 40) + .add(PRAEMUNIO, 2) + } + item(Items.LEATHER_CHESTPLATE) { + it.add(BESTIA, 64) + .add(PRAEMUNIO, 6) + } + item(Items.LEATHER_LEGGINGS) { + it.add(BESTIA, 56) + .add(PRAEMUNIO, 4) + } + item(Items.LEATHER_BOOTS) { + it.add(BESTIA, 32) + .add(PRAEMUNIO, 2) + } + + item(T7Tags.Items.GOGGLES) { + it.add(METALLUM, 32) + .add(DESIDERIUM, 32) + .add(PRAECANTATIO, 4) + .add(VITREUS, 4) + } + item(T7Items.APPRENTICE_CHESTPLATE) { + it.add(FABRICO, 32) + .add(PRAECANTATIO, 8) + .add(PRAEMUNIO, 2) + } + item(T7Items.APPRENTICE_LEGGINGS) { + it.add(FABRICO, 28) + .add(PRAECANTATIO, 7) + .add(PRAEMUNIO, 2) + } + item(T7Items.APPRENTICE_BOOTS) { + it.add(FABRICO, 16) + .add(PRAECANTATIO, 4) + .add(PRAEMUNIO, 2) + } + + item(Items.CHAINMAIL_HELMET) { + it.add(METALLUM, 20) + .add(PRAEMUNIO, 4) + } + item(Items.CHAINMAIL_CHESTPLATE) { + it.add(METALLUM, 32) + .add(PRAEMUNIO, 10) + } + item(Items.CHAINMAIL_LEGGINGS) { + it.add(METALLUM, 28) + .add(PRAEMUNIO, 8) + } + item(Items.CHAINMAIL_BOOTS) { + it.add(METALLUM, 16) + .add(PRAEMUNIO, 2) + } + + item(Items.IRON_HELMET) { + it.add(METALLUM, 40) + .add(PRAEMUNIO, 4) + } + item(Items.IRON_CHESTPLATE) { + it.add(METALLUM, 64) + .add(PRAEMUNIO, 12) + } + item(Items.IRON_LEGGINGS) { + it.add(METALLUM, 56) + .add(PRAEMUNIO, 10) + } + item(Items.IRON_BOOTS) { + it.add(METALLUM, 32) + .add(PRAEMUNIO, 4) + } + + item(T7Items.THAVMITE_HELMET) { + it.add(METALLUM, 40) + .add(PRAECANTATIO, 20) + .add(PRAEMUNIO, 7) + } + item(T7Items.THAVMITE_CHESTPLATE) { + it.add(METALLUM, 64) + .add(PRAECANTATIO, 32) + .add(PRAEMUNIO, 13) + } + item(T7Items.THAVMITE_LEGGINGS) { + it.add(METALLUM, 56) + .add(PRAECANTATIO, 28) + .add(PRAEMUNIO, 11) + } + item(T7Items.THAVMITE_BOOTS) { + it.add(METALLUM, 32) + .add(PRAECANTATIO, 16) + .add(PRAEMUNIO, 5) + } + + item(Items.GOLDEN_HELMET) { + it.add(METALLUM, 20) + .add(DESIDERIUM, 40) + .add(PRAEMUNIO, 4) + } + item(Items.GOLDEN_CHESTPLATE) { + it.add(METALLUM, 32) + .add(DESIDERIUM, 64) + .add(PRAEMUNIO, 10) + } + item(Items.GOLDEN_LEGGINGS) { + it.add(METALLUM, 28) + .add(DESIDERIUM, 56) + .add(PRAEMUNIO, 6) + } + item(Items.GOLDEN_BOOTS) { + it.add(METALLUM, 16) + .add(DESIDERIUM, 32) + .add(PRAEMUNIO, 2) + } + + item(Items.DIAMOND_HELMET) { + it.add(VITREUS, 40) + .add(DESIDERIUM, 40) + .add(PRAEMUNIO, 8) + } + item(Items.DIAMOND_CHESTPLATE) { + it.add(VITREUS, 64) + .add(DESIDERIUM, 64) + .add(PRAEMUNIO, 18) + } + item(Items.DIAMOND_LEGGINGS) { + it.add(VITREUS, 56) + .add(DESIDERIUM, 56) + .add(PRAEMUNIO, 14) + } + item(Items.DIAMOND_BOOTS) { + it.add(VITREUS, 32) + .add(DESIDERIUM, 32) + .add(PRAEMUNIO, 8) + } + + item(Items.NETHERITE_HELMET) { + it.add(METALLUM, 40) + .add(DESIDERIUM, 40) + .add(PRAEMUNIO, 9) + .add(TENEBRAE, 4) + } + item(Items.NETHERITE_CHESTPLATE) { + it.add(METALLUM, 64) + .add(DESIDERIUM, 64) + .add(PRAEMUNIO, 19) + .add(TENEBRAE, 4) + } + item(Items.NETHERITE_LEGGINGS) { + it.add(METALLUM, 56) + .add(DESIDERIUM, 56) + .add(PRAEMUNIO, 15) + .add(TENEBRAE, 4) + } + item(Items.NETHERITE_BOOTS) { + it.add(METALLUM, 32) + .add(DESIDERIUM, 32) + .add(PRAEMUNIO, 9) + .add(TENEBRAE, 4) + } + + item(Items.WOLF_ARMOR) { + it.add(BESTIA, 8) + .add(PRAEMUNIO, 6) + } + item(Items.LEATHER_HORSE_ARMOR) { + it.add(BESTIA, 16) + .add(PRAEMUNIO, 4) + } + item(Items.IRON_HORSE_ARMOR) { + it.add(METALLUM, 16) + .add(PRAEMUNIO, 6) + .add(BESTIA, 8) + } + item(Items.GOLDEN_HORSE_ARMOR) { + it.add(METALLUM, 8) + .add(DESIDERIUM, 16) + .add(PRAEMUNIO, 8) + .add(BESTIA, 8) + } + item(Items.DIAMOND_HORSE_ARMOR) { + it.add(VITREUS, 16) + .add(DESIDERIUM, 16) + .add(PRAEMUNIO, 12) + .add(BESTIA, 8) + } + + item(Items.TURTLE_HELMET) { + it.add(BESTIA, 10) + .add(PRAEMUNIO, 4) + .add(AQUA, 5) + } } } } \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/AspectDatagenHelper.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/AspectDatagenHelper.kt deleted file mode 100644 index 05c20dc5..00000000 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/AspectDatagenHelper.kt +++ /dev/null @@ -1,116 +0,0 @@ -package me.alegian.thavma.impl.init.data.providers.aspects - -import me.alegian.thavma.impl.common.aspect.AspectMap -import me.alegian.thavma.impl.common.item.itemResourceKey -import me.alegian.thavma.impl.init.registries.deferred.Aspects -import net.minecraft.resources.ResourceKey -import net.minecraft.tags.TagKey -import net.minecraft.world.item.Item -import net.minecraft.world.level.ItemLike -import net.neoforged.neoforge.common.data.DataMapProvider -import java.util.function.UnaryOperator - -class AspectGen(val aspects: AspectMap) { - constructor() : this(AspectMap()) - - fun mutate(mutation: UnaryOperator) = - AspectGen(mutation.apply(aspects)) - - fun add(other: AspectGen): AspectGen { - return AspectGen(aspects.add(other.aspects)) - } - - fun save(builder: DataMapProvider.Builder, tag: TagKey) { - builder.add(tag, aspects, false) - } - - fun save(builder: DataMapProvider.Builder, key: ResourceKey) { - builder.add(key, aspects, false) - } - - fun save(builder: DataMapProvider.Builder, itemLike: ItemLike) = - save(builder, itemLike.itemResourceKey) -} - -object Mutations { - val ORE = { it: AspectMap -> - it.add(Aspects.TERRA, 2) - } - val RAW = { it: AspectMap -> - it.scale(0.5).add(Aspects.TERRA, 2) - } - val STORAGE_BLOCK_4 = { it: AspectMap -> - it.scale(4) - } - val STORAGE_BLOCK_9 = { it: AspectMap -> - it.scale(9) - } - val PLATING = { it: AspectMap -> - it.scale(2) - } - - val BUTTON = { it: AspectMap -> it.scale(1) } - val CHISELED = { it: AspectMap -> it.scale(1) } - val CRACKED = { it: AspectMap -> it.scale(1) } - val CUT = { it: AspectMap -> it.scale(1) } - val MOSAIC = { it: AspectMap -> it.scale(1) } - val STAIRS = { it: AspectMap -> it.scale(1) } - val POLISHED = { it: AspectMap -> it.scale(1) } - val WALL = { it: AspectMap -> it.scale(1) } - val DOOR = { it: AspectMap -> it.scale(2) } - val SIGN = { it: AspectMap -> it.scale(2) } - val PRESSURE_PLATE = { it: AspectMap -> it.scale(2) } - val WALL_SIGN = { it: AspectMap -> it.scale(2) } - val FENCE = { it: AspectMap -> it.scale(1.5) } - val FENCE_GATE = { it: AspectMap -> it.scale(4) } - val SLAB = { it: AspectMap -> it.scale(0.5) } - val TRAPDOOR = { it: AspectMap -> it.scale(3) } - - fun helmet(praemunio: Int) = { it: AspectMap -> - it.scale(5).add(Aspects.PRAEMUNIO, praemunio) - } - - fun chestplate(praemunio: Int) = { it: AspectMap -> - it.scale(8).add(Aspects.PRAEMUNIO, praemunio) - } - - fun leggings(praemunio: Int) = { it: AspectMap -> - it.scale(7).add(Aspects.PRAEMUNIO, praemunio) - } - - fun boots(praemunio: Int) = { it: AspectMap -> - it.scale(4).add(Aspects.PRAEMUNIO, praemunio) - } - - fun horseArmor(praemunio: Int) = { it: AspectMap -> - it.scale(7).add(Aspects.PRAEMUNIO, praemunio) - } - - fun wolfArmor(praemunio: Int) = { it: AspectMap -> - it.scale(6).add(Aspects.PRAEMUNIO, praemunio) - } - - fun sword(stick: AspectGen, instrumentum: Int) = { it: AspectMap -> - it.scale(2).add(stick.aspects).add(Aspects.INSTRUMENTUM, instrumentum) - } - - fun pickaxe(stick: AspectGen, instrumentum: Int) = { it: AspectMap -> - it.scale(3).add(stick.aspects.scale(2)).add(Aspects.INSTRUMENTUM, instrumentum) - } - - fun axe(stick: AspectGen, instrumentum: Int) = { it: AspectMap -> - it.scale(3).add(stick.aspects.scale(2)).add(Aspects.INSTRUMENTUM, instrumentum) - } - - fun hoe(stick: AspectGen, instrumentum: Int) = { it: AspectMap -> - it.scale(2).add(stick.aspects.scale(2)).add(Aspects.INSTRUMENTUM, instrumentum) - } - - fun shovel(stick: AspectGen, instrumentum: Int) = { it: AspectMap -> - it.scale(1).add(stick.aspects.scale(2)).add(Aspects.INSTRUMENTUM, instrumentum) - } - - fun hammer(stick: AspectGen, instrumentum: Int) = { it: AspectMap -> - it.scale(6).add(stick.aspects).add(Aspects.INSTRUMENTUM, instrumentum) - } -} diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/AspectRelations.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/AspectRelations.kt deleted file mode 100644 index ed56255e..00000000 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/AspectRelations.kt +++ /dev/null @@ -1,40 +0,0 @@ -package me.alegian.thavma.impl.init.data.providers.aspects - -import me.alegian.thavma.impl.common.aspect.Aspect -import me.alegian.thavma.impl.init.data.providers.T7DataMapProvider -import me.alegian.thavma.impl.init.registries.T7DataMaps -import me.alegian.thavma.impl.init.registries.deferred.Aspects -import net.minecraft.core.Holder -import net.neoforged.neoforge.common.data.DataMapProvider - -object AspectRelations { - fun gather(datamapProvider: T7DataMapProvider) = - datamapProvider.builder(T7DataMaps.ASPECT_RELATIONS).run { - add(Aspects.TERRA, listOf(Aspects.VITREUS, Aspects.METALLUM, Aspects.HERBA, Aspects.VICTUS)) - add(Aspects.IGNIS, listOf(Aspects.METALLUM, Aspects.LUX)) - add(Aspects.AQUA, listOf(Aspects.HERBA, Aspects.VICTUS, Aspects.ALKIMIA)) - add(Aspects.AETHER, listOf(Aspects.ALKIMIA, Aspects.COGNITIO, Aspects.TENEBRAE)) - - add(Aspects.LUX, listOf()) - add(Aspects.VITREUS, listOf(Aspects.ORNATUS, Aspects.INSTRUMENTUM, Aspects.PRAEMUNIO)) - add(Aspects.METALLUM, listOf(Aspects.INSTRUMENTUM, Aspects.PRAEMUNIO, Aspects.MACHINA)) - add(Aspects.VICTUS, listOf(Aspects.HOSTILIS, Aspects.CIVILIS, Aspects.CORPUS)) - add(Aspects.HERBA, listOf()) - - add(Aspects.ALKIMIA, listOf()) - add(Aspects.TENEBRAE, listOf(Aspects.HOSTILIS)) - add(Aspects.INSTRUMENTUM, listOf(Aspects.FABRICO, Aspects.MACHINA)) - add(Aspects.FABRICO, listOf(Aspects.COGNITIO, Aspects.VAS, Aspects.ORNATUS, Aspects.PRAEMUNIO)) - add(Aspects.MACHINA, listOf()) - add(Aspects.VAS, listOf()) - add(Aspects.COGNITIO, listOf(Aspects.CIVILIS)) - add(Aspects.ORNATUS, listOf(Aspects.CIVILIS)) - add(Aspects.HOSTILIS, listOf()) - add(Aspects.CORPUS, listOf()) - add(Aspects.PRAEMUNIO, listOf()) - add(Aspects.CIVILIS, listOf()) - } - - private fun DataMapProvider.Builder, Aspect>.add(aspect: Holder, relations: List>) = - add(aspect, relations.map { it.value() }, false) -} \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/BlockAndItemAspects.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/BlockAndItemAspects.kt deleted file mode 100644 index 43d6afaa..00000000 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/BlockAndItemAspects.kt +++ /dev/null @@ -1,231 +0,0 @@ -package me.alegian.thavma.impl.init.data.providers.aspects - -import me.alegian.thavma.impl.init.data.providers.T7DataMapProvider -import me.alegian.thavma.impl.init.registries.T7DataMaps -import me.alegian.thavma.impl.init.registries.deferred.Aspects -import me.alegian.thavma.impl.init.registries.deferred.T7Blocks -import me.alegian.thavma.impl.init.registries.deferred.T7Items -import net.minecraft.core.HolderLookup -import net.minecraft.tags.ItemTags -import net.minecraft.world.item.Items -import net.minecraft.world.level.block.Blocks -import net.neoforged.neoforge.common.Tags - -object BlockAndItemAspects { - val stone = AspectGen().mutate { it.add(Aspects.TERRA, 2) } - val cobblestone = stone.mutate { it } - val dirt = AspectGen().mutate { it.add(Aspects.TERRA, 1) } - val gravel = AspectGen().mutate { it.add(Aspects.TERRA, 2) } - val sand = AspectGen().mutate { it.add(Aspects.TERRA, 2) } - val brick = AspectGen().mutate { it.add(Aspects.TERRA, 1).add(Aspects.IGNIS, 1) } - val rodsWooden = AspectGen().mutate { it.add(Aspects.HERBA, 1) } - val woodenPlanks = rodsWooden.mutate { it.scale(2) } - val netherPlanks = woodenPlanks.mutate { it.add(Aspects.IGNIS, 2) } - val bambooMosaic = woodenPlanks.mutate { it } - val inkSac = AspectGen().mutate { it.add(Aspects.AQUA, 2).add(Aspects.CORPUS, 2) } - val glowInkSac = inkSac.mutate { it.add(Aspects.LUX, 2) } - val cropsWheat = AspectGen().mutate { it.add(Aspects.VICTUS, 2).add(Aspects.HERBA, 2) } - val mud = AspectGen().mutate { it.add(Aspects.TERRA, 2).add(Aspects.AQUA, 1) } - val packedMud = mud.add(cropsWheat) - val mudBricks = mud.mutate { it } - val andesite = stone.mutate { it } - val polishedAndesite = andesite.mutate { it } - val blackstone = stone.mutate { it.add(Aspects.IGNIS, 2) } - val polishedBlackstone = blackstone.mutate { it } - val polishedBlackstoneBricks = polishedBlackstone.mutate { it } - val bricks = brick.mutate(Mutations.STORAGE_BLOCK_4) - val endStone = AspectGen().mutate { it.add(Aspects.TERRA, 2).add(Aspects.TENEBRAE, 2) } - val endStoneBricks = endStone.mutate { it } - val stoneBrick = stone.mutate { it } - val mossyStoneBricks = stoneBrick.mutate { it.add(Aspects.HERBA, 1) } - val mossyCobblestone = cobblestone.mutate { it.add(Aspects.HERBA, 1) } - val diorite = stone.mutate { it } - val polishedDiorite = diorite.mutate { it } - val granite = stone.mutate { it } - val polishedGranite = granite.mutate { it } - val tuff = stone.mutate { it } - val polishedTuff = tuff.mutate { it } - val tuffBricks = tuff.mutate { it } - val netherrack = AspectGen().mutate { it.add(Aspects.TERRA, 1).add(Aspects.IGNIS, 1) } - val netherBrick = netherrack.mutate { it } - val netherBricks = netherBrick.mutate(Mutations.STORAGE_BLOCK_4) - val netherWart = AspectGen().mutate { it.add(Aspects.HERBA, 2).add(Aspects.IGNIS, 2) } - val redNetherBricks = netherBrick.mutate { it.scale(2) }.add(netherWart.mutate { it.scale(2) }) - val prismarineCrystals = AspectGen().mutate { it.add(Aspects.VITREUS, 2).add(Aspects.AQUA, 1).add(Aspects.LUX, 1) } - val prismarineShard = AspectGen().mutate { it.add(Aspects.AQUA, 1).add(Aspects.TERRA, 1) } - val prismarine = prismarineShard.mutate(Mutations.STORAGE_BLOCK_4) - val chorusFruit = AspectGen().mutate { it.add(Aspects.HERBA, 2).add(Aspects.TENEBRAE, 2) } - val poppedChorusFruit = chorusFruit.mutate { it } - val purpur = poppedChorusFruit.mutate { it } - val prismarineBricks = prismarineShard.mutate(Mutations.STORAGE_BLOCK_9) - val darkPrismarine = prismarineShard.mutate { it.scale(8) }.add(inkSac) - val seaLantern = prismarineCrystals.mutate { it.scale(5) }.add(prismarineBricks.mutate { it.scale(4) }) - val smoothQuartz = MineralAspects.quartzBlock.mutate { it } - val sandstone = sand.mutate(Mutations.STORAGE_BLOCK_4) - val cutSandstone = sandstone.mutate { it } - val smoothSandstone = sandstone.mutate { it } - val deepslate = stone.mutate { it } - val cobbledDeepslate = deepslate.mutate { it } - val polishedDeepslate = deepslate.mutate { it } - val deepslateBricks = deepslate.mutate { it } - val deepslateTiles = deepslate.mutate { it } - val elementalStone = stone.mutate { it.scale(2).add(Aspects.AETHER, 1) } - val leather = AspectGen().mutate { it.add(Aspects.CORPUS, 3) } - val string = AspectGen().mutate { it.add(Aspects.CORPUS, 1).add(Aspects.FABRICO, 1) } - val wool = string.mutate(Mutations.STORAGE_BLOCK_4) - val fabric = wool.mutate { it.remove(Aspects.CORPUS).add(Aspects.AETHER, 1) } - val glassPanes = AspectGen().mutate { it.add(Aspects.VITREUS, 1) } - val glassBlocksCheap = glassPanes.mutate { it.scale(2) } - val arcaneLens = MineralAspects.gold.mutate { it.scale(4).add(Aspects.AETHER, 4) }.add(glassPanes) - val armadilloScute = AspectGen().mutate { it.add(Aspects.CORPUS, 2).add(Aspects.PRAEMUNIO, 1) } - val turtleScute = AspectGen().mutate { it.add(Aspects.CORPUS, 2).add(Aspects.PRAEMUNIO, 1).add(Aspects.AQUA, 1) } - val blazePowder = AspectGen().mutate { it.add(Aspects.IGNIS, 2).add(Aspects.ALKIMIA, 1) } - val gunpowders = AspectGen().mutate { it.add(Aspects.IGNIS, 4).add(Aspects.ALKIMIA, 2).add(Aspects.TERRA, 1) } - val rodsBlaze = blazePowder.mutate { it.scale(2).add(Aspects.CORPUS, 2) } - val rodsBreeze = AspectGen().mutate { it.add(Aspects.AETHER, 6).add(Aspects.CORPUS, 2) } - val windCharge = AspectGen().mutate { it.add(Aspects.ALKIMIA, 4).add(Aspects.AETHER, 4).add(Aspects.INSTRUMENTUM, 2) } - val fireCharge = AspectGen().mutate { it.add(Aspects.ALKIMIA, 4).add(Aspects.IGNIS, 4).add(Aspects.INSTRUMENTUM, 2) } - val rottenFlesh = AspectGen().mutate { it.add(Aspects.HOSTILIS, 2).add(Aspects.CORPUS, 2) } - val rottenBrain = rottenFlesh.mutate { it.add(Aspects.COGNITIO, 12) } - val flint = gravel.mutate { it.scale(0.5).add(Aspects.INSTRUMENTUM, 1) } - val feathers = AspectGen().mutate { it.add(Aspects.INSTRUMENTUM, 1).add(Aspects.CORPUS, 2) } - val enderPearls = AspectGen().mutate { it.add(Aspects.INSTRUMENTUM, 4).add(Aspects.TENEBRAE, 4).add(Aspects.CORPUS, 2) } - val enderEye = enderPearls.add(blazePowder).mutate { it.remove(Aspects.CORPUS).add(Aspects.AETHER, 2) } - val ghastTear = AspectGen().mutate { it.add(Aspects.HOSTILIS, 4).add(Aspects.ALKIMIA, 4) } - val sugar = AspectGen().mutate { it.add(Aspects.HERBA, 2).add(Aspects.VICTUS, 1) } - val paper = AspectGen().mutate { it.add(Aspects.COGNITIO, 1).add(Aspects.HERBA, 1) } - val fireworkRocket = AspectGen().mutate { it.add(Aspects.IGNIS, 1).add(Aspects.ORNATUS, 1) } - val fireworkStar = AspectGen().mutate { it.add(Aspects.IGNIS, 1).add(Aspects.ORNATUS, 2) } - val snowball = AspectGen().mutate { it.add(Aspects.AQUA, 1) } - val clayBall = AspectGen().mutate { it.add(Aspects.TERRA, 1).add(Aspects.AQUA, 1) } - val eggs = AspectGen().mutate { it.add(Aspects.VICTUS, 4).add(Aspects.CORPUS, 2) } - val endCrystal = glassBlocksCheap.mutate { it.scale(7) }.add(enderEye).add(ghastTear) - val chorusPlant = AspectGen().mutate { it.add(Aspects.HERBA, 2).add(Aspects.TENEBRAE, 2) } - val chorusFlower = chorusPlant.mutate { it.scale(2) } - val coarseDirt = dirt.add(gravel).mutate { it.scale(0.5) } - val clay = clayBall.mutate(Mutations.STORAGE_BLOCK_4) - val grassBlock = AspectGen().mutate { it.add(Aspects.TERRA, 1).add(Aspects.HERBA, 1) } - val podzol = grassBlock.mutate { it } - val grass = AspectGen().mutate { it.add(Aspects.HERBA, 1) } - val terracotta = bricks.mutate { it.add(Aspects.ORNATUS, 1) } - val concretePowders = sand.add(gravel).mutate { it.scale(0.5) } - val concretes = concretePowders.mutate { it.add(Aspects.AQUA, 1) } - val leaves = AspectGen().mutate { it.add(Aspects.HERBA, 2) } - val saplings = AspectGen().mutate { it.add(Aspects.HERBA, 4).add(Aspects.VICTUS, 4) } - val logs = AspectGen().mutate { it.add(Aspects.HERBA, 8) } - val flowers = AspectGen().mutate { it.add(Aspects.HERBA, 4).add(Aspects.VICTUS, 1) } - val sugarCane = AspectGen().mutate { it.add(Aspects.HERBA, 2).add(Aspects.AQUA, 1) } - val table = woodenPlanks.mutate { it.scale(5.5).add(Aspects.FABRICO, 2) } - val researchTable = AspectGen().mutate { it.add(Aspects.HERBA, 12).add(Aspects.AETHER, 2) } - val torch = AspectGen().mutate { it.add(Aspects.LUX, 4) } - val snow = snowball.mutate { it } - val snowBlock = snowball.mutate(Mutations.STORAGE_BLOCK_4) - val powderSnow = snowball.mutate { it.scale(2) } - val bedrock = AspectGen().mutate { it.add(Aspects.TERRA, 25).add(Aspects.TENEBRAE, 25) } - val eternalFlame = AspectGen().mutate { it.add(Aspects.LUX, 12).add(Aspects.IGNIS, 8) } - val crackedElementalStone = elementalStone.mutate { it } - val elementalStoneBricks = elementalStone.mutate { it } - val elementalCore = AspectGen().mutate { it.add(Aspects.TERRA, 6).add(Aspects.AETHER, 2) } - val craftingTable = woodenPlanks.mutate { it.scale(4).add(Aspects.FABRICO, 4) } - val arcaneWorkbench = craftingTable.mutate { it.add(Aspects.AETHER, 2).add(Aspects.FABRICO, 4) } - val cauldron = MineralAspects.iron.mutate { it.scale(7).add(Aspects.ALKIMIA, 8) } - val crucible = cauldron.mutate { it.add(Aspects.AETHER, 2) } - val sealingJar = AspectGen().mutate { it.add(Aspects.VITREUS, 4).add(Aspects.ALKIMIA, 2).add(Aspects.AETHER, 2) } - val tnt = gunpowders.mutate { it.scale(5) }.add(sand.mutate { it.scale(4) }) - val tripwireHook = MineralAspects.iron.add(rodsWooden).add(woodenPlanks).mutate { it.scale(0.5).add(Aspects.MACHINA, 2) } - val heavyCore = AspectGen().mutate { it.add(Aspects.METALLUM, 16).add(Aspects.INSTRUMENTUM, 6) } - val bamboo = rodsWooden.mutate { it } - val bambooBlocks = woodenPlanks.mutate { it.scale(2) } - - fun gather(datamapProvider: T7DataMapProvider, lookupProvider: HolderLookup.Provider) { - datamapProvider.builder(T7DataMaps.AspectContent.ITEM).run { - leather.save(this, Tags.Items.LEATHERS) - fabric.save(this, T7Items.FABRIC) - arcaneLens.save(this, T7Items.ARCANE_LENS) - armadilloScute.save(this, Items.ARMADILLO_SCUTE) - turtleScute.save(this, Items.TURTLE_SCUTE) - blazePowder.save(this, Items.BLAZE_POWDER) - gunpowders.save(this, Tags.Items.GUNPOWDERS) - rodsBlaze.save(this, Tags.Items.RODS_BLAZE) - rodsBreeze.save(this, Tags.Items.RODS_BREEZE) - windCharge.save(this, Items.WIND_CHARGE) - fireCharge.save(this, Items.FIRE_CHARGE) - rottenBrain.save(this, T7Items.ROTTEN_BRAIN) - rottenFlesh.save(this, Items.ROTTEN_FLESH) - flint.save(this, Items.FLINT) - feathers.save(this, Tags.Items.FEATHERS) - enderPearls.save(this, Tags.Items.ENDER_PEARLS) - enderEye.save(this, Items.ENDER_EYE) - string.save(this, Tags.Items.STRINGS) - ghastTear.save(this, Items.GHAST_TEAR) - sugar.save(this, Items.SUGAR) - paper.save(this, Items.PAPER) - fireworkRocket.save(this, Items.FIREWORK_ROCKET) - fireworkStar.save(this, Items.FIREWORK_STAR) - snowball.save(this, Items.SNOWBALL) - netherBrick.save(this, Items.NETHER_BRICK) - prismarineCrystals.save(this, Items.PRISMARINE_CRYSTALS) - prismarineShard.save(this, Items.PRISMARINE_SHARD) - chorusFruit.save(this, Items.CHORUS_FRUIT) - poppedChorusFruit.save(this, Items.POPPED_CHORUS_FRUIT) - clayBall.save(this, Items.CLAY_BALL) - brick.save(this, Items.BRICK) - rodsWooden.save(this, Tags.Items.RODS_WOODEN) - eggs.save(this, Tags.Items.EGGS) - cropsWheat.save(this, Tags.Items.CROPS_WHEAT) - endCrystal.save(this, Items.END_CRYSTAL) - netherWart.save(this, Blocks.NETHER_WART) - chorusPlant.save(this, Blocks.CHORUS_PLANT) - chorusFlower.save(this, Blocks.CHORUS_FLOWER) - netherrack.save(this, Tags.Items.NETHERRACKS) - mud.save(this, Blocks.MUD) - packedMud.save(this, Blocks.PACKED_MUD) - dirt.save(this, ItemTags.DIRT) - coarseDirt.save(this, Blocks.COARSE_DIRT) - gravel.save(this, Tags.Items.GRAVELS) - stone.save(this, Tags.Items.STONES) - cobblestone.save(this, Tags.Items.COBBLESTONES) - sand.save(this, Tags.Items.SANDS) - clay.save(this, Blocks.CLAY) - grassBlock.save(this, Blocks.GRASS_BLOCK) - podzol.save(this, Blocks.PODZOL) - grass.save(this, Blocks.SHORT_GRASS) - grass.save(this, Blocks.TALL_GRASS) - terracotta.save(this, ItemTags.TERRACOTTA) - concretePowders.save(this, Tags.Items.CONCRETE_POWDERS) - concretes.save(this, Tags.Items.CONCRETES) - leaves.save(this, ItemTags.LEAVES) - saplings.save(this, ItemTags.SAPLINGS) - logs.save(this, ItemTags.LOGS) - flowers.save(this, ItemTags.FLOWERS) - sugarCane.save(this, Blocks.SUGAR_CANE) - table.save(this, T7Blocks.TABLE) - researchTable.save(this, T7Blocks.RESEARCH_TABLE) - wool.save(this, ItemTags.WOOL) - glassBlocksCheap.save(this, Tags.Items.GLASS_BLOCKS_CHEAP) - glassPanes.save(this, Tags.Items.GLASS_PANES) - torch.save(this, Blocks.TORCH) - snow.save(this, Blocks.SNOW) - snowBlock.save(this, Blocks.SNOW_BLOCK) - powderSnow.save(this, Blocks.POWDER_SNOW) - bedrock.save(this, Blocks.BEDROCK) - eternalFlame.save(this, T7Blocks.ETERNAL_FLAME) - crackedElementalStone.save(this, T7Blocks.CRACKED_ELEMENTAL_STONE) - elementalStoneBricks.save(this, T7Blocks.ELEMENTAL_STONE_BRICKS) - elementalCore.save(this, T7Blocks.ELEMENTAL_CORE) - craftingTable.save(this, Blocks.CRAFTING_TABLE) - arcaneWorkbench.save(this, T7Blocks.ARCANE_WORKBENCH) - cauldron.save(this, Items.CAULDRON) - crucible.save(this, T7Blocks.CRUCIBLE) - sealingJar.save(this, T7Blocks.SEALING_JAR) - tnt.save(this, Blocks.TNT) - tripwireHook.save(this, Blocks.TRIPWIRE_HOOK) - heavyCore.save(this, Blocks.HEAVY_CORE) - bamboo.save(this, Blocks.BAMBOO) - bambooBlocks.save(this, ItemTags.BAMBOO_BLOCKS) - inkSac.save(this, Items.INK_SAC) - glowInkSac.save(this, Items.GLOW_INK_SAC) - seaLantern.save(this, Items.SEA_LANTERN) - } - } -} diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/BlockFamilyAspects.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/BlockFamilyAspects.kt index 125b1fb6..3380db36 100644 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/BlockFamilyAspects.kt +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/BlockFamilyAspects.kt @@ -1,115 +1,249 @@ package me.alegian.thavma.impl.init.data.providers.aspects -import me.alegian.thavma.impl.common.aspect.AspectMap import me.alegian.thavma.impl.init.data.T7BlockFamilies import me.alegian.thavma.impl.init.data.providers.T7DataMapProvider +import me.alegian.thavma.impl.init.data.providers.blockFamily import me.alegian.thavma.impl.init.registries.T7DataMaps +import me.alegian.thavma.impl.init.registries.deferred.Aspects.ALIENIS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.AQUA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.HERBA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.IGNIS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.METALLUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PERMUTATIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRAECANTATIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.TERRA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VITREUS import net.minecraft.core.HolderLookup import net.minecraft.data.BlockFamilies -import net.minecraft.data.BlockFamily -import net.minecraft.world.item.Item -import net.minecraft.world.level.block.Block -import net.neoforged.neoforge.common.data.DataMapProvider.Builder object BlockFamilyAspects { - fun gather(datamapProvider: T7DataMapProvider, lookupProvider: HolderLookup.Provider) = datamapProvider.builder(T7DataMaps.AspectContent.ITEM).run { - blockFamily(BlockFamilies.ACACIA_PLANKS, BlockAndItemAspects.woodenPlanks) - blockFamily(BlockFamilies.CHERRY_PLANKS, BlockAndItemAspects.woodenPlanks) - blockFamily(BlockFamilies.BIRCH_PLANKS, BlockAndItemAspects.woodenPlanks) - blockFamily(BlockFamilies.CRIMSON_PLANKS, BlockAndItemAspects.netherPlanks) - blockFamily(BlockFamilies.JUNGLE_PLANKS, BlockAndItemAspects.woodenPlanks) - blockFamily(BlockFamilies.OAK_PLANKS, BlockAndItemAspects.woodenPlanks) - blockFamily(BlockFamilies.DARK_OAK_PLANKS, BlockAndItemAspects.woodenPlanks) - blockFamily(BlockFamilies.SPRUCE_PLANKS, BlockAndItemAspects.woodenPlanks) - blockFamily(BlockFamilies.WARPED_PLANKS, BlockAndItemAspects.netherPlanks) - blockFamily(BlockFamilies.MANGROVE_PLANKS, BlockAndItemAspects.woodenPlanks) - blockFamily(BlockFamilies.BAMBOO_PLANKS, BlockAndItemAspects.woodenPlanks) - blockFamily(BlockFamilies.BAMBOO_MOSAIC, BlockAndItemAspects.bambooMosaic) - blockFamily(BlockFamilies.MUD_BRICKS, BlockAndItemAspects.mudBricks) - blockFamily(BlockFamilies.ANDESITE, BlockAndItemAspects.andesite) - blockFamily(BlockFamilies.POLISHED_ANDESITE, BlockAndItemAspects.polishedAndesite) - blockFamily(BlockFamilies.BLACKSTONE, BlockAndItemAspects.blackstone) - blockFamily(BlockFamilies.POLISHED_BLACKSTONE, BlockAndItemAspects.polishedBlackstone) - blockFamily(BlockFamilies.POLISHED_BLACKSTONE_BRICKS, BlockAndItemAspects.polishedBlackstoneBricks) - blockFamily(BlockFamilies.BRICKS, BlockAndItemAspects.bricks) - blockFamily(BlockFamilies.END_STONE_BRICKS, BlockAndItemAspects.endStoneBricks) - blockFamily(BlockFamilies.MOSSY_STONE_BRICKS, BlockAndItemAspects.mossyStoneBricks) - blockFamily(BlockFamilies.COPPER_BLOCK, MineralAspects.copperBlock) - blockFamily(BlockFamilies.CUT_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.WAXED_COPPER_BLOCK, MineralAspects.copperBlock) - blockFamily(BlockFamilies.WAXED_CUT_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.EXPOSED_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.EXPOSED_CUT_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.WAXED_EXPOSED_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.WAXED_EXPOSED_CUT_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.WEATHERED_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.WEATHERED_CUT_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.WAXED_WEATHERED_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.WAXED_WEATHERED_CUT_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.OXIDIZED_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.OXIDIZED_CUT_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.WAXED_OXIDIZED_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.WAXED_OXIDIZED_CUT_COPPER, MineralAspects.copperBlock) - blockFamily(BlockFamilies.COBBLESTONE, BlockAndItemAspects.cobblestone) - blockFamily(BlockFamilies.MOSSY_COBBLESTONE, BlockAndItemAspects.mossyCobblestone) - blockFamily(BlockFamilies.DIORITE, BlockAndItemAspects.diorite) - blockFamily(BlockFamilies.POLISHED_DIORITE, BlockAndItemAspects.polishedDiorite) - blockFamily(BlockFamilies.GRANITE, BlockAndItemAspects.granite) - blockFamily(BlockFamilies.POLISHED_GRANITE, BlockAndItemAspects.polishedGranite) - blockFamily(BlockFamilies.TUFF, BlockAndItemAspects.tuff) - blockFamily(BlockFamilies.POLISHED_TUFF, BlockAndItemAspects.polishedTuff) - blockFamily(BlockFamilies.TUFF_BRICKS, BlockAndItemAspects.tuffBricks) - blockFamily(BlockFamilies.NETHER_BRICKS, BlockAndItemAspects.netherBricks) - blockFamily(BlockFamilies.RED_NETHER_BRICKS, BlockAndItemAspects.redNetherBricks) - blockFamily(BlockFamilies.PRISMARINE, BlockAndItemAspects.prismarine) - blockFamily(BlockFamilies.PURPUR, BlockAndItemAspects.purpur) - blockFamily(BlockFamilies.PRISMARINE_BRICKS, BlockAndItemAspects.prismarineBricks) - blockFamily(BlockFamilies.DARK_PRISMARINE, BlockAndItemAspects.darkPrismarine) - blockFamily(BlockFamilies.QUARTZ, MineralAspects.quartzBlock) - blockFamily(BlockFamilies.SMOOTH_QUARTZ, BlockAndItemAspects.smoothQuartz) - blockFamily(BlockFamilies.SANDSTONE, BlockAndItemAspects.sandstone) - blockFamily(BlockFamilies.CUT_SANDSTONE, BlockAndItemAspects.cutSandstone) - blockFamily(BlockFamilies.SMOOTH_SANDSTONE, BlockAndItemAspects.smoothSandstone) - blockFamily(BlockFamilies.RED_SANDSTONE, BlockAndItemAspects.sandstone) - blockFamily(BlockFamilies.CUT_RED_SANDSTONE, BlockAndItemAspects.cutSandstone) - blockFamily(BlockFamilies.SMOOTH_RED_SANDSTONE, BlockAndItemAspects.smoothSandstone) - blockFamily(BlockFamilies.STONE, BlockAndItemAspects.stone) - blockFamily(BlockFamilies.STONE_BRICK, BlockAndItemAspects.stoneBrick) - blockFamily(BlockFamilies.DEEPSLATE, BlockAndItemAspects.deepslate) - blockFamily(BlockFamilies.COBBLED_DEEPSLATE, BlockAndItemAspects.cobbledDeepslate) - blockFamily(BlockFamilies.POLISHED_DEEPSLATE, BlockAndItemAspects.polishedDeepslate) - blockFamily(BlockFamilies.DEEPSLATE_BRICKS, BlockAndItemAspects.deepslateBricks) - blockFamily(BlockFamilies.DEEPSLATE_TILES, BlockAndItemAspects.deepslateTiles) - blockFamily(T7BlockFamilies.GREATWOOD_PLANKS, BlockAndItemAspects.woodenPlanks) - blockFamily(T7BlockFamilies.ELEMENTAL_STONE, BlockAndItemAspects.elementalStone) + blockFamily(BlockFamilies.ACACIA_PLANKS) { + it.add(HERBA, 2) + } + blockFamily(BlockFamilies.CHERRY_PLANKS) { + it.add(HERBA, 2) + } + blockFamily(BlockFamilies.BIRCH_PLANKS) { + it.add(HERBA, 2) + } + blockFamily(BlockFamilies.CRIMSON_PLANKS) { + it.add(HERBA, 2).add(IGNIS, 2) + } + blockFamily(BlockFamilies.JUNGLE_PLANKS) { + it.add(HERBA, 2) + } + blockFamily(BlockFamilies.OAK_PLANKS) { + it.add(HERBA, 2) + } + blockFamily(BlockFamilies.DARK_OAK_PLANKS) { + it.add(HERBA, 2) + } + blockFamily(BlockFamilies.SPRUCE_PLANKS) { + it.add(HERBA, 2) + } + blockFamily(BlockFamilies.WARPED_PLANKS) { + it.add(HERBA, 2).add(IGNIS, 2) + } + blockFamily(BlockFamilies.MANGROVE_PLANKS) { + it.add(HERBA, 2) + } + blockFamily(BlockFamilies.BAMBOO_PLANKS) { + it.add(HERBA, 2) + } + blockFamily(BlockFamilies.BAMBOO_MOSAIC) { + it.add(HERBA, 2) + } + blockFamily(BlockFamilies.MUD_BRICKS) { + it.add(TERRA, 2).add(HERBA, 2) + } + blockFamily(BlockFamilies.ANDESITE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.POLISHED_ANDESITE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.BLACKSTONE) { + it.add(TERRA, 2).add(IGNIS, 2) + } + blockFamily(BlockFamilies.POLISHED_BLACKSTONE) { + it.add(TERRA, 2).add(IGNIS, 2) + } + blockFamily(BlockFamilies.POLISHED_BLACKSTONE_BRICKS) { + it.add(TERRA, 2).add(IGNIS, 2) + } + blockFamily(BlockFamilies.BRICKS) { + it.add(TERRA, 4).add(IGNIS, 4) + } + blockFamily(BlockFamilies.END_STONE_BRICKS) { + it.add(TERRA, 2).add(ALIENIS, 2) + } + blockFamily(BlockFamilies.MOSSY_STONE_BRICKS) { + it.add(TERRA, 2).add(HERBA, 2) + } + blockFamily(BlockFamilies.COPPER_BLOCK) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.CUT_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.WAXED_COPPER_BLOCK) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.WAXED_CUT_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.EXPOSED_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.EXPOSED_CUT_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.WAXED_EXPOSED_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.WAXED_EXPOSED_CUT_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.WEATHERED_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.WEATHERED_CUT_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.WAXED_WEATHERED_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.WAXED_WEATHERED_CUT_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.OXIDIZED_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.OXIDIZED_CUT_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.WAXED_OXIDIZED_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.WAXED_OXIDIZED_CUT_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + blockFamily(BlockFamilies.COBBLESTONE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.MOSSY_COBBLESTONE) { + it.add(TERRA, 2).add(HERBA, 2) + } + blockFamily(BlockFamilies.DIORITE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.POLISHED_DIORITE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.GRANITE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.POLISHED_GRANITE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.TUFF) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.POLISHED_TUFF) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.TUFF_BRICKS) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.NETHER_BRICKS) { + it.add(TERRA, 4).add(IGNIS, 4) + } + blockFamily(BlockFamilies.RED_NETHER_BRICKS) { + it.add(TERRA, 2).add(IGNIS, 2).add(HERBA, 2) + } + blockFamily(BlockFamilies.PRISMARINE) { + it.add(AQUA, 4).add(TERRA, 4) + } + blockFamily(BlockFamilies.PURPUR) { + it.add(ALIENIS, 2).add(HERBA, 2) + } + blockFamily(BlockFamilies.PRISMARINE_BRICKS) { + it.add(AQUA, 8).add(TERRA, 8) + } + blockFamily(BlockFamilies.DARK_PRISMARINE) { + it.add(AQUA, 4).add(TERRA, 4) + } + blockFamily(BlockFamilies.QUARTZ) { + it.add(VITREUS, 16) + .add(IGNIS, 4) + } + blockFamily(BlockFamilies.SMOOTH_QUARTZ) { + it.add(VITREUS, 16) + .add(IGNIS, 4) + } + blockFamily(BlockFamilies.SANDSTONE) { + it.add(TERRA, 4) + } + blockFamily(BlockFamilies.CUT_SANDSTONE) { + it.add(TERRA, 4) + } + blockFamily(BlockFamilies.SMOOTH_SANDSTONE) { + it.add(TERRA, 4) + } + blockFamily(BlockFamilies.RED_SANDSTONE) { + it.add(TERRA, 4) + } + blockFamily(BlockFamilies.CUT_RED_SANDSTONE) { + it.add(TERRA, 4) + } + blockFamily(BlockFamilies.SMOOTH_RED_SANDSTONE) { + it.add(TERRA, 4) + } + blockFamily(BlockFamilies.STONE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.STONE_BRICK) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.DEEPSLATE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.COBBLED_DEEPSLATE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.POLISHED_DEEPSLATE) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.DEEPSLATE_BRICKS) { + it.add(TERRA, 2) + } + blockFamily(BlockFamilies.DEEPSLATE_TILES) { + it.add(TERRA, 2) + } + blockFamily(T7BlockFamilies.GREATWOOD_PLANKS) { + it.add(HERBA, 2) + } + blockFamily(T7BlockFamilies.ELEMENTAL_STONE) { + it.add(TERRA, 4) + .add(PRAECANTATIO, 1) + } } -} - -private fun Builder.blockFamily(blockFamily: BlockFamily, baseGen: AspectGen) { - fun saveVariant(block: Block?, mutation: (AspectMap) -> AspectMap) { - if (block == null) return - baseGen.mutate(mutation).save(this, block) - } - - baseGen.save(this, blockFamily.baseBlock) - saveVariant(blockFamily.get(BlockFamily.Variant.BUTTON), Mutations.BUTTON) - saveVariant(blockFamily.get(BlockFamily.Variant.CHISELED), Mutations.CHISELED) - saveVariant(blockFamily.get(BlockFamily.Variant.CRACKED), Mutations.CRACKED) - saveVariant(blockFamily.get(BlockFamily.Variant.CUT), Mutations.CUT) - saveVariant(blockFamily.get(BlockFamily.Variant.DOOR), Mutations.DOOR) - saveVariant(blockFamily.get(BlockFamily.Variant.CUSTOM_FENCE), Mutations.FENCE) - saveVariant(blockFamily.get(BlockFamily.Variant.FENCE), Mutations.FENCE) - saveVariant(blockFamily.get(BlockFamily.Variant.CUSTOM_FENCE_GATE), Mutations.FENCE_GATE) - saveVariant(blockFamily.get(BlockFamily.Variant.FENCE_GATE), Mutations.FENCE_GATE) - saveVariant(blockFamily.get(BlockFamily.Variant.MOSAIC), Mutations.MOSAIC) - saveVariant(blockFamily.get(BlockFamily.Variant.SIGN), Mutations.SIGN) - saveVariant(blockFamily.get(BlockFamily.Variant.SLAB), Mutations.SLAB) - saveVariant(blockFamily.get(BlockFamily.Variant.STAIRS), Mutations.STAIRS) - saveVariant(blockFamily.get(BlockFamily.Variant.PRESSURE_PLATE), Mutations.PRESSURE_PLATE) - saveVariant(blockFamily.get(BlockFamily.Variant.POLISHED), Mutations.POLISHED) - saveVariant(blockFamily.get(BlockFamily.Variant.TRAPDOOR), Mutations.TRAPDOOR) - saveVariant(blockFamily.get(BlockFamily.Variant.WALL), Mutations.WALL) - saveVariant(blockFamily.get(BlockFamily.Variant.WALL_SIGN), Mutations.WALL_SIGN) -} +} \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/EntityAspects.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/EntityAspects.kt index 54bc105b..0f2060ed 100644 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/EntityAspects.kt +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/EntityAspects.kt @@ -3,7 +3,19 @@ package me.alegian.thavma.impl.init.data.providers.aspects import me.alegian.thavma.impl.init.data.providers.T7DataMapProvider import me.alegian.thavma.impl.init.data.providers.entity import me.alegian.thavma.impl.init.registries.T7DataMaps -import me.alegian.thavma.impl.init.registries.deferred.Aspects +import me.alegian.thavma.impl.init.registries.deferred.Aspects.ALIENIS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.ALKIMIA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.AQUA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.BESTIA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.DESIDERIUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.EXANIMIS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.HERBA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.HUMANUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.IGNIS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.MOTUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.TERRA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VICTUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VINCULUM import me.alegian.thavma.impl.init.registries.deferred.T7EntityTypes import net.minecraft.core.HolderLookup import net.minecraft.world.entity.EntityType @@ -26,29 +38,30 @@ object EntityAspects { entity(EntityType.CHICKEN) {} entity(EntityType.COD) {} entity(EntityType.COW) { - it.add(Aspects.TERRA, 8) - .add(Aspects.VICTUS, 8) + it.add(TERRA, 15) + .add(BESTIA, 15) } entity(EntityType.CREEPER) { - it.add(Aspects.IGNIS, 15) - .add(Aspects.HERBA, 15) + it.add(IGNIS, 15) + .add(HERBA, 15) } entity(EntityType.DOLPHIN) {} entity(EntityType.DONKEY) {} entity(EntityType.DROWNED) {} entity(EntityType.ELDER_GUARDIAN) {} entity(EntityType.ENDERMAN) { - it.add(Aspects.TENEBRAE, 8) - .add(Aspects.HOSTILIS, 4) - .add(Aspects.CIVILIS, 4) + it.add(MOTUS, 12) + .add(ALIENIS, 8) + .add(HUMANUS, 4) + .add(DESIDERIUM, 4) } entity(EntityType.ENDERMITE) {} entity(EntityType.EVOKER) {} entity(EntityType.FOX) {} entity(EntityType.FROG) {} entity(EntityType.GHAST) { - it.add(Aspects.HOSTILIS, 12) - .add(Aspects.IGNIS, 8) + it.add(EXANIMIS, 12) + .add(IGNIS, 8) } entity(EntityType.GLOW_SQUID) {} entity(EntityType.GOAT) {} @@ -66,8 +79,9 @@ object EntityAspects { entity(EntityType.PARROT) {} entity(EntityType.PHANTOM) {} entity(EntityType.PIG) { - it.add(Aspects.TERRA, 8) - .add(Aspects.VICTUS, 8) + it.add(DESIDERIUM, 5) + .add(TERRA, 10) + .add(BESTIA, 10) } entity(EntityType.PIGLIN) {} entity(EntityType.PIGLIN_BRUTE) {} @@ -78,26 +92,27 @@ object EntityAspects { entity(EntityType.RAVAGER) {} entity(EntityType.SALMON) {} entity(EntityType.SHEEP) { - it.add(Aspects.TERRA, 8) - .add(Aspects.VICTUS, 8) + it.add(TERRA, 10) + .add(BESTIA, 10) } entity(EntityType.SHULKER) {} entity(EntityType.SILVERFISH) {} entity(EntityType.SKELETON) { - it.add(Aspects.TERRA, 8) - .add(Aspects.HOSTILIS, 8) + it.add(TERRA, 5) + .add(HUMANUS, 5) + .add(EXANIMIS, 20) } entity(EntityType.SKELETON_HORSE) {} entity(EntityType.SLIME) { - it.add(Aspects.ALKIMIA, 5) - .add(Aspects.AQUA, 10) - .add(Aspects.VICTUS, 10) + it.add(ALKIMIA, 5) + .add(AQUA, 10) + .add(VICTUS, 10) } entity(EntityType.SNIFFER) {} entity(EntityType.SNOW_GOLEM) {} entity(EntityType.SPIDER) { - it.add(Aspects.TERRA, 8) - .add(Aspects.HOSTILIS, 8) + it.add(VINCULUM, 10) + .add(BESTIA, 10) } entity(EntityType.SQUID) {} entity(EntityType.STRAY) {} @@ -108,7 +123,7 @@ object EntityAspects { entity(EntityType.TURTLE) {} entity(EntityType.VEX) {} entity(EntityType.VILLAGER) { - it.add(Aspects.CIVILIS, 12) + it.add(HUMANUS, 15) } entity(EntityType.VINDICATOR) {} entity(EntityType.WANDERING_TRADER) {} @@ -118,8 +133,9 @@ object EntityAspects { entity(EntityType.WOLF) {} entity(EntityType.ZOGLIN) {} entity(EntityType.ZOMBIE) { - it.add(Aspects.TERRA, 8) - .add(Aspects.HOSTILIS, 8) + it.add(TERRA, 5) + .add(HUMANUS, 10) + .add(EXANIMIS, 20) } entity(EntityType.ZOMBIE_HORSE) {} entity(EntityType.ZOMBIE_VILLAGER) {} diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/MineralAspects.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/MineralAspects.kt index 10215708..eb4831dd 100644 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/MineralAspects.kt +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/MineralAspects.kt @@ -1,10 +1,20 @@ package me.alegian.thavma.impl.init.data.providers.aspects -import me.alegian.thavma.impl.common.aspect.AspectMap -import me.alegian.thavma.impl.common.item.itemResourceKey import me.alegian.thavma.impl.init.data.providers.T7DataMapProvider +import me.alegian.thavma.impl.init.data.providers.item import me.alegian.thavma.impl.init.registries.T7DataMaps -import me.alegian.thavma.impl.init.registries.deferred.Aspects +import me.alegian.thavma.impl.init.registries.deferred.Aspects.DESIDERIUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.IGNIS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.INSTRUMENTUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.LUX +import me.alegian.thavma.impl.init.registries.deferred.Aspects.METALLUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PERMUTATIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.POTENTIA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRAECANTATIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.SENSUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.TENEBRAE +import me.alegian.thavma.impl.init.registries.deferred.Aspects.TERRA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VITREUS import me.alegian.thavma.impl.init.registries.deferred.T7Blocks import me.alegian.thavma.impl.init.registries.deferred.T7Blocks.INFUSED_DEEPSLATES import me.alegian.thavma.impl.init.registries.deferred.T7Blocks.INFUSED_STONES @@ -17,171 +27,221 @@ import net.minecraft.world.level.block.Blocks import net.neoforged.neoforge.common.Tags object MineralAspects { - val coal = AspectGen().mutate { - it.add(Aspects.IGNIS, 2) - .add(Aspects.TERRA, 2) - } - val coalOre = coal.mutate(Mutations.ORE) - val coalBlock = coal.mutate(Mutations.STORAGE_BLOCK_9) - - val copper = AspectGen().mutate { - it.add(Aspects.METALLUM, 4) - } - val rawCopper = copper.mutate(Mutations.RAW) - val copperOre = copper.mutate(Mutations.ORE) - val copperBlock = copper.mutate(Mutations.STORAGE_BLOCK_9) - val rawCopperBlock = rawCopper.mutate(Mutations.STORAGE_BLOCK_9) - - val iron = AspectGen().mutate { - it.add(Aspects.METALLUM, 8) - } - val rawIron = iron.mutate(Mutations.RAW) - val ironOre = iron.mutate(Mutations.ORE) - val ironBlock = iron.mutate(Mutations.STORAGE_BLOCK_9) - val rawIronBlock = rawIron.mutate(Mutations.STORAGE_BLOCK_9) - - val gold = AspectGen().mutate { - it.add(Aspects.METALLUM, 4) - } - val rawGold = gold.mutate(Mutations.RAW) - val goldOre = gold.mutate(Mutations.ORE) - val goldBlock = gold.mutate(Mutations.STORAGE_BLOCK_9) - val rawGoldBlock = rawGold.mutate(Mutations.STORAGE_BLOCK_9) - - val thavmite = AspectGen().mutate { - it.add(Aspects.METALLUM, 8) - .add(Aspects.AETHER, 4) - } - val thavmiteBlock = thavmite.mutate(Mutations.STORAGE_BLOCK_9) - - val orichalcum = AspectGen().mutate { - it.add(Aspects.METALLUM, 4) - .add(Aspects.INSTRUMENTUM, 4) - } - val orichalcumBlock = orichalcum.mutate(Mutations.STORAGE_BLOCK_9) - - val diamond = AspectGen().mutate { - it.add(Aspects.VITREUS, 8) - } - val diamondOre = diamond.mutate(Mutations.ORE) - val diamondBlock = diamond.mutate(Mutations.STORAGE_BLOCK_9) - - val emerald = AspectGen().mutate { - it.add(Aspects.VITREUS, 8) - } - val emeraldOre = emerald.mutate(Mutations.ORE) - val emeraldBlock = emerald.mutate(Mutations.STORAGE_BLOCK_9) - - val lapis = AspectGen().mutate { - it.add(Aspects.VITREUS, 4) - .add(Aspects.COGNITIO, 1) - } - val lapisOre = lapis.mutate(Mutations.ORE) - val lapisBlock = lapis.mutate(Mutations.STORAGE_BLOCK_9) - - val amethyst = AspectGen().mutate { - it.add(Aspects.VITREUS, 4) - } - val amethystBlock = amethyst.mutate(Mutations.STORAGE_BLOCK_4) - - val quartz = AspectGen().mutate { - it.add(Aspects.VITREUS, 4) - .add(Aspects.IGNIS, 1) - } - val quartzOre = quartz.mutate(Mutations.ORE) - val quartzBlock = quartz.mutate(Mutations.STORAGE_BLOCK_4) - - val glowstone = AspectGen().mutate { - it.add(Aspects.LUX, 4) - .add(Aspects.TERRA, 1) - } - val glowstoneBlock = glowstone.mutate(Mutations.STORAGE_BLOCK_4) - - val redstone = AspectGen().mutate { - it.add(Aspects.MACHINA, 1) - .add(Aspects.TERRA, 1) - } - val redstoneOre = redstone.mutate(Mutations.ORE) - val redstoneBlock = redstone.mutate(Mutations.STORAGE_BLOCK_9) - - val nugget = AspectGen().mutate { it.add(Aspects.TERRA, 1) } - - val netheriteScrap = AspectGen().mutate { - it.add(Aspects.METALLUM, 2) - .add(Aspects.TERRA, 2) - .add(Aspects.TENEBRAE, 1) - } - val netheriteOre = netheriteScrap.mutate(Mutations.ORE) - val netherite = gold.mutate { it.scale(4).add(Aspects.TENEBRAE, 4) } - val netheriteBlock = netherite.mutate(Mutations.STORAGE_BLOCK_9) - fun gather(datamapProvider: T7DataMapProvider, lookupProvider: HolderLookup.Provider) { datamapProvider.builder(T7DataMaps.AspectContent.ITEM).run { - coal.save(this, ItemTags.COALS) - coalOre.save(this, Tags.Items.ORES_COAL) - coalBlock.save(this, Tags.Items.STORAGE_BLOCKS_COAL) - - copper.save(this, Tags.Items.INGOTS_COPPER) - rawCopper.save(this, Tags.Items.RAW_MATERIALS_COPPER) - copperOre.save(this, Tags.Items.ORES_COPPER) - copperBlock.save(this, Tags.Items.STORAGE_BLOCKS_COPPER) - rawCopperBlock.save(this, Tags.Items.STORAGE_BLOCKS_RAW_COPPER) - - iron.save(this, Tags.Items.INGOTS_IRON) - rawIron.save(this, Tags.Items.RAW_MATERIALS_IRON) - ironOre.save(this, Tags.Items.ORES_IRON) - ironBlock.save(this, Tags.Items.STORAGE_BLOCKS_IRON) - rawIronBlock.save(this, Tags.Items.STORAGE_BLOCKS_RAW_IRON) - - gold.save(this, Tags.Items.INGOTS_GOLD) - rawGold.save(this, Tags.Items.RAW_MATERIALS_GOLD) - goldOre.save(this, Tags.Items.ORES_GOLD) - goldBlock.save(this, Tags.Items.STORAGE_BLOCKS_GOLD) - rawGoldBlock.save(this, Tags.Items.STORAGE_BLOCKS_RAW_GOLD) - - thavmite.save(this, (T7Items.THAVMITE_INGOT)) - thavmiteBlock.save(this, (T7Blocks.THAVMITE_BLOCK)) - - orichalcum.save(this, (T7Items.ORICHALCUM_INGOT)) - orichalcumBlock.save(this, (T7Blocks.ORICHALCUM_BLOCK)) - - diamond.save(this, Tags.Items.GEMS_DIAMOND) - diamondOre.save(this, Tags.Items.ORES_DIAMOND) - diamondBlock.save(this, Tags.Items.STORAGE_BLOCKS_DIAMOND) - - emerald.save(this, Tags.Items.GEMS_EMERALD) - emeraldOre.save(this, Tags.Items.ORES_EMERALD) - emeraldBlock.save(this, Tags.Items.STORAGE_BLOCKS_EMERALD) - - lapis.save(this, Tags.Items.GEMS_LAPIS) - lapisOre.save(this, Tags.Items.ORES_LAPIS) - lapisBlock.save(this, Tags.Items.STORAGE_BLOCKS_LAPIS) - - amethyst.save(this, Tags.Items.GEMS_AMETHYST) - amethystBlock.save(this, (Blocks.AMETHYST_BLOCK)) - - quartz.save(this, Tags.Items.GEMS_QUARTZ) - quartzOre.save(this, Tags.Items.ORES_QUARTZ) - quartzBlock.save(this, (Blocks.QUARTZ_BLOCK)) - - glowstone.save(this, Tags.Items.DUSTS_GLOWSTONE) - glowstoneBlock.save(this, (Blocks.GLOWSTONE)) + item(Tags.Items.ORES_COAL) { + it.add(IGNIS, 8) + .add(POTENTIA, 8) + .add(TERRA, 4) + } + item(Tags.Items.STORAGE_BLOCKS_COAL) { + it.add(IGNIS, 72) + .add(POTENTIA, 72) + } + item(Tags.Items.ORES_COPPER) { + it.add(METALLUM, 4) + .add(PERMUTATIO, 4) + .add(TERRA, 4) + } + item(Tags.Items.STORAGE_BLOCKS_RAW_COPPER) { + it.add(METALLUM, 18) + .add(PERMUTATIO, 18) + .add(TERRA, 18) + } + item(Tags.Items.STORAGE_BLOCKS_COPPER) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + } + item(Tags.Items.ORES_IRON) { + it.add(METALLUM, 8) + .add(TERRA, 4) + } + item(Tags.Items.STORAGE_BLOCKS_RAW_IRON) { + it.add(METALLUM, 36) + .add(TERRA, 18) + } + item(Tags.Items.STORAGE_BLOCKS_IRON) { + it.add(METALLUM, 72) + } + item(T7Blocks.THAVMITE_BLOCK) { + it.add(METALLUM, 72) + .add(PRAECANTATIO, 36) + } + item(T7Blocks.ORICHALCUM_BLOCK) { + it.add(METALLUM, 36) + .add(PERMUTATIO, 36) + .add(PRAECANTATIO, 36) + } + item(Tags.Items.ORES_GOLD) { + it.add(METALLUM, 4) + .add(DESIDERIUM, 8) + .add(TERRA, 4) + } + item(Tags.Items.STORAGE_BLOCKS_RAW_GOLD) { + it.add(METALLUM, 18) + .add(DESIDERIUM, 36) + .add(TERRA, 18) + } + item(Tags.Items.STORAGE_BLOCKS_GOLD) { + it.add(METALLUM, 36) + .add(DESIDERIUM, 72) + } + item(Tags.Items.ORES_DIAMOND) { + it.add(VITREUS, 8) + .add(DESIDERIUM, 8) + .add(TERRA, 4) + } + item(Tags.Items.STORAGE_BLOCKS_DIAMOND) { + it.add(VITREUS, 72) + .add(DESIDERIUM, 72) + } + item(Tags.Items.ORES_EMERALD) { + it.add(VITREUS, 8) + .add(DESIDERIUM, 4) + .add(TERRA, 4) + } + item(Tags.Items.STORAGE_BLOCKS_EMERALD) { + it.add(VITREUS, 72) + .add(DESIDERIUM, 36) + } + item(Tags.Items.ORES_NETHERITE_SCRAP) { + it.add(METALLUM, 2) + .add(TERRA, 6) + .add(TENEBRAE, 1) + } + item(Tags.Items.STORAGE_BLOCKS_NETHERITE) { + it.add(METALLUM, 144) + .add(DESIDERIUM, 72) + .add(TENEBRAE, 36) + } + item(Blocks.GLOWSTONE) { + it.add(LUX, 16) + .add(TERRA, 4) + } + item(Tags.Items.ORES_QUARTZ) { + it.add(VITREUS, 4) + .add(TERRA, 4) + .add(IGNIS, 1) + } + item(Blocks.QUARTZ_BLOCK) { + it.add(VITREUS, 16) + .add(IGNIS, 4) + } + item(Tags.Items.ORES_LAPIS) { + it.add(VITREUS, 4) + .add(TERRA, 4) + .add(SENSUS, 2) + } + item(Tags.Items.STORAGE_BLOCKS_LAPIS) { + it.add(VITREUS, 36) + .add(SENSUS, 18) + } + item(Tags.Items.ORES_REDSTONE) { + it.add(POTENTIA, 4) + .add(TERRA, 4) + } + item(Tags.Items.STORAGE_BLOCKS_REDSTONE) { + it.add(POTENTIA, 36) + .add(TERRA, 9) + } + item(Blocks.AMETHYST_BLOCK) { + it.add(VITREUS, 16) + .add(SENSUS, 4) + } - redstone.save(this, Tags.Items.DUSTS_REDSTONE) - redstoneOre.save(this, Tags.Items.ORES_REDSTONE) - redstoneBlock.save(this, Tags.Items.STORAGE_BLOCKS_REDSTONE) + for (infusedBlock in (INFUSED_STONES.values + INFUSED_DEEPSLATES.values)) { + item(infusedBlock) { + it.add(infusedBlock.get().getAspect(), 4) + } + } + } - nugget.save(this, Tags.Items.NUGGETS) + datamapProvider.builder(T7DataMaps.AspectContent.ITEM).run { + item(ItemTags.COALS) { + it.add(IGNIS, 8) + .add(POTENTIA, 8) + } + item(Tags.Items.RAW_MATERIALS_COPPER) { + it.add(METALLUM, 2) + .add(PERMUTATIO, 2) + .add(TERRA, 2) + } + item(Tags.Items.INGOTS_COPPER) { + it.add(METALLUM, 4) + .add(PERMUTATIO, 4) + } + item(Tags.Items.RAW_MATERIALS_IRON) { + it.add(METALLUM, 4) + .add(TERRA, 2) + } + item(Tags.Items.INGOTS_IRON) { + it.add(METALLUM, 8) + } + item(T7Items.THAVMITE_INGOT) { + it.add(METALLUM, 8) + .add(PRAECANTATIO, 4) + } + item(T7Items.ORICHALCUM_INGOT) { + it.add(METALLUM, 4) + .add(PERMUTATIO, 4) + .add(INSTRUMENTUM, 4) + } + item(Tags.Items.RAW_MATERIALS_GOLD) { + it.add(METALLUM, 2) + .add(DESIDERIUM, 4) + .add(TERRA, 2) + } + item(Tags.Items.INGOTS_GOLD) { + it.add(METALLUM, 4) + .add(DESIDERIUM, 8) + } + item(Tags.Items.GEMS_DIAMOND) { + it.add(VITREUS, 8) + .add(DESIDERIUM, 8) + } + item(Tags.Items.GEMS_EMERALD) { + it.add(VITREUS, 8) + .add(DESIDERIUM, 4) + } + item(Items.NETHERITE_SCRAP) { + it.add(METALLUM, 2) + .add(TERRA, 2) + .add(TENEBRAE, 1) + } + item(Tags.Items.INGOTS_NETHERITE) { + it.add(METALLUM, 16) + .add(DESIDERIUM, 8) + .add(TENEBRAE, 4) + } + item(Tags.Items.DUSTS_GLOWSTONE) { + it.add(LUX, 4) + .add(TERRA, 1) + } + item(Tags.Items.GEMS_QUARTZ) { + it.add(VITREUS, 4) + .add(IGNIS, 1) + } + item(Tags.Items.GEMS_LAPIS) { + it.add(VITREUS, 4) + .add(SENSUS, 2) + } + item(Tags.Items.DUSTS_REDSTONE) { + it.add(POTENTIA, 4) + .add(TERRA, 1) + } + item(Tags.Items.GEMS_AMETHYST) { + it.add(VITREUS, 4) + .add(SENSUS, 1) + } - netheriteScrap.save(this, (Items.NETHERITE_SCRAP)) - netheriteOre.save(this, Tags.Items.ORES_NETHERITE_SCRAP) - netherite.save(this, Tags.Items.INGOTS_NETHERITE) - netheriteBlock.save(this, Tags.Items.STORAGE_BLOCKS_NETHERITE) + for (shard in SHARDS.values) { + item(shard) { + it.add(shard.get().aspect, 4) + } + } - for (primal in Aspects.DATAGEN_PRIMALS) { - INFUSED_STONES[primal]?.let { add((it.itemResourceKey), AspectMap().add(primal, 4), false) } - INFUSED_DEEPSLATES[primal]?.let { add((it.itemResourceKey), AspectMap().add(primal, 4), false) } - SHARDS[primal]?.let { add((it.itemResourceKey), AspectMap().add(primal, 4), false) } + item(Tags.Items.NUGGETS) { + it.add(TERRA, 1) } } } diff --git a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/ToolAspects.kt b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/ToolAspects.kt index 66f93a8b..47c88b90 100644 --- a/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/ToolAspects.kt +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/ToolAspects.kt @@ -1,8 +1,23 @@ package me.alegian.thavma.impl.init.data.providers.aspects import me.alegian.thavma.impl.init.data.providers.T7DataMapProvider +import me.alegian.thavma.impl.init.data.providers.item import me.alegian.thavma.impl.init.registries.T7DataMaps -import me.alegian.thavma.impl.init.registries.deferred.Aspects +import me.alegian.thavma.impl.init.registries.deferred.Aspects.AER +import me.alegian.thavma.impl.init.registries.deferred.Aspects.AQUA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.AVERSIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.DESIDERIUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.FABRICO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.HERBA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.INSTRUMENTUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.METALLUM +import me.alegian.thavma.impl.init.registries.deferred.Aspects.MOTUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PERMUTATIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRAECANTATIO +import me.alegian.thavma.impl.init.registries.deferred.Aspects.TENEBRAE +import me.alegian.thavma.impl.init.registries.deferred.Aspects.TERRA +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VICTUS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.VITREUS import me.alegian.thavma.impl.init.registries.deferred.T7Items import net.minecraft.core.HolderLookup import net.minecraft.tags.ItemTags @@ -10,117 +25,231 @@ import net.minecraft.world.item.Items import net.neoforged.neoforge.common.Tags object ToolAspects { - val woodenSword = BlockAndItemAspects.woodenPlanks.mutate(Mutations.sword(BlockAndItemAspects.rodsWooden, 1)) - val woodenPickaxe = BlockAndItemAspects.woodenPlanks.mutate(Mutations.pickaxe(BlockAndItemAspects.rodsWooden, 1)) - val woodenAxe = BlockAndItemAspects.woodenPlanks.mutate(Mutations.axe(BlockAndItemAspects.rodsWooden, 1)) - val woodenShovel = BlockAndItemAspects.woodenPlanks.mutate(Mutations.shovel(BlockAndItemAspects.rodsWooden, 1)) - val woodenHoe = BlockAndItemAspects.woodenPlanks.mutate(Mutations.hoe(BlockAndItemAspects.rodsWooden, 1)) - - val stoneSword = BlockAndItemAspects.cobblestone.mutate(Mutations.sword(BlockAndItemAspects.rodsWooden, 2)) - val stonePickaxe = BlockAndItemAspects.cobblestone.mutate(Mutations.pickaxe(BlockAndItemAspects.rodsWooden, 2)) - val stoneAxe = BlockAndItemAspects.cobblestone.mutate(Mutations.axe(BlockAndItemAspects.rodsWooden, 2)) - val stoneShovel = BlockAndItemAspects.cobblestone.mutate(Mutations.shovel(BlockAndItemAspects.rodsWooden, 2)) - val stoneHoe = BlockAndItemAspects.cobblestone.mutate(Mutations.hoe(BlockAndItemAspects.rodsWooden, 2)) - - val ironSword = MineralAspects.iron.mutate(Mutations.sword(BlockAndItemAspects.rodsWooden, 3)) - val ironPickaxe = MineralAspects.iron.mutate(Mutations.pickaxe(BlockAndItemAspects.rodsWooden, 3)) - val ironAxe = MineralAspects.iron.mutate(Mutations.axe(BlockAndItemAspects.rodsWooden, 3)) - val ironShovel = MineralAspects.iron.mutate(Mutations.shovel(BlockAndItemAspects.rodsWooden, 3)) - val ironHoe = MineralAspects.iron.mutate(Mutations.hoe(BlockAndItemAspects.rodsWooden, 3)) - - val thavmiteSword = MineralAspects.thavmite.mutate(Mutations.sword(BlockAndItemAspects.rodsWooden, 4)) - val thavmitePickaxe = MineralAspects.thavmite.mutate(Mutations.pickaxe(BlockAndItemAspects.rodsWooden, 4)) - val thavmiteAxe = MineralAspects.thavmite.mutate(Mutations.axe(BlockAndItemAspects.rodsWooden, 4)) - val thavmiteShovel = MineralAspects.thavmite.mutate(Mutations.shovel(BlockAndItemAspects.rodsWooden, 4)) - val thavmiteHoe = MineralAspects.thavmite.mutate(Mutations.hoe(BlockAndItemAspects.rodsWooden, 4)) - val thavmiteHammer = MineralAspects.thavmite.mutate(Mutations.hammer(BlockAndItemAspects.rodsWooden, 4)) - - val goldenSword = MineralAspects.gold.mutate(Mutations.sword(BlockAndItemAspects.rodsWooden, 2)) - val goldenPickaxe = MineralAspects.gold.mutate(Mutations.pickaxe(BlockAndItemAspects.rodsWooden, 2)) - val goldenAxe = MineralAspects.gold.mutate(Mutations.axe(BlockAndItemAspects.rodsWooden, 2)) - val goldenShovel = MineralAspects.gold.mutate(Mutations.shovel(BlockAndItemAspects.rodsWooden, 2)) - val goldenHoe = MineralAspects.gold.mutate(Mutations.hoe(BlockAndItemAspects.rodsWooden, 2)) - - val diamondSword = MineralAspects.diamond.mutate(Mutations.sword(BlockAndItemAspects.rodsWooden, 4)) - val diamondPickaxe = MineralAspects.diamond.mutate(Mutations.pickaxe(BlockAndItemAspects.rodsWooden, 4)) - val diamondAxe = MineralAspects.diamond.mutate(Mutations.axe(BlockAndItemAspects.rodsWooden, 4)) - val diamondShovel = MineralAspects.diamond.mutate(Mutations.shovel(BlockAndItemAspects.rodsWooden, 4)) - val diamondHoe = MineralAspects.diamond.mutate(Mutations.hoe(BlockAndItemAspects.rodsWooden, 4)) - - val netheriteSword = MineralAspects.netherite.mutate(Mutations.sword(BlockAndItemAspects.rodsWooden, 6)) - val netheritePickaxe = MineralAspects.netherite.mutate(Mutations.pickaxe(BlockAndItemAspects.rodsWooden, 6)) - val netheriteAxe = MineralAspects.netherite.mutate(Mutations.axe(BlockAndItemAspects.rodsWooden, 6)) - val netheriteShovel = MineralAspects.netherite.mutate(Mutations.shovel(BlockAndItemAspects.rodsWooden, 6)) - val netheriteHoe = MineralAspects.netherite.mutate(Mutations.hoe(BlockAndItemAspects.rodsWooden, 6)) - - val ironPlating = MineralAspects.iron.mutate(Mutations.PLATING) - val goldPlating = MineralAspects.gold.mutate(Mutations.PLATING) - val orichalcumPlating = MineralAspects.orichalcum.mutate(Mutations.PLATING) - val thavmitePlating = MineralAspects.thavmite.mutate(Mutations.PLATING) - - val arrows = BlockAndItemAspects.rodsWooden.add(BlockAndItemAspects.flint).add(BlockAndItemAspects.feathers).mutate { it.remove(Aspects.CORPUS) } - val mace = BlockAndItemAspects.heavyCore.add(BlockAndItemAspects.rodsBreeze).mutate { it.remove(Aspects.CORPUS) } - val trident = AspectGen().mutate { it.add(Aspects.METALLUM, 12).add(Aspects.AQUA, 8) } - val bow = BlockAndItemAspects.rodsWooden.mutate { it.scale(3) }.add(BlockAndItemAspects.string.mutate { it.scale(3) }).mutate { it.add(Aspects.INSTRUMENTUM, 8).remove(Aspects.CORPUS) } - val crossbow = BlockAndItemAspects.rodsWooden.mutate { it.scale(3) }.add(BlockAndItemAspects.string.mutate { it.scale(2) }).add(BlockAndItemAspects.tripwireHook).add(MineralAspects.iron).mutate { it.add(Aspects.INSTRUMENTUM, 8).remove(Aspects.CORPUS) } - val totemOfUndying = AspectGen().mutate { it.add(Aspects.VICTUS, 16).add(Aspects.AETHER, 8) } - fun gather(datamapProvider: T7DataMapProvider, lookupProvider: HolderLookup.Provider) { datamapProvider.builder(T7DataMaps.AspectContent.ITEM).run { - woodenSword.save(this, Items.WOODEN_SWORD) - woodenPickaxe.save(this, Items.WOODEN_PICKAXE) - woodenAxe.save(this, Items.WOODEN_AXE) - woodenShovel.save(this, Items.WOODEN_SHOVEL) - woodenHoe.save(this, Items.WOODEN_HOE) - - stoneSword.save(this, Items.STONE_SWORD) - stonePickaxe.save(this, Items.STONE_PICKAXE) - stoneAxe.save(this, Items.STONE_AXE) - stoneShovel.save(this, Items.STONE_SHOVEL) - stoneHoe.save(this, Items.STONE_HOE) - - ironSword.save(this, Items.IRON_SWORD) - ironPickaxe.save(this, Items.IRON_PICKAXE) - ironAxe.save(this, Items.IRON_AXE) - ironShovel.save(this, Items.IRON_SHOVEL) - ironHoe.save(this, Items.IRON_HOE) - - thavmiteSword.save(this, T7Items.THAVMITE_SWORD) - thavmitePickaxe.save(this, T7Items.THAVMITE_PICKAXE) - thavmiteAxe.save(this, T7Items.THAVMITE_AXE) - thavmiteShovel.save(this, T7Items.THAVMITE_SHOVEL) - thavmiteHoe.save(this, T7Items.THAVMITE_HOE) - thavmiteHammer.save(this, T7Items.THAVMITE_HAMMER) - - goldenSword.save(this, Items.GOLDEN_SWORD) - goldenPickaxe.save(this, Items.GOLDEN_PICKAXE) - goldenAxe.save(this, Items.GOLDEN_AXE) - goldenShovel.save(this, Items.GOLDEN_SHOVEL) - goldenHoe.save(this, Items.GOLDEN_HOE) - - diamondSword.save(this, Items.DIAMOND_SWORD) - diamondPickaxe.save(this, Items.DIAMOND_PICKAXE) - diamondAxe.save(this, Items.DIAMOND_AXE) - diamondShovel.save(this, Items.DIAMOND_SHOVEL) - diamondHoe.save(this, Items.DIAMOND_HOE) - - netheriteSword.save(this, Items.NETHERITE_SWORD) - netheritePickaxe.save(this, Items.NETHERITE_PICKAXE) - netheriteAxe.save(this, Items.NETHERITE_AXE) - netheriteShovel.save(this, Items.NETHERITE_SHOVEL) - netheriteHoe.save(this, Items.NETHERITE_HOE) - - ironPlating.save(this, T7Items.IRON_PLATING) - goldPlating.save(this, T7Items.GOLD_PLATING) - orichalcumPlating.save(this, T7Items.ORICHALCUM_PLATING) - thavmitePlating.save(this, T7Items.THAVMITE_PLATING) - - arrows.save(this, ItemTags.ARROWS) - mace.save(this, Items.MACE) - trident.save(this, Items.TRIDENT) - bow.save(this, Tags.Items.TOOLS_BOW) - crossbow.save(this, Tags.Items.TOOLS_CROSSBOW) - totemOfUndying.save(this, Items.TOTEM_OF_UNDYING) + item(Items.WOODEN_SWORD) { + it.add(HERBA, 8) + .add(AVERSIO, 1) + } + item(Items.WOODEN_PICKAXE) { + it.add(HERBA, 12) + .add(INSTRUMENTUM, 1) + } + item(Items.WOODEN_AXE) { + it.add(HERBA, 12) + .add(INSTRUMENTUM, 1) + } + item(Items.WOODEN_SHOVEL) { + it.add(HERBA, 4) + .add(INSTRUMENTUM, 1) + } + item(Items.WOODEN_HOE) { + it.add(HERBA, 8) + .add(INSTRUMENTUM, 1) + } + + item(Items.STONE_SWORD) { + it.add(TERRA, 8) + .add(AVERSIO, 2) + } + item(Items.STONE_PICKAXE) { + it.add(TERRA, 12) + .add(INSTRUMENTUM, 2) + } + item(Items.STONE_AXE) { + it.add(TERRA, 12) + .add(INSTRUMENTUM, 2) + } + item(Items.STONE_SHOVEL) { + it.add(TERRA, 4) + .add(INSTRUMENTUM, 2) + } + item(Items.STONE_HOE) { + it.add(TERRA, 8) + .add(INSTRUMENTUM, 2) + } + + item(Items.IRON_SWORD) { + it.add(METALLUM, 16) + .add(AVERSIO, 3) + } + item(Items.IRON_PICKAXE) { + it.add(METALLUM, 24) + .add(INSTRUMENTUM, 3) + } + item(Items.IRON_AXE) { + it.add(METALLUM, 24) + .add(INSTRUMENTUM, 3) + } + item(Items.IRON_SHOVEL) { + it.add(METALLUM, 8) + .add(INSTRUMENTUM, 3) + } + item(Items.IRON_HOE) { + it.add(METALLUM, 16) + .add(INSTRUMENTUM, 3) + } + + item(T7Items.THAVMITE_SWORD) { + it.add(METALLUM, 16) + .add(PRAECANTATIO, 8) + .add(AVERSIO, 4) + } + item(T7Items.THAVMITE_PICKAXE) { + it.add(METALLUM, 24) + .add(PRAECANTATIO, 12) + .add(INSTRUMENTUM, 4) + } + item(T7Items.THAVMITE_AXE) { + it.add(METALLUM, 24) + .add(PRAECANTATIO, 12) + .add(INSTRUMENTUM, 4) + } + item(T7Items.THAVMITE_SHOVEL) { + it.add(METALLUM, 8) + .add(PRAECANTATIO, 4) + .add(INSTRUMENTUM, 4) + } + item(T7Items.THAVMITE_HOE) { + it.add(METALLUM, 16) + .add(PRAECANTATIO, 8) + .add(INSTRUMENTUM, 4) + } + item(T7Items.THAVMITE_HAMMER) { + it.add(METALLUM, 48) + .add(PRAECANTATIO, 24) + .add(INSTRUMENTUM, 4) + } + + item(Items.GOLDEN_SWORD) { + it.add(METALLUM, 8) + .add(DESIDERIUM, 16) + .add(AVERSIO, 2) + } + item(Items.GOLDEN_PICKAXE) { + it.add(METALLUM, 12) + .add(DESIDERIUM, 24) + .add(INSTRUMENTUM, 2) + } + item(Items.GOLDEN_AXE) { + it.add(METALLUM, 12) + .add(DESIDERIUM, 24) + .add(INSTRUMENTUM, 2) + } + item(Items.GOLDEN_SHOVEL) { + it.add(METALLUM, 4) + .add(DESIDERIUM, 8) + .add(INSTRUMENTUM, 2) + } + item(Items.GOLDEN_HOE) { + it.add(METALLUM, 8) + .add(DESIDERIUM, 16) + .add(INSTRUMENTUM, 2) + } + + item(Items.DIAMOND_SWORD) { + it.add(VITREUS, 16) + .add(DESIDERIUM, 16) + .add(AVERSIO, 4) + } + item(Items.DIAMOND_PICKAXE) { + it.add(VITREUS, 24) + .add(DESIDERIUM, 24) + .add(INSTRUMENTUM, 4) + } + item(Items.DIAMOND_AXE) { + it.add(VITREUS, 24) + .add(DESIDERIUM, 24) + .add(INSTRUMENTUM, 4) + } + item(Items.DIAMOND_SHOVEL) { + it.add(VITREUS, 8) + .add(DESIDERIUM, 8) + .add(INSTRUMENTUM, 4) + } + item(Items.DIAMOND_HOE) { + it.add(VITREUS, 16) + .add(DESIDERIUM, 16) + .add(INSTRUMENTUM, 4) + } + + item(Items.NETHERITE_SWORD) { + it.add(METALLUM, 32) + .add(DESIDERIUM, 16) + .add(AVERSIO, 6) + .add(TENEBRAE, 8) + } + item(Items.NETHERITE_PICKAXE) { + it.add(METALLUM, 48) + .add(DESIDERIUM, 24) + .add(INSTRUMENTUM, 6) + .add(TENEBRAE, 12) + } + item(Items.NETHERITE_AXE) { + it.add(METALLUM, 48) + .add(DESIDERIUM, 24) + .add(INSTRUMENTUM, 6) + .add(TENEBRAE, 12) + } + item(Items.NETHERITE_SHOVEL) { + it.add(METALLUM, 16) + .add(DESIDERIUM, 8) + .add(INSTRUMENTUM, 6) + .add(TENEBRAE, 4) + } + item(Items.NETHERITE_HOE) { + it.add(METALLUM, 32) + .add(DESIDERIUM, 16) + .add(INSTRUMENTUM, 6) + .add(TENEBRAE, 8) + } + + item(T7Items.IRON_PLATING) { + it.add(METALLUM, 16) + } + item(T7Items.GOLD_PLATING) { + it.add(METALLUM, 8) + .add(DESIDERIUM, 16) + } + item(T7Items.ORICHALCUM_PLATING) { + it.add(METALLUM, 8) + .add(PERMUTATIO, 8) + .add(INSTRUMENTUM, 8) + } + item(T7Items.THAVMITE_PLATING) { + it.add(METALLUM, 16) + .add(PRAECANTATIO, 8) + } + + item(ItemTags.ARROWS) { + it.add(AVERSIO, 2) + .add(MOTUS, 1) + } + item(Items.MACE) { + it.add(METALLUM, 16) + .add(AER, 8) + .add(MOTUS, 8) + } + item(Items.TRIDENT) { + it.add(METALLUM, 12) + .add(AQUA, 8) + .add(MOTUS, 8) + } + item(Tags.Items.TOOLS_BOW) { + it.add(AVERSIO, 8) + .add(HERBA, 2) + .add(FABRICO, 2) + } + item(Tags.Items.TOOLS_CROSSBOW) { + it.add(AVERSIO, 8) + .add(METALLUM, 4) + .add(FABRICO, 2) + } + item(Items.TOTEM_OF_UNDYING) { + it.add(VICTUS, 16) + .add(PRAECANTATIO, 8) + .add(DESIDERIUM, 8) + } } } -} +} \ No newline at end of file diff --git a/src/main/java/me/alegian/thavma/impl/init/data/worldgen/ore/InfusedOre.kt b/src/main/java/me/alegian/thavma/impl/init/data/worldgen/ore/InfusedOre.kt index 16fc9245..e276fec5 100644 --- a/src/main/java/me/alegian/thavma/impl/init/data/worldgen/ore/InfusedOre.kt +++ b/src/main/java/me/alegian/thavma/impl/init/data/worldgen/ore/InfusedOre.kt @@ -20,13 +20,13 @@ object InfusedOre { } fun registerConfigured(context: BootstrapContext>) { - Aspects.DATAGEN_PRIMALS.forEach { + Aspects.PRIMAL_ASPECTS.forEach { registerConfiguredInfusedStone(context, CONFIGURED_FEATURES[it], T7Blocks.INFUSED_STONES[it]!!.get().defaultBlockState(), T7Blocks.INFUSED_DEEPSLATES[it]!!.get().defaultBlockState()) } } fun registerPlaced(context: BootstrapContext) { - Aspects.DATAGEN_PRIMALS.forEach { + Aspects.PRIMAL_ASPECTS.forEach { registerPlacedInfusedStone(context, CONFIGURED_FEATURES[it], PLACED_FEATURES[it]) } } diff --git a/src/main/java/me/alegian/thavma/impl/init/registries/T7DataMaps.kt b/src/main/java/me/alegian/thavma/impl/init/registries/T7DataMaps.kt index 0f824198..1d1957f9 100644 --- a/src/main/java/me/alegian/thavma/impl/init/registries/T7DataMaps.kt +++ b/src/main/java/me/alegian/thavma/impl/init/registries/T7DataMaps.kt @@ -1,23 +1,19 @@ package me.alegian.thavma.impl.init.registries -import me.alegian.thavma.impl.common.aspect.Aspect import me.alegian.thavma.impl.common.aspect.AspectMap import me.alegian.thavma.impl.rl import net.minecraft.core.registries.Registries -import net.neoforged.neoforge.registries.datamaps.AdvancedDataMapType import net.neoforged.neoforge.registries.datamaps.DataMapType -import net.neoforged.neoforge.registries.datamaps.DataMapValueMerger object T7DataMaps { object AspectContent { - val ITEM = AdvancedDataMapType + val ITEM = DataMapType .builder( rl("aspect_content"), Registries.ITEM, AspectMap.CODEC ) .synced(AspectMap.CODEC, true) - .merger(hierarchicalMerger()) .build() val ENTITY = DataMapType @@ -29,23 +25,4 @@ object T7DataMaps { .synced(AspectMap.CODEC, true) .build() } - - val ASPECT_RELATIONS = AdvancedDataMapType - .builder( - rl("aspect_relations"), - T7Registries.ASPECT_KEY, - Aspect.CODEC.listOf() - ) - .synced(Aspect.CODEC.listOf(), true) - .merger(DataMapValueMerger.listMerger()) - .build() - - // prioritizes resourcekeys before tags - fun hierarchicalMerger(): DataMapValueMerger { - return DataMapValueMerger { _, first, firstValue, second, secondValue -> - if (second.right().isPresent) secondValue - else if (first.right().isPresent) firstValue - else secondValue - } - } } diff --git a/src/main/java/me/alegian/thavma/impl/init/registries/T7Registries.kt b/src/main/java/me/alegian/thavma/impl/init/registries/T7Registries.kt index 74aac755..c5aa3556 100644 --- a/src/main/java/me/alegian/thavma/impl/init/registries/T7Registries.kt +++ b/src/main/java/me/alegian/thavma/impl/init/registries/T7Registries.kt @@ -17,8 +17,7 @@ object T7Registries { .maxId(Int.MAX_VALUE) .create() - val ASPECT_KEY = ResourceKey.createRegistryKey(rl("aspect")) - val ASPECT = RegistryBuilder(ASPECT_KEY) + val ASPECT = RegistryBuilder(ResourceKey.createRegistryKey(rl("aspect"))) .maxId(Int.MAX_VALUE) .create() diff --git a/src/main/java/me/alegian/thavma/impl/init/registries/deferred/Aspects.kt b/src/main/java/me/alegian/thavma/impl/init/registries/deferred/Aspects.kt index 1ef11c6e..0de52fc7 100644 --- a/src/main/java/me/alegian/thavma/impl/init/registries/deferred/Aspects.kt +++ b/src/main/java/me/alegian/thavma/impl/init/registries/deferred/Aspects.kt @@ -5,49 +5,64 @@ import me.alegian.thavma.impl.client.T7Colors import me.alegian.thavma.impl.common.aspect.Aspect import me.alegian.thavma.impl.init.registries.deferred.util.DeferredAspect import me.alegian.thavma.impl.init.registries.deferred.util.T7DeferredRegister +import java.util.function.Supplier object Aspects { val REGISTRAR: T7DeferredRegister.Aspects = T7DeferredRegister.createAspects(Thavma.MODID) // PRIMAL - val TERRA = register("terra", 0xff56c000.toInt(), true) - val IGNIS = register("ignis", 0xffff5a01.toInt(), true) - val AQUA = register("aqua", 0xff3cd4fc.toInt(), true) - val AETHER = register("aether", T7Colors.PURPLE, true) + val AER = register("aer", 0xffffff7e.toInt(), listOf()) + val TERRA = register("terra", 0xff56c000.toInt(), listOf()) + val IGNIS = register("ignis", 0xffff5a01.toInt(), listOf()) + val AQUA = register("aqua", 0xff3cd4fc.toInt(), listOf()) + val AETHER = register("aether", 0xffd5d4ec.toInt(), listOf()) - // DO NOT use this to check if an aspect is primal. This array is used to datagen ores and other content. Instead, use Aspect::isPrimal - val DATAGEN_PRIMALS = listOf(IGNIS, TERRA, AQUA, AETHER) + // DO NOT use this to check if an aspect is primal. This array is used to auto-generate ores and other content. Instead, use Aspect::isPrimal + val PRIMAL_ASPECTS = listOf(IGNIS, AER, TERRA, AQUA, AETHER) // SECONDARY - val LUX = register("lux", 0xffffffc0.toInt()) - val VITREUS = register("vitreus", 0xff80ffff.toInt()) - val METALLUM = register("metallum", 0xffb5b5cd.toInt()) - val VICTUS = register("victus", 0xffde0005.toInt()) - val HERBA = register("herba", 0xff01ac00.toInt()) + val VACUOS = register("vacuos", 0xffa0a0a0.toInt(), listOf(AETHER, TERRA)) + val LUX = register("lux", 0xffffffc0.toInt(), listOf(AER, IGNIS)) + val MOTUS = register("motus", 0xffcdccf4.toInt(), listOf(AER, AETHER)) + val GELUM = register("gelum", 0xffe1ffff.toInt(), listOf(AER, AQUA)) + val VITREUS = register("vitreus", 0xff80ffff.toInt(), listOf(TERRA, AER)) + val METALLUM = register("metallum", 0xffb5b5cd.toInt(), listOf(TERRA, IGNIS)) + val VICTUS = register("victus", 0xffde0005.toInt(), listOf(AETHER, AQUA)) + val HERBA = register("herba", 0xff01ac00.toInt(), listOf(AQUA, TERRA)) + val POTENTIA = register("potentia", 0xffc0ffff.toInt(), listOf(AETHER, IGNIS)) + val PERMUTATIO = register("permutatio", 0xff578357.toInt(), listOf(AQUA, IGNIS)) // TERTIARY - val ALKIMIA = register("alkimia", 0xff23ac9d.toInt()) - val TENEBRAE = register("tenebrae", 0xff222222.toInt()) - val INSTRUMENTUM = register("instrumentum", 0xff4040ee.toInt()) - val FABRICO = register("fabrico", 0xff809d80.toInt()) - val MACHINA = register("machina", 0xff8080a0.toInt()) - val VAS = register("vas", 0xff9a8080.toInt()) - val COGNITIO = register("cognitio", 0xfff9967f.toInt()) - val ORNATUS = register("ornatus", 0xffc0ffc0.toInt()) - val HOSTILIS = register("hostilis", 0xffc05050.toInt()) - val CORPUS = register("corpus", 0xff9f6409.toInt()) - val PRAEMUNIO = register("praemunio", 0xff00c0c0.toInt()) - val CIVILIS = register("civilis", 0xffffd7c0.toInt()) - - private fun register(id: String, color: Int, isPrimal: Boolean = false): DeferredAspect { - return REGISTRAR.registerAspect(id) { Aspect(id, color, isPrimal) } + val MORTUUS = register("mortuus", 0xff6a0005.toInt(), listOf(VICTUS, VACUOS)) + val PRAECANTATIO = register("praecantatio", T7Colors.PURPLE, listOf(POTENTIA, AER)) + val AURAM = register("auram", 0xffffc0ff.toInt(), listOf(PRAECANTATIO, AER)) + val ALKIMIA = register("alkimia", 0xff23ac9d.toInt(), listOf(PRAECANTATIO, AQUA)) + val VITIUM = register("vitium", 0xff800080.toInt(), listOf(VICTUS, PRAECANTATIO)) + val TENEBRAE = register("tenebrae", 0xff222222.toInt(), listOf(VACUOS, LUX)) + val ALIENIS = register("alienis", 0xff805080.toInt(), listOf(VACUOS, TENEBRAE)) + val VOLATUS = register("volatus", 0xffe7e7d7.toInt(), listOf(AER, MOTUS)) + val INSTRUMENTUM = register("instrumentum", 0xff4040ee.toInt(), listOf(METALLUM, POTENTIA)) + val FABRICO = register("fabrico", 0xff809d80.toInt(), listOf(PERMUTATIO, INSTRUMENTUM)) + val MACHINA = register("machina", 0xff8080a0.toInt(), listOf(MOTUS, INSTRUMENTUM)) + val VINCULUM = register("vinculum", 0xff9a8080.toInt(), listOf(MOTUS, IGNIS)) + val EXANIMIS = register("exanimis", 0xffebebfb.toInt(), listOf(VICTUS, MORTUUS)) + val COGNITIO = register("cognitio", 0xfff9967f.toInt(), listOf(IGNIS, VICTUS)) + val SENSUS = register("sensus", 0xffc0ffc0.toInt(), listOf(AER, COGNITIO)) + val AVERSIO = register("aversio", 0xffc05050.toInt(), listOf(INSTRUMENTUM, METALLUM)) + val DESIDERIUM = register("desiderium", 0xffe6be44.toInt(), listOf(COGNITIO, VACUOS)) + val BESTIA = register("bestia", 0xff9f6409.toInt(), listOf(MOTUS, VICTUS)) + val PRAEMUNIO = register("praemunio", 0xff00c0c0.toInt(), listOf(BESTIA, METALLUM)) + val HUMANUS = register("humanus", 0xffffd7c0.toInt(), listOf(BESTIA, COGNITIO)) + + private fun register(id: String, color: Int, components: List>): DeferredAspect { + return REGISTRAR.registerAspect(id) { Aspect(id, color, components) } } } fun linkedMapWithPrimalKeys(mapper: (DeferredAspect) -> T): LinkedHashMap, T> { - return linkedMapOf(*Aspects.DATAGEN_PRIMALS.map { Pair(it, mapper(it)) }.toTypedArray()) + return linkedMapOf(*Aspects.PRIMAL_ASPECTS.map { Pair(it, mapper(it)) }.toTypedArray()) } fun listFromPrimals(mapper: (DeferredAspect) -> T): List { - return Aspects.DATAGEN_PRIMALS.map { mapper(it) } + return Aspects.PRIMAL_ASPECTS.map { mapper(it) } } diff --git a/src/main/java/me/alegian/thavma/impl/init/registries/deferred/T7Items.kt b/src/main/java/me/alegian/thavma/impl/init/registries/deferred/T7Items.kt index f2d8ef86..da47e771 100644 --- a/src/main/java/me/alegian/thavma/impl/init/registries/deferred/T7Items.kt +++ b/src/main/java/me/alegian/thavma/impl/init/registries/deferred/T7Items.kt @@ -197,7 +197,7 @@ object T7Items { val ANGRY_ZOMBIE_SPAWN_EGG = REGISTRAR.registerItem("angry_zombie_spawn_egg") { p -> DeferredSpawnEggItem(T7EntityTypes.ANGRY_ZOMBIE, 0x00AFAF, 0x9e2323, p) } val FOCUS_EMBERS = REGISTRAR.registerItem("focus_embers", ::Item) - val FOCUS_EXCAVATION = REGISTRAR.registerItem("focus_excavation") { ExcavationFocus() } + val FOCUS_EXCAVATION = REGISTRAR.registerItem("focus_excavation", ::Item) val FOCUS_ENDERCHEST = REGISTRAR.registerItem("focus_enderchest") { EnderChestFocus() } val FOCUS_LIGHT = REGISTRAR.registerItem("focus_light") { LightFocus() } val FOCUS_HOLE = REGISTRAR.registerItem("focus_hole", ::Item) diff --git a/src/main/resources/assets/thavma/textures/aspect/aer.png b/src/main/resources/assets/thavma/textures/aspect/aer.png new file mode 100644 index 00000000..f09adccd Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/aer.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/aether.png b/src/main/resources/assets/thavma/textures/aspect/aether.png index 67606aef..341adc7e 100644 Binary files a/src/main/resources/assets/thavma/textures/aspect/aether.png and b/src/main/resources/assets/thavma/textures/aspect/aether.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/alienis.png b/src/main/resources/assets/thavma/textures/aspect/alienis.png new file mode 100644 index 00000000..e5d51dbc Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/alienis.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/alkimia.png b/src/main/resources/assets/thavma/textures/aspect/alkimia.png index 3d0dd488..137c8ef7 100644 Binary files a/src/main/resources/assets/thavma/textures/aspect/alkimia.png and b/src/main/resources/assets/thavma/textures/aspect/alkimia.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/auram.png b/src/main/resources/assets/thavma/textures/aspect/auram.png new file mode 100644 index 00000000..72149f1f Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/auram.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/aversio.png b/src/main/resources/assets/thavma/textures/aspect/aversio.png new file mode 100644 index 00000000..c6313d54 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/aversio.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/bestia.png b/src/main/resources/assets/thavma/textures/aspect/bestia.png new file mode 100644 index 00000000..137fac12 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/bestia.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/corpus.png b/src/main/resources/assets/thavma/textures/aspect/corpus.png deleted file mode 100644 index 159b42d4..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/corpus.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/desiderium.png b/src/main/resources/assets/thavma/textures/aspect/desiderium.png new file mode 100644 index 00000000..15fe8a17 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/desiderium.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/exanimis.png b/src/main/resources/assets/thavma/textures/aspect/exanimis.png new file mode 100644 index 00000000..a4773707 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/exanimis.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/gelum.png b/src/main/resources/assets/thavma/textures/aspect/gelum.png new file mode 100644 index 00000000..63210f5a Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/gelum.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/hostilis.png b/src/main/resources/assets/thavma/textures/aspect/hostilis.png deleted file mode 100644 index d0bd2150..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/hostilis.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/civilis.png b/src/main/resources/assets/thavma/textures/aspect/humanus.png similarity index 100% rename from src/main/resources/assets/thavma/textures/aspect/civilis.png rename to src/main/resources/assets/thavma/textures/aspect/humanus.png diff --git a/src/main/resources/assets/thavma/textures/aspect/mortuus.png b/src/main/resources/assets/thavma/textures/aspect/mortuus.png new file mode 100644 index 00000000..e74abba6 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/mortuus.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/motus.png b/src/main/resources/assets/thavma/textures/aspect/motus.png new file mode 100644 index 00000000..87fc809b Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/motus.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/ornatus.png b/src/main/resources/assets/thavma/textures/aspect/ornatus.png deleted file mode 100644 index 6832be7d..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/ornatus.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/perditio.png b/src/main/resources/assets/thavma/textures/aspect/perditio.png new file mode 100644 index 00000000..5d58c24c Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/perditio.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/permutatio.png b/src/main/resources/assets/thavma/textures/aspect/permutatio.png new file mode 100644 index 00000000..45bca802 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/permutatio.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/potentia.png b/src/main/resources/assets/thavma/textures/aspect/potentia.png new file mode 100644 index 00000000..be21b684 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/potentia.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/praecantatio.png b/src/main/resources/assets/thavma/textures/aspect/praecantatio.png new file mode 100644 index 00000000..67606aef Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/praecantatio.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/sensus.png b/src/main/resources/assets/thavma/textures/aspect/sensus.png new file mode 100644 index 00000000..7727b84f Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/sensus.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/vacuos.png b/src/main/resources/assets/thavma/textures/aspect/vacuos.png new file mode 100644 index 00000000..345fc526 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/vacuos.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/vas.png b/src/main/resources/assets/thavma/textures/aspect/vas.png deleted file mode 100644 index 9ce19b04..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/vas.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/vinculum.png b/src/main/resources/assets/thavma/textures/aspect/vinculum.png new file mode 100644 index 00000000..713676da Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/vinculum.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/vitium.png b/src/main/resources/assets/thavma/textures/aspect/vitium.png new file mode 100644 index 00000000..737f9c93 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/vitium.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/volatus.png b/src/main/resources/assets/thavma/textures/aspect/volatus.png new file mode 100644 index 00000000..4cef84b9 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/volatus.png differ