diff --git a/build.gradle b/build.gradle index facff986..2a03fc20 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.0.192' + id 'net.neoforged.gradle.userdev' version '7.1.20' id 'org.jetbrains.kotlin.jvm' version "${kotlin_version}" } diff --git a/gradle.properties b/gradle.properties index a2dec444..fe7e7735 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.216 +neo_version=21.1.217 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 d4081da4..23449a2b 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-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-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 30de6896..2810b5bd 100644 --- a/raw-assets/game-icons-map.md +++ b/raw-assets/game-icons-map.md @@ -4,41 +4,26 @@ 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 -- mortuus: Pirate grave -- potentia: Thor fist -- permutatio: Cycle -- praecantatio: Fairy wand -- auram: Sun -- alkimia: Round potion -- vitium: Tentacle strike +- aether: Fairy wand +- alkimia: Cauldron - 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 -- sensus: Owl -- aversio: Broad dagger +- ornatus: Owl - praemunio: Breastplate -- desiderium: Grab -- exanimis: Dread skull -- bestia: Wolf -- humanus: Two shadows +- civilis: Two shadows +- vas: Locked Chest +- hostilis: Dread Skull +- corpus: Dinosaur Bones +- ornatus: Painted Pottery - unknown: Help \ No newline at end of file diff --git a/raw-assets/public/description.md b/raw-assets/public/description.md index eb97cebb..0e75c441 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. 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 +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 diff --git a/raw-assets/public/handle_crafting.png b/raw-assets/public/handle_crafting.png deleted file mode 100644 index 2254a4d3..00000000 Binary files a/raw-assets/public/handle_crafting.png and /dev/null differ diff --git a/raw-assets/public/plating_crafting.png b/raw-assets/public/plating_crafting.png new file mode 100644 index 00000000..b53e42f5 Binary files /dev/null and b/raw-assets/public/plating_crafting.png differ diff --git a/raw-assets/public/summary.txt b/raw-assets/public/summary.txt new file mode 100644 index 00000000..94253ff9 --- /dev/null +++ b/raw-assets/public/summary.txt @@ -0,0 +1 @@ +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 7f26c325..bc7c9ad0 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 9ef317f6..e3cb0436 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 deleted file mode 100644 index 53342505..00000000 --- a/src/generated/resources/assets/thavma/blockstates/aer_infused_deepslate.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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 deleted file mode 100644 index c166d59b..00000000 --- a/src/generated/resources/assets/thavma/blockstates/aer_infused_stone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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 964113ad..ff9662ae 100644 --- a/src/generated/resources/assets/thavma/lang/en_us.json +++ b/src/generated/resources/assets/thavma/lang/en_us.json @@ -1,42 +1,26 @@ { - "aspect.thavma.aer": "Aer", "aspect.thavma.aether": "Aether", - "aspect.thavma.alienis": "Alienis", "aspect.thavma.alkimia": "Alkimia", "aspect.thavma.aqua": "Aqua", - "aspect.thavma.auram": "Auram", - "aspect.thavma.aversio": "Aversio", - "aspect.thavma.bestia": "Bestia", + "aspect.thavma.civilis": "Civilis", "aspect.thavma.cognitio": "Cognitio", - "aspect.thavma.desiderium": "Desiderium", - "aspect.thavma.exanimis": "Exanimis", + "aspect.thavma.corpus": "Corpus", "aspect.thavma.fabrico": "Fabrico", - "aspect.thavma.gelum": "Gelum", "aspect.thavma.herba": "Herba", - "aspect.thavma.humanus": "Humanus", + "aspect.thavma.hostilis": "Hostilis", "aspect.thavma.ignis": "Ignis", "aspect.thavma.instrumentum": "Instrumentum", "aspect.thavma.lux": "Lux", "aspect.thavma.machina": "Machina", "aspect.thavma.metallum": "Metallum", - "aspect.thavma.mortuus": "Mortuus", - "aspect.thavma.motus": "Motus", - "aspect.thavma.permutatio": "Permutatio", - "aspect.thavma.potentia": "Potentia", - "aspect.thavma.praecantatio": "Praecantatio", + "aspect.thavma.ornatus": "Ornatus", "aspect.thavma.praemunio": "Praemunio", - "aspect.thavma.sensus": "Sensus", "aspect.thavma.tenebrae": "Tenebrae", "aspect.thavma.terra": "Terra", - "aspect.thavma.vacuos": "Vacuos", + "aspect.thavma.vas": "Vas", "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", @@ -87,7 +71,6 @@ "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 deleted file mode 100644 index 10897368..00000000 --- a/src/generated/resources/assets/thavma/models/block/aer_infused_deepslate.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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 deleted file mode 100644 index cefaad15..00000000 --- a/src/generated/resources/assets/thavma/models/block/aer_infused_stone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "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 deleted file mode 100644 index 4d658156..00000000 --- a/src/generated/resources/assets/thavma/models/item/aer_infused_deepslate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "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 deleted file mode 100644 index f89dc107..00000000 --- a/src/generated/resources/assets/thavma/models/item/aer_infused_stone.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "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 deleted file mode 100644 index 3892f60f..00000000 --- a/src/generated/resources/assets/thavma/models/item/aer_shard.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "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 cb5100c7..86267856 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,12 +1,10 @@ { "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 cb5100c7..86267856 100644 --- a/src/generated/resources/data/c/tags/block/ores.json +++ b/src/generated/resources/data/c/tags/block/ores.json @@ -1,12 +1,10 @@ { "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 5179bc9c..861c96e8 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,7 +1,6 @@ { "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 b5a3285c..468d2df2 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,7 +1,6 @@ { "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 cb5100c7..86267856 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,12 +1,10 @@ { "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 cb5100c7..86267856 100644 --- a/src/generated/resources/data/c/tags/item/ores.json +++ b/src/generated/resources/data/c/tags/item/ores.json @@ -1,12 +1,10 @@ { "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 5179bc9c..861c96e8 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,7 +1,6 @@ { "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 b5a3285c..468d2df2 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,7 +1,6 @@ { "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 cb5100c7..86267856 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -1,12 +1,10 @@ { "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 cb5100c7..86267856 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,12 +1,10 @@ { "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 deleted file mode 100644 index 1426aabb..00000000 --- a/src/generated/resources/data/thavma/advancement/recipes/misc/aer_shard_blasting.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "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 deleted file mode 100644 index edccc38f..00000000 --- a/src/generated/resources/data/thavma/advancement/recipes/misc/aer_shard_smelting.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "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 98ae4a90..2eb02295 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:bestia": 15, - "thavma:terra": 15 + "thavma:terra": 8, + "thavma:victus": 8 }, "minecraft:creeper": { "thavma:herba": 15, @@ -30,17 +30,16 @@ "minecraft:elder_guardian": {}, "minecraft:ender_dragon": {}, "minecraft:enderman": { - "thavma:alienis": 8, - "thavma:desiderium": 4, - "thavma:humanus": 4, - "thavma:motus": 12 + "thavma:civilis": 4, + "thavma:hostilis": 4, + "thavma:tenebrae": 8 }, "minecraft:endermite": {}, "minecraft:evoker": {}, "minecraft:fox": {}, "minecraft:frog": {}, "minecraft:ghast": { - "thavma:exanimis": 12, + "thavma:hostilis": 12, "thavma:ignis": 8 }, "minecraft:glow_squid": {}, @@ -59,9 +58,8 @@ "minecraft:parrot": {}, "minecraft:phantom": {}, "minecraft:pig": { - "thavma:bestia": 10, - "thavma:desiderium": 5, - "thavma:terra": 10 + "thavma:terra": 8, + "thavma:victus": 8 }, "minecraft:piglin": {}, "minecraft:piglin_brute": {}, @@ -72,15 +70,14 @@ "minecraft:ravager": {}, "minecraft:salmon": {}, "minecraft:sheep": { - "thavma:bestia": 10, - "thavma:terra": 10 + "thavma:terra": 8, + "thavma:victus": 8 }, "minecraft:shulker": {}, "minecraft:silverfish": {}, "minecraft:skeleton": { - "thavma:exanimis": 20, - "thavma:humanus": 5, - "thavma:terra": 5 + "thavma:hostilis": 8, + "thavma:terra": 8 }, "minecraft:skeleton_horse": {}, "minecraft:slime": { @@ -92,8 +89,8 @@ "minecraft:snow_golem": {}, "minecraft:spectral_arrow": {}, "minecraft:spider": { - "thavma:bestia": 10, - "thavma:vinculum": 10 + "thavma:hostilis": 8, + "thavma:terra": 8 }, "minecraft:squid": {}, "minecraft:stray": {}, @@ -104,7 +101,7 @@ "minecraft:turtle": {}, "minecraft:vex": {}, "minecraft:villager": { - "thavma:humanus": 15 + "thavma:civilis": 12 }, "minecraft:vindicator": {}, "minecraft:wandering_trader": {}, @@ -115,9 +112,8 @@ "minecraft:wolf": {}, "minecraft:zoglin": {}, "minecraft:zombie": { - "thavma:exanimis": 20, - "thavma:humanus": 10, - "thavma:terra": 5 + "thavma:hostilis": 8, + "thavma:terra": 8 }, "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 40bf2efd..bec323ff 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,12 +4,11 @@ "thavma:terra": 2 }, "#c:concrete_powders": { - "thavma:terra": 3 + "thavma:terra": 2 }, "#c:concretes": { - "thavma:aether": 1, "thavma:aqua": 1, - "thavma:terra": 3 + "thavma:terra": 2 }, "#c:crops/wheat": { "thavma:herba": 2, @@ -20,35 +19,33 @@ "thavma:terra": 1 }, "#c:dusts/redstone": { - "thavma:potentia": 4, + "thavma:machina": 1, "thavma:terra": 1 }, "#c:eggs": { - "thavma:bestia": 2, + "thavma:corpus": 2, "thavma:victus": 4 }, "#c:ender_pearls": { - "thavma:alienis": 4, - "thavma:motus": 4 + "thavma:corpus": 2, + "thavma:instrumentum": 4, + "thavma:tenebrae": 4 }, "#c:feathers": { - "thavma:aer": 4, - "thavma:volatus": 4 + "thavma:corpus": 2, + "thavma:instrumentum": 1 }, "#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:sensus": 2, + "thavma:cognitio": 1, "thavma:vitreus": 4 }, "#c:gems/quartz": { @@ -66,27 +63,24 @@ }, "#c:gunpowders": { "thavma:alkimia": 2, - "thavma:potentia": 4, + "thavma:ignis": 4, "thavma:terra": 1 }, "#c:ingots/copper": { - "thavma:metallum": 4, - "thavma:permutatio": 4 + "thavma:metallum": 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:bestia": 8 + "thavma:corpus": 3 }, "#c:netherracks": { "thavma:ignis": 1, @@ -96,60 +90,53 @@ "thavma:terra": 1 }, "#c:ores/coal": { - "thavma:ignis": 8, - "thavma:potentia": 8, + "thavma:ignis": 2, "thavma:terra": 4 }, "#c:ores/copper": { "thavma:metallum": 4, - "thavma:permutatio": 4, - "thavma:terra": 4 + "thavma:terra": 2 }, "#c:ores/diamond": { - "thavma:desiderium": 8, - "thavma:terra": 4, + "thavma:terra": 2, "thavma:vitreus": 8 }, "#c:ores/emerald": { - "thavma:desiderium": 4, - "thavma:terra": 4, + "thavma:terra": 2, "thavma:vitreus": 8 }, "#c:ores/gold": { - "thavma:desiderium": 8, "thavma:metallum": 4, - "thavma:terra": 4 + "thavma:terra": 2 }, "#c:ores/iron": { "thavma:metallum": 8, - "thavma:terra": 4 + "thavma:terra": 2 }, "#c:ores/lapis": { - "thavma:sensus": 2, - "thavma:terra": 4, + "thavma:cognitio": 1, + "thavma:terra": 2, "thavma:vitreus": 4 }, "#c:ores/netherite_scrap": { "thavma:metallum": 2, "thavma:tenebrae": 1, - "thavma:terra": 6 + "thavma:terra": 4 }, "#c:ores/quartz": { "thavma:ignis": 1, - "thavma:terra": 4, + "thavma:terra": 2, "thavma:vitreus": 4 }, "#c:ores/redstone": { - "thavma:potentia": 4, - "thavma:terra": 4 + "thavma:machina": 1, + "thavma:terra": 3 }, "#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 }, @@ -158,15 +145,16 @@ "thavma:terra": 2 }, "#c:rods/blaze": { - "thavma:ignis": 8, - "thavma:potentia": 4 + "thavma:alkimia": 2, + "thavma:corpus": 2, + "thavma:ignis": 4 }, "#c:rods/breeze": { - "thavma:aer": 8, - "thavma:motus": 4 + "thavma:aether": 6, + "thavma:corpus": 2 }, "#c:rods/wooden": { - "thavma:herba": 2 + "thavma:herba": 1 }, "#c:sands": { "thavma:terra": 2 @@ -175,44 +163,37 @@ "thavma:terra": 2 }, "#c:storage_blocks/coal": { - "thavma:ignis": 72, - "thavma:potentia": 72 + "thavma:ignis": 18, + "thavma:terra": 18 }, "#c:storage_blocks/copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 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:sensus": 18, + "thavma:cognitio": 9, "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 }, @@ -221,33 +202,36 @@ "thavma:terra": 18 }, "#c:storage_blocks/redstone": { - "thavma:potentia": 36, + "thavma:machina": 9, "thavma:terra": 9 }, "#c:strings": { - "thavma:bestia": 1, + "thavma:corpus": 1, "thavma:fabrico": 1 }, "#c:tools/bow": { - "thavma:aversio": 8, - "thavma:fabrico": 2, - "thavma:herba": 2 + "thavma:fabrico": 3, + "thavma:herba": 3, + "thavma:instrumentum": 8 }, "#c:tools/crossbow": { - "thavma:aversio": 8, "thavma:fabrico": 2, - "thavma:metallum": 4 + "thavma:herba": 5, + "thavma:instrumentum": 8, + "thavma:machina": 2, + "thavma:metallum": 12 }, "#minecraft:arrows": { - "thavma:aversio": 2, - "thavma:motus": 1 + "thavma:herba": 1, + "thavma:instrumentum": 2, + "thavma:terra": 1 }, "#minecraft:bamboo_blocks": { "thavma:herba": 4 }, "#minecraft:coals": { - "thavma:ignis": 8, - "thavma:potentia": 8 + "thavma:ignis": 2, + "thavma:terra": 2 }, "#minecraft:dirt": { "thavma:terra": 1 @@ -268,18 +252,18 @@ }, "#minecraft:terracotta": { "thavma:ignis": 4, - "thavma:sensus": 1, + "thavma:ornatus": 1, "thavma:terra": 4 }, "#minecraft:wool": { - "thavma:bestia": 8, + "thavma:corpus": 4, "thavma:fabrico": 4 }, "#thavma:goggles": { - "thavma:desiderium": 32, - "thavma:metallum": 32, - "thavma:praecantatio": 4, - "thavma:vitreus": 4 + "thavma:aether": 8, + "thavma:instrumentum": 8, + "thavma:metallum": 40, + "thavma:vitreus": 2 }, "minecraft:acacia_button": { "thavma:herba": 2 @@ -312,7 +296,6 @@ "thavma:herba": 6 }, "minecraft:amethyst_block": { - "thavma:sensus": 4, "thavma:vitreus": 16 }, "minecraft:andesite": { @@ -328,7 +311,7 @@ "thavma:terra": 2 }, "minecraft:armadillo_scute": { - "thavma:bestia": 2, + "thavma:corpus": 2, "thavma:praemunio": 1 }, "minecraft:bamboo": { @@ -375,8 +358,7 @@ }, "minecraft:bedrock": { "thavma:tenebrae": 25, - "thavma:terra": 25, - "thavma:vacuos": 25 + "thavma:terra": 25 }, "minecraft:birch_button": { "thavma:herba": 2 @@ -425,9 +407,8 @@ "thavma:terra": 2 }, "minecraft:blaze_powder": { - "thavma:alkimia": 2, - "thavma:ignis": 2, - "thavma:potentia": 1 + "thavma:alkimia": 1, + "thavma:ignis": 2 }, "minecraft:brick": { "thavma:ignis": 1, @@ -500,8 +481,7 @@ "thavma:herba": 6 }, "minecraft:chiseled_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:chiseled_deepslate": { "thavma:terra": 2 @@ -519,10 +499,10 @@ "thavma:vitreus": 16 }, "minecraft:chiseled_red_sandstone": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:chiseled_sandstone": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:chiseled_stone_bricks": { "thavma:terra": 2 @@ -534,16 +514,16 @@ "thavma:terra": 2 }, "minecraft:chorus_flower": { - "thavma:alienis": 4, - "thavma:herba": 4 + "thavma:herba": 4, + "thavma:tenebrae": 4 }, "minecraft:chorus_fruit": { - "thavma:alienis": 2, - "thavma:herba": 2 + "thavma:herba": 2, + "thavma:tenebrae": 2 }, "minecraft:chorus_plant": { - "thavma:alienis": 2, - "thavma:herba": 2 + "thavma:herba": 2, + "thavma:tenebrae": 2 }, "minecraft:clay": { "thavma:aqua": 4, @@ -554,7 +534,7 @@ "thavma:terra": 1 }, "minecraft:coarse_dirt": { - "thavma:terra": 1 + "thavma:terra": 2 }, "minecraft:cobbled_deepslate": { "thavma:terra": 2 @@ -581,8 +561,7 @@ "thavma:terra": 2 }, "minecraft:copper_block": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:cracked_deepslate_bricks": { "thavma:terra": 2 @@ -602,8 +581,8 @@ "thavma:terra": 2 }, "minecraft:crafting_table": { - "thavma:fabrico": 8, - "thavma:herba": 4 + "thavma:fabrico": 4, + "thavma:herba": 8 }, "minecraft:crimson_button": { "thavma:herba": 2, @@ -646,28 +625,25 @@ "thavma:ignis": 6 }, "minecraft:cut_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:cut_copper_slab": { - "thavma:metallum": 18, - "thavma:permutatio": 18 + "thavma:metallum": 18 }, "minecraft:cut_copper_stairs": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:cut_red_sandstone": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:cut_red_sandstone_slab": { - "thavma:terra": 2 + "thavma:terra": 4 }, "minecraft:cut_sandstone": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:cut_sandstone_slab": { - "thavma:terra": 2 + "thavma:terra": 4 }, "minecraft:dark_oak_button": { "thavma:herba": 2 @@ -700,16 +676,19 @@ "thavma:herba": 6 }, "minecraft:dark_prismarine": { - "thavma:aqua": 4, - "thavma:terra": 4 + "thavma:aqua": 10, + "thavma:corpus": 2, + "thavma:terra": 8 }, "minecraft:dark_prismarine_slab": { - "thavma:aqua": 2, - "thavma:terra": 2 + "thavma:aqua": 5, + "thavma:corpus": 1, + "thavma:terra": 4 }, "minecraft:dark_prismarine_stairs": { - "thavma:aqua": 4, - "thavma:terra": 4 + "thavma:aqua": 10, + "thavma:corpus": 2, + "thavma:terra": 8 }, "minecraft:deepslate": { "thavma:terra": 2 @@ -739,54 +718,48 @@ "thavma:terra": 2 }, "minecraft:diamond_axe": { - "thavma:desiderium": 24, + "thavma:herba": 2, "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:desiderium": 16, + "thavma:herba": 2, "thavma:instrumentum": 4, "thavma:vitreus": 16 }, "minecraft:diamond_horse_armor": { - "thavma:bestia": 8, - "thavma:desiderium": 16, "thavma:praemunio": 12, - "thavma:vitreus": 16 + "thavma:vitreus": 56 }, "minecraft:diamond_leggings": { - "thavma:desiderium": 56, "thavma:praemunio": 14, "thavma:vitreus": 56 }, "minecraft:diamond_pickaxe": { - "thavma:desiderium": 24, + "thavma:herba": 2, "thavma:instrumentum": 4, "thavma:vitreus": 24 }, "minecraft:diamond_shovel": { - "thavma:desiderium": 8, + "thavma:herba": 2, "thavma:instrumentum": 4, "thavma:vitreus": 8 }, "minecraft:diamond_sword": { - "thavma:aversio": 4, - "thavma:desiderium": 16, + "thavma:herba": 1, + "thavma:instrumentum": 4, "thavma:vitreus": 16 }, "minecraft:diorite": { @@ -802,126 +775,125 @@ "thavma:terra": 2 }, "minecraft:end_crystal": { - "thavma:alienis": 4, - "thavma:ignis": 4, - "thavma:potentia": 8, + "thavma:aether": 2, + "thavma:alkimia": 5, + "thavma:hostilis": 4, + "thavma:ignis": 2, + "thavma:instrumentum": 4, + "thavma:tenebrae": 4, "thavma:vitreus": 14 }, "minecraft:end_stone_brick_slab": { - "thavma:alienis": 1, + "thavma:tenebrae": 1, "thavma:terra": 1 }, "minecraft:end_stone_brick_stairs": { - "thavma:alienis": 2, + "thavma:tenebrae": 2, "thavma:terra": 2 }, "minecraft:end_stone_brick_wall": { - "thavma:alienis": 2, + "thavma:tenebrae": 2, "thavma:terra": 2 }, "minecraft:end_stone_bricks": { - "thavma:alienis": 2, + "thavma:tenebrae": 2, "thavma:terra": 2 }, "minecraft:ender_eye": { - "thavma:alienis": 4, - "thavma:motus": 4, - "thavma:praecantatio": 2 + "thavma:aether": 2, + "thavma:alkimia": 1, + "thavma:ignis": 2, + "thavma:instrumentum": 4, + "thavma:tenebrae": 4 }, "minecraft:exposed_chiseled_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:exposed_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:exposed_cut_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:exposed_cut_copper_slab": { - "thavma:metallum": 18, - "thavma:permutatio": 18 + "thavma:metallum": 18 }, "minecraft:exposed_cut_copper_stairs": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:fire_charge": { - "thavma:aversio": 2, + "thavma:alkimia": 4, "thavma:ignis": 4, - "thavma:potentia": 4 + "thavma:instrumentum": 2 }, "minecraft:firework_rocket": { - "thavma:potentia": 1, - "thavma:sensus": 1 + "thavma:ignis": 1, + "thavma:ornatus": 1 }, "minecraft:firework_star": { - "thavma:potentia": 1, - "thavma:sensus": 2 + "thavma:ignis": 1, + "thavma:ornatus": 2 }, "minecraft:flint": { - "thavma:instrumentum": 2, - "thavma:terra": 4 + "thavma:instrumentum": 1, + "thavma:terra": 1 }, "minecraft:ghast_tear": { "thavma:alkimia": 4, - "thavma:exanimis": 4 + "thavma:hostilis": 4 + }, + "minecraft:glow_ink_sac": { + "thavma:aqua": 2, + "thavma:corpus": 2, + "thavma:lux": 2 }, "minecraft:glowstone": { "thavma:lux": 16, "thavma:terra": 4 }, "minecraft:golden_axe": { - "thavma:desiderium": 24, + "thavma:herba": 2, "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:desiderium": 16, + "thavma:herba": 2, "thavma:instrumentum": 2, "thavma:metallum": 8 }, "minecraft:golden_horse_armor": { - "thavma:bestia": 8, - "thavma:desiderium": 16, - "thavma:metallum": 8, + "thavma:metallum": 28, "thavma:praemunio": 8 }, "minecraft:golden_leggings": { - "thavma:desiderium": 56, "thavma:metallum": 28, "thavma:praemunio": 6 }, "minecraft:golden_pickaxe": { - "thavma:desiderium": 24, + "thavma:herba": 2, "thavma:instrumentum": 2, "thavma:metallum": 12 }, "minecraft:golden_shovel": { - "thavma:desiderium": 8, + "thavma:herba": 2, "thavma:instrumentum": 2, "thavma:metallum": 4 }, "minecraft:golden_sword": { - "thavma:aversio": 2, - "thavma:desiderium": 16, + "thavma:herba": 1, + "thavma:instrumentum": 2, "thavma:metallum": 8 }, "minecraft:granite": { @@ -941,11 +913,15 @@ "thavma:terra": 1 }, "minecraft:heavy_core": { - "thavma:desiderium": 8, - "thavma:metallum": 16, - "thavma:vacuos": 2 + "thavma:instrumentum": 6, + "thavma:metallum": 16 + }, + "minecraft:ink_sac": { + "thavma:aqua": 2, + "thavma:corpus": 2 }, "minecraft:iron_axe": { + "thavma:herba": 2, "thavma:instrumentum": 3, "thavma:metallum": 24 }, @@ -962,12 +938,12 @@ "thavma:praemunio": 4 }, "minecraft:iron_hoe": { + "thavma:herba": 2, "thavma:instrumentum": 3, "thavma:metallum": 16 }, "minecraft:iron_horse_armor": { - "thavma:bestia": 8, - "thavma:metallum": 16, + "thavma:metallum": 56, "thavma:praemunio": 6 }, "minecraft:iron_leggings": { @@ -975,15 +951,18 @@ "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:aversio": 3, + "thavma:herba": 1, + "thavma:instrumentum": 3, "thavma:metallum": 16 }, "minecraft:jungle_button": { @@ -1017,29 +996,29 @@ "thavma:herba": 6 }, "minecraft:leather_boots": { - "thavma:bestia": 32, + "thavma:corpus": 12, "thavma:praemunio": 2 }, "minecraft:leather_chestplate": { - "thavma:bestia": 64, + "thavma:corpus": 24, "thavma:praemunio": 6 }, "minecraft:leather_helmet": { - "thavma:bestia": 40, + "thavma:corpus": 15, "thavma:praemunio": 2 }, "minecraft:leather_horse_armor": { - "thavma:bestia": 16, + "thavma:corpus": 21, "thavma:praemunio": 4 }, "minecraft:leather_leggings": { - "thavma:bestia": 56, + "thavma:corpus": 21, "thavma:praemunio": 4 }, "minecraft:mace": { - "thavma:aer": 8, - "thavma:metallum": 16, - "thavma:motus": 8 + "thavma:aether": 6, + "thavma:instrumentum": 6, + "thavma:metallum": 16 }, "minecraft:mangrove_button": { "thavma:herba": 2 @@ -1072,55 +1051,52 @@ "thavma:herba": 6 }, "minecraft:mossy_cobblestone": { - "thavma:herba": 2, + "thavma:herba": 1, "thavma:terra": 2 }, "minecraft:mossy_cobblestone_slab": { - "thavma:herba": 1, "thavma:terra": 1 }, "minecraft:mossy_cobblestone_stairs": { - "thavma:herba": 2, + "thavma:herba": 1, "thavma:terra": 2 }, "minecraft:mossy_cobblestone_wall": { - "thavma:herba": 2, + "thavma:herba": 1, "thavma:terra": 2 }, "minecraft:mossy_stone_brick_slab": { - "thavma:herba": 1, "thavma:terra": 1 }, "minecraft:mossy_stone_brick_stairs": { - "thavma:herba": 2, + "thavma:herba": 1, "thavma:terra": 2 }, "minecraft:mossy_stone_brick_wall": { - "thavma:herba": 2, + "thavma:herba": 1, "thavma:terra": 2 }, "minecraft:mossy_stone_bricks": { - "thavma:herba": 2, + "thavma:herba": 1, "thavma:terra": 2 }, "minecraft:mud": { "thavma:aqua": 1, - "thavma:terra": 1 + "thavma:terra": 2 }, "minecraft:mud_brick_slab": { - "thavma:herba": 1, "thavma:terra": 1 }, "minecraft:mud_brick_stairs": { - "thavma:herba": 2, + "thavma:aqua": 1, "thavma:terra": 2 }, "minecraft:mud_brick_wall": { - "thavma:herba": 2, + "thavma:aqua": 1, "thavma:terra": 2 }, "minecraft:mud_bricks": { - "thavma:herba": 2, + "thavma:aqua": 1, "thavma:terra": 2 }, "minecraft:nether_brick": { @@ -1152,43 +1128,43 @@ "thavma:ignis": 2 }, "minecraft:netherite_axe": { - "thavma:desiderium": 24, + "thavma:herba": 2, "thavma:instrumentum": 6, "thavma:metallum": 48, "thavma:tenebrae": 12 }, "minecraft:netherite_boots": { - "thavma:desiderium": 32, - "thavma:metallum": 32, + "thavma:metallum": 16, "thavma:praemunio": 9, - "thavma:tenebrae": 4 + "thavma:tenebrae": 4, + "thavma:vitreus": 32 }, "minecraft:netherite_chestplate": { - "thavma:desiderium": 64, - "thavma:metallum": 64, + "thavma:metallum": 16, "thavma:praemunio": 19, - "thavma:tenebrae": 4 + "thavma:tenebrae": 4, + "thavma:vitreus": 64 }, "minecraft:netherite_helmet": { - "thavma:desiderium": 40, - "thavma:metallum": 40, + "thavma:metallum": 16, "thavma:praemunio": 9, - "thavma:tenebrae": 4 + "thavma:tenebrae": 4, + "thavma:vitreus": 40 }, "minecraft:netherite_hoe": { - "thavma:desiderium": 16, + "thavma:herba": 2, "thavma:instrumentum": 6, "thavma:metallum": 32, "thavma:tenebrae": 8 }, "minecraft:netherite_leggings": { - "thavma:desiderium": 56, - "thavma:metallum": 56, + "thavma:metallum": 16, "thavma:praemunio": 15, - "thavma:tenebrae": 4 + "thavma:tenebrae": 4, + "thavma:vitreus": 56 }, "minecraft:netherite_pickaxe": { - "thavma:desiderium": 24, + "thavma:herba": 2, "thavma:instrumentum": 6, "thavma:metallum": 48, "thavma:tenebrae": 12 @@ -1199,14 +1175,14 @@ "thavma:terra": 2 }, "minecraft:netherite_shovel": { - "thavma:desiderium": 8, + "thavma:herba": 2, "thavma:instrumentum": 6, "thavma:metallum": 16, "thavma:tenebrae": 4 }, "minecraft:netherite_sword": { - "thavma:aversio": 6, - "thavma:desiderium": 16, + "thavma:herba": 1, + "thavma:instrumentum": 6, "thavma:metallum": 32, "thavma:tenebrae": 8 }, @@ -1241,28 +1217,25 @@ "thavma:herba": 6 }, "minecraft:oxidized_chiseled_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:oxidized_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:oxidized_cut_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:oxidized_cut_copper_slab": { - "thavma:metallum": 18, - "thavma:permutatio": 18 + "thavma:metallum": 18 }, "minecraft:oxidized_cut_copper_stairs": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:packed_mud": { + "thavma:aqua": 1, "thavma:herba": 2, - "thavma:terra": 2 + "thavma:terra": 2, + "thavma:victus": 2 }, "minecraft:paper": { "thavma:cognitio": 1, @@ -1364,11 +1337,11 @@ "thavma:terra": 2 }, "minecraft:popped_chorus_fruit": { - "thavma:alienis": 2, - "thavma:herba": 2 + "thavma:herba": 2, + "thavma:tenebrae": 2 }, "minecraft:powder_snow_bucket": { - "thavma:gelum": 2 + "thavma:aqua": 2 }, "minecraft:prismarine": { "thavma:aqua": 4, @@ -1379,21 +1352,21 @@ "thavma:terra": 4 }, "minecraft:prismarine_brick_stairs": { - "thavma:aqua": 8, - "thavma:terra": 8 + "thavma:aqua": 9, + "thavma:terra": 9 }, "minecraft:prismarine_bricks": { - "thavma:aqua": 8, - "thavma:terra": 8 + "thavma:aqua": 9, + "thavma:terra": 9 }, "minecraft:prismarine_crystals": { - "thavma:aqua": 4, - "thavma:lux": 2, - "thavma:vitreus": 4 + "thavma:aqua": 1, + "thavma:lux": 1, + "thavma:vitreus": 2 }, "minecraft:prismarine_shard": { - "thavma:aqua": 2, - "thavma:terra": 2 + "thavma:aqua": 1, + "thavma:terra": 1 }, "minecraft:prismarine_slab": { "thavma:aqua": 2, @@ -1408,16 +1381,16 @@ "thavma:terra": 4 }, "minecraft:purpur_block": { - "thavma:alienis": 2, - "thavma:herba": 2 + "thavma:herba": 2, + "thavma:tenebrae": 2 }, "minecraft:purpur_slab": { - "thavma:alienis": 1, - "thavma:herba": 1 + "thavma:herba": 1, + "thavma:tenebrae": 1 }, "minecraft:purpur_stairs": { - "thavma:alienis": 2, - "thavma:herba": 2 + "thavma:herba": 2, + "thavma:tenebrae": 2 }, "minecraft:quartz_block": { "thavma:ignis": 4, @@ -1432,55 +1405,60 @@ "thavma:vitreus": 16 }, "minecraft:red_nether_brick_slab": { - "thavma:herba": 1, - "thavma:ignis": 1, + "thavma:herba": 2, + "thavma:ignis": 3, "thavma:terra": 1 }, "minecraft:red_nether_brick_stairs": { - "thavma:herba": 2, - "thavma:ignis": 2, + "thavma:herba": 4, + "thavma:ignis": 6, "thavma:terra": 2 }, "minecraft:red_nether_brick_wall": { - "thavma:herba": 2, - "thavma:ignis": 2, + "thavma:herba": 4, + "thavma:ignis": 6, "thavma:terra": 2 }, "minecraft:red_nether_bricks": { - "thavma:herba": 2, - "thavma:ignis": 2, + "thavma:herba": 4, + "thavma:ignis": 6, "thavma:terra": 2 }, "minecraft:red_sandstone": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:red_sandstone_slab": { - "thavma:terra": 2 + "thavma:terra": 4 }, "minecraft:red_sandstone_stairs": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:red_sandstone_wall": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:rotten_flesh": { - "thavma:exanimis": 2, - "thavma:humanus": 2 + "thavma:corpus": 2, + "thavma:hostilis": 2 }, "minecraft:sandstone": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:sandstone_slab": { - "thavma:terra": 2 + "thavma:terra": 4 }, "minecraft:sandstone_stairs": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:sandstone_wall": { - "thavma:terra": 4 + "thavma:terra": 8 + }, + "minecraft:sea_lantern": { + "thavma:aqua": 41, + "thavma:lux": 5, + "thavma:terra": 36, + "thavma:vitreus": 10 }, "minecraft:short_grass": { - "thavma:aer": 1, "thavma:herba": 1 }, "minecraft:smooth_quartz": { @@ -1496,31 +1474,31 @@ "thavma:vitreus": 16 }, "minecraft:smooth_red_sandstone": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:smooth_red_sandstone_slab": { - "thavma:terra": 2 + "thavma:terra": 4 }, "minecraft:smooth_red_sandstone_stairs": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:smooth_sandstone": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:smooth_sandstone_slab": { - "thavma:terra": 2 + "thavma:terra": 4 }, "minecraft:smooth_sandstone_stairs": { - "thavma:terra": 4 + "thavma:terra": 8 }, "minecraft:snow": { - "thavma:gelum": 1 + "thavma:aqua": 1 }, "minecraft:snow_block": { - "thavma:gelum": 4 + "thavma:aqua": 4 }, "minecraft:snowball": { - "thavma:gelum": 1 + "thavma:aqua": 1 }, "minecraft:spruce_button": { "thavma:herba": 2 @@ -1556,8 +1534,9 @@ "thavma:terra": 2 }, "minecraft:stone_axe": { + "thavma:herba": 2, "thavma:instrumentum": 2, - "thavma:terra": 12 + "thavma:terra": 6 }, "minecraft:stone_brick_slab": { "thavma:terra": 1 @@ -1575,19 +1554,22 @@ "thavma:terra": 2 }, "minecraft:stone_hoe": { + "thavma:herba": 2, "thavma:instrumentum": 2, - "thavma:terra": 8 + "thavma:terra": 4 }, "minecraft:stone_pickaxe": { + "thavma:herba": 2, "thavma:instrumentum": 2, - "thavma:terra": 12 + "thavma:terra": 6 }, "minecraft:stone_pressure_plate": { "thavma:terra": 4 }, "minecraft:stone_shovel": { + "thavma:herba": 2, "thavma:instrumentum": 2, - "thavma:terra": 4 + "thavma:terra": 2 }, "minecraft:stone_slab": { "thavma:terra": 1 @@ -1596,42 +1578,41 @@ "thavma:terra": 2 }, "minecraft:stone_sword": { - "thavma:aversio": 2, - "thavma:terra": 8 + "thavma:herba": 1, + "thavma:instrumentum": 2, + "thavma:terra": 4 }, "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:potentia": 20, - "thavma:terra": 1 + "thavma:alkimia": 10, + "thavma:ignis": 20, + "thavma:terra": 13 }, "minecraft:torch": { "thavma:lux": 4 }, "minecraft:totem_of_undying": { - "thavma:desiderium": 8, - "thavma:praecantatio": 8, + "thavma:aether": 8, "thavma:victus": 16 }, "minecraft:trident": { "thavma:aqua": 8, - "thavma:metallum": 12, - "thavma:motus": 8 + "thavma:metallum": 12 }, "minecraft:tripwire_hook": { - "thavma:metallum": 2, - "thavma:vinculum": 2 + "thavma:herba": 2, + "thavma:machina": 2, + "thavma:metallum": 4 }, "minecraft:tuff": { "thavma:terra": 2 @@ -1659,12 +1640,12 @@ }, "minecraft:turtle_helmet": { "thavma:aqua": 5, - "thavma:bestia": 10, - "thavma:praemunio": 4 + "thavma:corpus": 10, + "thavma:praemunio": 5 }, "minecraft:turtle_scute": { "thavma:aqua": 1, - "thavma:bestia": 2, + "thavma:corpus": 2, "thavma:praemunio": 1 }, "minecraft:warped_button": { @@ -1708,123 +1689,99 @@ "thavma:ignis": 6 }, "minecraft:waxed_chiseled_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_copper_block": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_cut_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_cut_copper_slab": { - "thavma:metallum": 18, - "thavma:permutatio": 18 + "thavma:metallum": 18 }, "minecraft:waxed_cut_copper_stairs": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_exposed_chiseled_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_exposed_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_exposed_cut_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_exposed_cut_copper_slab": { - "thavma:metallum": 18, - "thavma:permutatio": 18 + "thavma:metallum": 18 }, "minecraft:waxed_exposed_cut_copper_stairs": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_oxidized_chiseled_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_oxidized_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_oxidized_cut_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_oxidized_cut_copper_slab": { - "thavma:metallum": 18, - "thavma:permutatio": 18 + "thavma:metallum": 18 }, "minecraft:waxed_oxidized_cut_copper_stairs": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_weathered_chiseled_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_weathered_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_weathered_cut_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:waxed_weathered_cut_copper_slab": { - "thavma:metallum": 18, - "thavma:permutatio": 18 + "thavma:metallum": 18 }, "minecraft:waxed_weathered_cut_copper_stairs": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:weathered_chiseled_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:weathered_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:weathered_cut_copper": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:weathered_cut_copper_slab": { - "thavma:metallum": 18, - "thavma:permutatio": 18 + "thavma:metallum": 18 }, "minecraft:weathered_cut_copper_stairs": { - "thavma:metallum": 36, - "thavma:permutatio": 36 + "thavma:metallum": 36 }, "minecraft:wind_charge": { - "thavma:aer": 2, - "thavma:motus": 1 + "thavma:aether": 4, + "thavma:alkimia": 4, + "thavma:instrumentum": 2 }, "minecraft:wolf_armor": { - "thavma:bestia": 8, + "thavma:corpus": 12, "thavma:praemunio": 6 }, "minecraft:wooden_axe": { - "thavma:herba": 12, + "thavma:herba": 8, "thavma:instrumentum": 1 }, "minecraft:wooden_hoe": { - "thavma:herba": 8, + "thavma:herba": 6, "thavma:instrumentum": 1 }, "minecraft:wooden_pickaxe": { - "thavma:herba": 12, + "thavma:herba": 8, "thavma:instrumentum": 1 }, "minecraft:wooden_shovel": { @@ -1832,17 +1789,8 @@ "thavma:instrumentum": 1 }, "minecraft:wooden_sword": { - "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:herba": 5, + "thavma:instrumentum": 1 }, "thavma:aether_infused_deepslate": { "thavma:aether": 4 @@ -1854,18 +1802,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": { @@ -1878,55 +1826,52 @@ "thavma:aqua": 4 }, "thavma:arcane_lens": { - "thavma:desiderium": 32, + "thavma:aether": 4, "thavma:metallum": 16, - "thavma:praecantatio": 2, - "thavma:vitreus": 2 + "thavma:vitreus": 1 }, "thavma:arcane_workbench": { - "thavma:fabrico": 12, - "thavma:herba": 4, - "thavma:praecantatio": 2 + "thavma:aether": 2, + "thavma:fabrico": 8, + "thavma:herba": 8 }, "thavma:cracked_elemental_stone": { - "thavma:praecantatio": 1, + "thavma:aether": 1, "thavma:terra": 4 }, "thavma:crucible": { + "thavma:aether": 2, "thavma:alkimia": 8, - "thavma:metallum": 56, - "thavma:praecantatio": 2 + "thavma:metallum": 56 }, "thavma:elemental_core": { - "thavma:praecantatio": 2, + "thavma:aether": 2, "thavma:terra": 6 }, "thavma:elemental_stone": { - "thavma:praecantatio": 1, + "thavma:aether": 1, "thavma:terra": 4 }, "thavma:elemental_stone_bricks": { - "thavma:praecantatio": 1, + "thavma:aether": 1, "thavma:terra": 4 }, "thavma:elemental_stone_slab": { "thavma:terra": 2 }, "thavma:elemental_stone_stairs": { - "thavma:praecantatio": 1, + "thavma:aether": 1, "thavma:terra": 4 }, "thavma:eternal_flame": { "thavma:ignis": 8, - "thavma:lux": 12, - "thavma:potentia": 8 + "thavma:lux": 12 }, "thavma:fabric": { - "thavma:fabrico": 4, - "thavma:praecantatio": 1 + "thavma:aether": 1, + "thavma:fabrico": 4 }, "thavma:gold_plating": { - "thavma:desiderium": 16, "thavma:metallum": 8 }, "thavma:greatwood_planks": { @@ -1951,35 +1896,34 @@ "thavma:metallum": 16 }, "thavma:orichalcum_block": { - "thavma:metallum": 36, - "thavma:permutatio": 36, - "thavma:praecantatio": 36 + "thavma:instrumentum": 36, + "thavma:metallum": 36 }, "thavma:orichalcum_ingot": { "thavma:instrumentum": 4, - "thavma:metallum": 4, - "thavma:permutatio": 4 + "thavma:metallum": 4 }, "thavma:orichalcum_plating": { "thavma:instrumentum": 8, - "thavma:metallum": 8, - "thavma:permutatio": 8 + "thavma:metallum": 8 }, "thavma:research_table": { - "thavma:herba": 12, - "thavma:praecantatio": 2 + "thavma:aether": 2, + "thavma:herba": 12 }, "thavma:rotten_brain": { - "thavma:cognitio": 16, - "thavma:exanimis": 8 + "thavma:cognitio": 12, + "thavma:corpus": 2, + "thavma:hostilis": 2 }, "thavma:sealing_jar": { - "thavma:praecantatio": 2, - "thavma:vacuos": 2, + "thavma:aether": 2, + "thavma:alkimia": 2, "thavma:vitreus": 4 }, "thavma:table": { - "thavma:herba": 12 + "thavma:fabrico": 2, + "thavma:herba": 11 }, "thavma:terra_infused_deepslate": { "thavma:terra": 4 @@ -1991,66 +1935,72 @@ "thavma:terra": 4 }, "thavma:thavmite_axe": { + "thavma:aether": 12, + "thavma:herba": 2, "thavma:instrumentum": 4, - "thavma:metallum": 24, - "thavma:praecantatio": 12 + "thavma:metallum": 24 }, "thavma:thavmite_block": { - "thavma:metallum": 72, - "thavma:praecantatio": 36 + "thavma:aether": 36, + "thavma:metallum": 72 }, "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:praecantatio": 24 + "thavma:metallum": 48 }, "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:praecantatio": 8 + "thavma:metallum": 16 }, "thavma:thavmite_ingot": { - "thavma:metallum": 8, - "thavma:praecantatio": 4 + "thavma:aether": 4, + "thavma:metallum": 8 }, "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:praecantatio": 12 + "thavma:metallum": 24 }, "thavma:thavmite_plating": { - "thavma:metallum": 16, - "thavma:praecantatio": 8 + "thavma:aether": 8, + "thavma:metallum": 16 }, "thavma:thavmite_shovel": { + "thavma:aether": 4, + "thavma:herba": 2, "thavma:instrumentum": 4, - "thavma:metallum": 8, - "thavma:praecantatio": 4 + "thavma:metallum": 8 }, "thavma:thavmite_sword": { - "thavma:aversio": 4, - "thavma:metallum": 16, - "thavma:praecantatio": 8 + "thavma:aether": 8, + "thavma:herba": 1, + "thavma:instrumentum": 4, + "thavma:metallum": 16 } } } \ 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 new file mode 100644 index 00000000..e28c797b --- /dev/null +++ b/src/generated/resources/data/thavma/data_maps/thavma/aspect/aspect_relations.json @@ -0,0 +1,67 @@ +{ + "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 deleted file mode 100644 index 62095c94..00000000 --- a/src/generated/resources/data/thavma/loot_table/blocks/aer_infused_deepslate.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "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 deleted file mode 100644 index b8955056..00000000 --- a/src/generated/resources/data/thavma/loot_table/blocks/aer_infused_stone.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "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 deleted file mode 100644 index 46775f8f..00000000 --- a/src/generated/resources/data/thavma/recipe/aer_shard_blasting.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "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 deleted file mode 100644 index 8a19b547..00000000 --- a/src/generated/resources/data/thavma/recipe/aer_shard_smelting.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "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 3c0352a1..ed44aa41 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,13 +1,12 @@ { "type": "thavma:arcane_workbench", "aspects": { - "thavma:aer": 12, - "thavma:aether": 4, - "thavma:terra": 4 + "thavma:aether": 8, + "thavma:terra": 8 }, "key": { "a": { - "item": "thavma:aer_shard" + "item": "thavma:terra_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 fddd71c9..4ca6a4a1 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,7 +1,6 @@ { "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 8488a20b..40fe2e16 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,7 +1,6 @@ { "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 3a40ccc9..95ca4a4d 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": 1, + "count": 4, "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 5e665160..abb1fed5 100644 --- a/src/generated/resources/data/thavma/recipe/eternal_flame_crucible.json +++ b/src/generated/resources/data/thavma/recipe/eternal_flame_crucible.json @@ -2,8 +2,7 @@ "type": "thavma:crucible", "aspects": { "thavma:ignis": 8, - "thavma:lux": 8, - "thavma:potentia": 8 + "thavma:lux": 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 11b4bbe0..08bb880d 100644 --- a/src/generated/resources/data/thavma/recipe/fabric_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/fabric_arcane_workbench.json @@ -1,7 +1,6 @@ { "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 e9ef6a10..b6dc91d7 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:aer": 12, + "thavma:aether": 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 01137e24..dc8d0710 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:alienis": 16, + "thavma:aether": 20, "thavma:instrumentum": 16, - "thavma:motus": 32 + "thavma:tenebrae": 16 }, "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 873ac866..a683c8d8 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:permutatio": 40 + "thavma:ornatus": 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 85638baf..fd349aa0 100644 --- a/src/generated/resources/data/thavma/recipe/goggles_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/goggles_arcane_workbench.json @@ -1,7 +1,6 @@ { "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 6517a812..e9ba8ef6 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,7 +1,6 @@ { "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 f6c84741..003ee5b6 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,7 +1,6 @@ { "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 cce3b2cf..fa2c1e67 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:aer": 8, - "thavma:aether": 4 + "thavma:aether": 4, + "thavma:terra": 8 }, "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 be5ec803..fb6f5faf 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,7 +1,6 @@ { "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 3d00df91..1074812d 100644 --- a/src/generated/resources/data/thavma/recipe/rune_arcane_workbench.json +++ b/src/generated/resources/data/thavma/recipe/rune_arcane_workbench.json @@ -1,7 +1,6 @@ { "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 edda876e..b8166fb0 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:praecantatio": 16 + "thavma:aether": 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 d34116d0..dcfc3d9a 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:praecantatio": 4 + "thavma:aether": 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 54831af4..fdd64853 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:aversio": 16, - "thavma:praecantatio": 16 + "thavma:aether": 16, + "thavma:instrumentum": 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 212d70a6..954d0951 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:praecantatio": 16 + "thavma:aether": 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 ec837704..970a56cc 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:praecantatio": 16, + "thavma:aether": 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 884c7e7e..65c91e12 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:praecantatio": 16, + "thavma:aether": 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 8b0792c5..6b2d4fff 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:praecantatio": 16, + "thavma:aether": 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 c95d7690..394d87d9 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:praecantatio": 16, + "thavma:aether": 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 cb5100c7..86267856 100644 --- a/src/generated/resources/data/thavma/tags/block/infused_stones.json +++ b/src/generated/resources/data/thavma/tags/block/infused_stones.json @@ -1,12 +1,10 @@ { "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 cb5100c7..86267856 100644 --- a/src/generated/resources/data/thavma/tags/item/infused_stones.json +++ b/src/generated/resources/data/thavma/tags/item/infused_stones.json @@ -1,12 +1,10 @@ { "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 1b8a2205..9b3046d5 100644 --- a/src/generated/resources/data/thavma/tags/item/shards.json +++ b/src/generated/resources/data/thavma/tags/item/shards.json @@ -1,7 +1,6 @@ { "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 95883011..b1cf4745 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:praecantatio", + "aspect": "thavma:aether", "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 a1fa98fe..ca774a8a 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:praecantatio", + "aspect": "thavma:aether", "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 8baf795f..382dde7e 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:praecantatio", + "aspect": "thavma:aether", "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 b05d2012..1edfaf76 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:praecantatio", + "aspect": "thavma:aether", "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 448ccb96..03f96e16 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:humanus", + "aspect": "thavma:civilis", "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 6f2e27ff..8c91c2af 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:praecantatio", + "aspect": "thavma:aether", "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 dbb56255..77ccd882 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:praecantatio", + "aspect": "thavma:aether", "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 deleted file mode 100644 index 1c89d540..00000000 --- a/src/generated/resources/data/thavma/worldgen/configured_feature/ore_aer.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "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 45718fd2..5553d841 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,7 +3,6 @@ "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 deleted file mode 100644 index 5b9856be..00000000 --- a/src/generated/resources/data/thavma/worldgen/placed_feature/ore_aer.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "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 6266a558..37aac7af 100644 --- a/src/main/java/me/alegian/thavma/impl/client/ClientHelper.kt +++ b/src/main/java/me/alegian/thavma/impl/client/ClientHelper.kt @@ -39,4 +39,8 @@ 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 fa2875af..984e7bba 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,9 +7,10 @@ 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.containedPrimalsComponent import me.alegian.thavma.impl.client.gui.tooltip.containedAspectsComponents +import me.alegian.thavma.impl.client.gui.tooltip.containedPrimalsComponent 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 @@ -159,5 +160,6 @@ 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 0f179c4b..b634b82b 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.PRIMAL_ASPECTS) { + for (aspect in Aspects.DATAGEN_PRIMALS) { 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.PRIMAL_ASPECTS) { + for (aspect in Aspects.DATAGEN_PRIMALS) { 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 24a353ff..df35c4e1 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.PRIMAL_ASPECTS.size + val ANGLE = 360f / Aspects.DATAGEN_PRIMALS.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.PRIMAL_ASPECTS.withIndex()) { + for ((i, a) in Aspects.DATAGEN_PRIMALS.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 ebb155f4..ed95abec 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.PRIMAL_ASPECTS) { + for (deferredAspect in Aspects.DATAGEN_PRIMALS) { 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 d1b17484..46efa581 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(" ${aspect.rank}").withStyle(ChatFormatting.GRAY) + Component.translatable(costTranslationId).append(" 1").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 9d395a02..1f2846f4 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,6 +6,7 @@ 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 @@ -78,9 +79,8 @@ 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] - if (neighbor == null) continue - if (neighbor.state.aspect?.components?.map { it.get() }?.contains(aspect) != true) continue + val neighbor = screen.socketWidgets[neighborIdx] ?: continue + if (neighbor.state.aspect?.wrapAsHolder()?.relatedTo(aspect.wrapAsHolder()) != 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 8739451b..8688959e 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.PRIMAL_ASPECTS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.DATAGEN_PRIMALS import net.minecraft.network.chat.Component import net.minecraft.network.chat.MutableComponent fun containedPrimalsComponent(contents: AspectMap): MutableComponent { return Component.empty().also { - for (i in PRIMAL_ASPECTS.indices) { - val a = PRIMAL_ASPECTS[i].get() + for (i in DATAGEN_PRIMALS.indices) { + val a = DATAGEN_PRIMALS[i].get() val newPart = Component.literal(contents[a].toString()).withColor(a.color) it.append(newPart) - if (i != PRIMAL_ASPECTS.size - 1) it.append(Component.literal(" | ")) + if (i != DATAGEN_PRIMALS.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 new file mode 100644 index 00000000..2d239124 --- /dev/null +++ b/src/main/java/me/alegian/thavma/impl/client/renderer/ExcavationRenderer.kt @@ -0,0 +1,103 @@ +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 d2bbe934..af66f5bd 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,6 +1,7 @@ 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 @@ -55,7 +56,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 === Minecraft.getInstance().player && Minecraft.getInstance().options.cameraType.isFirstPerson) { + if (player === ClientHelper.player() && ClientHelper.firstPerson()) { 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 6c659429..02364379 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,31 +1,36 @@ package me.alegian.thavma.impl.common.aspect -import me.alegian.thavma.impl.init.registries.T7Registries.ASPECT +import me.alegian.thavma.impl.init.registries.T7DataMaps +import me.alegian.thavma.impl.init.registries.T7Registries 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, var components: List>) { - val isPrimal: Boolean - get() = components.isEmpty() +class Aspect(var id: String, var color: Int, val isPrimal: Boolean) { val translationId by lazy { - 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 + Util.makeDescriptionId(T7Registries.ASPECT.key().location().path, T7Registries.ASPECT.getKey(this)) } val resourceKey - get() = ASPECT.getResourceKey(this).get() + get() = T7Registries.ASPECT.getResourceKey(this).get() companion object { val STREAM_CODEC = ByteBufCodecs.STRING_UTF8.map( - { s -> ASPECT[ResourceLocation.parse(s)]!! }, - { a -> ASPECT.getKey(a).toString() } + { s -> T7Registries.ASPECT[ResourceLocation.parse(s)]!! }, + { a -> T7Registries.ASPECT.getKey(a).toString() } ) - val CODEC = ASPECT.byNameCodec() + val CODEC = T7Registries.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 67e619f0..caa6bf96 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,12 +1,15 @@ package me.alegian.thavma.impl.common.aspect import com.mojang.serialization.Codec -import me.alegian.thavma.impl.init.registries.deferred.Aspects.PRIMAL_ASPECTS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.DATAGEN_PRIMALS +import net.minecraft.core.Holder 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. @@ -33,6 +36,8 @@ 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) }) @@ -43,12 +48,20 @@ 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() } @@ -138,8 +151,13 @@ 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] = (v * multiplier.toDouble()).toInt() } + map.forEach { (k: Aspect, v: Int) -> map[k] = round(v * multiplier.toDouble()).toInt() } map = LinkedHashMap(map.filterValues { it > 0 }) return this } @@ -168,7 +186,7 @@ class AspectMap(map: Map = LinkedHashMap()) : Iterable fun randomPrimals(scale: Int): AspectMap { val random = Random() val map = LinkedHashMap() - val primals = ArrayList(PRIMAL_ASPECTS) + val primals = ArrayList(DATAGEN_PRIMALS) primals.shuffle() val randomPrimals = primals.subList(0, random.nextInt(primals.size) + 1) for (a in randomPrimals) map[a.get()] = random.nextInt(scale) + 1 @@ -181,7 +199,7 @@ class AspectMap(map: Map = LinkedHashMap()) : Iterable fun ofPrimals(amount: Int): AspectMap { val builder = Builder() - for (a in PRIMAL_ASPECTS) { + for (a in DATAGEN_PRIMALS) { 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 a3b28023..ca6e47ce 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.PRIMAL_ASPECTS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.DATAGEN_PRIMALS 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 PRIMAL_ASPECTS.stream() + return DATAGEN_PRIMALS.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 = PRIMAL_ASPECTS.size + val primals = DATAGEN_PRIMALS.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 e5f4ca1a..a9c60081 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,6 +3,8 @@ 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 @@ -18,9 +20,11 @@ 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 @@ -94,12 +98,23 @@ 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 11eb77d8..242961e3 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,6 +74,7 @@ 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 new file mode 100644 index 00000000..c094d23c --- /dev/null +++ b/src/main/java/me/alegian/thavma/impl/common/item/ExcavationFocus.kt @@ -0,0 +1,61 @@ +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 new file mode 100644 index 00000000..9d2eb38f --- /dev/null +++ b/src/main/java/me/alegian/thavma/impl/common/item/ItemExtensions.kt @@ -0,0 +1,8 @@ +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 77d69d18..adc8b4f7 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,7 +12,6 @@ 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 @@ -21,7 +20,6 @@ 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 @@ -32,15 +30,9 @@ 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 @@ -58,8 +50,8 @@ open class WandItem(props: Properties, val platingMaterial: WandPlatingMaterial, * 4. Creating "Elements of Thavma" books from Bookcases */ override fun useOn(context: UseOnContext): InteractionResult { - val focusResult = context.itemInHand.equippedFocus?.item?.useOn(context) ?: InteractionResult.PASS - if (focusResult != InteractionResult.PASS) return focusResult + val focus = context.itemInHand.equippedFocus + if (focus != null) return focus.item.useOn(context) val level = context.level val blockPos = context.clickedPos @@ -117,17 +109,28 @@ open class WandItem(props: Properties, val platingMaterial: WandPlatingMaterial, return InteractionResult.PASS } - 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 + 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) 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 focusResult = stack.equippedFocus?.item?.interactLivingEntity(stack, player, interactionTarget, usedHand) ?: InteractionResult.PASS - if (focusResult != InteractionResult.PASS) return focusResult + val focus = stack.equippedFocus + if (focus != null) return focus.item.interactLivingEntity(stack, player, interactionTarget, usedHand) return super.interactLivingEntity(stack, player, interactionTarget, usedHand) } @@ -136,8 +139,9 @@ open class WandItem(props: Properties, val platingMaterial: WandPlatingMaterial, return UseAnim.CUSTOM } - override fun getUseDuration(pStack: ItemStack, pEntity: LivingEntity): Int { - return 72000 + override fun getUseDuration(stack: ItemStack, entity: LivingEntity): Int { + val focusDuration = stack.equippedFocus?.item?.getUseDuration(stack, entity) + return focusDuration ?: 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 new file mode 100644 index 00000000..b93e7932 --- /dev/null +++ b/src/main/java/me/alegian/thavma/impl/common/level/Excavation.kt @@ -0,0 +1,50 @@ +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 0535b276..eab344fd 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,6 +2,7 @@ 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 @@ -74,9 +75,7 @@ private fun calculateCompleted(defaultStates: List, socketStates: M if (explored.contains(neighborIdx)) continue val neighbor = graph[neighborIdx] ?: continue val neighborAspect = neighbor.aspect ?: continue - val connected = currAspect.components.map { it.get() }.contains(neighborAspect) - || neighborAspect.components.map { it.get() }.contains(currAspect) - if (!connected) continue + if (!currAspect.wrapAsHolder().relatedTo(neighborAspect.wrapAsHolder())) 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 39f292fa..d63789c5 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,8 +3,10 @@ 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 @@ -34,11 +36,11 @@ fun Player.hasScanned(entity: Entity): Boolean { // blocks fall back to items fun Player.hasScanned(blockState: BlockState): Boolean { - return hasScanned(itemKey(blockState.block.asItem())) + return hasScanned(blockState.block.itemResourceKey) } fun Player.hasScanned(itemStack: ItemStack): Boolean { - return hasScanned(itemKey(itemStack.item)) + return hasScanned(itemStack.item.itemResourceKey) } private fun ServerPlayer.tryScan(key: ResourceKey<*>, aspectMap: AspectMap?) { @@ -47,7 +49,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.flatMap { it.components }.any { !knowsAspect(it.get()) }) scanResult = ScanResult.LOCKED + if (aspects.any { it.wrapAsHolder().relatedAspects().none { !knowsAspect(it) } }) scanResult = ScanResult.LOCKED else addKnowledge( aspects @@ -65,21 +67,18 @@ private fun ServerPlayer.tryScan(key: ResourceKey<*>, aspectMap: AspectMap?) { // itemEntities fall back to items fun ServerPlayer.tryScan(entity: Entity) { - if (entity is ItemEntity) return tryScan(itemKey(entity.item.item), AspectHelper.getAspects(entity.item)) + if (entity is ItemEntity) return tryScan(entity.item.item.itemResourceKey, AspectHelper.getAspects(entity.item)) tryScan(entityKey(entity.type), AspectHelper.getAspects(entity)) } fun ServerPlayer.tryScan(blockState: BlockState) { - tryScan(itemKey(blockState.block.asItem()), AspectHelper.getAspects(blockState.block)) + tryScan(blockState.block.itemResourceKey, 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 new file mode 100644 index 00000000..5b03e55c --- /dev/null +++ b/src/main/java/me/alegian/thavma/impl/common/util/T7StreamCodecs.kt @@ -0,0 +1,17 @@ +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 2a253f16..70e29bab 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) = Vector2i(x - other.x, y - other.y) \ No newline at end of file +operator fun Vector2i.minus(other: Vector2i) = this.sub(other) \ 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 new file mode 100644 index 00000000..1d90ec44 --- /dev/null +++ b/src/main/java/me/alegian/thavma/impl/common/util/Vector3fExtensions.kt @@ -0,0 +1,6 @@ +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 b01e39fe..3c5bb204 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.PRIMAL_ASPECTS +import me.alegian.thavma.impl.init.registries.deferred.Aspects.DATAGEN_PRIMALS 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 PRIMAL_ASPECTS) { + for (aspect in DATAGEN_PRIMALS) { 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 153bb450..a932e891 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,53 +2,12 @@ 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 @@ -58,315 +17,17 @@ 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) @@ -385,7 +46,3 @@ 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 f219bfa1..14da7e58 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.PRAECANTATIO)) + .research(lockedAspect(2, 0, Aspects.AETHER), lockedAspect(2, 4, Aspects.AETHER)) .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.PRAECANTATIO), broken(2, 2)) + .research(lockedAspect(2, 0, Aspects.LUX), lockedAspect(2, 4, Aspects.AETHER), 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.PRAECANTATIO), lockedAspect(2, 4, Aspects.HERBA)) + .research(lockedAspect(2, 0, Aspects.AETHER), 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.PRAECANTATIO), lockedAspect(2, 4, Aspects.HERBA)) + .research(lockedAspect(2, 0, Aspects.AETHER), 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.PRAECANTATIO), lockedAspect(2, 4, Aspects.INSTRUMENTUM)) + .research(lockedAspect(2, 0, Aspects.AETHER), 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.PRAECANTATIO)) + .research(lockedAspect(2, 0, Aspects.TERRA), lockedAspect(2, 4, Aspects.AETHER)) .build(ctx) ResearchEntryBuilder(ResearchEntries.Thavma.TECHNOLOGY, Vector2i(2, 4), true, T7Items.GOGGLES.get().defaultInstance) - .research(lockedAspect(2, 0, Aspects.INSTRUMENTUM), lockedAspect(2, 4, Aspects.HUMANUS)) + .research(lockedAspect(2, 0, Aspects.INSTRUMENTUM), lockedAspect(2, 4, Aspects.CIVILIS)) .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 1ee0ad9a..07da7e96 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,8 +11,6 @@ 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 @@ -48,7 +46,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.PRAECANTATIO, 16).build()) + wandPlatingInfusion(pRecipeOutput, T7Items.THAVMITE_PLATING.get(), T7Items.THAVMITE_INGOT, T7Items.THAVMITE_NUGGET, AspectMap.builder().add(Aspects.AETHER, 16).build()) ShapedRecipeBuilder.shaped(RecipeCategory.COMBAT, T7Items.THAVMITE_SWORD.get()) .define('a', T7Items.THAVMITE_INGOT.get()) @@ -120,7 +118,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< T7Items.APPRENTICE_BOOTS, ) - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, T7Blocks.ELEMENTAL_STONE_BRICKS) + ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, T7Blocks.ELEMENTAL_STONE_BRICKS, 4) .define('s', T7Blocks.ELEMENTAL_STONE) .pattern("ss") .pattern("ss") @@ -225,7 +223,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.PRAECANTATIO, 16) + .add(Aspects.AETHER, 16) .build(), ).save(pRecipeOutput) @@ -233,7 +231,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< .unlockedBy(T7Blocks.ELEMENTAL_STONE) .save(pRecipeOutput) - for (a in Aspects.PRIMAL_ASPECTS) { + for (a in Aspects.DATAGEN_PRIMALS) { 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")) @@ -245,7 +243,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< CrucibleRecipeBuilder( T7Items.THAVMITE_INGOT.get().defaultInstance, AspectMap.builder() - .add(Aspects.PRAECANTATIO.get(), 4) + .add(Aspects.AETHER.get(), 4) .build(), Ingredient.of(Items.IRON_INGOT) ).save(pRecipeOutput) @@ -263,7 +261,6 @@ 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) @@ -273,7 +270,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.PRAECANTATIO, 16) + .add(Aspects.AETHER, 16) .add(Aspects.PRAEMUNIO, 32) .build(), ).save(pRecipeOutput) @@ -282,7 +279,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.PRAECANTATIO, 16) + .add(Aspects.AETHER, 16) .add(Aspects.PRAEMUNIO, 32) .build(), ).save(pRecipeOutput) @@ -291,7 +288,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.PRAECANTATIO, 16) + .add(Aspects.AETHER, 16) .add(Aspects.PRAEMUNIO, 32) .build(), ).save(pRecipeOutput) @@ -300,7 +297,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.PRAECANTATIO, 16) + .add(Aspects.AETHER, 16) .add(Aspects.PRAEMUNIO, 32) .build(), ).save(pRecipeOutput) @@ -328,8 +325,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.PRAECANTATIO, 16) - .add(Aspects.AVERSIO, 16) + .add(Aspects.AETHER, 16) + .add(Aspects.INSTRUMENTUM, 16) .build(), ).save(pRecipeOutput) @@ -338,8 +335,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.MOTUS, 32) - .add(Aspects.ALIENIS, 16) + .add(Aspects.AETHER, 20) + .add(Aspects.TENEBRAE, 16) .add(Aspects.INSTRUMENTUM, 16) .build(), ).save(pRecipeOutput) @@ -348,7 +345,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.PERMUTATIO, 40) + .add(Aspects.ORNATUS, 40) .add(Aspects.INSTRUMENTUM, 16) .build(), ).save(pRecipeOutput) @@ -365,7 +362,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.AER, 12).build()) + .requireAspects(AspectMap.builder().add(Aspects.TERRA, 12).add(Aspects.AETHER, 12).build()) .define('e', Blocks.ENDER_CHEST) .define('o', Tags.Items.OBSIDIANS) .define('b', Items.BUNDLE) @@ -378,7 +375,7 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< .save(pRecipeOutput) WorkbenchRecipeBuilder.shaped(T7Blocks.HUNGRY_CHEST, 1) - .requireAspects(AspectMap.builder().add(Aspects.AER, 8).add(Aspects.AETHER, 4).build()) + .requireAspects(AspectMap.builder().add(Aspects.TERRA, 8).add(Aspects.AETHER, 4).build()) .define('t', ItemTags.TRAPDOORS) .define('w', T7Blocks.GREATWOOD_PLANKS) .pattern("wtw") @@ -446,14 +443,13 @@ open class T7RecipeProvider(pOutput: PackOutput, pRegistries: CompletableFuture< WorkbenchRecipeBuilder.shaped(T7Blocks.ARCANE_LEVITATOR, 1) .requireAspects( AspectMap.builder() - .add(Aspects.AER, 12) - .add(Aspects.TERRA, 4) - .add(Aspects.AETHER, 4) + .add(Aspects.TERRA, 8) + .add(Aspects.AETHER, 8) .build() ) .define('s', T7Blocks.ELEMENTAL_STONE) .define('c', T7Blocks.ELEMENTAL_CORE) - .define('a', T7Items.SHARDS[Aspects.AER]!!) + .define('a', T7Items.SHARDS[Aspects.TERRA]!!) .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 c91ed1db..386763b2 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,217 +1,111 @@ 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.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.Aspects 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 { - 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) - } + 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) } } } \ 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 new file mode 100644 index 00000000..05c20dc5 --- /dev/null +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/AspectDatagenHelper.kt @@ -0,0 +1,116 @@ +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 new file mode 100644 index 00000000..ed56255e --- /dev/null +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/AspectRelations.kt @@ -0,0 +1,40 @@ +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 new file mode 100644 index 00000000..43d6afaa --- /dev/null +++ b/src/main/java/me/alegian/thavma/impl/init/data/providers/aspects/BlockAndItemAspects.kt @@ -0,0 +1,231 @@ +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 3380db36..125b1fb6 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,249 +1,115 @@ 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) { - 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) - } + 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) } -} \ No newline at end of file +} + +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) +} 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 0f2060ed..54bc105b 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,19 +3,7 @@ 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.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.Aspects import me.alegian.thavma.impl.init.registries.deferred.T7EntityTypes import net.minecraft.core.HolderLookup import net.minecraft.world.entity.EntityType @@ -38,30 +26,29 @@ object EntityAspects { entity(EntityType.CHICKEN) {} entity(EntityType.COD) {} entity(EntityType.COW) { - it.add(TERRA, 15) - .add(BESTIA, 15) + it.add(Aspects.TERRA, 8) + .add(Aspects.VICTUS, 8) } entity(EntityType.CREEPER) { - it.add(IGNIS, 15) - .add(HERBA, 15) + it.add(Aspects.IGNIS, 15) + .add(Aspects.HERBA, 15) } entity(EntityType.DOLPHIN) {} entity(EntityType.DONKEY) {} entity(EntityType.DROWNED) {} entity(EntityType.ELDER_GUARDIAN) {} entity(EntityType.ENDERMAN) { - it.add(MOTUS, 12) - .add(ALIENIS, 8) - .add(HUMANUS, 4) - .add(DESIDERIUM, 4) + it.add(Aspects.TENEBRAE, 8) + .add(Aspects.HOSTILIS, 4) + .add(Aspects.CIVILIS, 4) } entity(EntityType.ENDERMITE) {} entity(EntityType.EVOKER) {} entity(EntityType.FOX) {} entity(EntityType.FROG) {} entity(EntityType.GHAST) { - it.add(EXANIMIS, 12) - .add(IGNIS, 8) + it.add(Aspects.HOSTILIS, 12) + .add(Aspects.IGNIS, 8) } entity(EntityType.GLOW_SQUID) {} entity(EntityType.GOAT) {} @@ -79,9 +66,8 @@ object EntityAspects { entity(EntityType.PARROT) {} entity(EntityType.PHANTOM) {} entity(EntityType.PIG) { - it.add(DESIDERIUM, 5) - .add(TERRA, 10) - .add(BESTIA, 10) + it.add(Aspects.TERRA, 8) + .add(Aspects.VICTUS, 8) } entity(EntityType.PIGLIN) {} entity(EntityType.PIGLIN_BRUTE) {} @@ -92,27 +78,26 @@ object EntityAspects { entity(EntityType.RAVAGER) {} entity(EntityType.SALMON) {} entity(EntityType.SHEEP) { - it.add(TERRA, 10) - .add(BESTIA, 10) + it.add(Aspects.TERRA, 8) + .add(Aspects.VICTUS, 8) } entity(EntityType.SHULKER) {} entity(EntityType.SILVERFISH) {} entity(EntityType.SKELETON) { - it.add(TERRA, 5) - .add(HUMANUS, 5) - .add(EXANIMIS, 20) + it.add(Aspects.TERRA, 8) + .add(Aspects.HOSTILIS, 8) } entity(EntityType.SKELETON_HORSE) {} entity(EntityType.SLIME) { - it.add(ALKIMIA, 5) - .add(AQUA, 10) - .add(VICTUS, 10) + it.add(Aspects.ALKIMIA, 5) + .add(Aspects.AQUA, 10) + .add(Aspects.VICTUS, 10) } entity(EntityType.SNIFFER) {} entity(EntityType.SNOW_GOLEM) {} entity(EntityType.SPIDER) { - it.add(VINCULUM, 10) - .add(BESTIA, 10) + it.add(Aspects.TERRA, 8) + .add(Aspects.HOSTILIS, 8) } entity(EntityType.SQUID) {} entity(EntityType.STRAY) {} @@ -123,7 +108,7 @@ object EntityAspects { entity(EntityType.TURTLE) {} entity(EntityType.VEX) {} entity(EntityType.VILLAGER) { - it.add(HUMANUS, 15) + it.add(Aspects.CIVILIS, 12) } entity(EntityType.VINDICATOR) {} entity(EntityType.WANDERING_TRADER) {} @@ -133,9 +118,8 @@ object EntityAspects { entity(EntityType.WOLF) {} entity(EntityType.ZOGLIN) {} entity(EntityType.ZOMBIE) { - it.add(TERRA, 5) - .add(HUMANUS, 10) - .add(EXANIMIS, 20) + it.add(Aspects.TERRA, 8) + .add(Aspects.HOSTILIS, 8) } 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 eb4831dd..10215708 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,20 +1,10 @@ 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.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.Aspects 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 @@ -27,221 +17,171 @@ 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 { - 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) - } + coal.save(this, ItemTags.COALS) + coalOre.save(this, Tags.Items.ORES_COAL) + coalBlock.save(this, Tags.Items.STORAGE_BLOCKS_COAL) - for (infusedBlock in (INFUSED_STONES.values + INFUSED_DEEPSLATES.values)) { - item(infusedBlock) { - it.add(infusedBlock.get().getAspect(), 4) - } - } - } + 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) - 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) - } + 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) - for (shard in SHARDS.values) { - item(shard) { - it.add(shard.get().aspect, 4) - } - } + 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)) + + redstone.save(this, Tags.Items.DUSTS_REDSTONE) + redstoneOre.save(this, Tags.Items.ORES_REDSTONE) + redstoneBlock.save(this, Tags.Items.STORAGE_BLOCKS_REDSTONE) + + nugget.save(this, Tags.Items.NUGGETS) + + 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) - item(Tags.Items.NUGGETS) { - it.add(TERRA, 1) + 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) } } } } 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 47c88b90..66f93a8b 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,23 +1,8 @@ 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.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.Aspects import me.alegian.thavma.impl.init.registries.deferred.T7Items import net.minecraft.core.HolderLookup import net.minecraft.tags.ItemTags @@ -25,231 +10,117 @@ 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 { - 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) - } + 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) } } -} \ 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 e276fec5..16fc9245 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.PRIMAL_ASPECTS.forEach { + Aspects.DATAGEN_PRIMALS.forEach { registerConfiguredInfusedStone(context, CONFIGURED_FEATURES[it], T7Blocks.INFUSED_STONES[it]!!.get().defaultBlockState(), T7Blocks.INFUSED_DEEPSLATES[it]!!.get().defaultBlockState()) } } fun registerPlaced(context: BootstrapContext) { - Aspects.PRIMAL_ASPECTS.forEach { + Aspects.DATAGEN_PRIMALS.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 1d1957f9..0f824198 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,19 +1,23 @@ 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 = DataMapType + val ITEM = AdvancedDataMapType .builder( rl("aspect_content"), Registries.ITEM, AspectMap.CODEC ) .synced(AspectMap.CODEC, true) + .merger(hierarchicalMerger()) .build() val ENTITY = DataMapType @@ -25,4 +29,23 @@ 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 c5aa3556..74aac755 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,7 +17,8 @@ object T7Registries { .maxId(Int.MAX_VALUE) .create() - val ASPECT = RegistryBuilder(ResourceKey.createRegistryKey(rl("aspect"))) + val ASPECT_KEY = ResourceKey.createRegistryKey(rl("aspect")) + val ASPECT = RegistryBuilder(ASPECT_KEY) .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 0de52fc7..1ef11c6e 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,64 +5,49 @@ 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 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()) + 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) - // 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) + // 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) // SECONDARY - 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)) + 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()) // TERTIARY - 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) } + 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) } } } fun linkedMapWithPrimalKeys(mapper: (DeferredAspect) -> T): LinkedHashMap, T> { - return linkedMapOf(*Aspects.PRIMAL_ASPECTS.map { Pair(it, mapper(it)) }.toTypedArray()) + return linkedMapOf(*Aspects.DATAGEN_PRIMALS.map { Pair(it, mapper(it)) }.toTypedArray()) } fun listFromPrimals(mapper: (DeferredAspect) -> T): List { - return Aspects.PRIMAL_ASPECTS.map { mapper(it) } + return Aspects.DATAGEN_PRIMALS.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 da47e771..f2d8ef86 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", ::Item) + val FOCUS_EXCAVATION = REGISTRAR.registerItem("focus_excavation") { ExcavationFocus() } 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 deleted file mode 100644 index f09adccd..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/aer.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/aether.png b/src/main/resources/assets/thavma/textures/aspect/aether.png index 341adc7e..67606aef 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 deleted file mode 100644 index e5d51dbc..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/alienis.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/alkimia.png b/src/main/resources/assets/thavma/textures/aspect/alkimia.png index 137c8ef7..3d0dd488 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 deleted file mode 100644 index 72149f1f..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/auram.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/aversio.png b/src/main/resources/assets/thavma/textures/aspect/aversio.png deleted file mode 100644 index c6313d54..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/aversio.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/bestia.png b/src/main/resources/assets/thavma/textures/aspect/bestia.png deleted file mode 100644 index 137fac12..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/bestia.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/humanus.png b/src/main/resources/assets/thavma/textures/aspect/civilis.png similarity index 100% rename from src/main/resources/assets/thavma/textures/aspect/humanus.png rename to src/main/resources/assets/thavma/textures/aspect/civilis.png diff --git a/src/main/resources/assets/thavma/textures/aspect/corpus.png b/src/main/resources/assets/thavma/textures/aspect/corpus.png new file mode 100644 index 00000000..159b42d4 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/corpus.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/desiderium.png b/src/main/resources/assets/thavma/textures/aspect/desiderium.png deleted file mode 100644 index 15fe8a17..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/desiderium.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/exanimis.png b/src/main/resources/assets/thavma/textures/aspect/exanimis.png deleted file mode 100644 index a4773707..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/exanimis.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/gelum.png b/src/main/resources/assets/thavma/textures/aspect/gelum.png deleted file mode 100644 index 63210f5a..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/gelum.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/hostilis.png b/src/main/resources/assets/thavma/textures/aspect/hostilis.png new file mode 100644 index 00000000..d0bd2150 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/hostilis.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/mortuus.png b/src/main/resources/assets/thavma/textures/aspect/mortuus.png deleted file mode 100644 index e74abba6..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/mortuus.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/motus.png b/src/main/resources/assets/thavma/textures/aspect/motus.png deleted file mode 100644 index 87fc809b..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/motus.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/ornatus.png b/src/main/resources/assets/thavma/textures/aspect/ornatus.png new file mode 100644 index 00000000..6832be7d Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/ornatus.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/perditio.png b/src/main/resources/assets/thavma/textures/aspect/perditio.png deleted file mode 100644 index 5d58c24c..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/perditio.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/permutatio.png b/src/main/resources/assets/thavma/textures/aspect/permutatio.png deleted file mode 100644 index 45bca802..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/permutatio.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/potentia.png b/src/main/resources/assets/thavma/textures/aspect/potentia.png deleted file mode 100644 index be21b684..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/potentia.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/praecantatio.png b/src/main/resources/assets/thavma/textures/aspect/praecantatio.png deleted file mode 100644 index 67606aef..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/praecantatio.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/sensus.png b/src/main/resources/assets/thavma/textures/aspect/sensus.png deleted file mode 100644 index 7727b84f..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/sensus.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/vacuos.png b/src/main/resources/assets/thavma/textures/aspect/vacuos.png deleted file mode 100644 index 345fc526..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/vacuos.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/vas.png b/src/main/resources/assets/thavma/textures/aspect/vas.png new file mode 100644 index 00000000..9ce19b04 Binary files /dev/null and b/src/main/resources/assets/thavma/textures/aspect/vas.png differ diff --git a/src/main/resources/assets/thavma/textures/aspect/vinculum.png b/src/main/resources/assets/thavma/textures/aspect/vinculum.png deleted file mode 100644 index 713676da..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/vinculum.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/vitium.png b/src/main/resources/assets/thavma/textures/aspect/vitium.png deleted file mode 100644 index 737f9c93..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/vitium.png and /dev/null differ diff --git a/src/main/resources/assets/thavma/textures/aspect/volatus.png b/src/main/resources/assets/thavma/textures/aspect/volatus.png deleted file mode 100644 index 4cef84b9..00000000 Binary files a/src/main/resources/assets/thavma/textures/aspect/volatus.png and /dev/null differ