From 1c20f06340f7f51ecab592776ad3fd2211930aec Mon Sep 17 00:00:00 2001 From: dhyces <10985914+dhyces@users.noreply.github.com> Date: Wed, 29 May 2024 23:30:07 -0700 Subject: [PATCH] Start setting up test mod --- neo/build.gradle.kts | 15 ++ settings.gradle.kts | 2 +- testmods/neo/build.gradle.kts | 90 +++++++++++ testmods/neo/gradle.properties | 8 + .../item_model_overrides/bamboo_stairs.json | 7 + .../item_model_overrides/grass_block.json | 13 ++ .../resources/assets/testmod/lang/en_us.json | 9 ++ .../testmod/models/item/adamantium.json | 6 + .../spiral_armor_trim_smithing_template.json | 6 + .../testmod/trimmed/maps/test_map_2.json | 5 + .../trimmed/mapsblock/registry_block_map.json | 5 + .../mapsentity_type/entity_transform.json | 5 + .../tags/item/test_item_client_tag.json | 6 + .../trimmed/tags/testmod/custom/test.json | 5 + .../tags/trimmed/texture/test_client_tag.json | 6 + .../trimmed/maps/material_suffixes.json | 10 ++ .../trimmed/texture/trim_armor_patterns.json | 6 + .../minecraft/tags/items/trim_materials.json | 10 ++ .../minecraft/tags/items/trim_templates.json | 5 + .../minecraft/tags/items/trimmable_armor.json | 8 + .../spiral_armor_trim_smithing_template.json | 32 ++++ ..._trim_smithing_template_smithing_trim.json | 32 ++++ .../spiral_armor_trim_smithing_template.json | 24 +++ ..._trim_smithing_template_smithing_trim.json | 12 ++ .../testmod/trim_material/adamantium.json | 9 ++ .../data/testmod/trim_material/blaze.json | 9 ++ .../data/testmod/trim_material/echo.json | 9 ++ .../data/testmod/trim_material/glow.json | 9 ++ .../testmod/trim_material/prismarine.json | 9 ++ .../data/testmod/trim_material/shell.json | 9 ++ .../data/testmod/trim_pattern/spiral.json | 8 + .../dev/dhyces/testmod/ModTrimMaterials.java | 19 +++ .../dev/dhyces/testmod/ModTrimPatterns.java | 14 ++ .../dev/dhyces/testmod/TestKeyResolvers.java | 10 ++ .../java/dev/dhyces/testmod/TrimmedTest.java | 38 +++++ .../dev/dhyces/testmod/TrimmedTestClient.java | 50 ++++++ .../client/TestClientKeyResolvers.java | 9 ++ .../testmod/client/TestClientMapKeys.java | 24 +++ .../testmod/client/TestClientMapTypes.java | 19 +++ .../dhyces/testmod/client/TestClientTags.java | 19 +++ .../testmod/client/TrimmedApiCompat.java | 25 +++ .../BlockStateItemOverrideProvider.java | 40 +++++ .../client/providers/MyProviderTypes.java | 7 + .../testmod/data/TestAtlasProvider.java | 143 ++++++++++++++++++ .../dev/dhyces/testmod/data/TestDatagen.java | 67 ++++++++ .../testmod/data/TestItemTagProvider.java | 32 ++++ .../testmod/data/TestModelProvider.java | 18 +++ .../testmod/data/TestTrimDatagenSuite.java | 23 +++ .../data/trimmed/TestClientMapProvider.java | 19 +++ .../data/trimmed/TestClientTagProvider.java | 23 +++ .../trimmed/TestItemOverrideProvider.java | 24 +++ .../registrymaps/ClientBlockProvider.java | 24 +++ .../ClientDamageTypeProvider.java | 26 ++++ .../registrymaps/EntityToEntityProvider.java | 24 +++ .../TestClientCustomObjTagProvider.java | 24 +++ .../TestClientItemTagProvider.java | 28 ++++ .../testmod/item/AdamantiumArmorItem.java | 10 ++ .../dev/dhyces/testmod/item/ScannerItem.java | 20 +++ .../dhyces/testmod/item/TransformerItem.java | 17 +++ .../testmod/registry/ModArmorMaterials.java | 22 +++ .../dev/dhyces/testmod/registry/ModItems.java | 23 +++ .../dev/dhyces/testmod/registry/ModTabs.java | 25 +++ .../testmod/registry/custom/CustomObj.java | 4 + .../registry/custom/CustomRegistration.java | 15 ++ .../resources/META-INF/neoforge.mods.toml | 43 ++++++ .../testmod/models/item/adamantium_boots.json | 6 + .../models/item/adamantium_chestplate.json | 6 + .../models/item/adamantium_helmet.json | 6 + .../models/item/adamantium_leggings.json | 6 + .../assets/testmod/models/item/scanner.json | 6 + .../testmod/textures/item/adamantium.png | Bin 0 -> 295 bytes .../textures/item/adamantium_boots.png | Bin 0 -> 198 bytes .../textures/item/adamantium_chestplate.png | Bin 0 -> 215 bytes .../textures/item/adamantium_helmet.png | Bin 0 -> 188 bytes .../textures/item/adamantium_leggings.png | Bin 0 -> 198 bytes .../assets/testmod/textures/item/scanner.png | Bin 0 -> 311 bytes .../spiral_armor_trim_smithing_template.png | Bin 0 -> 461 bytes .../models/armor/adamantium_layer_1.png | Bin 0 -> 1233 bytes .../models/armor/adamantium_layer_2.png | Bin 0 -> 618 bytes .../trims/color_palettes/adamantium.png | Bin 0 -> 109 bytes .../color_palettes/adamantium_darker.png | Bin 0 -> 107 bytes .../textures/trims/color_palettes/blaze.png | Bin 0 -> 114 bytes .../textures/trims/color_palettes/echo.png | Bin 0 -> 111 bytes .../textures/trims/color_palettes/glow.png | Bin 0 -> 114 bytes .../trims/color_palettes/prismarine.png | Bin 0 -> 114 bytes .../textures/trims/color_palettes/shell.png | Bin 0 -> 114 bytes .../textures/trims/models/armor/spiral.png | Bin 0 -> 333 bytes .../trims/models/armor/spiral_leggings.png | Bin 0 -> 148 bytes .../maps/block/scanner_descriptors.json | 7 + .../trimmed/maps/item/checked_item_map.json | 5 + .../maps/trimmed/texture/test_map.json | 5 + .../worldgen/biome/checked_biome_map.json | 5 + .../trimmed/tags/item/another_test_tag.json | 6 + .../trimmed/tags/item/test_client_tag.json | 6 + .../texture/test_unchecked_client_tag.json | 5 + .../tags/worldgen/biome/test_biome_tag.json | 5 + 96 files changed, 1390 insertions(+), 1 deletion(-) create mode 100644 testmods/neo/build.gradle.kts create mode 100644 testmods/neo/gradle.properties create mode 100644 testmods/neo/src/generated/resources/assets/minecraft/trimmed/item_model_overrides/bamboo_stairs.json create mode 100644 testmods/neo/src/generated/resources/assets/minecraft/trimmed/item_model_overrides/grass_block.json create mode 100644 testmods/neo/src/generated/resources/assets/testmod/lang/en_us.json create mode 100644 testmods/neo/src/generated/resources/assets/testmod/models/item/adamantium.json create mode 100644 testmods/neo/src/generated/resources/assets/testmod/models/item/spiral_armor_trim_smithing_template.json create mode 100644 testmods/neo/src/generated/resources/assets/testmod/trimmed/maps/test_map_2.json create mode 100644 testmods/neo/src/generated/resources/assets/testmod/trimmed/mapsblock/registry_block_map.json create mode 100644 testmods/neo/src/generated/resources/assets/testmod/trimmed/mapsentity_type/entity_transform.json create mode 100644 testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/item/test_item_client_tag.json create mode 100644 testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/testmod/custom/test.json create mode 100644 testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/trimmed/texture/test_client_tag.json create mode 100644 testmods/neo/src/generated/resources/assets/trimmed/trimmed/maps/material_suffixes.json create mode 100644 testmods/neo/src/generated/resources/assets/trimmed/trimmed/tags/trimmed/texture/trim_armor_patterns.json create mode 100644 testmods/neo/src/generated/resources/data/minecraft/tags/items/trim_materials.json create mode 100644 testmods/neo/src/generated/resources/data/minecraft/tags/items/trim_templates.json create mode 100644 testmods/neo/src/generated/resources/data/minecraft/tags/items/trimmable_armor.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/advancements/recipes/misc/spiral_armor_trim_smithing_template.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/advancements/recipes/misc/spiral_armor_trim_smithing_template_smithing_trim.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/recipes/spiral_armor_trim_smithing_template.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/recipes/spiral_armor_trim_smithing_template_smithing_trim.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/trim_material/adamantium.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/trim_material/blaze.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/trim_material/echo.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/trim_material/glow.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/trim_material/prismarine.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/trim_material/shell.json create mode 100644 testmods/neo/src/generated/resources/data/testmod/trim_pattern/spiral.json create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimMaterials.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimPatterns.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/TestKeyResolvers.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTest.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTestClient.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientKeyResolvers.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientMapKeys.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientMapTypes.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientTags.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/client/TrimmedApiCompat.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/client/providers/BlockStateItemOverrideProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/client/providers/MyProviderTypes.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/TestAtlasProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/TestDatagen.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/TestItemTagProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/TestModelProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/TestTrimDatagenSuite.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientMapProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientTagProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestItemOverrideProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/ClientBlockProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/ClientDamageTypeProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/EntityToEntityProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrytags/TestClientCustomObjTagProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrytags/TestClientItemTagProvider.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/item/AdamantiumArmorItem.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/item/ScannerItem.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/item/TransformerItem.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModArmorMaterials.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModItems.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModTabs.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/registry/custom/CustomObj.java create mode 100644 testmods/neo/src/main/java/dev/dhyces/testmod/registry/custom/CustomRegistration.java create mode 100644 testmods/neo/src/main/resources/META-INF/neoforge.mods.toml create mode 100644 testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_boots.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_chestplate.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_helmet.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_leggings.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/models/item/scanner.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium_boots.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium_chestplate.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium_helmet.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium_leggings.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/item/scanner.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/item/spiral_armor_trim_smithing_template.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/models/armor/adamantium_layer_1.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/models/armor/adamantium_layer_2.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/adamantium.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/adamantium_darker.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/blaze.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/echo.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/glow.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/prismarine.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/shell.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/trims/models/armor/spiral.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/textures/trims/models/armor/spiral_leggings.png create mode 100644 testmods/neo/src/main/resources/assets/testmod/trimmed/maps/block/scanner_descriptors.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/trimmed/maps/item/checked_item_map.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/trimmed/maps/trimmed/texture/test_map.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/trimmed/maps/worldgen/biome/checked_biome_map.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/trimmed/tags/item/another_test_tag.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/trimmed/tags/item/test_client_tag.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/trimmed/tags/trimmed/texture/test_unchecked_client_tag.json create mode 100644 testmods/neo/src/main/resources/assets/testmod/trimmed/tags/worldgen/biome/test_biome_tag.json diff --git a/neo/build.gradle.kts b/neo/build.gradle.kts index 5eaf4336..c9719602 100644 --- a/neo/build.gradle.kts +++ b/neo/build.gradle.kts @@ -19,6 +19,14 @@ base { val commonJava by configurations val commonResources by configurations +val neoJava: Configuration by configurations.creating { + isCanBeResolved = false + isCanBeConsumed = true +} +val neoResources: Configuration by configurations.creating { + isCanBeResolved = false + isCanBeConsumed = true +} sourceSets { val main = sourceSets.named("main").get() @@ -93,6 +101,13 @@ tasks.processResources { exclude("trimmed.accesswidener") } +artifacts { + add(neoJava.name, sourceSets.main.get().java.sourceDirectories.singleFile) + sourceSets.main.get().resources.sourceDirectories.forEach { + add(neoResources.name, it) + } +} + modsDotGroovy { platform(Platform.NEOFORGE) inferGather.set(false) diff --git a/settings.gradle.kts b/settings.gradle.kts index 27406828..9ca52cae 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -37,4 +37,4 @@ plugins { } rootProject.name = "trimmed" -include("common", "neo", /*"forge", "forge:testmod",*/ "fabric") // "quilt" \ No newline at end of file +include("common", "neo", /*"forge",*/ "fabric", "testmods:neo") // "quilt" \ No newline at end of file diff --git a/testmods/neo/build.gradle.kts b/testmods/neo/build.gradle.kts new file mode 100644 index 00000000..efbd1caa --- /dev/null +++ b/testmods/neo/build.gradle.kts @@ -0,0 +1,90 @@ +plugins { + idea + java + `maven-publish` + alias(libs.plugins.mdg) + alias(libs.plugins.curseforgegradle) + alias(libs.plugins.minotaur) + alias(libs.plugins.archloom) + id("consumer.conventions") +} + +base { + archivesName = "${properties["mod_name"]}-neo-${libs.versions.minecraft.release.get()}" +} + +val neoJava: Configuration by configurations.creating { + isCanBeResolved = true +} +val neoResources: Configuration by configurations.creating { + isCanBeResolved = true +} + +sourceSets.main.get().resources.srcDir("src/generated/resources") + +loom { + neoForge { + accessTransformer(project(":neo").file("src/main/resources/META-INF/accesstransformer.cfg")) + } + + runs { + configureEach { + ideConfigGenerated(true) + runDir("run") + } + named("client") { + client() + configName = "Neo Test Client" + } + named("server") { + server() + configName = "Neo Test Server" + } + create("data") { + data() + configName = "Neo Test Data" + + programArgs("--mod", properties["mod_id"] as String, "--all", "--output", file("src/generated/resources/").path, "--existing", file("src/main/resources/").path) + } + } +} + +repositories { + maven { + name = "Neo" + url = uri("https://maven.neoforged.net/releases") + } +} + +dependencies { + minecraft(libs.minecraft) + neoForge(libs.neoforge) + mappings(loom.layered() { + officialMojangMappings() + parchment("org.parchmentmc.data:parchment-${libs.versions.parchment.mc.get()}:${libs.versions.parchment.release.get()}@zip") + }) + + compileOnly(project(":common")) + compileOnly(project(":neo")) + neoJava(project(path = ":neo", configuration = "neoJava")) + neoResources(project(path = ":neo", configuration = "neoResources")) +} + +tasks.named("compileJava") { + dependsOn(neoJava) +} + +tasks.processResources { + dependsOn(neoResources) +} + +publishing { + publications { + create("mavenJava") { + groupId = properties["maven_group"] as String + artifactId = base.archivesName.get() + version = properties["mod_version"] as String + from(components["java"]) + } + } +} \ No newline at end of file diff --git a/testmods/neo/gradle.properties b/testmods/neo/gradle.properties new file mode 100644 index 00000000..e39dc3f6 --- /dev/null +++ b/testmods/neo/gradle.properties @@ -0,0 +1,8 @@ +org.gradle.parallel=false + +loom.platform = neoforge + +mod_name=TestMod +mod_id=testmod +maven_group=dev.dhyces.testmod +mod_version=3.0.0 \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/minecraft/trimmed/item_model_overrides/bamboo_stairs.json b/testmods/neo/src/generated/resources/assets/minecraft/trimmed/item_model_overrides/bamboo_stairs.json new file mode 100644 index 00000000..6c6d515a --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/minecraft/trimmed/item_model_overrides/bamboo_stairs.json @@ -0,0 +1,7 @@ +{ + "values": [ + { + "type": "testmod:block_state" + } + ] +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/minecraft/trimmed/item_model_overrides/grass_block.json b/testmods/neo/src/generated/resources/assets/minecraft/trimmed/item_model_overrides/grass_block.json new file mode 100644 index 00000000..9285a464 --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/minecraft/trimmed/item_model_overrides/grass_block.json @@ -0,0 +1,13 @@ +{ + "values": [ + { + "type": "trimmed:component", + "components": { + "minecraft:block_state": { + "snowy": "true" + } + }, + "model": "minecraft:grass_block#snowy=true" + } + ] +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/testmod/lang/en_us.json b/testmods/neo/src/generated/resources/assets/testmod/lang/en_us.json new file mode 100644 index 00000000..b93e6159 --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/testmod/lang/en_us.json @@ -0,0 +1,9 @@ +{ + "trim_pattern.testmod.adamantium": "Adamantium Material", + "trim_pattern.testmod.blaze": "Blaze Material", + "trim_pattern.testmod.echo": "Echo Material", + "trim_pattern.testmod.glow": "Glow Material", + "trim_pattern.testmod.prismarine": "Prismarine Material", + "trim_pattern.testmod.shell": "Shell Material", + "trim_pattern.testmod.spiral": "Spiral Armor Trim" +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/testmod/models/item/adamantium.json b/testmods/neo/src/generated/resources/assets/testmod/models/item/adamantium.json new file mode 100644 index 00000000..44f68a4a --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/testmod/models/item/adamantium.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "testmod:item/adamantium" + } +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/testmod/models/item/spiral_armor_trim_smithing_template.json b/testmods/neo/src/generated/resources/assets/testmod/models/item/spiral_armor_trim_smithing_template.json new file mode 100644 index 00000000..291f97a0 --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/testmod/models/item/spiral_armor_trim_smithing_template.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "testmod:item/spiral_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/testmod/trimmed/maps/test_map_2.json b/testmods/neo/src/generated/resources/assets/testmod/trimmed/maps/test_map_2.json new file mode 100644 index 00000000..ebeba8ff --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/testmod/trimmed/maps/test_map_2.json @@ -0,0 +1,5 @@ +{ + "values": { + "testmod:some/kind/of/key": "aValue" + } +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/testmod/trimmed/mapsblock/registry_block_map.json b/testmods/neo/src/generated/resources/assets/testmod/trimmed/mapsblock/registry_block_map.json new file mode 100644 index 00000000..db3eff2c --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/testmod/trimmed/mapsblock/registry_block_map.json @@ -0,0 +1,5 @@ +{ + "values": { + "minecraft:fire": "Hello!" + } +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/testmod/trimmed/mapsentity_type/entity_transform.json b/testmods/neo/src/generated/resources/assets/testmod/trimmed/mapsentity_type/entity_transform.json new file mode 100644 index 00000000..e6311cd5 --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/testmod/trimmed/mapsentity_type/entity_transform.json @@ -0,0 +1,5 @@ +{ + "values": { + "minecraft:allay": "minecraft:bat" + } +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/item/test_item_client_tag.json b/testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/item/test_item_client_tag.json new file mode 100644 index 00000000..28230d37 --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/item/test_item_client_tag.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:iron_ingot", + "minecraft:acacia_boat" + ] +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/testmod/custom/test.json b/testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/testmod/custom/test.json new file mode 100644 index 00000000..1408fa11 --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/testmod/custom/test.json @@ -0,0 +1,5 @@ +{ + "values": [ + "testmod:test" + ] +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/trimmed/texture/test_client_tag.json b/testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/trimmed/texture/test_client_tag.json new file mode 100644 index 00000000..ddc00b52 --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/testmod/trimmed/tags/trimmed/texture/test_client_tag.json @@ -0,0 +1,6 @@ +{ + "values": [ + "testmod:unreallll", + "testmod:nahhhh" + ] +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/trimmed/trimmed/maps/material_suffixes.json b/testmods/neo/src/generated/resources/assets/trimmed/trimmed/maps/material_suffixes.json new file mode 100644 index 00000000..523c389c --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/trimmed/trimmed/maps/material_suffixes.json @@ -0,0 +1,10 @@ +{ + "values": { + "testmod:trims/color_palettes/adamantium": "testmod_adamantium", + "testmod:trims/color_palettes/blaze": "testmod_blaze", + "testmod:trims/color_palettes/echo": "testmod_echo", + "testmod:trims/color_palettes/glow": "testmod_glow", + "testmod:trims/color_palettes/prismarine": "testmod_prismarine", + "testmod:trims/color_palettes/shell": "testmod_shell" + } +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/assets/trimmed/trimmed/tags/trimmed/texture/trim_armor_patterns.json b/testmods/neo/src/generated/resources/assets/trimmed/trimmed/tags/trimmed/texture/trim_armor_patterns.json new file mode 100644 index 00000000..0370e592 --- /dev/null +++ b/testmods/neo/src/generated/resources/assets/trimmed/trimmed/tags/trimmed/texture/trim_armor_patterns.json @@ -0,0 +1,6 @@ +{ + "values": [ + "testmod:trims/models/armor/spiral", + "testmod:trims/models/armor/spiral_leggings" + ] +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/minecraft/tags/items/trim_materials.json b/testmods/neo/src/generated/resources/data/minecraft/tags/items/trim_materials.json new file mode 100644 index 00000000..8b0d0a1b --- /dev/null +++ b/testmods/neo/src/generated/resources/data/minecraft/tags/items/trim_materials.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:echo_shard", + "minecraft:blaze_powder", + "minecraft:nautilus_shell", + "minecraft:prismarine_crystals", + "minecraft:glow_ink_sac", + "testmod:adamantium" + ] +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/minecraft/tags/items/trim_templates.json b/testmods/neo/src/generated/resources/data/minecraft/tags/items/trim_templates.json new file mode 100644 index 00000000..fc168e24 --- /dev/null +++ b/testmods/neo/src/generated/resources/data/minecraft/tags/items/trim_templates.json @@ -0,0 +1,5 @@ +{ + "values": [ + "testmod:spiral_armor_trim_smithing_template" + ] +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/minecraft/tags/items/trimmable_armor.json b/testmods/neo/src/generated/resources/data/minecraft/tags/items/trimmable_armor.json new file mode 100644 index 00000000..0c1962b6 --- /dev/null +++ b/testmods/neo/src/generated/resources/data/minecraft/tags/items/trimmable_armor.json @@ -0,0 +1,8 @@ +{ + "values": [ + "testmod:adamantium_helmet", + "testmod:adamantium_chestplate", + "testmod:adamantium_leggings", + "testmod:adamantium_boots" + ] +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/advancements/recipes/misc/spiral_armor_trim_smithing_template.json b/testmods/neo/src/generated/resources/data/testmod/advancements/recipes/misc/spiral_armor_trim_smithing_template.json new file mode 100644 index 00000000..082e5341 --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/advancements/recipes/misc/spiral_armor_trim_smithing_template.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spiral_armor_trim_smithing_template": { + "conditions": { + "items": [ + { + "items": "testmod:spiral_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "testmod:spiral_armor_trim_smithing_template" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_spiral_armor_trim_smithing_template" + ] + ], + "rewards": { + "recipes": [ + "testmod:spiral_armor_trim_smithing_template" + ] + } +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/advancements/recipes/misc/spiral_armor_trim_smithing_template_smithing_trim.json b/testmods/neo/src/generated/resources/data/testmod/advancements/recipes/misc/spiral_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..634d5fa4 --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/advancements/recipes/misc/spiral_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_smithing_trim_template": { + "conditions": { + "items": [ + { + "items": "testmod:spiral_armor_trim_smithing_template" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "testmod:spiral_armor_trim_smithing_template_smithing_trim" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_smithing_trim_template" + ] + ], + "rewards": { + "recipes": [ + "testmod:spiral_armor_trim_smithing_template_smithing_trim" + ] + } +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/recipes/spiral_armor_trim_smithing_template.json b/testmods/neo/src/generated/resources/data/testmod/recipes/spiral_armor_trim_smithing_template.json new file mode 100644 index 00000000..3f717a88 --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/recipes/spiral_armor_trim_smithing_template.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "minecraft:diamond" + }, + "C": { + "item": "minecraft:nautilus_shell" + }, + "S": { + "item": "testmod:spiral_armor_trim_smithing_template" + } + }, + "pattern": [ + "#S#", + "#C#", + "###" + ], + "result": { + "count": 2, + "id": "testmod:spiral_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/recipes/spiral_armor_trim_smithing_template_smithing_trim.json b/testmods/neo/src/generated/resources/data/testmod/recipes/spiral_armor_trim_smithing_template_smithing_trim.json new file mode 100644 index 00000000..8af5820d --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/recipes/spiral_armor_trim_smithing_template_smithing_trim.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing_trim", + "addition": { + "tag": "minecraft:trim_materials" + }, + "base": { + "tag": "minecraft:trimmable_armor" + }, + "template": { + "item": "testmod:spiral_armor_trim_smithing_template" + } +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/trim_material/adamantium.json b/testmods/neo/src/generated/resources/data/testmod/trim_material/adamantium.json new file mode 100644 index 00000000..c46d62a3 --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/trim_material/adamantium.json @@ -0,0 +1,9 @@ +{ + "asset_name": "testmod_adamantium", + "description": { + "color": "#9D2638", + "translate": "trim_pattern.testmod.adamantium" + }, + "ingredient": "testmod:adamantium", + "item_model_index": -1.0 +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/trim_material/blaze.json b/testmods/neo/src/generated/resources/data/testmod/trim_material/blaze.json new file mode 100644 index 00000000..ae398bd1 --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/trim_material/blaze.json @@ -0,0 +1,9 @@ +{ + "asset_name": "testmod_blaze", + "description": { + "color": "#FCA100", + "translate": "trim_pattern.testmod.blaze" + }, + "ingredient": "minecraft:blaze_powder", + "item_model_index": -1.0 +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/trim_material/echo.json b/testmods/neo/src/generated/resources/data/testmod/trim_material/echo.json new file mode 100644 index 00000000..ed82ff3e --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/trim_material/echo.json @@ -0,0 +1,9 @@ +{ + "asset_name": "testmod_echo", + "description": { + "color": "#0A4F5F", + "translate": "trim_pattern.testmod.echo" + }, + "ingredient": "minecraft:echo_shard", + "item_model_index": -1.0 +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/trim_material/glow.json b/testmods/neo/src/generated/resources/data/testmod/trim_material/glow.json new file mode 100644 index 00000000..432a3ebd --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/trim_material/glow.json @@ -0,0 +1,9 @@ +{ + "asset_name": "testmod_glow", + "description": { + "color": "#7EFCBE", + "translate": "trim_pattern.testmod.glow" + }, + "ingredient": "minecraft:glow_ink_sac", + "item_model_index": -1.0 +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/trim_material/prismarine.json b/testmods/neo/src/generated/resources/data/testmod/trim_material/prismarine.json new file mode 100644 index 00000000..417f750e --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/trim_material/prismarine.json @@ -0,0 +1,9 @@ +{ + "asset_name": "testmod_prismarine", + "description": { + "color": "#B2D5C8", + "translate": "trim_pattern.testmod.prismarine" + }, + "ingredient": "minecraft:prismarine_crystals", + "item_model_index": -1.0 +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/trim_material/shell.json b/testmods/neo/src/generated/resources/data/testmod/trim_material/shell.json new file mode 100644 index 00000000..8edc79f3 --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/trim_material/shell.json @@ -0,0 +1,9 @@ +{ + "asset_name": "testmod_shell", + "description": { + "color": "#D17E7E", + "translate": "trim_pattern.testmod.shell" + }, + "ingredient": "minecraft:nautilus_shell", + "item_model_index": -1.0 +} \ No newline at end of file diff --git a/testmods/neo/src/generated/resources/data/testmod/trim_pattern/spiral.json b/testmods/neo/src/generated/resources/data/testmod/trim_pattern/spiral.json new file mode 100644 index 00000000..d6673c56 --- /dev/null +++ b/testmods/neo/src/generated/resources/data/testmod/trim_pattern/spiral.json @@ -0,0 +1,8 @@ +{ + "asset_id": "testmod:spiral", + "decal": false, + "description": { + "translate": "trim_pattern.testmod.spiral" + }, + "template_item": "testmod:spiral_armor_trim_smithing_template" +} \ No newline at end of file diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimMaterials.java b/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimMaterials.java new file mode 100644 index 00000000..5e979ed6 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimMaterials.java @@ -0,0 +1,19 @@ +package dev.dhyces.testmod; + +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.armortrim.TrimMaterial; + +public class ModTrimMaterials { + public static final ResourceKey ECHO = registryKey("echo"); + public static final ResourceKey BLAZE = registryKey("blaze"); + public static final ResourceKey SHELL = registryKey("shell"); + public static final ResourceKey PRISMARINE = registryKey("prismarine"); + public static final ResourceKey GLOW = registryKey("glow"); + public static final ResourceKey ADAMANTIUM = registryKey("adamantium"); + + private static ResourceKey registryKey(String id) { + return ResourceKey.create(Registries.TRIM_MATERIAL, new ResourceLocation(TrimmedTest.MODID, id)); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimPatterns.java b/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimPatterns.java new file mode 100644 index 00000000..44906dee --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimPatterns.java @@ -0,0 +1,14 @@ +package dev.dhyces.testmod; + +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.armortrim.TrimPattern; + +public class ModTrimPatterns { + public static final ResourceKey SPIRAL = registryKey("spiral"); + + private static ResourceKey registryKey(String id) { + return ResourceKey.create(Registries.TRIM_PATTERN, new ResourceLocation(TrimmedTest.MODID, id)); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/TestKeyResolvers.java b/testmods/neo/src/main/java/dev/dhyces/testmod/TestKeyResolvers.java new file mode 100644 index 00000000..23465c21 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/TestKeyResolvers.java @@ -0,0 +1,10 @@ +package dev.dhyces.testmod; + +import dev.dhyces.testmod.registry.custom.CustomObj; +import dev.dhyces.testmod.registry.custom.CustomRegistration; +import dev.dhyces.trimmed.api.KeyResolver; +import dev.dhyces.trimmed.api.client.TrimmedClientMapApi; + +public class TestKeyResolvers { + public static final KeyResolver.RegistryWrapper CUSTOM_OBJ = KeyResolver.RegistryWrapper.createStatic(CustomRegistration.CUSTOM_REGISTRY); +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTest.java b/testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTest.java new file mode 100644 index 00000000..b9bb0967 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTest.java @@ -0,0 +1,38 @@ +package dev.dhyces.testmod; + +import dev.dhyces.testmod.data.TestDatagen; +import dev.dhyces.testmod.registry.ModArmorMaterials; +import dev.dhyces.testmod.registry.ModItems; +import dev.dhyces.testmod.registry.ModTabs; +import dev.dhyces.testmod.registry.custom.CustomRegistration; +import net.minecraft.resources.ResourceLocation; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.data.loading.DatagenModLoader; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@Mod(TrimmedTest.MODID) +public class TrimmedTest { + public static final String MODID = "testmod"; + public static final Logger LOGGER = LoggerFactory.getLogger(MODID); + + public static ResourceLocation id(String id) { + return new ResourceLocation(MODID, id); + } + +// public static final MapHolder TEST_DELEGATE = ClientMapManager.getRegistryHandler(Registries.DAMAGE_TYPE).getMap(TestClientMapKeys.DATAGEN_TEST_DAMAGE_TYPE_MAP); + +// public static final MapHolder.Typed, String, BiMap, String>> TEST_DELEGATE_2 = ClientMapManager.getRegistryHandler(Registries.ENTITY_TYPE).getBiMap(TestClientMapKeys.DATAGEN_ENTITY_TRANSFORM); + + public TrimmedTest(IEventBus modBus) { + ModArmorMaterials.REGISTER.register(modBus); + ModItems.ITEMS.register(modBus); + ModTabs.REGISTER.register(modBus); + CustomRegistration.CUSTOM_DEFERRED_REGISTRY.register(modBus); + + if (DatagenModLoader.isRunningDataGen()) { + TestDatagen.init(modBus); + } + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTestClient.java b/testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTestClient.java new file mode 100644 index 00000000..f30cd160 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTestClient.java @@ -0,0 +1,50 @@ +package dev.dhyces.testmod; + +import dev.dhyces.testmod.client.TestClientMapKeys; +import dev.dhyces.testmod.client.TestClientTags; +import dev.dhyces.trimmed.api.client.TrimmedClientMapApi; +import dev.dhyces.trimmed.api.client.TrimmedClientTagApi; +import dev.dhyces.trimmed.api.maps.MapHolder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Block; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.common.NeoForge; +import net.neoforged.neoforge.event.entity.player.PlayerEvent; + +import java.util.Optional; + +@Mod(value = TrimmedTest.MODID, dist = Dist.CLIENT) +public class TrimmedTestClient { + public TrimmedTestClient() { + NeoForge.EVENT_BUS.addListener(TrimmedTestClient::loggedIn); + } + + private static void loggedIn(final PlayerEvent.PlayerLoggedInEvent event) { + var t = "minecraft:textures/models/armor/test_layer_1/trimmed_test"; + TrimmedClientTagApi.getInstance().getTag(TestClientTags.TEST_TAG).getSet().forEach(id -> TrimmedTest.LOGGER.info(id.toString())); + TrimmedClientTagApi.getInstance().getTag(TestClientTags.TEST_ITEM_TAG).getSet().forEach(item -> TrimmedTest.LOGGER.info(item.toString())); + TrimmedClientTagApi.getInstance().getTag(TestClientTags.TEST_CUSTOM_REG_KEY).getSet().forEach(item -> TrimmedTest.LOGGER.info(item.toString())); +// TrimmedClientTagApi.getInstance().getTag(TestClientTags.TEST_BIOME_TAG).ifPresent(holders -> holders.forEach(biomeHolder -> TrimmedTest.LOGGER.info(biomeHolder.toString()))); + + TrimmedClientMapApi.getInstance().getSimpleMap(TestClientMapKeys.MANUAL_TEST_MAP).getMap().forEach((key, value) -> TrimmedTest.LOGGER.info("KEY: {}, VALUE: {}", key, value)); + TrimmedTest.LOGGER.info("Map present! " + TrimmedClientMapApi.getInstance().getSimpleMap(TestClientMapKeys.MANUAL_TEST_ITEM_MAP).getMap().get(Items.IRON_INGOT)); +// TrimmedClientMapApi.getInstance().getSimpleMap(TestClientMapKeys.MANUAL_TEST_BIOME_MAP).getMap().forEach((key, value) -> TrimmedTest.LOGGER.info("KEY: {}, VALUE: {}", key, value)); + +// TrimmedTest.TEST_DELEGATE.forEach((entry) -> { +// TrimmedTest.LOGGER.info("KEY: {}, VALUE: {}", entry.getKey(), entry.getValue()); +// }); +// +// TrimmedTest.TEST_DELEGATE_2.forEach((entry) -> { +// TrimmedTest.LOGGER.info("KEY: {}, VALUE: {}", entry.getKey(), entry.getValue()); +// }); + } + + public static final MapHolder DESC_MAP = TrimmedClientMapApi.getInstance().getSimpleMap(TestClientMapKeys.MANUAL_SCANNER_DESCS); + + public static void printDescriptor(Player player, Block block) { + Optional.ofNullable(DESC_MAP.getMap().get(block)).ifPresent(s -> player.sendSystemMessage(Component.literal(s))); + } +} \ No newline at end of file diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientKeyResolvers.java b/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientKeyResolvers.java new file mode 100644 index 00000000..cd003d73 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientKeyResolvers.java @@ -0,0 +1,9 @@ +package dev.dhyces.testmod.client; + +import dev.dhyces.trimmed.api.KeyResolver; +import dev.dhyces.trimmed.api.client.ClientKeyResolver; +import net.minecraft.resources.ResourceLocation; + +public class TestClientKeyResolvers { + public static final KeyResolver TEST = new ClientKeyResolver<>(ResourceLocation.CODEC); +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientMapKeys.java b/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientMapKeys.java new file mode 100644 index 00000000..cadf8607 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientMapKeys.java @@ -0,0 +1,24 @@ +package dev.dhyces.testmod.client; + +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.trimmed.api.maps.MapKey; +import dev.dhyces.trimmed.impl.client.maps.KeyResolvers; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; + +public class TestClientMapKeys { + // MANUAL + public static final MapKey MANUAL_TEST_MAP = MapKey.of(TestClientMapTypes.CLIENT_RESOLVER_TEST, TrimmedTest.id("test_map")); + public static final MapKey MANUAL_SCANNER_DESCS = MapKey.of(TestClientMapTypes.SCANNER_DESCRIPTORS, TrimmedTest.id("scanner_descriptors")); + public static final MapKey MANUAL_TEST_ITEM_MAP = MapKey.of(TestClientMapTypes.ITEM_TEST, TrimmedTest.id("checked_item_map")); +// public static final MapKey MANUAL_TEST_BIOME_MAP = MapKey.of(TestClientMapTypes.BIOME_TEST, TrimmedTest.id("checked_biome_map")); + + // DATAGENNED + public static final MapKey DATAGEN_TEST_MAP_2 = MapKey.of(TestClientMapTypes.CLIENT_RESOLVER_TEST, TrimmedTest.id("test_map_2")); + public static final MapKey DATAGEN_TEST_BLOCK_MAP = MapKey.of(TestClientMapTypes.BLOCK_TEST, TrimmedTest.id("registry_block_map")); + public static final MapKey, EntityType> DATAGEN_ENTITY_TRANSFORM = MapKey.of(TestClientMapTypes.ENTITY_CONVERSION, TrimmedTest.id("entity_transform")); + // public static final ClientRegistryMapKey DATAGEN_TEST_DAMAGE_TYPE_MAP = ClientRegistryMapKey.of(Registries.DAMAGE_TYPE, TrimmedTest.id("datapacked_damage_type_map")); + +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientMapTypes.java b/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientMapTypes.java new file mode 100644 index 00000000..96e892e4 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientMapTypes.java @@ -0,0 +1,19 @@ +package dev.dhyces.testmod.client; + +import com.mojang.serialization.Codec; +import dev.dhyces.trimmed.api.maps.types.MapType; +import dev.dhyces.trimmed.impl.client.maps.KeyResolvers; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; + +public class TestClientMapTypes { + public static final MapType CLIENT_RESOLVER_TEST = MapType.simple(TestClientKeyResolvers.TEST, Codec.STRING); + public static final MapType SCANNER_DESCRIPTORS = MapType.simple(KeyResolvers.BLOCK, Codec.STRING); + public static final MapType ITEM_TEST = MapType.simple(KeyResolvers.ITEM, Codec.STRING); + public static final MapType BLOCK_TEST = MapType.simple(KeyResolvers.BLOCK, Codec.STRING); + public static final MapType, EntityType> ENTITY_CONVERSION = MapType.simple(KeyResolvers.ENTITY_TYPE, BuiltInRegistries.ENTITY_TYPE.byNameCodec()); +// public static final MapType BIOME_TEST = MapType.simple(KeyResolvers.BIOME, Codec.INT); +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientTags.java b/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientTags.java new file mode 100644 index 00000000..11c15f3e --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/client/TestClientTags.java @@ -0,0 +1,19 @@ +package dev.dhyces.testmod.client; + +import dev.dhyces.testmod.TestKeyResolvers; +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.registry.custom.CustomObj; +import dev.dhyces.trimmed.api.client.tag.ClientTagKey; +import dev.dhyces.trimmed.impl.client.maps.KeyResolvers; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; + +public class TestClientTags { + // MANUAL + public static final ClientTagKey TEST_TAG = ClientTagKey.of(TestClientKeyResolvers.TEST, TrimmedTest.id("test_unchecked_client_tag")); + public static final ClientTagKey TEST_ITEM_TAG = ClientTagKey.of(KeyResolvers.ITEM, TrimmedTest.id("test_client_tag")); +// public static final ClientTagKey TEST_BIOME_TAG = ClientTagKey.of(KeyResolvers.BIOME, TrimmedTest.id("test_biome_tag")); + + // DATAGENNED + public static final ClientTagKey TEST_CUSTOM_REG_KEY = ClientTagKey.of(TestKeyResolvers.CUSTOM_OBJ, TrimmedTest.id("test")); +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/client/TrimmedApiCompat.java b/testmods/neo/src/main/java/dev/dhyces/testmod/client/TrimmedApiCompat.java new file mode 100644 index 00000000..2d0a23d2 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/client/TrimmedApiCompat.java @@ -0,0 +1,25 @@ +package dev.dhyces.testmod.client; + +import dev.dhyces.testmod.TestKeyResolvers; +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.client.providers.MyProviderTypes; +import dev.dhyces.testmod.registry.custom.CustomRegistration; +import dev.dhyces.trimmed.api.KeyResolver; +import dev.dhyces.trimmed.api.TrimmedClientApi; +import dev.dhyces.trimmed.api.client.TrimmedClientApiEntrypoint; + +@SuppressWarnings("unused") +@TrimmedClientApi(TrimmedTest.MODID) +public class TrimmedApiCompat implements TrimmedClientApiEntrypoint { + @Override + public void registration(TrimmedClientRegistration registration) { + registration.registerItemOverrideType(TrimmedTest.id("block_state"), MyProviderTypes.BLOCK_STATE); + registration.registerKeyResolver(CustomRegistration.KEY.location(), TestKeyResolvers.CUSTOM_OBJ); + registration.registerBaseMapKey(TestClientMapKeys.MANUAL_TEST_MAP); + registration.registerBaseMapKey(TestClientMapKeys.MANUAL_SCANNER_DESCS); + registration.registerBaseMapKey(TestClientMapKeys.MANUAL_TEST_ITEM_MAP); + registration.registerBaseMapKey(TestClientMapKeys.DATAGEN_TEST_MAP_2); + registration.registerBaseMapKey(TestClientMapKeys.DATAGEN_TEST_BLOCK_MAP); + registration.registerBaseMapKey(TestClientMapKeys.DATAGEN_ENTITY_TRANSFORM); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/client/providers/BlockStateItemOverrideProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/client/providers/BlockStateItemOverrideProvider.java new file mode 100644 index 00000000..538d3798 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/client/providers/BlockStateItemOverrideProvider.java @@ -0,0 +1,40 @@ +package dev.dhyces.testmod.client.providers; + +import com.google.common.base.Suppliers; +import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; +import dev.dhyces.trimmed.api.client.override.provider.ItemOverrideProvider; +import dev.dhyces.trimmed.api.client.override.provider.ItemOverrideProviderType; +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.component.DataComponents; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.Nullable; + +import java.util.Optional; +import java.util.function.Supplier; + +public class BlockStateItemOverrideProvider implements ItemOverrideProvider { + public static final Supplier LAZY_INSTANCE = Suppliers.memoize(BlockStateItemOverrideProvider::new); + public static final MapCodec CODEC = MapCodec.unit(LAZY_INSTANCE); + + public BlockStateItemOverrideProvider() {} + + @Override + public Optional getModel(ItemStack itemStack, @Nullable ClientLevel world, @Nullable LivingEntity entity, int seed) { + if (itemStack.has(DataComponents.BLOCK_STATE) && itemStack.getItem() instanceof BlockItem blockItem) { + BlockState state = itemStack.get(DataComponents.BLOCK_STATE).apply(blockItem.getBlock().defaultBlockState()); + return Optional.of(Minecraft.getInstance().getModelManager().getBlockModelShaper().getBlockModel(state)); + } + return Optional.empty(); + } + + @Override + public ItemOverrideProviderType getType() { + return MyProviderTypes.BLOCK_STATE; + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/client/providers/MyProviderTypes.java b/testmods/neo/src/main/java/dev/dhyces/testmod/client/providers/MyProviderTypes.java new file mode 100644 index 00000000..fdf37372 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/client/providers/MyProviderTypes.java @@ -0,0 +1,7 @@ +package dev.dhyces.testmod.client.providers; + +import dev.dhyces.trimmed.api.client.override.provider.ItemOverrideProviderType; + +public class MyProviderTypes { + public static final ItemOverrideProviderType BLOCK_STATE = () -> BlockStateItemOverrideProvider.CODEC; +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestAtlasProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestAtlasProvider.java new file mode 100644 index 00000000..f4404538 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestAtlasProvider.java @@ -0,0 +1,143 @@ +//package dev.dhyces.testmod.data; +// +//import com.google.gson.JsonElement; +//import com.mojang.serialization.DataResult; +//import com.mojang.serialization.JsonOps; +//import net.minecraft.client.renderer.texture.atlas.SpriteSource; +//import net.minecraft.client.renderer.texture.atlas.SpriteSources; +//import net.minecraft.data.CachedOutput; +//import net.minecraft.data.DataProvider; +//import net.minecraft.data.PackOutput; +//import net.minecraft.resources.ResourceLocation; +// +//import java.nio.file.Path; +//import java.util.HashMap; +//import java.util.LinkedList; +//import java.util.List; +//import java.util.Map; +//import java.util.concurrent.CompletableFuture; +// +//public class TestAtlasProvider implements DataProvider { +// +// private final PackOutput.PathProvider pathProvider; +// +// public TestAtlasProvider(PackOutput output) { +// this.pathProvider = output.createPathProvider(PackOutput.Target.RESOURCE_PACK, "atlases"); +// } +// +// protected void gatherSpriteSources(Gatherer gatherer) { +// // TODO: ALL OF THIS WAS MADE UNNECESSARY DUE TO NEW SYSTEM +//// gatherer.addAtlas(new ResourceLocation("armor_trims")) +//// .addSource(new PalettedPermutations( +//// List.of( +//// new ResourceLocation("trims/models/armor/coast"), +//// new ResourceLocation("trims/models/armor/coast_leggings"), +//// new ResourceLocation("trims/models/armor/sentry"), +//// new ResourceLocation("trims/models/armor/sentry_leggings"), +//// new ResourceLocation("trims/models/armor/dune"), +//// new ResourceLocation("trims/models/armor/dune_leggings"), +//// new ResourceLocation("trims/models/armor/wild"), +//// new ResourceLocation("trims/models/armor/wild_leggings"), +//// new ResourceLocation("trims/models/armor/ward"), +//// new ResourceLocation("trims/models/armor/ward_leggings"), +//// new ResourceLocation("trims/models/armor/eye"), +//// new ResourceLocation("trims/models/armor/eye_leggings"), +//// new ResourceLocation("trims/models/armor/vex"), +//// new ResourceLocation("trims/models/armor/vex_leggings"), +//// new ResourceLocation("trims/models/armor/tide"), +//// new ResourceLocation("trims/models/armor/tide_leggings"), +//// new ResourceLocation("trims/models/armor/snout"), +//// new ResourceLocation("trims/models/armor/snout_leggings"), +//// new ResourceLocation("trims/models/armor/rib"), +//// new ResourceLocation("trims/models/armor/rib_leggings"), +//// new ResourceLocation("trims/models/armor/spire"), +//// new ResourceLocation("trims/models/armor/spire_leggings"), +//// new ResourceLocation("trims/models/armor/wayfinder"), +//// new ResourceLocation("trims/models/armor/wayfinder_leggings"), +//// new ResourceLocation("trims/models/armor/shaper"), +//// new ResourceLocation("trims/models/armor/shaper_leggings"), +//// new ResourceLocation("trims/models/armor/silence"), +//// new ResourceLocation("trims/models/armor/silence_leggings"), +//// new ResourceLocation("trims/models/armor/raiser"), +//// new ResourceLocation("trims/models/armor/raiser_leggings"), +//// new ResourceLocation("trims/models/armor/host"), +//// new ResourceLocation("trims/models/armor/host_leggings"), +//// +//// new ResourceLocation(TrimmedTest.MODID, "trims/models/armor/spiral"), +//// new ResourceLocation(TrimmedTest.MODID, "trims/models/armor/spiral_leggings") +//// ), new ResourceLocation("trims/color_palettes/trim_palette"), +//// Util.make(new HashMap<>(), map -> { +//// map.put("echo", new ResourceLocation(TrimmedTest.MODID, "trims/color_palettes/echo")); +//// map.put("blaze", new ResourceLocation(TrimmedTest.MODID, "trims/color_palettes/blaze")); +//// map.put("shell", new ResourceLocation(TrimmedTest.MODID, "trims/color_palettes/shell")); +//// map.put("prismarine", new ResourceLocation(TrimmedTest.MODID, "trims/color_palettes/prismarine")); +//// map.put("glow", new ResourceLocation(TrimmedTest.MODID, "trims/color_palettes/glow")); +//// } +//// ) +//// )).finish(); +//// gatherer.addAtlas(new ResourceLocation("blocks")) +//// .addSource(new PalettedPermutations( +//// List.of( +//// new ResourceLocation("trims/items/leggings_trim"), +//// new ResourceLocation("trims/items/chestplate_trim"), +//// new ResourceLocation("trims/items/helmet_trim"), +//// new ResourceLocation("trims/items/boots_trim") +//// ), new ResourceLocation("trims/color_palettes/trim_palette"), +//// Util.make(new HashMap<>(), map -> { +//// map.put("echo", new ResourceLocation(TrimmedTest.MODID, "trims/color_palettes/echo")); +//// map.put("blaze", new ResourceLocation(TrimmedTest.MODID, "trims/color_palettes/blaze")); +//// map.put("shell", new ResourceLocation(TrimmedTest.MODID, "trims/color_palettes/shell")); +//// map.put("prismarine", new ResourceLocation(TrimmedTest.MODID, "trims/color_palettes/prismarine")); +//// map.put("glow", new ResourceLocation(TrimmedTest.MODID, "trims/color_palettes/glow")); +//// } +//// ) +//// )).finish(); +// } +// +// @Override +// public CompletableFuture run(CachedOutput cachedOutput) { +// Gatherer gatherer = new Gatherer(); +// gatherSpriteSources(gatherer); +// return CompletableFuture.allOf(gatherer.map.entrySet().stream().map(resourceLocationListEntry -> { +// DataResult element = SpriteSources.FILE_CODEC.encodeStart(JsonOps.INSTANCE, resourceLocationListEntry.getValue()); +// if (element.result().isEmpty()) { +// throw new IllegalStateException("invalid atlas: %s".formatted(resourceLocationListEntry.getKey())); +// } +// Path path = pathProvider.json(resourceLocationListEntry.getKey()); +// return DataProvider.saveStable(cachedOutput, element.get().left().get(), path); +// }).toArray(CompletableFuture[]::new)); +// } +// +// @Override +// public String getName() { +// return "Atlases"; +// } +// +// public class Gatherer { +// private Map> map = new HashMap<>(); +// +// public Builder addAtlas(ResourceLocation location) { +// return new Builder(this, location); +// } +// } +// +// public class Builder { +// Gatherer parent; +// ResourceLocation resourceLocation; +// List sources = new LinkedList<>(); +// +// Builder(Gatherer parent, ResourceLocation resourceLocation) { +// this.parent = parent; +// this.resourceLocation = resourceLocation; +// } +// +// public Builder addSource(SpriteSource source) { +// sources.add(source); +// return this; +// } +// +// public void finish() { +// parent.map.put(resourceLocation, sources); +// } +// } +//} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestDatagen.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestDatagen.java new file mode 100644 index 00000000..1589b38e --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestDatagen.java @@ -0,0 +1,67 @@ +package dev.dhyces.testmod.data; + +import dev.dhyces.testmod.registry.ModItems; +import dev.dhyces.testmod.ModTrimMaterials; +import dev.dhyces.testmod.ModTrimPatterns; +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.data.trimmed.TestClientMapProvider; +import dev.dhyces.testmod.data.trimmed.TestClientTagProvider; +import dev.dhyces.testmod.data.trimmed.TestItemOverrideProvider; +import dev.dhyces.testmod.data.trimmed.registrymaps.ClientBlockProvider; +import dev.dhyces.testmod.data.trimmed.registrymaps.ClientDamageTypeProvider; +import dev.dhyces.testmod.data.trimmed.registrymaps.EntityToEntityProvider; +import dev.dhyces.testmod.data.trimmed.registrytags.TestClientCustomObjTagProvider; +import dev.dhyces.testmod.data.trimmed.registrytags.TestClientItemTagProvider; +import dev.dhyces.trimmed.api.data.TrimDatagenSuite; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; +import net.minecraft.world.item.Items; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.common.data.LanguageProvider; +import net.neoforged.neoforge.data.event.GatherDataEvent; + +import java.util.concurrent.CompletableFuture; + +public class TestDatagen { + + public static void init(IEventBus modBus) { + modBus.addListener(TestDatagen::gatherDataEvent); + } + + private static void gatherDataEvent(final GatherDataEvent event) { + DataGenerator generator = event.getGenerator(); + PackOutput packOutput = generator.getPackOutput(); + CompletableFuture lookupProvider = event.getLookupProvider(); + TestItemTagProvider itemTagProvider = new TestItemTagProvider(packOutput, lookupProvider, TrimmedTest.MODID, event.getExistingFileHelper()); + generator.addProvider(event.includeServer(), itemTagProvider); + + LanguageProvider langProvider = new LanguageProvider(packOutput, TrimmedTest.MODID, "en_us") { + @Override + protected void addTranslations() {} + }; + + TrimDatagenSuite.create(event, TrimmedTest.MODID, langProvider::add) + .makeMaterial(ModTrimMaterials.ECHO, Items.ECHO_SHARD, 0x0A4F5F) + .makeMaterial(ModTrimMaterials.BLAZE, Items.BLAZE_POWDER, 0xFCA100) + .makeMaterial(ModTrimMaterials.SHELL, Items.NAUTILUS_SHELL, 0xD17E7E) + .makeMaterial(ModTrimMaterials.PRISMARINE, Items.PRISMARINE_CRYSTALS, 0xB2D5C8) + .makeMaterial(ModTrimMaterials.GLOW, Items.GLOW_INK_SAC, 0x7EFCBE) + .makeMaterial(ModTrimMaterials.ADAMANTIUM, ModItems.ADAMANTIUM.asItem(), 0x9d2638) + .makePattern(ModTrimPatterns.SPIRAL, ModItems.SPIRAL_PATTERN.asItem(), false, patternConfig -> patternConfig.createCopyRecipe(Items.NAUTILUS_SHELL)); + +// new TestTrimDatagenSuite(event, TrimmedTest.MODID, langProvider::add); + + generator.addProvider(event.includeClient(), langProvider); + generator.addProvider(event.includeClient(), new TestModelProvider(packOutput, TrimmedTest.MODID, event.getExistingFileHelper())); + + generator.addProvider(event.includeClient(), new TestItemOverrideProvider(packOutput)); + generator.addProvider(event.includeClient(), new TestClientTagProvider(packOutput, event.getExistingFileHelper())); + generator.addProvider(event.includeClient(), new TestClientItemTagProvider(packOutput, lookupProvider, event.getExistingFileHelper())); + generator.addProvider(event.includeClient(), new TestClientCustomObjTagProvider(packOutput, lookupProvider, event.getExistingFileHelper())); + generator.addProvider(event.includeClient(), new TestClientMapProvider(packOutput, event.getExistingFileHelper())); + generator.addProvider(event.includeClient(), new ClientBlockProvider(packOutput, lookupProvider, event.getExistingFileHelper())); + generator.addProvider(event.includeClient(), new ClientDamageTypeProvider(packOutput, lookupProvider, event.getExistingFileHelper())); + generator.addProvider(event.includeClient(), new EntityToEntityProvider(packOutput, lookupProvider, event.getExistingFileHelper())); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestItemTagProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestItemTagProvider.java new file mode 100644 index 00000000..5fc2d832 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestItemTagProvider.java @@ -0,0 +1,32 @@ +package dev.dhyces.testmod.data; + +import dev.dhyces.testmod.registry.ModItems; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.IntrinsicHolderTagsProvider; +import net.minecraft.tags.ItemTags; +import net.minecraft.world.item.Item; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import org.jetbrains.annotations.Nullable; + +import java.util.concurrent.CompletableFuture; + +public class TestItemTagProvider extends IntrinsicHolderTagsProvider { + + + public TestItemTagProvider(PackOutput p_256164_, CompletableFuture p_256488_, String modId, @Nullable ExistingFileHelper existingFileHelper) { + super(p_256164_, Registries.ITEM, p_256488_, item -> item.builtInRegistryHolder().key(), modId, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider pProvider) { + tag(ItemTags.TRIMMABLE_ARMOR) + .add( + ModItems.ADAMANTIUM_HELMET.get(), + ModItems.ADAMANTIUM_CHESTPLATE.get(), + ModItems.ADAMANTIUM_LEGGINGS.get(), + ModItems.ADAMANTIUM_BOOTS.get() + ); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestModelProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestModelProvider.java new file mode 100644 index 00000000..d560b3fc --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestModelProvider.java @@ -0,0 +1,18 @@ +package dev.dhyces.testmod.data; + +import dev.dhyces.testmod.registry.ModItems; +import net.minecraft.data.PackOutput; +import net.neoforged.neoforge.client.model.generators.ItemModelProvider; +import net.neoforged.neoforge.common.data.ExistingFileHelper; + +public class TestModelProvider extends ItemModelProvider { + public TestModelProvider(PackOutput output, String modid, ExistingFileHelper existingFileHelper) { + super(output, modid, existingFileHelper); + } + + @Override + protected void registerModels() { + basicItem(ModItems.SPIRAL_PATTERN.get()); + basicItem(ModItems.ADAMANTIUM.get()); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestTrimDatagenSuite.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestTrimDatagenSuite.java new file mode 100644 index 00000000..4b907692 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/TestTrimDatagenSuite.java @@ -0,0 +1,23 @@ +package dev.dhyces.testmod.data; + +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.registry.ModItems; +import dev.dhyces.trimmed.api.data.TrimDatagenSuite; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.item.Items; +import net.neoforged.neoforge.data.event.GatherDataEvent; +import org.jetbrains.annotations.Nullable; + +import java.util.function.BiConsumer; + +public class TestTrimDatagenSuite extends TrimDatagenSuite { + public TestTrimDatagenSuite(GatherDataEvent event, String modid, @Nullable BiConsumer translationConsumer) { + super(event, modid, translationConsumer); + } + + @Override + public void generate() { + makePattern(ResourceKey.create(Registries.TRIM_PATTERN, TrimmedTest.id("testertester")), ModItems.SCANNER.get(), false, patternConfig -> patternConfig.createCopyRecipe(Items.IRON_BOOTS)); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientMapProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientMapProvider.java new file mode 100644 index 00000000..24d2454a --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientMapProvider.java @@ -0,0 +1,19 @@ +package dev.dhyces.testmod.data.trimmed; + +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.client.TestClientMapKeys; +import dev.dhyces.trimmed.api.data.map.ClientMapDataProvider; +import net.minecraft.data.PackOutput; +import net.minecraft.resources.ResourceLocation; +import net.neoforged.neoforge.common.data.ExistingFileHelper; + +public class TestClientMapProvider extends ClientMapDataProvider { + public TestClientMapProvider(PackOutput packOutput, ExistingFileHelper existingFileHelper) { + super(packOutput, TrimmedTest.MODID, existingFileHelper); + } + + @Override + protected void addMaps() { + map(TestClientMapKeys.DATAGEN_TEST_MAP_2).put(TrimmedTest.id("some/kind/of/key"), "aValue"); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientTagProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientTagProvider.java new file mode 100644 index 00000000..2f5fedf6 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientTagProvider.java @@ -0,0 +1,23 @@ +package dev.dhyces.testmod.data.trimmed; + +import dev.dhyces.testmod.client.TestClientKeyResolvers; +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.trimmed.api.client.tag.ClientTagKey; +import dev.dhyces.trimmed.api.data.tag.ClientTagDataProvider; +import net.minecraft.data.PackOutput; +import net.minecraft.resources.ResourceLocation; +import net.neoforged.neoforge.common.data.ExistingFileHelper; + +public class TestClientTagProvider extends ClientTagDataProvider { + + public TestClientTagProvider(PackOutput packOutput, ExistingFileHelper existingFileHelper) { + super(packOutput, TrimmedTest.MODID, existingFileHelper, TestClientKeyResolvers.TEST); + } + + public static final ClientTagKey TEST_TAG = ClientTagKey.of(TestClientKeyResolvers.TEST, TrimmedTest.id("test_client_tag")); + + @Override + protected void addTags() { + clientTag(TEST_TAG).add(TrimmedTest.id("unreallll")).add(TrimmedTest.id("nahhhh")); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestItemOverrideProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestItemOverrideProvider.java new file mode 100644 index 00000000..5f81d0f3 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestItemOverrideProvider.java @@ -0,0 +1,24 @@ +package dev.dhyces.testmod.data.trimmed; + +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.client.providers.BlockStateItemOverrideProvider; +import dev.dhyces.trimmed.api.data.ItemOverrideDataProvider; +import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.core.component.DataComponents; +import net.minecraft.data.PackOutput; +import net.minecraft.world.item.component.BlockItemStateProperties; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.GrassBlock; + +public class TestItemOverrideProvider extends ItemOverrideDataProvider { + + public TestItemOverrideProvider(PackOutput output) { + super(output, TrimmedTest.MODID); + } + + @Override + protected void addItemOverrides() { + addComponentOverride(Blocks.GRASS_BLOCK, builder -> builder.set(DataComponents.BLOCK_STATE, BlockItemStateProperties.EMPTY.with(GrassBlock.SNOWY, true)), new ModelResourceLocation("minecraft", "grass_block", "snowy=true")); + addItemOverrides(Blocks.BAMBOO_STAIRS, new BlockStateItemOverrideProvider()); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/ClientBlockProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/ClientBlockProvider.java new file mode 100644 index 00000000..e338c531 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/ClientBlockProvider.java @@ -0,0 +1,24 @@ +package dev.dhyces.testmod.data.trimmed.registrymaps; + +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.client.TestClientMapKeys; +import dev.dhyces.trimmed.api.data.map.ClientRegistryMapDataProvider; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.PackOutput; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.neoforged.neoforge.common.data.ExistingFileHelper; + +import java.util.concurrent.CompletableFuture; + +public class ClientBlockProvider extends ClientRegistryMapDataProvider { + public ClientBlockProvider(PackOutput packOutput, CompletableFuture lookupProviderFuture, ExistingFileHelper existingFileHelper) { + super(packOutput, TrimmedTest.MODID, lookupProviderFuture, Registries.BLOCK, existingFileHelper); + } + + @Override + protected void addMaps(HolderLookup.Provider lookupProvider) { + map(TestClientMapKeys.DATAGEN_TEST_BLOCK_MAP, lookupProvider).put(Blocks.FIRE, "Hello!"); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/ClientDamageTypeProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/ClientDamageTypeProvider.java new file mode 100644 index 00000000..1ebd32fa --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/ClientDamageTypeProvider.java @@ -0,0 +1,26 @@ +package dev.dhyces.testmod.data.trimmed.registrymaps; + +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.client.TestClientMapKeys; +import dev.dhyces.trimmed.api.data.map.ClientRegistryMapDataProvider; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.PackOutput; +import net.minecraft.world.damagesource.DamageType; +import net.minecraft.world.damagesource.DamageTypes; +import net.neoforged.neoforge.common.data.ExistingFileHelper; + +import java.util.concurrent.CompletableFuture; + +public class ClientDamageTypeProvider extends ClientRegistryMapDataProvider { + public ClientDamageTypeProvider(PackOutput packOutput, CompletableFuture lookupProviderFuture, ExistingFileHelper existingFileHelper) { + super(packOutput, TrimmedTest.MODID, lookupProviderFuture, Registries.DAMAGE_TYPE, existingFileHelper); + } + + @Override + protected void addMaps(HolderLookup.Provider lookupProvider) { + // TODO: Bring back with data pack support +// map(TestClientMapKeys.DATAGEN_TEST_DAMAGE_TYPE_MAP, lookupProvider).put(DamageTypes.DRAGON_BREATH, 4); + + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/EntityToEntityProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/EntityToEntityProvider.java new file mode 100644 index 00000000..d615982e --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrymaps/EntityToEntityProvider.java @@ -0,0 +1,24 @@ +package dev.dhyces.testmod.data.trimmed.registrymaps; + +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.client.TestClientMapKeys; +import dev.dhyces.trimmed.api.data.map.ClientRegistryMapDataProvider; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.PackOutput; +import net.minecraft.world.entity.EntityType; +import net.neoforged.neoforge.common.data.ExistingFileHelper; + +import java.util.concurrent.CompletableFuture; + +public class EntityToEntityProvider extends ClientRegistryMapDataProvider> { + public EntityToEntityProvider(PackOutput packOutput, CompletableFuture lookupProviderFuture, ExistingFileHelper existingFileHelper) { + super(packOutput, TrimmedTest.MODID, lookupProviderFuture, Registries.ENTITY_TYPE, existingFileHelper); + } + + @Override + protected void addMaps(HolderLookup.Provider lookupProvider) { + map(TestClientMapKeys.DATAGEN_ENTITY_TRANSFORM, lookupProvider) + .put(EntityType.ALLAY, EntityType.BAT); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrytags/TestClientCustomObjTagProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrytags/TestClientCustomObjTagProvider.java new file mode 100644 index 00000000..90c2945a --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrytags/TestClientCustomObjTagProvider.java @@ -0,0 +1,24 @@ +package dev.dhyces.testmod.data.trimmed.registrytags; + +import dev.dhyces.testmod.TestKeyResolvers; +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.client.TestClientTags; +import dev.dhyces.testmod.registry.custom.CustomObj; +import dev.dhyces.testmod.registry.custom.CustomRegistration; +import dev.dhyces.trimmed.api.data.tag.ClientRegistryTagDataProvider; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.neoforged.neoforge.common.data.ExistingFileHelper; + +import java.util.concurrent.CompletableFuture; + +public class TestClientCustomObjTagProvider extends ClientRegistryTagDataProvider { + public TestClientCustomObjTagProvider(PackOutput packOutput, CompletableFuture lookupProviderFuture, ExistingFileHelper existingFileHelper) { + super(packOutput, TrimmedTest.MODID, lookupProviderFuture, TestKeyResolvers.CUSTOM_OBJ, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider lookupProvider) { + tag(TestClientTags.TEST_CUSTOM_REG_KEY, lookupProvider).add(CustomRegistration.OBJ); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrytags/TestClientItemTagProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrytags/TestClientItemTagProvider.java new file mode 100644 index 00000000..531ce911 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/registrytags/TestClientItemTagProvider.java @@ -0,0 +1,28 @@ +package dev.dhyces.testmod.data.trimmed.registrytags; + +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.trimmed.api.client.tag.ClientTagKey; +import dev.dhyces.trimmed.api.data.tag.ClientRegistryTagDataProvider; +import dev.dhyces.trimmed.impl.client.maps.KeyResolvers; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import net.neoforged.neoforge.common.data.ExistingFileHelper; + +import java.util.concurrent.CompletableFuture; + +public class TestClientItemTagProvider extends ClientRegistryTagDataProvider { + + public TestClientItemTagProvider(PackOutput packOutput, CompletableFuture lookupProviderFuture, ExistingFileHelper existingFileHelper) { + super(packOutput, TrimmedTest.MODID, lookupProviderFuture, KeyResolvers.ITEM, existingFileHelper); + } + + public static final ClientTagKey TEST_ITEM_TAG = ClientTagKey.of(KeyResolvers.ITEM, TrimmedTest.id("test_item_client_tag")); + + @Override + protected void addTags(HolderLookup.Provider lookupProvider) { + tag(TEST_ITEM_TAG, lookupProvider).add(Items.IRON_INGOT); + tag(TEST_ITEM_TAG, lookupProvider).add(Items.ACACIA_BOAT); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/item/AdamantiumArmorItem.java b/testmods/neo/src/main/java/dev/dhyces/testmod/item/AdamantiumArmorItem.java new file mode 100644 index 00000000..33b2ef4b --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/item/AdamantiumArmorItem.java @@ -0,0 +1,10 @@ +package dev.dhyces.testmod.item; + +import dev.dhyces.testmod.registry.ModArmorMaterials; +import net.minecraft.world.item.ArmorItem; + +public class AdamantiumArmorItem extends ArmorItem { + public AdamantiumArmorItem(Type type) { + super(ModArmorMaterials.ADAMANTIUM, type, new Properties().stacksTo(1).durability(9999)); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/item/ScannerItem.java b/testmods/neo/src/main/java/dev/dhyces/testmod/item/ScannerItem.java new file mode 100644 index 00000000..e6c14d20 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/item/ScannerItem.java @@ -0,0 +1,20 @@ +package dev.dhyces.testmod.item; + +import dev.dhyces.testmod.TrimmedTestClient; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.context.UseOnContext; + +public class ScannerItem extends Item { + public ScannerItem(Properties pProperties) { + super(pProperties); + } + + @Override + public InteractionResult useOn(UseOnContext pContext) { + if (pContext.getLevel().isClientSide()) { + TrimmedTestClient.printDescriptor(pContext.getPlayer(), pContext.getLevel().getBlockState(pContext.getClickedPos()).getBlock()); + } + return InteractionResult.sidedSuccess(pContext.getLevel().isClientSide()); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/item/TransformerItem.java b/testmods/neo/src/main/java/dev/dhyces/testmod/item/TransformerItem.java new file mode 100644 index 00000000..66c66c1a --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/item/TransformerItem.java @@ -0,0 +1,17 @@ +package dev.dhyces.testmod.item; + +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.context.UseOnContext; + +public class TransformerItem extends Item { + public TransformerItem(Properties pProperties) { + super(pProperties); + } + + @Override + public InteractionResult useOn(UseOnContext pContext) { + // TODO: impl when datapack maps are implemented. I forgot they weren't yet... + return super.useOn(pContext); + } +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModArmorMaterials.java b/testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModArmorMaterials.java new file mode 100644 index 00000000..ebbdbcf1 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModArmorMaterials.java @@ -0,0 +1,22 @@ +package dev.dhyces.testmod.registry; + +import dev.dhyces.testmod.TrimmedTest; +import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; +import net.minecraft.Util; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.crafting.Ingredient; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.List; + +public class ModArmorMaterials { + public static final DeferredRegister REGISTER = DeferredRegister.create(Registries.ARMOR_MATERIAL, TrimmedTest.MODID); + + public static final Holder ADAMANTIUM = REGISTER.register("adamantium", () -> new ArmorMaterial( + Util.make(new Object2IntOpenHashMap<>(), map -> map.defaultReturnValue(4)), + 2, SoundEvents.ARMOR_EQUIP_DIAMOND, () -> Ingredient.of(ModItems.ADAMANTIUM.get()), List.of(), 3, 5 + )); +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModItems.java b/testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModItems.java new file mode 100644 index 00000000..bec4f5d0 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModItems.java @@ -0,0 +1,23 @@ +package dev.dhyces.testmod.registry; + +import dev.dhyces.testmod.TrimmedTest; +import dev.dhyces.testmod.item.AdamantiumArmorItem; +import dev.dhyces.testmod.item.ScannerItem; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.Item; +import net.neoforged.neoforge.registries.DeferredItem; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class ModItems { + public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(TrimmedTest.MODID); + + public static final DeferredItem SPIRAL_PATTERN = ITEMS.register("spiral_armor_trim_smithing_template", () -> new Item(new Item.Properties())); + + public static final DeferredItem ADAMANTIUM_HELMET = ITEMS.register("adamantium_helmet", () -> new AdamantiumArmorItem(ArmorItem.Type.HELMET)); + public static final DeferredItem ADAMANTIUM_CHESTPLATE = ITEMS.register("adamantium_chestplate", () -> new AdamantiumArmorItem(ArmorItem.Type.CHESTPLATE)); + public static final DeferredItem ADAMANTIUM_LEGGINGS = ITEMS.register("adamantium_leggings", () -> new AdamantiumArmorItem(ArmorItem.Type.LEGGINGS)); + public static final DeferredItem ADAMANTIUM_BOOTS = ITEMS.register("adamantium_boots", () -> new AdamantiumArmorItem(ArmorItem.Type.BOOTS)); + + public static final DeferredItem ADAMANTIUM = ITEMS.register("adamantium", () -> new Item(new Item.Properties().fireResistant())); + public static final DeferredItem SCANNER = ITEMS.register("scanner", () -> new ScannerItem(new Item.Properties().stacksTo(1))); +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModTabs.java b/testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModTabs.java new file mode 100644 index 00000000..9b9cb06b --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/registry/ModTabs.java @@ -0,0 +1,25 @@ +package dev.dhyces.testmod.registry; + +import dev.dhyces.testmod.TrimmedTest; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.CreativeModeTabs; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class ModTabs { + public static final DeferredRegister REGISTER = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, TrimmedTest.MODID); + + public static final DeferredHolder TAB = REGISTER.register("test_tab", () -> CreativeModeTab.builder() + .title(Component.literal("My Tab")) + .displayItems((displayParameters, output) -> { + output.acceptAll(ModItems.ITEMS.getEntries().stream().map(reg -> reg.get().getDefaultInstance()).toList()); + }) + .icon(ModItems.SPIRAL_PATTERN::toStack) + .withSlotColor(0xFFFFAABB) + .withSearchBar() + .withTabsBefore(CreativeModeTabs.SPAWN_EGGS) + .build()); +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/registry/custom/CustomObj.java b/testmods/neo/src/main/java/dev/dhyces/testmod/registry/custom/CustomObj.java new file mode 100644 index 00000000..9dc457a0 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/registry/custom/CustomObj.java @@ -0,0 +1,4 @@ +package dev.dhyces.testmod.registry.custom; + +public record CustomObj(String str, int num) { +} diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/registry/custom/CustomRegistration.java b/testmods/neo/src/main/java/dev/dhyces/testmod/registry/custom/CustomRegistration.java new file mode 100644 index 00000000..07167874 --- /dev/null +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/registry/custom/CustomRegistration.java @@ -0,0 +1,15 @@ +package dev.dhyces.testmod.registry.custom; + +import dev.dhyces.testmod.TrimmedTest; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +public class CustomRegistration { + public static final ResourceKey> KEY = ResourceKey.createRegistryKey(TrimmedTest.id("custom")); + public static final DeferredRegister CUSTOM_DEFERRED_REGISTRY = DeferredRegister.create(KEY, TrimmedTest.MODID); + public static final Registry CUSTOM_REGISTRY = CUSTOM_DEFERRED_REGISTRY.makeRegistry(builder -> {}); + + public static final DeferredHolder OBJ = CUSTOM_DEFERRED_REGISTRY.register("test", () -> new CustomObj("Hello!", 42)); +} diff --git a/testmods/neo/src/main/resources/META-INF/neoforge.mods.toml b/testmods/neo/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..6ba90a1a --- /dev/null +++ b/testmods/neo/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,43 @@ +modLoader="javafml" +loaderVersion="[3,)" +license="MIT" +#issueTrackerURL="https://change.me.to.your.issue.tracker.example.invalid/" +[[mods]] +modId="testmod" +version="${file.jarVersion}" +displayName="TestMod" +#displayURL="https://change.me.to.your.mods.homepage.example.invalid/" +logoFile="icon.png" +credits="" +authors="Dhyces" +description='''Adding more armor trims to test!''' + +[[dependencies.testmod]] +modId = "trimmed" +versionRange = "[0,)" +type = "required" +ordering = "AFTER" + +[[accessTransformers]] +file = "META-INF/accesstransformer.cfg" + +[[mods]] +modId = "trimmed" +displayName = "Trimmed" +authors = "dhyces" +version = "2.1.4" +displayURL = "https://modrinth.com/mod/trimmed/" +sourcesUrl = "https://github.com/dhyces/trimmed/" +logoFile = "logo.png" +description = "Better item overrides! Better trim support! Override it all!" + +[[dependencies.trimmed]] +modId = "neoforge" +versionRange = "[20.6,21.0)" +type = "required" + +[[mixins]] +config = "trimmed.mixins.json" + +[[mixins]] +config = "trimmed.neo.mixins.json" diff --git a/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_boots.json b/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_boots.json new file mode 100644 index 00000000..b2719ff6 --- /dev/null +++ b/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "testmod:item/adamantium_boots" + } +} \ No newline at end of file diff --git a/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_chestplate.json b/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_chestplate.json new file mode 100644 index 00000000..29a496fa --- /dev/null +++ b/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "testmod:item/adamantium_chestplate" + } +} \ No newline at end of file diff --git a/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_helmet.json b/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_helmet.json new file mode 100644 index 00000000..213e9a63 --- /dev/null +++ b/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "testmod:item/adamantium_helmet" + } +} \ No newline at end of file diff --git a/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_leggings.json b/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_leggings.json new file mode 100644 index 00000000..c87bacc4 --- /dev/null +++ b/testmods/neo/src/main/resources/assets/testmod/models/item/adamantium_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "testmod:item/adamantium_leggings" + } +} \ No newline at end of file diff --git a/testmods/neo/src/main/resources/assets/testmod/models/item/scanner.json b/testmods/neo/src/main/resources/assets/testmod/models/item/scanner.json new file mode 100644 index 00000000..0116a525 --- /dev/null +++ b/testmods/neo/src/main/resources/assets/testmod/models/item/scanner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "testmod:item/scanner" + } +} \ No newline at end of file diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium.png b/testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium.png new file mode 100644 index 0000000000000000000000000000000000000000..b356e168ae1d6f87a3ba4e930cbd3fd1ef2b8c51 GIT binary patch literal 295 zcmV+?0oeYDP)Px#;Ymb6R5*>*kueIwKoCWLAlWprFsL9l7QsRsW()ZG}oq-Sks z?`8u3M~002ovPDHLkV1j3lbMOEF literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium_boots.png b/testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..4562fcd57637adb67217925f72b381a9cd797170 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~i2$DvS0Js* z!E4Va{?;q*sDi=ogXu{N@JE2Dw0rKmG=|DnhF9TVn__@wGI+ZBxvXzd$*Tk|4ie1|S~FVdQ&MBb@ E0A^TCmjD0& literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium_helmet.png b/testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..94fc80c144a225d3c36db7a08052094ed64384c4 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~i2$DvS0Js* z!E4Va{?;q*sDi;NDcRo(xBUPAf2(QlX`mcONswPK1CS2_S5Ji)0mbY*T^vIsrY`NV z7GqH0IplS)>c8}F$u)N7XI+dEzIFJUiCeS23~aulbxuMrHKE?&W>a!O>mPx033lSs b{$FA!*JC&;6uH(DXcB{`tDnm{r-UW|_-a2X literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium_leggings.png b/testmods/neo/src/main/resources/assets/testmod/textures/item/adamantium_leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..4a0acbe3cd7eb4ee1423847870ef8b801b19f02d GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~i2$DvS0Js* z!TZ)L&Yn;FsDi;NDcRo(xBUPAKepXjtWNO(2yBh|1+ku ma{p-h!@Tc+xyJpyCzw}NGb&e~Ui1fOCWEJ|pUXO@geCyj_C=Wh literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/item/scanner.png b/testmods/neo/src/main/resources/assets/testmod/textures/item/scanner.png new file mode 100644 index 0000000000000000000000000000000000000000..1a25dadb9816d5cc35284098ba430f78d87beb8c GIT binary patch literal 311 zcmV-70m%M|P)Px#@kvBMR5*>rlOe9cKoEvM2)1`x4Nd+l(5o8z2&XVv9zuVcJZ~xhug>S1R1p_};&+GEE7SD-*z>n2|-7usZh8E~qmIGZk zz@aEO6or9E5=)4@jL6FxARS*UC-NHveyj%l-?yOhxV0`5yC69ND9<*)Dxt1xCup;q zTeDysl&5v;Z#7kb>ATqztXlvLfyco7^hVA^E$58GXMf_~x&fsQW0Ek4w`KqU002ov JPDHLkV1mwOfYSf~ literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/item/spiral_armor_trim_smithing_template.png b/testmods/neo/src/main/resources/assets/testmod/textures/item/spiral_armor_trim_smithing_template.png new file mode 100644 index 0000000000000000000000000000000000000000..8579676dc2782678f5d5000861032eeb2bec2fd6 GIT binary patch literal 461 zcmV;;0W$uHP)t1OTKHDgCT|T_7_qhvtz20-zAlvMg2oy3p@( z<_7wM$$-o6D?CtS0#B4qq!!os69eq@w&#N;DgZD|Q|-T1w78Hh0N@NALXfOzrcR3fL6hwLLx_c^?Sa=xU+ z{v^3%j@$NaC~e&DE=B?sSCsQ5o?hF$|9l`m`x;j7)B&`6U_xhR?@ufgw-mtf#sNmg z(16ZMM-MN%>ni}dab3Johy}<;h?m$AI@fJyGS00000NkvXXu0mjf D!1&Lt literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/models/armor/adamantium_layer_1.png b/testmods/neo/src/main/resources/assets/testmod/textures/models/armor/adamantium_layer_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c4b7dcfa1d87e5d3ff0f9fe1d1f51e76b52f4f GIT binary patch literal 1233 zcmV;?1TOoDP)Px(i%CR5RA_|zBDti0KqYSFgw&i+PdyR&W{E0Mn}d}|3rT?dz|z_%)5GqJ*BfJ-V!)R2J$Yu{ z?CzWQ-gn-67P_F6E9gLL0F;QGH*;&RUr5`HLjtE4p{b>L9G*kE&B^E}VF$ZyF->OD`;rm>&C4Et=qczX*ofBUvfRUKQ4RKd4vP7tP0fqgDBQR1$@y|QlkV~Gqp6& z?S*xGX_~z1)Yx~^C=tG|eQvoH?>27XW^S+)JjXmApza^A<@#235b_AeTytBlZ?C!h ziO0R*CS~s}0Iyaa^KVL+J%(pv$C2XWpf!Qk+zW2PLvX!m?ahN-aKnSE z(t4X*B^;nd`S)s^iozxCl&#wqv(p-2b>b~bMuBmz1s|z8HMa19 z5t~O;y;{qQebEC!qK*=YTs;lITBK|{Jo->>8MljHb13hXpa|o9%k_a)tKX?lQc1n* zg9_)vg%gk|rVLM*EA*F%Hv>U}m-g~vc3KY-`+r4*u2wKEY^=A^fg>&hCU1fMcv9Dk z*u?L(;Nw8BHbAa4$KqjsYLTu7phU=MVWyE9h~g*Eng??mJn>%k<#}hS1yo;Nd480x z?*nP*gGZj*q^H#qNv?>;?pftK)f$~@m|i%dFUk0_DlmK8eDUJpWQzjD?6m&j)8~%z z#q6{$*P{UaPDKIX9b^Y@8wb)^T=I`;uUvqNl@e=xVfR%BuG@fj_4Jt?2`h^kX#rjcSh zQoxkuhV&|_(H3Rf!S3mTzJ!1;I;ti^i|vfXJSRu|4npyP1qb$z4gkf z#tq|hre7F$xp?ygTK`9g%bNo+i1#EeBk>wZvM7Y4)rnP&yg3MC(fHUXY7{s1e^Nd! zm(dc&_legMG8YL4;IDUoM=>~x65;m3I$N%`tZLSkgmD!g1Gb-FKDg@C$e(y$Sk|y| zQr?%(R>tCz{&;Z$t$8+f%uFLiIbk8g!oGxVUWqmt`3mi0EexwqcNe-}a$vuU|+pJFWL! vGn4K}W>;BZO0rP_&HFZvPx%BuPX;RA_vfRtEIBH)q_(kpKQPw2``>Zz-Myz1I2;a#!{Kl^91e%W z;rQQB%MB-oJpsr>&`NRk<6;Q0ej@NQr50MFZThw|N42WYlH`|m;I!l%z)CteloK*KtGxBIxVd8 z{ba`ew_JmSNktnelvv7bU7qLpX0hU(SXjQO2y z<}?4*{$-6})vs9};5zhb3mxlDP4unRwiQ1Uv3fo4Kh-@h?{B$imjOCFIR@bE@dvJg zJ3G%sTcMS*`trh6jyF7xzS}WozE$$<=)QaTN{*7Uj*NAOOoX!^`<%B%z@k=k^UwzF z%|r1=`kUy*%0I@Q9pW-&5?d3rQd|Xh#C}?H#%N8^t)|g=Yt*P;M~!Lx7Wf+`MZq5B z&J_|dncpMK4o->!Naotej*I=2NfF`AQ?E&{Rfkpc3%gGvdoRm79RL6T07*qoM6N<$ Ef>c%~umAu6 literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/adamantium.png b/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/adamantium.png new file mode 100644 index 0000000000000000000000000000000000000000..5cae68ca0f309102aef4083484ac5e9f02bd83d7 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^96-#-!2~38k}5=i6id3JuOkD)#=e^0fs=uJ6;Bt( z5RRFQk_^xOGyYfhd-wd!SGE@q7?@u${(r>s?ISzy&;S3oG4bt`{&+7QsGh;o)z4*} HQ$iB}x)36F literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/adamantium_darker.png b/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/adamantium_darker.png new file mode 100644 index 0000000000000000000000000000000000000000..362558973126a00372a4c2b00df1833f2b2604db GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^96-#-!2~38k}5=i6id3JuOkD)#=e^0fs=uJB~KT} z5RRG2b2L|d|N40P{4?|K85z_j{rTVb@_M;g-+i9{jH{0G=G_l?m`#kBM1Nh literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/blaze.png b/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/blaze.png new file mode 100644 index 0000000000000000000000000000000000000000..f74e4b16e60d934e2ce52bcec9616b29ab314e09 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^96-#-!2~38k}5=i6lZ})WHAE+w-5+3UbEal|F_Te};n{!2KYuneFzjOZf0*H+D8tV`3}^PA+RyO#F2iCao)>k7cWQv@89ZJ6 KT-G@yGywpo03f>n literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/echo.png b/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/echo.png new file mode 100644 index 0000000000000000000000000000000000000000..2a25cd2bb4e8f29131b0722a311625cd1d3243d1 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^96-#-!2~38k}5=i6lZ})WHAE+w-5+3UbEal|F*Etvj?YaOFaMssl2d&54SP>kF+aV!GQY5}GKNHU*3OIip_hS*89ZJ6T-G@y GGywoZc^$6+ literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/glow.png b/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/glow.png new file mode 100644 index 0000000000000000000000000000000000000000..fb1f74a34ea33c78df8d466e1e72542c88e177b0 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^96-#-!2~38k}5=i6lZ})WHAE+w-5+3UbEal|F_Te};n{!2-T&_${`=s}{a^2I{P_Cl`SZJXn1JZvLq;Lt>cFk1rvcS7c)I$z JtaD0e0swg>CYAsI literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/prismarine.png b/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/prismarine.png new file mode 100644 index 0000000000000000000000000000000000000000..602c881f31c99c529aa0fbbcaf304690cbb633b6 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^96-#-!2~38k}5=i6lZ})WHAE+w-5+3UbEal|F_Te};n{!2JI`)jd;k8!kMD24ef#*~!^ig@-#mQ$`oSY%RWXj(g_AA;)iZdy L`njxgN@xNAxgsdj literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/shell.png b/testmods/neo/src/main/resources/assets/testmod/textures/trims/color_palettes/shell.png new file mode 100644 index 0000000000000000000000000000000000000000..dadf05b61a4f6d5dc9aedc19b4148927560da0e9 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^96-#-!2~38k}5=i6lZ})WHAE+w-5+3UbEal|F_Te};n{!2i>D4ge|Y)L^{Y>wzw{K<`Tp(XlZ$UJ{eJygQt19(hHG{}^$eb_ KelF{r5}E*Lu_m|x literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/trims/models/armor/spiral.png b/testmods/neo/src/main/resources/assets/testmod/textures/trims/models/armor/spiral.png new file mode 100644 index 0000000000000000000000000000000000000000..f19bc32df642bf82609a01a08c5ed07993e56a75 GIT binary patch literal 333 zcmV-T0kZyyP)%atHQfqOif#ocb=K%sfFtg#4_yc#A{&o##cTBBN0K-y z@J{hnM?j3Rh%@{j0n4+a_Lp;46M%^37^5d5pCiIzvDIW?en+0)!BnEnKPgf$M3&%*_k2A@^>uCw8a6o36F|vd22-z7A_IR@8w3 f_{A+Ra98*M*2tzPH_6ru00000NkvXXu0mjfkFJRD literal 0 HcmV?d00001 diff --git a/testmods/neo/src/main/resources/assets/testmod/textures/trims/models/armor/spiral_leggings.png b/testmods/neo/src/main/resources/assets/testmod/textures/trims/models/armor/spiral_leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..aa3b341b1901c37da03aaa26fb95c9008d919fa2 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQqi6+jv*QM-d^3v$)L!?8sJ_o z;$Ao