diff --git a/build.gradle b/build.gradle index 98bd7c2..ba9b47f 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'eclipse' id 'idea' id 'maven-publish' - alias libs.plugins.neogradle + alias libs.plugins.modDevGradle alias libs.plugins.machete alias libs.plugins.spotless } @@ -19,7 +19,7 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(21) apply from: "$rootDir/gradle/scripts/dependencies.gradle" apply from: "$rootDir/gradle/scripts/jars.gradle" -apply from: "$rootDir/gradle/scripts/neogradle.gradle" +apply from: "$rootDir/gradle/scripts/moddevgradle.gradle" apply from: "$rootDir/gradle/scripts/publishing.gradle" apply from: "$rootDir/gradle/scripts/repositories.gradle" apply from: "$rootDir/gradle/scripts/resources.gradle" diff --git a/gradle/scripts/dependencies.gradle b/gradle/scripts/dependencies.gradle index 9039b26..85389d7 100644 --- a/gradle/scripts/dependencies.gradle +++ b/gradle/scripts/dependencies.gradle @@ -17,8 +17,6 @@ java { } dependencies { - implementation(forge.neoForge) - // Registrate api("com.tterrag.registrate:Registrate:${forge.versions.registrate.get()}") jarJar("com.tterrag.registrate:Registrate:${forge.versions.registrate.get()}") @@ -48,6 +46,11 @@ dependencies { implementation("curse.maven:glodium-957920:5821676") implementation("curse.maven:applied-flux-965012:5946853") + // applied mekanistics + implementation("curse.maven:mekanism-268560:6018306") + implementation("curse.maven:applied-mekanistics-574300:5978711") + + // lombok compileOnly 'org.projectlombok:lombok:1.18.30' annotationProcessor 'org.projectlombok:lombok:1.18.30' diff --git a/gradle/scripts/jars.gradle b/gradle/scripts/jars.gradle index 89350fd..25d94cb 100644 --- a/gradle/scripts/jars.gradle +++ b/gradle/scripts/jars.gradle @@ -2,15 +2,4 @@ java { withSourcesJar() } -// Enable the Jar-in-Jar system for your mod -jarJar.enable() - -tasks.jar { - archiveClassifier = "slim" -} - -tasks.jarJar { - archiveClassifier.convention(null) -} - archivesBaseName = "${project.name}-${libs.versions.minecraft.get()}" diff --git a/gradle/scripts/moddevgradle.gradle b/gradle/scripts/moddevgradle.gradle new file mode 100644 index 0000000..d1b3e39 --- /dev/null +++ b/gradle/scripts/moddevgradle.gradle @@ -0,0 +1,77 @@ +neoForge { + version = forge.versions.neoForge.get() + + parchment { + minecraftVersion = "1.21.1" + mappingsVersion = libs.versions.parchment.get() + } + + // This line is optional. Access Transformers are automatically detected + accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg') + + runs { + // applies to all the run configs below + configureEach { + // Recommended logging data for a userdev environment + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + systemProperty 'forge.logging.markers', 'REGISTRIES' + + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + logLevel = org.slf4j.event.Level.DEBUG + } + + client { + client() + + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id + } + + server { + server() + programArgument '--nogui' + systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id + } + + // This run config launches GameTestServer and runs all registered gametests, then exits. + // By default, the server will crash when no gametests are provided. + // The gametest system is also enabled by default for other run configs under the /test command. + gameTestServer { + type = "gameTestServer" + systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id + } + + data { + data() + + // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it + // gameDirectory = project.file('run-data') + + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() + } + } + + mods { + // define mod <-> source bindings + // these are used to tell the game which sources are for which mod + // mostly optional in a single mod project + // but multi mod projects should define one per mod + "${mod_id}" { + sourceSet(sourceSets.main) + } + } +} + +// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior. +idea { + module { + downloadSources = true + downloadJavadoc = true + } +} diff --git a/gradle/scripts/neogradle.gradle b/gradle/scripts/neogradle.gradle deleted file mode 100644 index 097af02..0000000 --- a/gradle/scripts/neogradle.gradle +++ /dev/null @@ -1,54 +0,0 @@ -subsystems { - parchment { - minecraftVersion = '1.20.6' - mappingsVersion = libs.versions.parchment.get() - } -} - -minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg') - -// Default run configurations. -// These can be tweaked, removed, or duplicated as needed. -runs { - // applies to all the run configs below - configureEach { - // Recommended logging data for a userdev environment - // The markers can be added/remove as needed separated by commas. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. - // systemProperty 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels - systemProperty 'forge.logging.console.level', 'debug' - - modSource project.sourceSets.main - } - - client { - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - systemProperty 'forge.enabledGameTestNamespaces', project.mod_id - } - - server { - systemProperty 'forge.enabledGameTestNamespaces', project.mod_id - programArgument '--nogui' - } - - // This run config launches GameTestServer and runs all registered gametests, then exits. - // By default, the server will crash when no gametests are provided. - // The gametest system is also enabled by default for other run configs under the /test command. - gameTestServer { - systemProperty 'forge.enabledGameTestNamespaces', project.mod_id - } - - data { - // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it - // workingDirectory project.file('run-data') - - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() - } -} diff --git a/gradle/scripts/publishing.gradle b/gradle/scripts/publishing.gradle index 3decacf..90b2796 100644 --- a/gradle/scripts/publishing.gradle +++ b/gradle/scripts/publishing.gradle @@ -1,6 +1,5 @@ artifacts { archives tasks.jar - archives tasks.jarJar archives tasks.sourcesJar } diff --git a/settings.gradle b/settings.gradle index 90983b6..e58ef28 100644 --- a/settings.gradle +++ b/settings.gradle @@ -21,22 +21,22 @@ dependencyResolutionManagement { // Mod Dependencies Versions // Common - def jeiVersion = "19.8.5.118" + def jeiVersion = "19.17.0.193" def reiVersion = "16.0.744" def ae2Version = "19.0.8-alpha" // NeoForge - def neoForgeVersion = "21.1.15" - def registrateForgeVersion = "MC1.21-1.3.0+50" + def neoForgeVersion = "21.1.79" + def registrateForgeVersion = "MC1.21-1.3.0+55" def jadeForgeVersion = "15.3.4+neoforge" def topForgeVersion = "1.20.4_neo-11.0.0-1" // Libs - def parchmentVersion = "2024.07.28" // https://parchmentmc.org/docs/getting-started + def parchmentVersion = "2024.11.17" // https://parchmentmc.org/docs/getting-started def shadowVersion = "7.1.2" def macheteVersion = "1.+" def spotlessVersion = "7.0.0.BETA1" - def neogradleVersion = "7.0.158" + def modDevGradleVersion = "2.0.34-beta" forge { version("forgeShortVersion", neoForgeVersion) @@ -70,8 +70,8 @@ dependencyResolutionManagement { version("parchment", parchmentVersion) version("minecraft", minecraftVersion) - def neogradle = version("neogradle", neogradleVersion) - plugin("neogradle", "net.neoforged.gradle.userdev").versionRef(neogradle) + def modDevGradle = version("modDevGradle", modDevGradleVersion) + plugin("modDevGradle", "net.neoforged.moddev").versionRef(modDevGradle) def shadow = version("shadow", shadowVersion) plugin("shadow", "com.github.johnrengelman.shadow").versionRef(shadow) diff --git a/src/generated/resources/assets/bigger_ae2/lang/en_ud.json b/src/generated/resources/assets/bigger_ae2/lang/en_ud.json index 4ab1831..eac5edd 100644 --- a/src/generated/resources/assets/bigger_ae2/lang/en_ud.json +++ b/src/generated/resources/assets/bigger_ae2/lang/en_ud.json @@ -5,10 +5,12 @@ "block.bigger_ae2.256_core_crafting_accelerator": "ɹoʇɐɹǝןǝɔɔⱯ buıʇɟɐɹƆ ǝɹoƆ 9ϛᄅ", "block.bigger_ae2.4_core_crafting_accelerator": "ɹoʇɐɹǝןǝɔɔⱯ buıʇɟɐɹƆ ǝɹoƆ ㄣ", "block.bigger_ae2.64_core_crafting_accelerator": "ɹoʇɐɹǝןǝɔɔⱯ buıʇɟɐɹƆ ǝɹoƆ ㄣ9", + "item.bigger_ae2.advanced_chemical_cell_housing": "buısnoH ןןǝƆ ןɐɔıɯǝɥƆ pǝɔuɐʌpⱯ", "item.bigger_ae2.advanced_fluid_cell_housing": "buısnoH ןןǝƆ pınןℲ pǝɔuɐʌpⱯ", "item.bigger_ae2.advanced_flux_cell_housing": "buısnoH ןןǝƆ xnןℲ pǝɔuɐʌpⱯ", "item.bigger_ae2.advanced_item_cell_housing": "buısnoH ןןǝƆ ɯǝʇI pǝɔuɐʌpⱯ", "item.bigger_ae2.digital_singularity_cell_component": "ʇuǝuodɯoƆ ןןǝƆ ʎʇıɹɐןnbuıS ןɐʇıbıᗡ", + "item.bigger_ae2.digital_singularity_chemical_storage_cell": "ןןǝƆ ǝbɐɹoʇS ןɐɔıɯǝɥƆ ʎʇıɹɐןnbuıS ןɐʇıbıᗡ", "item.bigger_ae2.digital_singularity_fluid_storage_cell": "ןןǝƆ ǝbɐɹoʇS pınןℲ ʎʇıɹɐןnbuıS ןɐʇıbıᗡ", "item.bigger_ae2.digital_singularity_flux_storage_cell": "ןןǝƆ ǝbɐɹoʇS xnןℲ ʎʇıɹɐןnbuıS ןɐʇıbıᗡ", "item.bigger_ae2.digital_singularity_item_storage_cell": "ןןǝƆ ǝbɐɹoʇS ɯǝʇI ʎʇıɹɐןnbuıS ןɐʇıbıᗡ", @@ -16,6 +18,7 @@ "item.bigger_ae2.quantum_fluid_storage_cell": "ןןǝƆ ǝbɐɹoʇS pınןℲ ɯnʇuɐnὉ", "item.bigger_ae2.quantum_flux_storage_cell": "ןןǝƆ ǝbɐɹoʇS xnןℲ ɯnʇuɐnὉ", "item.bigger_ae2.quantum_item_storage_cell": "ןןǝƆ ǝbɐɹoʇS ɯǝʇI ɯnʇuɐnὉ", + "item.bigger_ae2.quatum_chemical_storage_cell": "ןןǝƆ ǝbɐɹoʇS ןɐɔıɯǝɥƆ ɯnʇɐnὉ", "itemGroup.bigger_ae2.bigger_ae2": "ᄅǝⱯ ɹǝbbıᗺ", "tooltip.bigger_ae2.contains": "%s :suıɐʇuoƆ", "tooltip.bigger_ae2.empty": "ʎʇdɯƎ", diff --git a/src/generated/resources/assets/bigger_ae2/lang/en_us.json b/src/generated/resources/assets/bigger_ae2/lang/en_us.json index 6824f1c..7473de4 100644 --- a/src/generated/resources/assets/bigger_ae2/lang/en_us.json +++ b/src/generated/resources/assets/bigger_ae2/lang/en_us.json @@ -5,10 +5,12 @@ "block.bigger_ae2.256_core_crafting_accelerator": "256 Core Crafting Accelerator", "block.bigger_ae2.4_core_crafting_accelerator": "4 Core Crafting Accelerator", "block.bigger_ae2.64_core_crafting_accelerator": "64 Core Crafting Accelerator", + "item.bigger_ae2.advanced_chemical_cell_housing": "Advanced Chemical Cell Housing", "item.bigger_ae2.advanced_fluid_cell_housing": "Advanced Fluid Cell Housing", "item.bigger_ae2.advanced_flux_cell_housing": "Advanced Flux Cell Housing", "item.bigger_ae2.advanced_item_cell_housing": "Advanced Item Cell Housing", "item.bigger_ae2.digital_singularity_cell_component": "Digital Singularity Cell Component", + "item.bigger_ae2.digital_singularity_chemical_storage_cell": "Digital Singularity Chemical Storage Cell", "item.bigger_ae2.digital_singularity_fluid_storage_cell": "Digital Singularity Fluid Storage Cell", "item.bigger_ae2.digital_singularity_flux_storage_cell": "Digital Singularity Flux Storage Cell", "item.bigger_ae2.digital_singularity_item_storage_cell": "Digital Singularity Item Storage Cell", @@ -16,6 +18,7 @@ "item.bigger_ae2.quantum_fluid_storage_cell": "Quantum Fluid Storage Cell", "item.bigger_ae2.quantum_flux_storage_cell": "Quantum Flux Storage Cell", "item.bigger_ae2.quantum_item_storage_cell": "Quantum Item Storage Cell", + "item.bigger_ae2.quatum_chemical_storage_cell": "Quatum Chemical Storage Cell", "itemGroup.bigger_ae2.bigger_ae2": "Bigger Ae2", "tooltip.bigger_ae2.contains": "Contains: %s", "tooltip.bigger_ae2.empty": "Empty", diff --git a/src/generated/resources/assets/bigger_ae2/models/item/advanced_chemical_cell_housing.json b/src/generated/resources/assets/bigger_ae2/models/item/advanced_chemical_cell_housing.json new file mode 100644 index 0000000..ae657a9 --- /dev/null +++ b/src/generated/resources/assets/bigger_ae2/models/item/advanced_chemical_cell_housing.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "bigger_ae2:item/advanced_chemical_cell_housing" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bigger_ae2/models/item/digital_singularity_chemical_storage_cell.json b/src/generated/resources/assets/bigger_ae2/models/item/digital_singularity_chemical_storage_cell.json new file mode 100644 index 0000000..e6de0fb --- /dev/null +++ b/src/generated/resources/assets/bigger_ae2/models/item/digital_singularity_chemical_storage_cell.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "bigger_ae2:item/digital_singularity_chemical_storage_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/bigger_ae2/models/item/quatum_chemical_storage_cell.json b/src/generated/resources/assets/bigger_ae2/models/item/quatum_chemical_storage_cell.json new file mode 100644 index 0000000..bdac857 --- /dev/null +++ b/src/generated/resources/assets/bigger_ae2/models/item/quatum_chemical_storage_cell.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "bigger_ae2:item/quatum_chemical_storage_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bigger_ae2/advancement/recipes/misc/advanced_chemical_cell_housing.json b/src/generated/resources/data/bigger_ae2/advancement/recipes/misc/advanced_chemical_cell_housing.json new file mode 100644 index 0000000..279aa2b --- /dev/null +++ b/src/generated/resources/data/bigger_ae2/advancement/recipes/misc/advanced_chemical_cell_housing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "bigger_ae2:advanced_chemical_cell_housing" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "hasitem": { + "conditions": { + "items": [ + { + "items": "#c:ingots/refined_obsidian" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "hasitem" + ] + ], + "rewards": { + "recipes": [ + "bigger_ae2:advanced_chemical_cell_housing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bigger_ae2/advancement/recipes/misc/digital_singularity_chemical_storage_cell.json b/src/generated/resources/data/bigger_ae2/advancement/recipes/misc/digital_singularity_chemical_storage_cell.json new file mode 100644 index 0000000..3d0ff3f --- /dev/null +++ b/src/generated/resources/data/bigger_ae2/advancement/recipes/misc/digital_singularity_chemical_storage_cell.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "bigger_ae2:digital_singularity_chemical_storage_cell" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "hasitem": { + "conditions": { + "items": [ + { + "items": "bigger_ae2:advanced_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "hasitem" + ] + ], + "rewards": { + "recipes": [ + "bigger_ae2:digital_singularity_chemical_storage_cell" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bigger_ae2/advancement/recipes/misc/quatum_chemical_storage_cell.json b/src/generated/resources/data/bigger_ae2/advancement/recipes/misc/quatum_chemical_storage_cell.json new file mode 100644 index 0000000..81be5ea --- /dev/null +++ b/src/generated/resources/data/bigger_ae2/advancement/recipes/misc/quatum_chemical_storage_cell.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_item": { + "conditions": { + "items": [ + { + "items": "bigger_ae2:advanced_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "bigger_ae2:quatum_chemical_storage_cell" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_item" + ] + ], + "rewards": { + "recipes": [ + "bigger_ae2:quatum_chemical_storage_cell" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bigger_ae2/recipe/advanced_chemical_cell_housing.json b/src/generated/resources/data/bigger_ae2/recipe/advanced_chemical_cell_housing.json new file mode 100644 index 0000000..161a242 --- /dev/null +++ b/src/generated/resources/data/bigger_ae2/recipe/advanced_chemical_cell_housing.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "ae2:quartz_glass" + }, + "B": { + "item": "minecraft:redstone" + }, + "C": { + "tag": "c:ingots/refined_obsidian" + } + }, + "pattern": [ + "ABA", + "B B", + "CCC" + ], + "result": { + "count": 1, + "id": "bigger_ae2:advanced_chemical_cell_housing" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bigger_ae2/recipe/cell_upgrade/quatum_chemical_storage_cell.json b/src/generated/resources/data/bigger_ae2/recipe/cell_upgrade/quatum_chemical_storage_cell.json new file mode 100644 index 0000000..fb02164 --- /dev/null +++ b/src/generated/resources/data/bigger_ae2/recipe/cell_upgrade/quatum_chemical_storage_cell.json @@ -0,0 +1,14 @@ +{ + "type": "ae2:storage_cell_disassembly", + "cell": "bigger_ae2:quatum_chemical_storage_cell", + "cell_disassembly_items": [ + { + "count": 1, + "id": "bigger_ae2:advanced_chemical_cell_housing" + }, + { + "count": 1, + "id": "bigger_ae2:quantum_cell_component" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/bigger_ae2/recipe/digital_singularity_chemical_storage_cell.json b/src/generated/resources/data/bigger_ae2/recipe/digital_singularity_chemical_storage_cell.json new file mode 100644 index 0000000..c47ba34 --- /dev/null +++ b/src/generated/resources/data/bigger_ae2/recipe/digital_singularity_chemical_storage_cell.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "bigger_ae2:advanced_chemical_cell_housing" + }, + { + "item": "bigger_ae2:digital_singularity_cell_component" + } + ], + "result": { + "count": 1, + "id": "bigger_ae2:digital_singularity_chemical_storage_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/bigger_ae2/recipe/quatum_chemical_storage_cell.json b/src/generated/resources/data/bigger_ae2/recipe/quatum_chemical_storage_cell.json new file mode 100644 index 0000000..9185592 --- /dev/null +++ b/src/generated/resources/data/bigger_ae2/recipe/quatum_chemical_storage_cell.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "bigger_ae2:advanced_chemical_cell_housing" + }, + { + "item": "bigger_ae2:quantum_cell_component" + } + ], + "result": { + "count": 1, + "id": "bigger_ae2:quatum_chemical_storage_cell" + } +} \ No newline at end of file diff --git a/src/main/java/cn/dancingsnow/bigger_ae2/BiggerAE2Mod.java b/src/main/java/cn/dancingsnow/bigger_ae2/BiggerAE2Mod.java index b522494..e1350e5 100644 --- a/src/main/java/cn/dancingsnow/bigger_ae2/BiggerAE2Mod.java +++ b/src/main/java/cn/dancingsnow/bigger_ae2/BiggerAE2Mod.java @@ -7,6 +7,7 @@ import cn.dancingsnow.bigger_ae2.init.ModCreativeTab; import cn.dancingsnow.bigger_ae2.init.ModItems; import cn.dancingsnow.bigger_ae2.integration.appliedflux.AppliedFluxItems; +import cn.dancingsnow.bigger_ae2.integration.appliedmekanistics.AppliedMekanisticsItems; import cn.dancingsnow.bigger_ae2.item.cell.DigitalSingularityCellItem; import appeng.api.storage.StorageCells; @@ -20,6 +21,7 @@ import net.minecraft.server.packs.repository.Pack; import net.minecraft.server.packs.repository.PackSource; import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModList; import net.neoforged.fml.common.Mod; import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; import net.neoforged.neoforge.event.AddPackFindersEvent; @@ -44,13 +46,18 @@ public BiggerAE2Mod(IEventBus modEventBus) { ModBlockEntities.register(); ModComponents.register(modEventBus); - try { - Class.forName("com.glodblock.github.appflux.common.me.key.type.FluxKeyType"); + if (ModList.get().isLoaded("appflux")) { AppliedFluxItems.register(); - } catch (ClassNotFoundException e) { + } else { BiggerAE2Mod.LOGGER.debug("Applied Flux not installed, passed"); } + if (ModList.get().isLoaded("appmek")) { + AppliedMekanisticsItems.register(); + } else { + BiggerAE2Mod.LOGGER.debug("Applied Mekanistics not installed, passed"); + } + modEventBus.addListener(BiggerAE2Mod::initUpgrades); modEventBus.addListener(BiggerAE2Mod::initStorageCells); modEventBus.addListener(BiggerAE2Mod::packSetup); diff --git a/src/main/java/cn/dancingsnow/bigger_ae2/init/ModCreativeTab.java b/src/main/java/cn/dancingsnow/bigger_ae2/init/ModCreativeTab.java index 11e9481..1626063 100644 --- a/src/main/java/cn/dancingsnow/bigger_ae2/init/ModCreativeTab.java +++ b/src/main/java/cn/dancingsnow/bigger_ae2/init/ModCreativeTab.java @@ -11,35 +11,6 @@ public class ModCreativeTab { public static final RegistryEntry TAB = REGISTRATE .defaultCreativeTab("bigger_ae2", builder -> builder .icon(() -> ModItems.SINGULARITY_ITEM_CELL.get().getDefaultInstance()) - // .displayItems((parameters, output) -> { - // boolean isAppliedFluxLoaded = false; - // try { - // - // Class.forName("com.glodblock.github.appflux.common.me.key.type.FluxKeyType"); - // isAppliedFluxLoaded = true; - // } catch (ClassNotFoundException e) { - // BiggerAE2Mod.LOGGER.debug("Applied Flux not installed, - // passed"); - // } - // output.accept(ModItems.ADVANCED_ITEM_CELL_HOUSING); - // output.accept(ModItems.ADVANCED_FLUID_CELL_HOUSING); - // if (isAppliedFluxLoaded) - // output.accept(AppliedFluxItems.ADVANCED_FLUX_CELL_HOUSING); - // output.accept(ModItems.QUANTUM_CELL_COMPONENT); - // output.accept(ModItems.QUANTUM_ITEM_CELL); - // output.accept(ModItems.QUANTUM_FLUID_CELL); - // if (isAppliedFluxLoaded) - // output.accept(AppliedFluxItems.QUANTUM_FLUX_CELL); - // output.accept(ModItems.SINGULARITY_CELL_COMPONENT); - // output.accept(ModItems.SINGULARITY_ITEM_CELL); - // output.accept(ModItems.SINGULARITY_FLUID_CELL); - // if (isAppliedFluxLoaded) - // output.accept(AppliedFluxItems.SINGULARITY_FLUX_CELL); - // output.accept(ModBlocks.ACCELERATOR_4); - // output.accept(ModBlocks.ACCELERATOR_16); - // output.accept(ModBlocks.ACCELERATOR_64); - // output.accept(ModBlocks.ACCELERATOR_256); - // }) .build()) .register(); diff --git a/src/main/java/cn/dancingsnow/bigger_ae2/integration/appliedmekanistics/AppliedMekanisticsItems.java b/src/main/java/cn/dancingsnow/bigger_ae2/integration/appliedmekanistics/AppliedMekanisticsItems.java new file mode 100644 index 0000000..2647cfd --- /dev/null +++ b/src/main/java/cn/dancingsnow/bigger_ae2/integration/appliedmekanistics/AppliedMekanisticsItems.java @@ -0,0 +1,84 @@ +package cn.dancingsnow.bigger_ae2.integration.appliedmekanistics; + +import cn.dancingsnow.bigger_ae2.init.ModItems; +import cn.dancingsnow.bigger_ae2.integration.appliedmekanistics.item.AdvancedChemicalStorageCell; +import cn.dancingsnow.bigger_ae2.item.cell.DigitalSingularityCellItem; + +import appeng.core.definitions.AEBlocks; +import appeng.items.materials.MaterialItem; +import appeng.recipes.game.StorageCellDisassemblyRecipe; + +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.data.recipes.ShapedRecipeBuilder; +import net.minecraft.data.recipes.ShapelessRecipeBuilder; +import net.minecraft.world.item.Items; + +import com.tterrag.registrate.providers.RegistrateRecipeProvider; +import com.tterrag.registrate.util.entry.ItemEntry; +import me.ramidzkh.mekae2.ae2.MekanismKeyType; +import mekanism.common.tags.MekanismTags; + +import java.util.List; + +import static cn.dancingsnow.bigger_ae2.BiggerAE2Mod.REGISTRATE; + +public class AppliedMekanisticsItems { + + public static final ItemEntry ADVANCED_CHEMICAL_CELL_HOUSING = REGISTRATE + .item("advanced_chemical_cell_housing", MaterialItem::new) + .recipe((ctx, provider) -> { + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ctx.get()) + .pattern("ABA") + .pattern("B B") + .pattern("CCC") + .define('A', AEBlocks.QUARTZ_GLASS) + .define('B', Items.REDSTONE) + .define('C', MekanismTags.Items.INGOTS_REFINED_OBSIDIAN) + .unlockedBy( + "hasitem", RegistrateRecipeProvider.has(MekanismTags.Items.INGOTS_REFINED_OBSIDIAN)) + .save(provider); + }) + .register(); + + public static final ItemEntry QUANTUM_CHEMICAL_STORAGE_CELL = + REGISTRATE + .item( + "quatum_chemical_storage_cell", + p -> new AdvancedChemicalStorageCell(p, 20, (1 << 28 - 1) / 1024, 65536, 1)) + .recipe((ctx, provider) -> { + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ctx.get()) + .requires(ADVANCED_CHEMICAL_CELL_HOUSING) + .requires(ModItems.QUANTUM_CELL_COMPONENT) + .unlockedBy( + "has_item", RegistrateRecipeProvider.has(ADVANCED_CHEMICAL_CELL_HOUSING)) + .save(provider); + provider.accept( + ctx.getId().withPrefix("cell_upgrade/"), + new StorageCellDisassemblyRecipe( + ctx.get(), + List.of( + ADVANCED_CHEMICAL_CELL_HOUSING.asStack(), + ModItems.QUANTUM_CELL_COMPONENT.asStack())), + null); + }) + .register(); + + public static final ItemEntry SINGULARITY_CHEMICAL_STORAGE_CELL = + REGISTRATE + .item( + "digital_singularity_chemical_storage_cell", + p -> new DigitalSingularityCellItem( + p, + MekanismKeyType.TYPE, + ModItems.SINGULARITY_CELL_COMPONENT, + ADVANCED_CHEMICAL_CELL_HOUSING)) + .recipe((ctx, provider) -> ShapelessRecipeBuilder.shapeless( + RecipeCategory.MISC, ctx.get()) + .requires(ADVANCED_CHEMICAL_CELL_HOUSING) + .requires(ModItems.SINGULARITY_CELL_COMPONENT) + .unlockedBy("hasitem", RegistrateRecipeProvider.has(ADVANCED_CHEMICAL_CELL_HOUSING)) + .save(provider)) + .register(); + + public static void register() {} +} diff --git a/src/main/java/cn/dancingsnow/bigger_ae2/integration/appliedmekanistics/item/AdvancedChemicalStorageCell.java b/src/main/java/cn/dancingsnow/bigger_ae2/integration/appliedmekanistics/item/AdvancedChemicalStorageCell.java new file mode 100644 index 0000000..8b34a81 --- /dev/null +++ b/src/main/java/cn/dancingsnow/bigger_ae2/integration/appliedmekanistics/item/AdvancedChemicalStorageCell.java @@ -0,0 +1,25 @@ +package cn.dancingsnow.bigger_ae2.integration.appliedmekanistics.item; + +import appeng.api.stacks.AEKey; +import appeng.items.storage.BasicStorageCell; + +import net.minecraft.world.item.ItemStack; + +import me.ramidzkh.mekae2.ae2.MekanismKey; +import me.ramidzkh.mekae2.ae2.MekanismKeyType; +import mekanism.api.chemical.attribute.ChemicalAttributeValidator; + +public class AdvancedChemicalStorageCell extends BasicStorageCell { + public AdvancedChemicalStorageCell( + Properties properties, double idleDrain, int kilobytes, int bytesPerType, int totalTypes) { + super(properties, idleDrain, kilobytes, bytesPerType, totalTypes, MekanismKeyType.TYPE); + } + + public boolean isBlackListed(ItemStack cellItem, AEKey requestedAddition) { + if (requestedAddition instanceof MekanismKey key) { + return !ChemicalAttributeValidator.DEFAULT.process(key.getStack()); + } else { + return true; + } + } +} diff --git a/src/main/resources/assets/bigger_ae2/lang/zh_cn.json b/src/main/resources/assets/bigger_ae2/lang/zh_cn.json index 6c51dae..ac2c9c7 100644 --- a/src/main/resources/assets/bigger_ae2/lang/zh_cn.json +++ b/src/main/resources/assets/bigger_ae2/lang/zh_cn.json @@ -1,24 +1,27 @@ { - "bigger_ae2.old_pack": "Bigger AE2 旧版贴图", - "block.bigger_ae2.1024_core_crafting_accelerator": "1024核并行处理单元", - "block.bigger_ae2.16_core_crafting_accelerator": "16核并行处理单元", - "block.bigger_ae2.256_core_crafting_accelerator": "256核并行处理单元", - "block.bigger_ae2.4_core_crafting_accelerator": "4核并行处理单元", - "block.bigger_ae2.64_core_crafting_accelerator": "64核并行处理单元", - "item.bigger_ae2.advanced_fluid_cell_housing": "进阶流体元件外壳", - "item.bigger_ae2.advanced_flux_cell_housing": "进阶FE元件外壳", - "item.bigger_ae2.advanced_item_cell_housing": "进阶物品元件外壳", - "item.bigger_ae2.digital_singularity_cell_component": "数字奇点存储组件", - "item.bigger_ae2.digital_singularity_fluid_storage_cell": "数字奇点流体存储元件", - "item.bigger_ae2.digital_singularity_flux_storage_cell": "数字奇点FE存储元件", - "item.bigger_ae2.digital_singularity_item_storage_cell": "数字奇点物品存储元件", - "item.bigger_ae2.quantum_cell_component": "量子存储组件", - "item.bigger_ae2.quantum_fluid_storage_cell": "量子流体存储元件", - "item.bigger_ae2.quantum_flux_storage_cell": "量子FE存储元件", - "item.bigger_ae2.quantum_item_storage_cell": "量子物品存储元件", - "itemGroup.bigger_ae2.bigger_ae2": "Bigger AE2", - "tooltip.bigger_ae2.contains": "包含: %s", - "tooltip.bigger_ae2.empty": "空", - "tooltip.bigger_ae2.partitioned": "已过滤: %s", - "tooltip.bigger_ae2.quantity": "已存储: %s" + "bigger_ae2.old_pack": "Bigger AE2 旧版贴图", + "block.bigger_ae2.1024_core_crafting_accelerator": "1024核并行处理单元", + "block.bigger_ae2.16_core_crafting_accelerator": "16核并行处理单元", + "block.bigger_ae2.256_core_crafting_accelerator": "256核并行处理单元", + "block.bigger_ae2.4_core_crafting_accelerator": "4核并行处理单元", + "block.bigger_ae2.64_core_crafting_accelerator": "64核并行处理单元", + "item.bigger_ae2.advanced_chemical_cell_housing": "进阶化学品原件外壳", + "item.bigger_ae2.advanced_fluid_cell_housing": "进阶流体元件外壳", + "item.bigger_ae2.advanced_flux_cell_housing": "进阶FE元件外壳", + "item.bigger_ae2.advanced_item_cell_housing": "进阶物品元件外壳", + "item.bigger_ae2.digital_singularity_cell_component": "数字奇点存储组件", + "item.bigger_ae2.digital_singularity_chemical_storage_cell": "数字奇点化学品存储元件", + "item.bigger_ae2.digital_singularity_fluid_storage_cell": "数字奇点流体存储元件", + "item.bigger_ae2.digital_singularity_flux_storage_cell": "数字奇点FE存储元件", + "item.bigger_ae2.digital_singularity_item_storage_cell": "数字奇点物品存储元件", + "item.bigger_ae2.quantum_cell_component": "量子存储组件", + "item.bigger_ae2.quantum_fluid_storage_cell": "量子流体存储元件", + "item.bigger_ae2.quantum_flux_storage_cell": "量子FE存储元件", + "item.bigger_ae2.quantum_item_storage_cell": "量子物品存储元件", + "item.bigger_ae2.quatum_chemical_storage_cell": "量子化学品存储元件", + "itemGroup.bigger_ae2.bigger_ae2": "Bigger AE2", + "tooltip.bigger_ae2.contains": "包含: %s", + "tooltip.bigger_ae2.empty": "空", + "tooltip.bigger_ae2.partitioned": "已过滤: %s", + "tooltip.bigger_ae2.quantity": "已存储: %s" } \ No newline at end of file diff --git a/src/main/resources/assets/bigger_ae2/textures/item/advanced_chemical_cell_housing.png b/src/main/resources/assets/bigger_ae2/textures/item/advanced_chemical_cell_housing.png new file mode 100644 index 0000000..906e943 Binary files /dev/null and b/src/main/resources/assets/bigger_ae2/textures/item/advanced_chemical_cell_housing.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/advanced_fluid_cell_housing.png b/src/main/resources/assets/bigger_ae2/textures/item/advanced_fluid_cell_housing.png index 2f20144..d6822e8 100644 Binary files a/src/main/resources/assets/bigger_ae2/textures/item/advanced_fluid_cell_housing.png and b/src/main/resources/assets/bigger_ae2/textures/item/advanced_fluid_cell_housing.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/advanced_flux_cell_housing.png b/src/main/resources/assets/bigger_ae2/textures/item/advanced_flux_cell_housing.png index cbb70d9..9670a9a 100644 Binary files a/src/main/resources/assets/bigger_ae2/textures/item/advanced_flux_cell_housing.png and b/src/main/resources/assets/bigger_ae2/textures/item/advanced_flux_cell_housing.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/advanced_item_cell_housing.png b/src/main/resources/assets/bigger_ae2/textures/item/advanced_item_cell_housing.png index d7c3d02..32e978d 100644 Binary files a/src/main/resources/assets/bigger_ae2/textures/item/advanced_item_cell_housing.png and b/src/main/resources/assets/bigger_ae2/textures/item/advanced_item_cell_housing.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_cell_component.png b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_cell_component.png index 9930419..0519041 100644 Binary files a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_cell_component.png and b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_cell_component.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_cell_component.png.mcmeta b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_cell_component.png.mcmeta index ecb3189..ddcf4b5 100644 --- a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_cell_component.png.mcmeta +++ b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_cell_component.png.mcmeta @@ -37,6 +37,34 @@ { "index": 8, "time": 4 + }, + { + "index": 9, + "time": 4 + }, + { + "index": 10, + "time": 4 + }, + { + "index": 11, + "time": 4 + }, + { + "index": 12, + "time": 4 + }, + { + "index": 13, + "time": 20 + }, + { + "index": 14, + "time": 4 + }, + { + "index": 15, + "time": 4 } ] } diff --git a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_chemical_storage_cell.png b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_chemical_storage_cell.png new file mode 100644 index 0000000..79f201f Binary files /dev/null and b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_chemical_storage_cell.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_chemical_storage_cell.png.mcmeta b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_chemical_storage_cell.png.mcmeta new file mode 100644 index 0000000..f979fff --- /dev/null +++ b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_chemical_storage_cell.png.mcmeta @@ -0,0 +1,31 @@ +{ + "animation": { + "interpolate": true, + "frames": [ + { + "index": 0, + "time": 4 + }, + { + "index": 1, + "time": 4 + }, + { + "index": 2, + "time": 4 + }, + { + "index": 3, + "time": 4 + }, + { + "index": 2, + "time": 4 + }, + { + "index": 1, + "time": 4 + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_fluid_storage_cell.png b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_fluid_storage_cell.png index 00bfae9..b81b1c2 100644 Binary files a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_fluid_storage_cell.png and b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_fluid_storage_cell.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_flux_storage_cell.png b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_flux_storage_cell.png index 12ee2f8..c3d2cd9 100644 Binary files a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_flux_storage_cell.png and b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_flux_storage_cell.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_item_storage_cell.png b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_item_storage_cell.png index 4b30da0..dce75c1 100644 Binary files a/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_item_storage_cell.png and b/src/main/resources/assets/bigger_ae2/textures/item/digital_singularity_item_storage_cell.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/quantum_fluid_storage_cell.png b/src/main/resources/assets/bigger_ae2/textures/item/quantum_fluid_storage_cell.png index 82c7685..58c7e67 100644 Binary files a/src/main/resources/assets/bigger_ae2/textures/item/quantum_fluid_storage_cell.png and b/src/main/resources/assets/bigger_ae2/textures/item/quantum_fluid_storage_cell.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/quantum_flux_storage_cell.png b/src/main/resources/assets/bigger_ae2/textures/item/quantum_flux_storage_cell.png index f2c0dfb..c206059 100644 Binary files a/src/main/resources/assets/bigger_ae2/textures/item/quantum_flux_storage_cell.png and b/src/main/resources/assets/bigger_ae2/textures/item/quantum_flux_storage_cell.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/quantum_item_storage_cell.png b/src/main/resources/assets/bigger_ae2/textures/item/quantum_item_storage_cell.png index b8bbf39..665bc91 100644 Binary files a/src/main/resources/assets/bigger_ae2/textures/item/quantum_item_storage_cell.png and b/src/main/resources/assets/bigger_ae2/textures/item/quantum_item_storage_cell.png differ diff --git a/src/main/resources/assets/bigger_ae2/textures/item/quatum_chemical_storage_cell.png b/src/main/resources/assets/bigger_ae2/textures/item/quatum_chemical_storage_cell.png new file mode 100644 index 0000000..84a14cd Binary files /dev/null and b/src/main/resources/assets/bigger_ae2/textures/item/quatum_chemical_storage_cell.png differ