diff --git a/build.gradle.kts b/build.gradle.kts index e4e63ebb..8b43562b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,6 +14,11 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(21) dependencies { implementation(libs.ae2) implementation(libs.ae2wtlib) + + implementation(libs.appmek) + compileOnly(libs.mekanism) + compileOnly(variantOf(libs.mekanism) { classifier("generators") }) + runtimeOnly(variantOf(libs.mekanism) { classifier("all") }) } sourceSets { diff --git a/settings.gradle.kts b/settings.gradle.kts index 631f6ad6..8c984e4b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -40,7 +40,8 @@ run { versionCatalogs { create("libs") { - version("minecraft", "1.21") + val mc = "1.21" + version("minecraft", mc) version("neoforge", "21.0.87-beta") version("parchment", "2024.06.23") @@ -48,6 +49,9 @@ run { library("ae2", "appeng", "appliedenergistics2").versionRef("ae2") library("ae2wtlib", "maven.modrinth", "applied-energistics-2-wireless-terminals").version("WyPbb8sE") + + library("appmek", "maven.modrinth", "applied-mekanistics").version("yh6fz02r") + library("mekanism", "mekanism", "Mekanism").version("$mc-10.6.5.52") } } } diff --git a/src/data/java/gripe/_90/megacells/datagen/MEGAModelProvider.java b/src/data/java/gripe/_90/megacells/datagen/MEGAModelProvider.java index 3a039f57..9dd6b998 100644 --- a/src/data/java/gripe/_90/megacells/datagen/MEGAModelProvider.java +++ b/src/data/java/gripe/_90/megacells/datagen/MEGAModelProvider.java @@ -7,7 +7,6 @@ import net.minecraft.data.models.blockstates.PropertyDispatch; import net.minecraft.data.models.blockstates.Variant; import net.minecraft.data.models.blockstates.VariantProperties; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.PackType; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.neoforged.neoforge.client.model.generators.ConfiguredModel; @@ -45,6 +44,7 @@ public MEGAModelProvider(PackOutput output, ExistingFileHelper existing) { protected void registerStatesAndModels() { basicItem(MEGAItems.SKY_STEEL_INGOT); basicItem(MEGAItems.SKY_BRONZE_INGOT); + basicItem(MEGAItems.SKY_OSMIUM_INGOT); basicItem(MEGAItems.ACCUMULATION_PROCESSOR); basicItem(MEGAItems.ACCUMULATION_PROCESSOR_PRINT); @@ -52,6 +52,7 @@ protected void registerStatesAndModels() { basicItem(MEGAItems.MEGA_ITEM_CELL_HOUSING); basicItem(MEGAItems.MEGA_FLUID_CELL_HOUSING); + basicItem(MEGAItems.MEGA_CHEMICAL_CELL_HOUSING); basicItem(MEGAItems.CELL_COMPONENT_1M); basicItem(MEGAItems.CELL_COMPONENT_4M); @@ -59,6 +60,7 @@ protected void registerStatesAndModels() { basicItem(MEGAItems.CELL_COMPONENT_64M); basicItem(MEGAItems.CELL_COMPONENT_256M); basicItem(MEGAItems.BULK_CELL_COMPONENT); + basicItem(MEGAItems.RADIOACTIVE_CELL_COMPONENT); basicItem(MEGAItems.GREATER_ENERGY_CARD); basicItem(MEGAItems.COMPRESSION_CARD); @@ -66,18 +68,18 @@ protected void registerStatesAndModels() { existing.trackGenerated(AppEng.makeId("item/storage_cell_led"), ModelProvider.TEXTURE); MEGAItems.getItemCells().forEach(this::cell); MEGAItems.getFluidCells().forEach(this::cell); + MEGAItems.getChemicalCells().forEach(this::cell); cell(MEGAItems.BULK_ITEM_CELL); + cell(MEGAItems.RADIOACTIVE_CHEMICAL_CELL); - var itemPortableHousing = MEGACells.makeId("item/cell/portable/portable_cell_item_housing"); - var fluidPortableHousing = MEGACells.makeId("item/cell/portable/portable_cell_fluid_housing"); - existing.trackGenerated(itemPortableHousing, ModelProvider.TEXTURE); - existing.trackGenerated(fluidPortableHousing, ModelProvider.TEXTURE); existing.trackGenerated(AppEng.makeId("item/portable_cell_led"), ModelProvider.TEXTURE); - MEGAItems.getItemPortables().forEach(cell -> portable(cell, itemPortableHousing)); - MEGAItems.getFluidPortables().forEach(cell -> portable(cell, fluidPortableHousing)); + MEGAItems.getItemPortables().forEach(cell -> portable(cell, "item")); + MEGAItems.getFluidPortables().forEach(cell -> portable(cell, "fluid")); + MEGAItems.getChemicalPortables().forEach(cell -> portable(cell, "chemical")); MEGAItems.getAllCells().forEach(this::driveCell); driveCell(MEGAItems.BULK_ITEM_CELL, 0); + driveCell(MEGAItems.RADIOACTIVE_CHEMICAL_CELL, 2); var craftingPattern = AppEng.makeId("item/" + AEItems.CRAFTING_PATTERN.id().getPath()); @@ -91,6 +93,7 @@ protected void registerStatesAndModels() { simpleBlockWithItem(MEGABlocks.SKY_STEEL_BLOCK.block(), cubeAll(MEGABlocks.SKY_STEEL_BLOCK.block())); simpleBlockWithItem(MEGABlocks.SKY_BRONZE_BLOCK.block(), cubeAll(MEGABlocks.SKY_BRONZE_BLOCK.block())); + simpleBlockWithItem(MEGABlocks.SKY_OSMIUM_BLOCK.block(), cubeAll(MEGABlocks.SKY_OSMIUM_BLOCK.block())); simpleBlockWithItem(MEGABlocks.MEGA_INTERFACE.block(), cubeAll(MEGABlocks.MEGA_INTERFACE.block())); interfaceOrProviderPart(MEGAItems.MEGA_INTERFACE); @@ -194,24 +197,6 @@ protected void registerStatesAndModels() { 0); } })); - - /* - if (Addons.APPMEK.isLoaded()) { - basicItem(AppMekItems.MEGA_CHEMICAL_CELL_HOUSING); - - AppMekItems.getCells().forEach(this::cell); - - var chemicalPortableHousing = MEGACells.makeId("item/cell/portable/portable_cell_chemical_housing"); - existing.trackGenerated(chemicalPortableHousing, ModelProvider.TEXTURE); - AppMekItems.getPortables().forEach(cell -> portable(cell, chemicalPortableHousing)); - - basicItem(AppMekItems.RADIOACTIVE_CELL_COMPONENT); - cell(AppMekItems.RADIOACTIVE_CHEMICAL_CELL); - - driveCell("mega_chemical_cell"); - driveCell("radioactive_chemical_cell"); - } - */ } private void basicItem(ItemDefinition item) { @@ -225,13 +210,16 @@ private void cell(ItemDefinition cell) { .texture("layer1", AppEng.makeId("item/storage_cell_led")); } - private void portable(ItemDefinition portable, ResourceLocation housing) { + private void portable(ItemDefinition portable, String housingType) { var id = portable.id().getPath(); var tierSuffix = id.substring(id.lastIndexOf('_')); - existing.trackGenerated(housing, ModelProvider.TEXTURE); itemModels() - .singleTexture(id, mcLoc("item/generated"), "layer0", housing) + .singleTexture( + id, + mcLoc("item/generated"), + "layer0", + MEGACells.makeId("item/cell/portable/portable_cell_" + housingType + "_housing")) .texture("layer1", AppEng.makeId("item/portable_cell_led")) .texture("layer2", MEGACells.makeId("item/cell/portable/portable_cell_screen")) .texture("layer3", MEGACells.makeId("item/cell/portable/portable_cell_side" + tierSuffix)); @@ -270,15 +258,6 @@ private void driveCell(String cell, String texture, int offset) { .end(); } - /* - private void portable(ItemDefinition portable) { - var id = portable.id().getPath(); - itemModels() - .singleTexture(id, mcLoc("item/generated"), "layer0", MEGACells.makeId("item/cell/portable/" + id)) - .texture("layer1", AppEng.makeId("item/portable_cell_led")); - } - */ - private void interfaceOrProviderPart(ItemDefinition part) { var id = part.id().getPath(); var partName = id.substring(id.indexOf('_') + 1); diff --git a/src/data/java/gripe/_90/megacells/datagen/MEGARecipeProvider.java b/src/data/java/gripe/_90/megacells/datagen/MEGARecipeProvider.java index 416c52f1..4522933b 100644 --- a/src/data/java/gripe/_90/megacells/datagen/MEGARecipeProvider.java +++ b/src/data/java/gripe/_90/megacells/datagen/MEGARecipeProvider.java @@ -34,14 +34,17 @@ import appeng.recipes.transform.TransformCircumstance; import appeng.recipes.transform.TransformRecipeBuilder; +import mekanism.common.registries.MekanismBlocks; +import mekanism.common.registries.MekanismItems; +import mekanism.generators.common.registries.GeneratorsBlocks; + import gripe._90.megacells.MEGACells; import gripe._90.megacells.definition.MEGABlocks; import gripe._90.megacells.definition.MEGAItems; import gripe._90.megacells.definition.MEGATags; +import gripe._90.megacells.integration.Addons; public class MEGARecipeProvider extends RecipeProvider { - private static final TagKey OSMIUM = ItemTags.create(ResourceLocation.parse("forge:ingots/osmium")); - public MEGARecipeProvider(PackOutput output, CompletableFuture registries) { super(output, registries); } @@ -57,6 +60,7 @@ protected void buildRecipes(@NotNull RecipeOutput output) { housing(output, MEGAItems.MEGA_ITEM_CELL_HOUSING, MEGATags.SKY_STEEL_INGOT); housing(output, MEGAItems.MEGA_FLUID_CELL_HOUSING, MEGATags.SKY_BRONZE_INGOT); + housing(Addons.APPMEK.conditionalRecipe(output), MEGAItems.MEGA_CHEMICAL_CELL_HOUSING, MEGATags.SKY_OSMIUM_INGOT); cell(output, MEGAItems.ITEM_CELL_1M, MEGAItems.CELL_COMPONENT_1M, MEGAItems.MEGA_ITEM_CELL_HOUSING, MEGATags.SKY_STEEL_INGOT); cell(output, MEGAItems.ITEM_CELL_4M, MEGAItems.CELL_COMPONENT_4M, MEGAItems.MEGA_ITEM_CELL_HOUSING, MEGATags.SKY_STEEL_INGOT); @@ -70,6 +74,12 @@ protected void buildRecipes(@NotNull RecipeOutput output) { cell(output, MEGAItems.FLUID_CELL_64M, MEGAItems.CELL_COMPONENT_64M, MEGAItems.MEGA_FLUID_CELL_HOUSING, MEGATags.SKY_BRONZE_INGOT); cell(output, MEGAItems.FLUID_CELL_256M, MEGAItems.CELL_COMPONENT_256M, MEGAItems.MEGA_FLUID_CELL_HOUSING, MEGATags.SKY_BRONZE_INGOT); + cell(Addons.APPMEK.conditionalRecipe(output), MEGAItems.CHEMICAL_CELL_1M, MEGAItems.CELL_COMPONENT_1M, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING, MEGATags.SKY_OSMIUM_INGOT); + cell(Addons.APPMEK.conditionalRecipe(output), MEGAItems.CHEMICAL_CELL_4M, MEGAItems.CELL_COMPONENT_4M, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING, MEGATags.SKY_OSMIUM_INGOT); + cell(Addons.APPMEK.conditionalRecipe(output), MEGAItems.CHEMICAL_CELL_16M, MEGAItems.CELL_COMPONENT_16M, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING, MEGATags.SKY_OSMIUM_INGOT); + cell(Addons.APPMEK.conditionalRecipe(output), MEGAItems.CHEMICAL_CELL_64M, MEGAItems.CELL_COMPONENT_64M, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING, MEGATags.SKY_OSMIUM_INGOT); + cell(Addons.APPMEK.conditionalRecipe(output), MEGAItems.CHEMICAL_CELL_256M, MEGAItems.CELL_COMPONENT_256M, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING, MEGATags.SKY_OSMIUM_INGOT); + portable(output, MEGAItems.PORTABLE_ITEM_CELL_1M, MEGAItems.CELL_COMPONENT_1M, MEGAItems.MEGA_ITEM_CELL_HOUSING); portable(output, MEGAItems.PORTABLE_ITEM_CELL_4M, MEGAItems.CELL_COMPONENT_4M, MEGAItems.MEGA_ITEM_CELL_HOUSING); portable(output, MEGAItems.PORTABLE_ITEM_CELL_16M, MEGAItems.CELL_COMPONENT_16M, MEGAItems.MEGA_ITEM_CELL_HOUSING); @@ -81,6 +91,12 @@ protected void buildRecipes(@NotNull RecipeOutput output) { portable(output, MEGAItems.PORTABLE_FLUID_CELL_16M, MEGAItems.CELL_COMPONENT_16M, MEGAItems.MEGA_FLUID_CELL_HOUSING); portable(output, MEGAItems.PORTABLE_FLUID_CELL_64M, MEGAItems.CELL_COMPONENT_64M, MEGAItems.MEGA_FLUID_CELL_HOUSING); portable(output, MEGAItems.PORTABLE_FLUID_CELL_256M, MEGAItems.CELL_COMPONENT_256M, MEGAItems.MEGA_FLUID_CELL_HOUSING); + + portable(Addons.APPMEK.conditionalRecipe(output), MEGAItems.PORTABLE_CHEMICAL_CELL_1M, MEGAItems.CELL_COMPONENT_1M, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING); + portable(Addons.APPMEK.conditionalRecipe(output), MEGAItems.PORTABLE_CHEMICAL_CELL_4M, MEGAItems.CELL_COMPONENT_4M, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING); + portable(Addons.APPMEK.conditionalRecipe(output), MEGAItems.PORTABLE_CHEMICAL_CELL_16M, MEGAItems.CELL_COMPONENT_16M, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING); + portable(Addons.APPMEK.conditionalRecipe(output), MEGAItems.PORTABLE_CHEMICAL_CELL_64M, MEGAItems.CELL_COMPONENT_64M, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING); + portable(Addons.APPMEK.conditionalRecipe(output), MEGAItems.PORTABLE_CHEMICAL_CELL_256M, MEGAItems.CELL_COMPONENT_256M, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING); // spotless:on ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, MEGABlocks.SKY_STEEL_BLOCK) @@ -107,6 +123,18 @@ protected void buildRecipes(@NotNull RecipeOutput output) { .unlockedBy("has_sky_bronze_ingot", has(MEGATags.SKY_BRONZE_INGOT)) .save(output, MEGACells.makeId("crafting/sky_bronze_ingot_from_sky_bronze_block")); + ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, MEGABlocks.SKY_OSMIUM_BLOCK) + .pattern("###") + .pattern("###") + .pattern("###") + .define('#', MEGATags.SKY_OSMIUM_INGOT) + .unlockedBy("has_sky_osmium_ingot", has(MEGATags.SKY_OSMIUM_INGOT)) + .save(output, MEGACells.makeId("crafting/sky_osmium_block")); + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, MEGAItems.SKY_OSMIUM_INGOT, 9) + .requires(MEGABlocks.SKY_OSMIUM_BLOCK) + .unlockedBy("has_sky_osmium_ingot", has(MEGATags.SKY_OSMIUM_INGOT)) + .save(output, MEGACells.makeId("crafting/sky_osmium_ingot_from_sky_osmium_block")); + TransformRecipeBuilder.transform( output, MEGACells.makeId("transform/sky_steel_ingot"), @@ -125,6 +153,15 @@ protected void buildRecipes(@NotNull RecipeOutput output) { Ingredient.of(AEItems.CERTUS_QUARTZ_CRYSTAL_CHARGED), Ingredient.of(ConventionTags.COPPER_INGOT), Ingredient.of(AEBlocks.SKY_STONE_BLOCK)); + TransformRecipeBuilder.transform( + output, + MEGACells.makeId("transform/sky_osmium_ingot"), + MEGAItems.SKY_OSMIUM_INGOT, + 2, + TransformCircumstance.fluid(FluidTags.LAVA), + Ingredient.of(AEItems.CERTUS_QUARTZ_CRYSTAL_CHARGED), + Ingredient.of(ItemTags.create(ResourceLocation.parse("c:ingots/osmium"))), + Ingredient.of(AEBlocks.SKY_STONE_BLOCK)); InscriberRecipeBuilder.inscribe(AEItems.SINGULARITY, MEGAItems.ACCUMULATION_PROCESSOR_PRESS, 1) .setTop(Ingredient.of(AEItems.CALCULATION_PROCESSOR_PRESS)) @@ -262,107 +299,32 @@ protected void buildRecipes(@NotNull RecipeOutput output) { .unlockedBy("has_cable_mega_pattern_provider", has(MEGAItems.MEGA_PATTERN_PROVIDER)) .save(output, MEGACells.makeId("network/mega_pattern_provider_block")); - /* - if (Addons.APPMEK.isLoaded()) { - ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AppMekItems.MEGA_CHEMICAL_CELL_HOUSING) - .pattern("aba") - .pattern("b b") - .pattern("ddd") - .define('a', AEBlocks.QUARTZ_VIBRANT_GLASS) - .define('b', AEItems.SKY_DUST) - .define('d', OSMIUM) - .unlockedBy("has_dusts/sky_stone", has(AEItems.SKY_DUST)) - .save( - Addons.APPMEK.conditionalRecipe(output), - MEGACells.makeId("cells/mega_chemical_cell_housing")); - - cell( - Addons.APPMEK.conditionalRecipe(output), - AppMekItems.CHEMICAL_CELL_1M, - MEGAItems.CELL_COMPONENT_1M, - AppMekItems.MEGA_CHEMICAL_CELL_HOUSING, - OSMIUM); - cell( - Addons.APPMEK.conditionalRecipe(output), - AppMekItems.CHEMICAL_CELL_4M, - MEGAItems.CELL_COMPONENT_4M, - AppMekItems.MEGA_CHEMICAL_CELL_HOUSING, - OSMIUM); - cell( - Addons.APPMEK.conditionalRecipe(output), - AppMekItems.CHEMICAL_CELL_16M, - MEGAItems.CELL_COMPONENT_16M, - AppMekItems.MEGA_CHEMICAL_CELL_HOUSING, - OSMIUM); - cell( - Addons.APPMEK.conditionalRecipe(output), - AppMekItems.CHEMICAL_CELL_64M, - MEGAItems.CELL_COMPONENT_64M, - AppMekItems.MEGA_CHEMICAL_CELL_HOUSING, - OSMIUM); - cell( - Addons.APPMEK.conditionalRecipe(output), - AppMekItems.CHEMICAL_CELL_256M, - MEGAItems.CELL_COMPONENT_256M, - AppMekItems.MEGA_CHEMICAL_CELL_HOUSING, - OSMIUM); - - portable( - Addons.APPMEK.conditionalRecipe(output), - AppMekItems.PORTABLE_CHEMICAL_CELL_1M, - MEGAItems.CELL_COMPONENT_1M, - AppMekItems.MEGA_CHEMICAL_CELL_HOUSING); - portable( - Addons.APPMEK.conditionalRecipe(output), - AppMekItems.PORTABLE_CHEMICAL_CELL_4M, - MEGAItems.CELL_COMPONENT_4M, - AppMekItems.MEGA_CHEMICAL_CELL_HOUSING); - portable( - Addons.APPMEK.conditionalRecipe(output), - AppMekItems.PORTABLE_CHEMICAL_CELL_16M, - MEGAItems.CELL_COMPONENT_16M, - AppMekItems.MEGA_CHEMICAL_CELL_HOUSING); - portable( - Addons.APPMEK.conditionalRecipe(output), - AppMekItems.PORTABLE_CHEMICAL_CELL_64M, - MEGAItems.CELL_COMPONENT_64M, - AppMekItems.MEGA_CHEMICAL_CELL_HOUSING); - portable( - Addons.APPMEK.conditionalRecipe(output), - AppMekItems.PORTABLE_CHEMICAL_CELL_256M, - MEGAItems.CELL_COMPONENT_256M, - AppMekItems.MEGA_CHEMICAL_CELL_HOUSING); - - ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AppMekItems.RADIOACTIVE_CELL_COMPONENT) - .pattern("aba") - .pattern("cdc") - .pattern("aea") - .define('a', AEItems.SKY_DUST) - .define('b', MEGAItems.ACCUMULATION_PROCESSOR) - .define('c', MekanismBlocks.RADIOACTIVE_WASTE_BARREL) - .define('d', AEBlocks.QUARTZ_VIBRANT_GLASS) - .define('e', AEItems.CELL_COMPONENT_256K) - .unlockedBy("has_cell_component_256k", has(AEItems.CELL_COMPONENT_256K)) - .unlockedBy("has_waste_barrel", has(MekanismBlocks.RADIOACTIVE_WASTE_BARREL)) - .save( - Addons.APPMEK.conditionalRecipe(output), - MEGACells.makeId("crafting/radioactive_cell_component")); - - ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AppMekItems.RADIOACTIVE_CHEMICAL_CELL) - .pattern("aba") - .pattern("bcb") - .pattern("ded") - .define('a', GeneratorsBlocks.REACTOR_GLASS) - .define('b', AEItems.SKY_DUST) - .define('c', AppMekItems.RADIOACTIVE_CELL_COMPONENT) - .define('d', MekanismItems.HDPE_SHEET) - .define('e', MekanismItems.POLONIUM_PELLET) - .unlockedBy("has_radioactive_cell_component", has(AppMekItems.RADIOACTIVE_CELL_COMPONENT)) - .save( - Addons.APPMEK.conditionalRecipe(output), - MEGACells.makeId("cells/standard/radioactive_chemical_cell")); - } - */ + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, MEGAItems.RADIOACTIVE_CELL_COMPONENT) + .pattern("aba") + .pattern("cdc") + .pattern("aea") + .define('a', AEItems.SKY_DUST) + .define('b', MEGAItems.ACCUMULATION_PROCESSOR) + .define('c', MekanismBlocks.RADIOACTIVE_WASTE_BARREL) + .define('d', AEBlocks.QUARTZ_VIBRANT_GLASS) + .define('e', AEItems.CELL_COMPONENT_256K) + .unlockedBy("has_cell_component_256k", has(AEItems.CELL_COMPONENT_256K)) + .unlockedBy("has_waste_barrel", has(MekanismBlocks.RADIOACTIVE_WASTE_BARREL)) + .save(Addons.APPMEK.conditionalRecipe(output), MEGACells.makeId("crafting/radioactive_cell_component")); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, MEGAItems.RADIOACTIVE_CHEMICAL_CELL) + .pattern("aba") + .pattern("bcb") + .pattern("ded") + .define('a', GeneratorsBlocks.REACTOR_GLASS) + .define('b', AEItems.SKY_DUST) + .define('c', MEGAItems.RADIOACTIVE_CELL_COMPONENT) + .define('d', MekanismItems.HDPE_SHEET) + .define('e', MekanismItems.POLONIUM_PELLET) + .unlockedBy("has_radioactive_cell_component", has(MEGAItems.RADIOACTIVE_CELL_COMPONENT)) + .save( + Addons.APPMEK.conditionalRecipe(output), + MEGACells.makeId("cells/standard/radioactive_chemical_cell")); } private static void component( diff --git a/src/data/java/gripe/_90/megacells/datagen/MEGATagProvider.java b/src/data/java/gripe/_90/megacells/datagen/MEGATagProvider.java index 6dfc9c14..a9a84303 100644 --- a/src/data/java/gripe/_90/megacells/datagen/MEGATagProvider.java +++ b/src/data/java/gripe/_90/megacells/datagen/MEGATagProvider.java @@ -45,6 +45,7 @@ protected void addTags(@NotNull HolderLookup.Provider provider) { tag(MEGATags.SKY_STEEL_BLOCK).add(MEGABlocks.SKY_STEEL_BLOCK.block()); tag(MEGATags.SKY_BRONZE_BLOCK).add(MEGABlocks.SKY_BRONZE_BLOCK.block()); + tag(MEGATags.SKY_OSMIUM_BLOCK).add(MEGABlocks.SKY_OSMIUM_BLOCK.block()); } @NotNull @@ -67,9 +68,11 @@ public ItemTags( protected void addTags(@NotNull HolderLookup.Provider provider) { copy(MEGATags.SKY_STEEL_BLOCK, TagKey.create(Registries.ITEM, MEGATags.SKY_STEEL_BLOCK.location())); copy(MEGATags.SKY_BRONZE_BLOCK, TagKey.create(Registries.ITEM, MEGATags.SKY_BRONZE_BLOCK.location())); + copy(MEGATags.SKY_OSMIUM_BLOCK, TagKey.create(Registries.ITEM, MEGATags.SKY_OSMIUM_BLOCK.location())); tag(MEGATags.SKY_STEEL_INGOT).add(MEGAItems.SKY_STEEL_INGOT.asItem()); tag(MEGATags.SKY_BRONZE_INGOT).add(MEGAItems.SKY_BRONZE_INGOT.asItem()); + tag(MEGATags.SKY_OSMIUM_INGOT).add(MEGAItems.SKY_OSMIUM_INGOT.asItem()); tag(P2PTunnelAttunement.getAttunementTag(P2PTunnelAttunement.ENERGY_TUNNEL)) .add(MEGABlocks.MEGA_ENERGY_CELL.asItem()); diff --git a/src/generated/resources/assets/megacells/blockstates/sky_osmium_block.json b/src/generated/resources/assets/megacells/blockstates/sky_osmium_block.json new file mode 100644 index 00000000..045e88f5 --- /dev/null +++ b/src/generated/resources/assets/megacells/blockstates/sky_osmium_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "megacells:block/sky_osmium_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/lang/en_us.json b/src/generated/resources/assets/megacells/lang/en_us.json index b6a5fb65..ac1957dd 100644 --- a/src/generated/resources/assets/megacells/lang/en_us.json +++ b/src/generated/resources/assets/megacells/lang/en_us.json @@ -11,6 +11,7 @@ "block.megacells.mega_interface": "MEGA Interface", "block.megacells.mega_pattern_provider": "MEGA Pattern Provider", "block.megacells.sky_bronze_block": "Sky Bronze Block", + "block.megacells.sky_osmium_block": "Sky Osmium Block", "block.megacells.sky_steel_block": "Sky Steel Block", "gui.megacells.ModName": "MEGA Cells", "gui.tooltips.megacells.ALot": "A lot.", @@ -22,6 +23,7 @@ "gui.tooltips.megacells.Enabled": "Enabled", "gui.tooltips.megacells.FilterChemicalUnsupported": "Filter chemical unsupported!", "gui.tooltips.megacells.MismatchedFilter": "Mismatched filter!", + "gui.tooltips.megacells.NotInstalled": "%s not installed.", "gui.tooltips.megacells.NotPartitioned": "Not Partitioned", "gui.tooltips.megacells.PartitionedFor": "Partitioned for: %s", "gui.tooltips.megacells.ProcessingOnly": "Supports processing patterns only.", @@ -37,6 +39,11 @@ "item.megacells.cell_component_256m": "256M MEGA Storage Component", "item.megacells.cell_component_4m": "4M MEGA Storage Component", "item.megacells.cell_component_64m": "64M MEGA Storage Component", + "item.megacells.chemical_storage_cell_16m": "16M MEGA Chemical Storage Cell", + "item.megacells.chemical_storage_cell_1m": "1M MEGA Chemical Storage Cell", + "item.megacells.chemical_storage_cell_256m": "256M MEGA Chemical Storage Cell", + "item.megacells.chemical_storage_cell_4m": "4M MEGA Chemical Storage Cell", + "item.megacells.chemical_storage_cell_64m": "64M MEGA Chemical Storage Cell", "item.megacells.compression_card": "Compression Card", "item.megacells.decompression_module": "MEGA Decompression Module", "item.megacells.decompression_pattern": "Decompression Pattern", @@ -51,8 +58,14 @@ "item.megacells.item_storage_cell_256m": "256M MEGA Item Storage Cell", "item.megacells.item_storage_cell_4m": "4M MEGA Item Storage Cell", "item.megacells.item_storage_cell_64m": "64M MEGA Item Storage Cell", + "item.megacells.mega_chemical_cell_housing": "MEGA Chemical Cell Housing", "item.megacells.mega_fluid_cell_housing": "MEGA Fluid Cell Housing", "item.megacells.mega_item_cell_housing": "MEGA Item Cell Housing", + "item.megacells.portable_chemical_cell_16m": "16M Portable Chemical Cell", + "item.megacells.portable_chemical_cell_1m": "1M Portable Chemical Cell", + "item.megacells.portable_chemical_cell_256m": "256M Portable Chemical Cell", + "item.megacells.portable_chemical_cell_4m": "4M Portable Chemical Cell", + "item.megacells.portable_chemical_cell_64m": "64M Portable Chemical Cell", "item.megacells.portable_fluid_cell_16m": "16M Portable Fluid Cell", "item.megacells.portable_fluid_cell_1m": "1M Portable Fluid Cell", "item.megacells.portable_fluid_cell_256m": "256M Portable Fluid Cell", @@ -64,6 +77,9 @@ "item.megacells.portable_item_cell_4m": "4M Portable Item Cell", "item.megacells.portable_item_cell_64m": "64M Portable Item Cell", "item.megacells.printed_accumulation_processor": "Printed Accumulation Circuit", + "item.megacells.radioactive_cell_component": "MEGA Radioactive Storage Component", + "item.megacells.radioactive_chemical_cell": "MEGA Radioactive Chemical Storage Cell", "item.megacells.sky_bronze_ingot": "Sky Bronze Ingot", + "item.megacells.sky_osmium_ingot": "Sky Osmium Ingot", "item.megacells.sky_steel_ingot": "Sky Steel Ingot" } \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/block/drive/cells/16m_chemical_cell.json b/src/generated/resources/assets/megacells/models/block/drive/cells/16m_chemical_cell.json new file mode 100644 index 00000000..6196fffe --- /dev/null +++ b/src/generated/resources/assets/megacells/models/block/drive/cells/16m_chemical_cell.json @@ -0,0 +1,97 @@ +{ + "ambientocclusion": false, + "elements": [ + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 4.0, + 0.0, + 6.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 4.0, + 6.0, + 6.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 4.0, + 0.0, + 6.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + }, + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 4.0, + 0.0, + 6.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 4.0, + 6.0, + 6.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 4.0, + 0.0, + 6.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + } + ], + "textures": { + "cell": "megacells:block/drive/cells/mega_chemical_cell", + "particle": "megacells:block/drive/cells/mega_chemical_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/block/drive/cells/1m_chemical_cell.json b/src/generated/resources/assets/megacells/models/block/drive/cells/1m_chemical_cell.json new file mode 100644 index 00000000..c4c1e6ff --- /dev/null +++ b/src/generated/resources/assets/megacells/models/block/drive/cells/1m_chemical_cell.json @@ -0,0 +1,97 @@ +{ + "ambientocclusion": false, + "elements": [ + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 0.0, + 0.0, + 2.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 0.0, + 6.0, + 2.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 0.0, + 0.0, + 2.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + }, + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 0.0, + 0.0, + 2.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 0.0, + 6.0, + 2.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 0.0, + 0.0, + 2.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + } + ], + "textures": { + "cell": "megacells:block/drive/cells/mega_chemical_cell", + "particle": "megacells:block/drive/cells/mega_chemical_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/block/drive/cells/256m_chemical_cell.json b/src/generated/resources/assets/megacells/models/block/drive/cells/256m_chemical_cell.json new file mode 100644 index 00000000..8541b012 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/block/drive/cells/256m_chemical_cell.json @@ -0,0 +1,97 @@ +{ + "ambientocclusion": false, + "elements": [ + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 8.0, + 0.0, + 10.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 8.0, + 6.0, + 10.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 8.0, + 0.0, + 10.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + }, + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 8.0, + 0.0, + 10.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 8.0, + 6.0, + 10.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 8.0, + 0.0, + 10.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + } + ], + "textures": { + "cell": "megacells:block/drive/cells/mega_chemical_cell", + "particle": "megacells:block/drive/cells/mega_chemical_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/block/drive/cells/4m_chemical_cell.json b/src/generated/resources/assets/megacells/models/block/drive/cells/4m_chemical_cell.json new file mode 100644 index 00000000..89ea8087 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/block/drive/cells/4m_chemical_cell.json @@ -0,0 +1,97 @@ +{ + "ambientocclusion": false, + "elements": [ + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 2.0, + 0.0, + 4.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 2.0, + 6.0, + 4.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 2.0, + 0.0, + 4.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + }, + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 2.0, + 0.0, + 4.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 2.0, + 6.0, + 4.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 2.0, + 0.0, + 4.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + } + ], + "textures": { + "cell": "megacells:block/drive/cells/mega_chemical_cell", + "particle": "megacells:block/drive/cells/mega_chemical_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/block/drive/cells/64m_chemical_cell.json b/src/generated/resources/assets/megacells/models/block/drive/cells/64m_chemical_cell.json new file mode 100644 index 00000000..368b753c --- /dev/null +++ b/src/generated/resources/assets/megacells/models/block/drive/cells/64m_chemical_cell.json @@ -0,0 +1,97 @@ +{ + "ambientocclusion": false, + "elements": [ + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 6.0, + 0.0, + 8.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 6.0, + 6.0, + 8.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 6.0, + 0.0, + 8.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + }, + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 6.0, + 0.0, + 8.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 6.0, + 6.0, + 8.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 6.0, + 0.0, + 8.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + } + ], + "textures": { + "cell": "megacells:block/drive/cells/mega_chemical_cell", + "particle": "megacells:block/drive/cells/mega_chemical_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/block/drive/cells/radioactive_chemical_cell.json b/src/generated/resources/assets/megacells/models/block/drive/cells/radioactive_chemical_cell.json new file mode 100644 index 00000000..de025d21 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/block/drive/cells/radioactive_chemical_cell.json @@ -0,0 +1,53 @@ +{ + "ambientocclusion": false, + "elements": [ + { + "faces": { + "down": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 2.0, + 0.0, + 4.0 + ] + }, + "north": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 0.0, + 2.0, + 6.0, + 4.0 + ] + }, + "up": { + "cullface": "north", + "texture": "#cell", + "uv": [ + 6.0, + 2.0, + 0.0, + 4.0 + ] + } + }, + "from": [ + 0, + 0, + 0 + ], + "to": [ + 6, + 2, + 2 + ] + } + ], + "textures": { + "cell": "megacells:block/drive/cells/misc_cell", + "particle": "megacells:block/drive/cells/misc_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/block/sky_osmium_block.json b/src/generated/resources/assets/megacells/models/block/sky_osmium_block.json new file mode 100644 index 00000000..4047c47b --- /dev/null +++ b/src/generated/resources/assets/megacells/models/block/sky_osmium_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "megacells:block/sky_osmium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_16m.json b/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_16m.json new file mode 100644 index 00000000..0b5de02c --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_16m.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/standard/chemical_storage_cell_16m", + "layer1": "ae2:item/storage_cell_led" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_1m.json b/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_1m.json new file mode 100644 index 00000000..d0de513f --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_1m.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/standard/chemical_storage_cell_1m", + "layer1": "ae2:item/storage_cell_led" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_256m.json b/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_256m.json new file mode 100644 index 00000000..e42d422c --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_256m.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/standard/chemical_storage_cell_256m", + "layer1": "ae2:item/storage_cell_led" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_4m.json b/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_4m.json new file mode 100644 index 00000000..e988be33 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_4m.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/standard/chemical_storage_cell_4m", + "layer1": "ae2:item/storage_cell_led" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_64m.json b/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_64m.json new file mode 100644 index 00000000..270cb19c --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/chemical_storage_cell_64m.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/standard/chemical_storage_cell_64m", + "layer1": "ae2:item/storage_cell_led" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/mega_chemical_cell_housing.json b/src/generated/resources/assets/megacells/models/item/mega_chemical_cell_housing.json new file mode 100644 index 00000000..17ed72e2 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/mega_chemical_cell_housing.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/mega_chemical_cell_housing" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_16m.json b/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_16m.json new file mode 100644 index 00000000..61dd8fe3 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_16m.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/portable/portable_cell_chemical_housing", + "layer1": "ae2:item/portable_cell_led", + "layer2": "megacells:item/cell/portable/portable_cell_screen", + "layer3": "megacells:item/cell/portable/portable_cell_side_16m" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_1m.json b/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_1m.json new file mode 100644 index 00000000..de453f82 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_1m.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/portable/portable_cell_chemical_housing", + "layer1": "ae2:item/portable_cell_led", + "layer2": "megacells:item/cell/portable/portable_cell_screen", + "layer3": "megacells:item/cell/portable/portable_cell_side_1m" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_256m.json b/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_256m.json new file mode 100644 index 00000000..15addfd1 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_256m.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/portable/portable_cell_chemical_housing", + "layer1": "ae2:item/portable_cell_led", + "layer2": "megacells:item/cell/portable/portable_cell_screen", + "layer3": "megacells:item/cell/portable/portable_cell_side_256m" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_4m.json b/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_4m.json new file mode 100644 index 00000000..e9934544 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_4m.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/portable/portable_cell_chemical_housing", + "layer1": "ae2:item/portable_cell_led", + "layer2": "megacells:item/cell/portable/portable_cell_screen", + "layer3": "megacells:item/cell/portable/portable_cell_side_4m" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_64m.json b/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_64m.json new file mode 100644 index 00000000..6445a72d --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/portable_chemical_cell_64m.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/portable/portable_cell_chemical_housing", + "layer1": "ae2:item/portable_cell_led", + "layer2": "megacells:item/cell/portable/portable_cell_screen", + "layer3": "megacells:item/cell/portable/portable_cell_side_64m" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/radioactive_cell_component.json b/src/generated/resources/assets/megacells/models/item/radioactive_cell_component.json new file mode 100644 index 00000000..1f432ea2 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/radioactive_cell_component.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/radioactive_cell_component" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/radioactive_chemical_cell.json b/src/generated/resources/assets/megacells/models/item/radioactive_chemical_cell.json new file mode 100644 index 00000000..4a007f99 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/radioactive_chemical_cell.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/cell/standard/radioactive_chemical_cell", + "layer1": "ae2:item/storage_cell_led" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/sky_osmium_block.json b/src/generated/resources/assets/megacells/models/item/sky_osmium_block.json new file mode 100644 index 00000000..a0c6be11 --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/sky_osmium_block.json @@ -0,0 +1,3 @@ +{ + "parent": "megacells:block/sky_osmium_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/megacells/models/item/sky_osmium_ingot.json b/src/generated/resources/assets/megacells/models/item/sky_osmium_ingot.json new file mode 100644 index 00000000..03ac343c --- /dev/null +++ b/src/generated/resources/assets/megacells/models/item/sky_osmium_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "megacells:item/sky_osmium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/block/storage_blocks/sky_osmium.json b/src/generated/resources/data/c/tags/block/storage_blocks/sky_osmium.json new file mode 100644 index 00000000..7eeca6a8 --- /dev/null +++ b/src/generated/resources/data/c/tags/block/storage_blocks/sky_osmium.json @@ -0,0 +1,5 @@ +{ + "values": [ + "megacells:sky_osmium_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/ingots/sky_osmium.json b/src/generated/resources/data/c/tags/item/ingots/sky_osmium.json new file mode 100644 index 00000000..e3cff9e1 --- /dev/null +++ b/src/generated/resources/data/c/tags/item/ingots/sky_osmium.json @@ -0,0 +1,5 @@ +{ + "values": [ + "megacells:sky_osmium_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/item/storage_blocks/sky_osmium.json b/src/generated/resources/data/c/tags/item/storage_blocks/sky_osmium.json new file mode 100644 index 00000000..7eeca6a8 --- /dev/null +++ b/src/generated/resources/data/c/tags/item/storage_blocks/sky_osmium.json @@ -0,0 +1,5 @@ +{ + "values": [ + "megacells:sky_osmium_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/building_blocks/crafting/sky_osmium_block.json b/src/generated/resources/data/megacells/advancement/recipes/building_blocks/crafting/sky_osmium_block.json new file mode 100644 index 00000000..c547b4eb --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/building_blocks/crafting/sky_osmium_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sky_osmium_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/sky_osmium" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:crafting/sky_osmium_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sky_osmium_ingot" + ] + ], + "rewards": { + "recipes": [ + "megacells:crafting/sky_osmium_block" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/mega_chemical_cell_housing.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/mega_chemical_cell_housing.json new file mode 100644 index 00000000..895f97f2 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/mega_chemical_cell_housing.json @@ -0,0 +1,38 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_dusts/sky_stone": { + "conditions": { + "items": [ + { + "items": "ae2:sky_dust" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/mega_chemical_cell_housing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dusts/sky_stone" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/mega_chemical_cell_housing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_16m.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_16m.json new file mode 100644 index 00000000..80ca765b --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_16m.json @@ -0,0 +1,60 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_16m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_16m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dense_energy_cell": { + "conditions": { + "items": [ + { + "items": "ae2:dense_energy_cell" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mega_chemical_cell_housing": { + "conditions": { + "items": [ + { + "items": "megacells:mega_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/portable/portable_chemical_cell_16m" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mega_chemical_cell_housing", + "has_cell_component_16m", + "has_dense_energy_cell" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/portable/portable_chemical_cell_16m" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_1m.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_1m.json new file mode 100644 index 00000000..eff62211 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_1m.json @@ -0,0 +1,60 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_1m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_1m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dense_energy_cell": { + "conditions": { + "items": [ + { + "items": "ae2:dense_energy_cell" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mega_chemical_cell_housing": { + "conditions": { + "items": [ + { + "items": "megacells:mega_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/portable/portable_chemical_cell_1m" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mega_chemical_cell_housing", + "has_cell_component_1m", + "has_dense_energy_cell" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/portable/portable_chemical_cell_1m" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_256m.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_256m.json new file mode 100644 index 00000000..13314725 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_256m.json @@ -0,0 +1,60 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_256m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_256m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dense_energy_cell": { + "conditions": { + "items": [ + { + "items": "ae2:dense_energy_cell" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mega_chemical_cell_housing": { + "conditions": { + "items": [ + { + "items": "megacells:mega_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/portable/portable_chemical_cell_256m" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mega_chemical_cell_housing", + "has_cell_component_256m", + "has_dense_energy_cell" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/portable/portable_chemical_cell_256m" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_4m.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_4m.json new file mode 100644 index 00000000..1148ca74 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_4m.json @@ -0,0 +1,60 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_4m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_4m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dense_energy_cell": { + "conditions": { + "items": [ + { + "items": "ae2:dense_energy_cell" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mega_chemical_cell_housing": { + "conditions": { + "items": [ + { + "items": "megacells:mega_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/portable/portable_chemical_cell_4m" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mega_chemical_cell_housing", + "has_cell_component_4m", + "has_dense_energy_cell" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/portable/portable_chemical_cell_4m" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_64m.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_64m.json new file mode 100644 index 00000000..3574b35c --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/portable/portable_chemical_cell_64m.json @@ -0,0 +1,60 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_64m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_64m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dense_energy_cell": { + "conditions": { + "items": [ + { + "items": "ae2:dense_energy_cell" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mega_chemical_cell_housing": { + "conditions": { + "items": [ + { + "items": "megacells:mega_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/portable/portable_chemical_cell_64m" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mega_chemical_cell_housing", + "has_cell_component_64m", + "has_dense_energy_cell" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/portable/portable_chemical_cell_64m" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_16m.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_16m.json new file mode 100644 index 00000000..a39f5970 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_16m.json @@ -0,0 +1,38 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_16m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_16m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/chemical_storage_cell_16m" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_16m" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/chemical_storage_cell_16m" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_16m_with_housing.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_16m_with_housing.json new file mode 100644 index 00000000..3e1cd73a --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_16m_with_housing.json @@ -0,0 +1,49 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_16m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_16m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mega_chemical_cell_housing": { + "conditions": { + "items": [ + { + "items": "megacells:mega_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/chemical_storage_cell_16m_with_housing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_16m", + "has_mega_chemical_cell_housing" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/chemical_storage_cell_16m_with_housing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_1m.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_1m.json new file mode 100644 index 00000000..89002f0b --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_1m.json @@ -0,0 +1,38 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_1m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_1m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/chemical_storage_cell_1m" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_1m" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/chemical_storage_cell_1m" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_1m_with_housing.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_1m_with_housing.json new file mode 100644 index 00000000..75967b24 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_1m_with_housing.json @@ -0,0 +1,49 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_1m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_1m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mega_chemical_cell_housing": { + "conditions": { + "items": [ + { + "items": "megacells:mega_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/chemical_storage_cell_1m_with_housing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_1m", + "has_mega_chemical_cell_housing" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/chemical_storage_cell_1m_with_housing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_256m.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_256m.json new file mode 100644 index 00000000..d92dda48 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_256m.json @@ -0,0 +1,38 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_256m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_256m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/chemical_storage_cell_256m" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_256m" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/chemical_storage_cell_256m" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_256m_with_housing.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_256m_with_housing.json new file mode 100644 index 00000000..4f0439a1 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_256m_with_housing.json @@ -0,0 +1,49 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_256m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_256m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mega_chemical_cell_housing": { + "conditions": { + "items": [ + { + "items": "megacells:mega_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/chemical_storage_cell_256m_with_housing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_256m", + "has_mega_chemical_cell_housing" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/chemical_storage_cell_256m_with_housing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_4m.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_4m.json new file mode 100644 index 00000000..6dbaa346 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_4m.json @@ -0,0 +1,38 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_4m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_4m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/chemical_storage_cell_4m" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_4m" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/chemical_storage_cell_4m" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_4m_with_housing.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_4m_with_housing.json new file mode 100644 index 00000000..1893ba1d --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_4m_with_housing.json @@ -0,0 +1,49 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_4m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_4m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mega_chemical_cell_housing": { + "conditions": { + "items": [ + { + "items": "megacells:mega_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/chemical_storage_cell_4m_with_housing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_4m", + "has_mega_chemical_cell_housing" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/chemical_storage_cell_4m_with_housing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_64m.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_64m.json new file mode 100644 index 00000000..0d4f2976 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_64m.json @@ -0,0 +1,38 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_64m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_64m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/chemical_storage_cell_64m" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_64m" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/chemical_storage_cell_64m" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_64m_with_housing.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_64m_with_housing.json new file mode 100644 index 00000000..e7c92469 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/chemical_storage_cell_64m_with_housing.json @@ -0,0 +1,49 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_64m": { + "conditions": { + "items": [ + { + "items": "megacells:cell_component_64m" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_mega_chemical_cell_housing": { + "conditions": { + "items": [ + { + "items": "megacells:mega_chemical_cell_housing" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/chemical_storage_cell_64m_with_housing" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_64m", + "has_mega_chemical_cell_housing" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/chemical_storage_cell_64m_with_housing" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/radioactive_chemical_cell.json b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/radioactive_chemical_cell.json new file mode 100644 index 00000000..eb59ec5d --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/cells/standard/radioactive_chemical_cell.json @@ -0,0 +1,38 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_radioactive_cell_component": { + "conditions": { + "items": [ + { + "items": "megacells:radioactive_cell_component" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:cells/standard/radioactive_chemical_cell" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_radioactive_cell_component" + ] + ], + "rewards": { + "recipes": [ + "megacells:cells/standard/radioactive_chemical_cell" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/crafting/radioactive_cell_component.json b/src/generated/resources/data/megacells/advancement/recipes/misc/crafting/radioactive_cell_component.json new file mode 100644 index 00000000..ded4d2d9 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/crafting/radioactive_cell_component.json @@ -0,0 +1,49 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_cell_component_256k": { + "conditions": { + "items": [ + { + "items": "ae2:cell_component_256k" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:crafting/radioactive_cell_component" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waste_barrel": { + "conditions": { + "items": [ + { + "items": "mekanism:radioactive_waste_barrel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cell_component_256k", + "has_waste_barrel" + ] + ], + "rewards": { + "recipes": [ + "megacells:crafting/radioactive_cell_component" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/advancement/recipes/misc/crafting/sky_osmium_ingot_from_sky_osmium_block.json b/src/generated/resources/data/megacells/advancement/recipes/misc/crafting/sky_osmium_ingot_from_sky_osmium_block.json new file mode 100644 index 00000000..c761d200 --- /dev/null +++ b/src/generated/resources/data/megacells/advancement/recipes/misc/crafting/sky_osmium_ingot_from_sky_osmium_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sky_osmium_ingot": { + "conditions": { + "items": [ + { + "items": "#c:ingots/sky_osmium" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "megacells:crafting/sky_osmium_ingot_from_sky_osmium_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sky_osmium_ingot" + ] + ], + "rewards": { + "recipes": [ + "megacells:crafting/sky_osmium_ingot_from_sky_osmium_block" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/loot_table/blocks/sky_osmium_block.json b/src/generated/resources/data/megacells/loot_table/blocks/sky_osmium_block.json new file mode 100644 index 00000000..0f37d5a0 --- /dev/null +++ b/src/generated/resources/data/megacells/loot_table/blocks/sky_osmium_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "megacells:sky_osmium_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "megacells:blocks/sky_osmium_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/mega_chemical_cell_housing.json b/src/generated/resources/data/megacells/recipe/cells/mega_chemical_cell_housing.json new file mode 100644 index 00000000..a15cfe01 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/mega_chemical_cell_housing.json @@ -0,0 +1,30 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "a": { + "item": "ae2:quartz_vibrant_glass" + }, + "b": { + "item": "ae2:sky_dust" + }, + "d": { + "tag": "c:ingots/sky_osmium" + } + }, + "pattern": [ + "aba", + "b b", + "ddd" + ], + "result": { + "count": 1, + "id": "megacells:mega_chemical_cell_housing" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_16m.json b/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_16m.json new file mode 100644 index 00000000..8e3e1153 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_16m.json @@ -0,0 +1,28 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ae2:chest" + }, + { + "item": "megacells:cell_component_16m" + }, + { + "item": "ae2:dense_energy_cell" + }, + { + "item": "megacells:mega_chemical_cell_housing" + } + ], + "result": { + "count": 1, + "id": "megacells:portable_chemical_cell_16m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_1m.json b/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_1m.json new file mode 100644 index 00000000..aeccf7dc --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_1m.json @@ -0,0 +1,28 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ae2:chest" + }, + { + "item": "megacells:cell_component_1m" + }, + { + "item": "ae2:dense_energy_cell" + }, + { + "item": "megacells:mega_chemical_cell_housing" + } + ], + "result": { + "count": 1, + "id": "megacells:portable_chemical_cell_1m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_256m.json b/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_256m.json new file mode 100644 index 00000000..53f34595 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_256m.json @@ -0,0 +1,28 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ae2:chest" + }, + { + "item": "megacells:cell_component_256m" + }, + { + "item": "ae2:dense_energy_cell" + }, + { + "item": "megacells:mega_chemical_cell_housing" + } + ], + "result": { + "count": 1, + "id": "megacells:portable_chemical_cell_256m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_4m.json b/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_4m.json new file mode 100644 index 00000000..202d344a --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_4m.json @@ -0,0 +1,28 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ae2:chest" + }, + { + "item": "megacells:cell_component_4m" + }, + { + "item": "ae2:dense_energy_cell" + }, + { + "item": "megacells:mega_chemical_cell_housing" + } + ], + "result": { + "count": 1, + "id": "megacells:portable_chemical_cell_4m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_64m.json b/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_64m.json new file mode 100644 index 00000000..b78e0695 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/portable/portable_chemical_cell_64m.json @@ -0,0 +1,28 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ae2:chest" + }, + { + "item": "megacells:cell_component_64m" + }, + { + "item": "ae2:dense_energy_cell" + }, + { + "item": "megacells:mega_chemical_cell_housing" + } + ], + "result": { + "count": 1, + "id": "megacells:portable_chemical_cell_64m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_16m.json b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_16m.json new file mode 100644 index 00000000..df68916d --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_16m.json @@ -0,0 +1,33 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "a": { + "item": "ae2:quartz_vibrant_glass" + }, + "b": { + "item": "ae2:sky_dust" + }, + "c": { + "item": "megacells:cell_component_16m" + }, + "d": { + "tag": "c:ingots/sky_osmium" + } + }, + "pattern": [ + "aba", + "bcb", + "ddd" + ], + "result": { + "count": 1, + "id": "megacells:chemical_storage_cell_16m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_16m_with_housing.json b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_16m_with_housing.json new file mode 100644 index 00000000..1856860a --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_16m_with_housing.json @@ -0,0 +1,22 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "megacells:mega_chemical_cell_housing" + }, + { + "item": "megacells:cell_component_16m" + } + ], + "result": { + "count": 1, + "id": "megacells:chemical_storage_cell_16m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_1m.json b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_1m.json new file mode 100644 index 00000000..6cdbc2af --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_1m.json @@ -0,0 +1,33 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "a": { + "item": "ae2:quartz_vibrant_glass" + }, + "b": { + "item": "ae2:sky_dust" + }, + "c": { + "item": "megacells:cell_component_1m" + }, + "d": { + "tag": "c:ingots/sky_osmium" + } + }, + "pattern": [ + "aba", + "bcb", + "ddd" + ], + "result": { + "count": 1, + "id": "megacells:chemical_storage_cell_1m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_1m_with_housing.json b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_1m_with_housing.json new file mode 100644 index 00000000..ed8754f0 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_1m_with_housing.json @@ -0,0 +1,22 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "megacells:mega_chemical_cell_housing" + }, + { + "item": "megacells:cell_component_1m" + } + ], + "result": { + "count": 1, + "id": "megacells:chemical_storage_cell_1m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_256m.json b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_256m.json new file mode 100644 index 00000000..7bbbb340 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_256m.json @@ -0,0 +1,33 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "a": { + "item": "ae2:quartz_vibrant_glass" + }, + "b": { + "item": "ae2:sky_dust" + }, + "c": { + "item": "megacells:cell_component_256m" + }, + "d": { + "tag": "c:ingots/sky_osmium" + } + }, + "pattern": [ + "aba", + "bcb", + "ddd" + ], + "result": { + "count": 1, + "id": "megacells:chemical_storage_cell_256m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_256m_with_housing.json b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_256m_with_housing.json new file mode 100644 index 00000000..f01aa783 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_256m_with_housing.json @@ -0,0 +1,22 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "megacells:mega_chemical_cell_housing" + }, + { + "item": "megacells:cell_component_256m" + } + ], + "result": { + "count": 1, + "id": "megacells:chemical_storage_cell_256m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_4m.json b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_4m.json new file mode 100644 index 00000000..5214c172 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_4m.json @@ -0,0 +1,33 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "a": { + "item": "ae2:quartz_vibrant_glass" + }, + "b": { + "item": "ae2:sky_dust" + }, + "c": { + "item": "megacells:cell_component_4m" + }, + "d": { + "tag": "c:ingots/sky_osmium" + } + }, + "pattern": [ + "aba", + "bcb", + "ddd" + ], + "result": { + "count": 1, + "id": "megacells:chemical_storage_cell_4m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_4m_with_housing.json b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_4m_with_housing.json new file mode 100644 index 00000000..3108fd45 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_4m_with_housing.json @@ -0,0 +1,22 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "megacells:mega_chemical_cell_housing" + }, + { + "item": "megacells:cell_component_4m" + } + ], + "result": { + "count": 1, + "id": "megacells:chemical_storage_cell_4m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_64m.json b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_64m.json new file mode 100644 index 00000000..bef7b9a4 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_64m.json @@ -0,0 +1,33 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "a": { + "item": "ae2:quartz_vibrant_glass" + }, + "b": { + "item": "ae2:sky_dust" + }, + "c": { + "item": "megacells:cell_component_64m" + }, + "d": { + "tag": "c:ingots/sky_osmium" + } + }, + "pattern": [ + "aba", + "bcb", + "ddd" + ], + "result": { + "count": 1, + "id": "megacells:chemical_storage_cell_64m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_64m_with_housing.json b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_64m_with_housing.json new file mode 100644 index 00000000..f297fc8d --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/chemical_storage_cell_64m_with_housing.json @@ -0,0 +1,22 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "megacells:mega_chemical_cell_housing" + }, + { + "item": "megacells:cell_component_64m" + } + ], + "result": { + "count": 1, + "id": "megacells:chemical_storage_cell_64m" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/cells/standard/radioactive_chemical_cell.json b/src/generated/resources/data/megacells/recipe/cells/standard/radioactive_chemical_cell.json new file mode 100644 index 00000000..1e24cda7 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/cells/standard/radioactive_chemical_cell.json @@ -0,0 +1,36 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "a": { + "item": "mekanismgenerators:reactor_glass" + }, + "b": { + "item": "ae2:sky_dust" + }, + "c": { + "item": "megacells:radioactive_cell_component" + }, + "d": { + "item": "mekanism:hdpe_sheet" + }, + "e": { + "item": "mekanism:pellet_polonium" + } + }, + "pattern": [ + "aba", + "bcb", + "ded" + ], + "result": { + "count": 1, + "id": "megacells:radioactive_chemical_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/crafting/radioactive_cell_component.json b/src/generated/resources/data/megacells/recipe/crafting/radioactive_cell_component.json new file mode 100644 index 00000000..3ecf3bc9 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/crafting/radioactive_cell_component.json @@ -0,0 +1,36 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appmek" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "a": { + "item": "ae2:sky_dust" + }, + "b": { + "item": "megacells:accumulation_processor" + }, + "c": { + "item": "mekanism:radioactive_waste_barrel" + }, + "d": { + "item": "ae2:quartz_vibrant_glass" + }, + "e": { + "item": "ae2:cell_component_256k" + } + }, + "pattern": [ + "aba", + "cdc", + "aea" + ], + "result": { + "count": 1, + "id": "megacells:radioactive_cell_component" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/crafting/sky_osmium_block.json b/src/generated/resources/data/megacells/recipe/crafting/sky_osmium_block.json new file mode 100644 index 00000000..877402de --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/crafting/sky_osmium_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "tag": "c:ingots/sky_osmium" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "megacells:sky_osmium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/megacells/recipe/crafting/sky_osmium_ingot_from_sky_osmium_block.json b/src/generated/resources/data/megacells/recipe/crafting/sky_osmium_ingot_from_sky_osmium_block.json new file mode 100644 index 00000000..641aa362 --- /dev/null +++ b/src/generated/resources/data/megacells/recipe/crafting/sky_osmium_ingot_from_sky_osmium_block.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "megacells:sky_osmium_block" + } + ], + "result": { + "count": 9, + "id": "megacells:sky_osmium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json index a41af63f..c9ebc2cc 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -2,6 +2,7 @@ "values": [ "megacells:sky_steel_block", "megacells:sky_bronze_block", + "megacells:sky_osmium_block", "megacells:mega_energy_cell", "megacells:mega_crafting_unit", "megacells:mega_crafting_accelerator", diff --git a/src/main/java/gripe/_90/megacells/MEGACells.java b/src/main/java/gripe/_90/megacells/MEGACells.java index df31b525..38e98f2b 100644 --- a/src/main/java/gripe/_90/megacells/MEGACells.java +++ b/src/main/java/gripe/_90/megacells/MEGACells.java @@ -52,13 +52,13 @@ import appeng.client.render.crafting.CraftingMonitorRenderer; import appeng.core.AppEng; import appeng.core.definitions.AEItems; -import appeng.core.definitions.ItemDefinition; import appeng.core.localization.GuiText; import appeng.hooks.BuiltInModelHooks; import appeng.hotkeys.HotkeyActions; import appeng.init.InitVillager; import appeng.init.client.InitScreens; import appeng.items.storage.BasicStorageCell; +import appeng.items.tools.powered.AbstractPortableCell; import appeng.items.tools.powered.PortableCellItem; import appeng.items.tools.powered.powersink.PoweredItemCapabilities; @@ -73,6 +73,8 @@ import gripe._90.megacells.definition.MEGAMenus; import gripe._90.megacells.integration.Addons; import gripe._90.megacells.integration.ae2wt.AE2WTIntegration; +import gripe._90.megacells.integration.appmek.AppMekIntegration; +import gripe._90.megacells.integration.appmek.RadioactiveCellItem; import gripe._90.megacells.item.cell.BulkCellItem; import gripe._90.megacells.menu.MEGAInterfaceMenu; import gripe._90.megacells.menu.MEGAPatternProviderMenu; @@ -174,17 +176,25 @@ private static void initUpgrades(FMLCommonSetupEvent event) { if (Addons.AE2WTLIB.isLoaded()) { AE2WTIntegration.initUpgrades(); } + + if (Addons.APPMEK.isLoaded()) { + AppMekIntegration.initUpgrades(); + } }); } private static void initStorageCells(FMLCommonSetupEvent event) { - StorageCells.addCellHandler(BulkCellItem.HANDLER); - event.enqueueWork(() -> { + StorageCells.addCellHandler(BulkCellItem.HANDLER); + MEGAItems.getItemPortables() .forEach(cell -> HotkeyActions.registerPortableCell(cell, HotkeyAction.PORTABLE_ITEM_CELL)); MEGAItems.getFluidPortables() .forEach(cell -> HotkeyActions.registerPortableCell(cell, HotkeyAction.PORTABLE_FLUID_CELL)); + + if (Addons.APPMEK.isLoaded()) { + StorageCells.addCellHandler(RadioactiveCellItem.HANDLER); + } }); } @@ -243,16 +253,22 @@ private static void initCapabilities(RegisterCapabilitiesEvent event) { MEGABlockEntities.MEGA_PATTERN_PROVIDER.get(), (be, context) -> be.getLogic().getReturnInv()); - MEGAItems.getItemPortables().forEach(portable -> registerPoweredItemCapability(event, portable)); - MEGAItems.getFluidPortables().forEach(portable -> registerPoweredItemCapability(event, portable)); + MEGAItems.getItemPortables().forEach(portable -> registerPoweredItemCapability(event, portable.get())); + MEGAItems.getFluidPortables().forEach(portable -> registerPoweredItemCapability(event, portable.get())); + + if (Addons.APPMEK.isLoaded()) { + for (var portable : MEGAItems.getChemicalPortables()) { + if (portable.get() instanceof AbstractPortableCell cell) { + registerPoweredItemCapability(event, cell); + } + } + } } private static void registerPoweredItemCapability( - RegisterCapabilitiesEvent event, ItemDefinition item) { + RegisterCapabilitiesEvent event, T item) { event.registerItem( - Capabilities.EnergyStorage.ITEM, - (object, context) -> new PoweredItemCapabilities(object, item.asItem()), - item); + Capabilities.EnergyStorage.ITEM, (object, context) -> new PoweredItemCapabilities(object, item), item); } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/gripe/_90/megacells/definition/MEGABlocks.java b/src/main/java/gripe/_90/megacells/definition/MEGABlocks.java index 03484cc2..dfff6a85 100644 --- a/src/main/java/gripe/_90/megacells/definition/MEGABlocks.java +++ b/src/main/java/gripe/_90/megacells/definition/MEGABlocks.java @@ -4,6 +4,7 @@ import java.util.Collections; import java.util.List; import java.util.function.BiFunction; +import java.util.function.Function; import java.util.function.Supplier; import net.minecraft.world.item.BlockItem; @@ -32,6 +33,8 @@ import gripe._90.megacells.block.MEGAInterfaceBlock; import gripe._90.megacells.block.MEGAPatternProviderBlock; import gripe._90.megacells.block.MEGAPatternProviderBlockItem; +import gripe._90.megacells.integration.Addons; +import gripe._90.megacells.integration.DummyIntegrationBlock; public final class MEGABlocks { public static final DeferredRegister.Blocks DR = DeferredRegister.createBlocks(MEGACells.MODID); @@ -60,6 +63,17 @@ public static List> getBlocks() { .mapColor(MapColor.METAL) .sound(SoundType.METAL)), (b, p) -> new AEBaseBlockItem(b, p.fireResistant())); + public static final BlockDefinition SKY_OSMIUM_BLOCK = integrationBlock( + "Sky Osmium Block", + "sky_osmium_block", + () -> AEDecorativeBlock::new, + BlockBehaviour.Properties.of() + .strength(7.5f, 24.0f) + .requiresCorrectToolForDrops() + .mapColor(MapColor.METAL) + .sound(SoundType.METAL), + (b, p) -> new AEBaseBlockItem(b, p.fireResistant()), + Addons.APPMEK); public static final BlockDefinition MEGA_ENERGY_CELL = block( "Superdense Energy Cell", @@ -137,4 +151,22 @@ private static BlockDefinition block( BLOCKS.add(definition); return definition; } + + private static BlockDefinition integrationBlock( + String englishName, + String id, + Supplier> blockFactory, + BlockBehaviour.Properties blockProps, + BiFunction itemFactory, + Addons addon) { + if (!addon.isLoaded()) { + return block( + englishName, + id, + () -> new DummyIntegrationBlock(blockProps), + (b, p) -> new DummyIntegrationBlock.Item(b, p, addon)); + } + + return block(englishName, id, () -> blockFactory.get().apply(blockProps), itemFactory); + } } diff --git a/src/main/java/gripe/_90/megacells/definition/MEGAComponents.java b/src/main/java/gripe/_90/megacells/definition/MEGAComponents.java index 15d78d67..f4b15e6a 100644 --- a/src/main/java/gripe/_90/megacells/definition/MEGAComponents.java +++ b/src/main/java/gripe/_90/megacells/definition/MEGAComponents.java @@ -12,7 +12,6 @@ import net.minecraft.network.codec.StreamCodec; import net.neoforged.neoforge.registries.DeferredRegister; -import appeng.api.stacks.AEItemKey; import appeng.api.stacks.AEKey; import gripe._90.megacells.MEGACells; @@ -24,8 +23,8 @@ public final class MEGAComponents { public static final DeferredRegister> DR = DeferredRegister.create(Registries.DATA_COMPONENT_TYPE, MEGACells.MODID); - public static final DataComponentType BULK_CELL_ITEM = register( - "bulk_item", builder -> builder.persistent(AEKey.CODEC).networkSynchronized(AEItemKey.STREAM_CODEC)); + public static final DataComponentType BULK_CELL_ITEM = + register("bulk_item", builder -> builder.persistent(AEKey.CODEC).networkSynchronized(AEKey.STREAM_CODEC)); private static final Codec BIG_INTEGER_CODEC = Codec.STRING.comapFlatMap( str -> { @@ -59,6 +58,13 @@ public final class MEGAComponents { register("encoded_decompression_pattern", builder -> builder.persistent(DecompressionPattern.Encoded.CODEC) .networkSynchronized(DecompressionPattern.Encoded.STREAM_CODEC)); + public static final DataComponentType RADIOACTIVE_CELL_CHEMICAL = register( + "radioactive_chemical", builder -> builder.persistent(AEKey.CODEC).networkSynchronized(AEKey.STREAM_CODEC)); + + public static final DataComponentType RADIOACTIVE_CELL_AMOUNT = + register("radioactive_amount", builder -> builder.persistent(Codec.LONG) + .networkSynchronized(ByteBufCodecs.VAR_LONG)); + private static DataComponentType register(String name, Consumer> customizer) { var builder = DataComponentType.builder(); customizer.accept(builder); diff --git a/src/main/java/gripe/_90/megacells/definition/MEGAItems.java b/src/main/java/gripe/_90/megacells/definition/MEGAItems.java index 28997338..c89137eb 100644 --- a/src/main/java/gripe/_90/megacells/definition/MEGAItems.java +++ b/src/main/java/gripe/_90/megacells/definition/MEGAItems.java @@ -4,6 +4,7 @@ import java.util.Collections; import java.util.List; import java.util.function.Function; +import java.util.function.Supplier; import net.minecraft.Util; import net.minecraft.world.item.Item; @@ -27,6 +28,10 @@ import appeng.menu.me.common.MEStorageMenu; import gripe._90.megacells.MEGACells; +import gripe._90.megacells.integration.Addons; +import gripe._90.megacells.integration.DummyIntegrationItem; +import gripe._90.megacells.integration.appmek.AppMekIntegration; +import gripe._90.megacells.integration.appmek.RadioactiveCellItem; import gripe._90.megacells.item.cell.BulkCellItem; import gripe._90.megacells.item.cell.MEGAPortableCell; import gripe._90.megacells.item.part.DecompressionModulePart; @@ -130,6 +135,35 @@ public static List getAllCells() { DecompressionModulePart.class, DecompressionModulePart::new); + public static final ItemDefinition SKY_OSMIUM_INGOT = integrationItem( + "Sky Osmium Ingot", + "sky_osmium_ingot", + () -> MaterialItem::new, + Item.Properties::fireResistant, + Addons.APPMEK); + public static final ItemDefinition MEGA_CHEMICAL_CELL_HOUSING = integrationItem( + "MEGA Chemical Cell Housing", "mega_chemical_cell_housing", () -> MaterialItem::new, Addons.APPMEK); + + public static final ItemDefinition CHEMICAL_CELL_1M = chemCell(TIER_1M); + public static final ItemDefinition CHEMICAL_CELL_4M = chemCell(TIER_4M); + public static final ItemDefinition CHEMICAL_CELL_16M = chemCell(TIER_16M); + public static final ItemDefinition CHEMICAL_CELL_64M = chemCell(TIER_64M); + public static final ItemDefinition CHEMICAL_CELL_256M = chemCell(TIER_256M); + + public static final ItemDefinition PORTABLE_CHEMICAL_CELL_1M = chemPortable(TIER_1M); + public static final ItemDefinition PORTABLE_CHEMICAL_CELL_4M = chemPortable(TIER_4M); + public static final ItemDefinition PORTABLE_CHEMICAL_CELL_16M = chemPortable(TIER_16M); + public static final ItemDefinition PORTABLE_CHEMICAL_CELL_64M = chemPortable(TIER_64M); + public static final ItemDefinition PORTABLE_CHEMICAL_CELL_256M = chemPortable(TIER_256M); + + public static final ItemDefinition RADIOACTIVE_CELL_COMPONENT = integrationItem( + "MEGA Radioactive Storage Component", "radioactive_cell_component", () -> MaterialItem::new, Addons.APPMEK); + public static final ItemDefinition RADIOACTIVE_CHEMICAL_CELL = integrationItem( + "MEGA Radioactive Chemical Storage Cell", + "radioactive_chemical_cell", + () -> RadioactiveCellItem::new, + Addons.APPMEK); + public static List> getItemCells() { return List.of(ITEM_CELL_1M, ITEM_CELL_4M, ITEM_CELL_16M, ITEM_CELL_64M, ITEM_CELL_256M); } @@ -138,6 +172,10 @@ public static List> getFluidCells() { return List.of(FLUID_CELL_1M, FLUID_CELL_4M, FLUID_CELL_16M, FLUID_CELL_64M, FLUID_CELL_256M); } + public static List> getChemicalCells() { + return List.of(CHEMICAL_CELL_1M, CHEMICAL_CELL_4M, CHEMICAL_CELL_16M, CHEMICAL_CELL_64M, CHEMICAL_CELL_256M); + } + public static List> getItemPortables() { return List.of( PORTABLE_ITEM_CELL_1M, @@ -156,6 +194,15 @@ public static List> getFluidPorta PORTABLE_FLUID_CELL_256M); } + public static List> getChemicalPortables() { + return List.of( + PORTABLE_CHEMICAL_CELL_1M, + PORTABLE_CHEMICAL_CELL_4M, + PORTABLE_CHEMICAL_CELL_16M, + PORTABLE_CHEMICAL_CELL_64M, + PORTABLE_CHEMICAL_CELL_256M); + } + private static StorageTier tier(int index, ItemDefinition component) { int multiplier = (int) Math.pow(4, index - 1); return new StorageTier(index, (multiplier / 1024) + "m", 1024 * multiplier, 0.5 * index, component::asItem); @@ -202,6 +249,17 @@ private static ItemDefinition fluidCell(StorageTier tier) { return cell; } + private static ItemDefinition chemCell(StorageTier tier) { + var cell = integrationItem( + tier.namePrefix().toUpperCase() + " MEGA Chemical Storage Cell", + "chemical_storage_cell_" + tier.namePrefix(), + () -> AppMekIntegration.createChemCell(tier), + p -> p.stacksTo(1), + Addons.APPMEK); + CELLS.add(new CellDefinition(cell, tier, "chemical")); + return cell; + } + private static ItemDefinition itemPortable(StorageTier tier) { var cell = item( tier.namePrefix().toUpperCase() + " Portable Item Cell", @@ -221,18 +279,48 @@ private static ItemDefinition fluidPortable(StorageTier tier) return cell; } + private static ItemDefinition chemPortable(StorageTier tier) { + var cell = integrationItem( + tier.namePrefix().toUpperCase() + " Portable Chemical Cell", + "portable_chemical_cell_" + tier.namePrefix(), + () -> AppMekIntegration.createChemPortable(tier), + p -> p.stacksTo(1), + Addons.APPMEK); + CELLS.add(new CellDefinition(cell, tier, "chemical")); + return cell; + } + private static ItemDefinition> part( String englishName, String id, Class partClass, Function, T> factory) { PartModels.registerModels(PartModelsHelper.createModels(partClass)); return item(englishName, id, p -> new PartItem<>(p, partClass, factory)); } - public static ItemDefinition item( + private static ItemDefinition item( String englishName, String id, Function factory) { var definition = new ItemDefinition<>(englishName, DR.registerItem(id, factory)); ITEMS.add(definition); return definition; } + private static ItemDefinition integrationItem( + String englishName, + String id, + Supplier> factory, + Function propsCustomizer, + Addons addon) { + return item( + englishName, + id, + p -> addon.isLoaded() + ? factory.get().apply(propsCustomizer.apply(p)) + : new DummyIntegrationItem(propsCustomizer.apply(p), addon)); + } + + private static ItemDefinition integrationItem( + String englishName, String id, Supplier> factory, Addons addon) { + return integrationItem(englishName, id, factory, p -> p, addon); + } + public record CellDefinition(ItemDefinition item, StorageTier tier, String keyType) {} } diff --git a/src/main/java/gripe/_90/megacells/definition/MEGATags.java b/src/main/java/gripe/_90/megacells/definition/MEGATags.java index d2657310..e93ae7b8 100644 --- a/src/main/java/gripe/_90/megacells/definition/MEGATags.java +++ b/src/main/java/gripe/_90/megacells/definition/MEGATags.java @@ -1,7 +1,8 @@ package gripe._90.megacells.definition; -import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; @@ -9,20 +10,19 @@ import gripe._90.megacells.MEGACells; public final class MEGATags { - public static final TagKey SKY_STEEL_INGOT = - TagKey.create(Registries.ITEM, ResourceLocation.parse("c:ingots/sky_steel")); - public static final TagKey SKY_BRONZE_INGOT = - TagKey.create(Registries.ITEM, ResourceLocation.parse("c:ingots/sky_bronze")); + public static final TagKey SKY_STEEL_INGOT = ItemTags.create(ResourceLocation.parse("c:ingots/sky_steel")); + public static final TagKey SKY_BRONZE_INGOT = ItemTags.create(ResourceLocation.parse("c:ingots/sky_bronze")); + public static final TagKey SKY_OSMIUM_INGOT = ItemTags.create(ResourceLocation.parse("c:ingots/sky_osmium")); public static final TagKey SKY_STEEL_BLOCK = - TagKey.create(Registries.BLOCK, ResourceLocation.parse("c:storage_blocks/sky_steel")); + BlockTags.create(ResourceLocation.parse("c:storage_blocks/sky_steel")); public static final TagKey SKY_BRONZE_BLOCK = - TagKey.create(Registries.BLOCK, ResourceLocation.parse("c:storage_blocks/sky_bronze")); + BlockTags.create(ResourceLocation.parse("c:storage_blocks/sky_bronze")); + public static final TagKey SKY_OSMIUM_BLOCK = + BlockTags.create(ResourceLocation.parse("c:storage_blocks/sky_osmium")); - public static final TagKey MEGA_INTERFACE = TagKey.create(Registries.ITEM, MEGABlocks.MEGA_INTERFACE.id()); - public static final TagKey MEGA_PATTERN_PROVIDER = - TagKey.create(Registries.ITEM, MEGABlocks.MEGA_PATTERN_PROVIDER.id()); + public static final TagKey MEGA_INTERFACE = ItemTags.create(MEGABlocks.MEGA_INTERFACE.id()); + public static final TagKey MEGA_PATTERN_PROVIDER = ItemTags.create(MEGABlocks.MEGA_PATTERN_PROVIDER.id()); - public static final TagKey COMPRESSION_OVERRIDES = - TagKey.create(Registries.ITEM, MEGACells.makeId("compression_overrides")); + public static final TagKey COMPRESSION_OVERRIDES = ItemTags.create(MEGACells.makeId("compression_overrides")); } diff --git a/src/main/java/gripe/_90/megacells/definition/MEGATranslations.java b/src/main/java/gripe/_90/megacells/definition/MEGATranslations.java index e91a0662..edf5fd4e 100644 --- a/src/main/java/gripe/_90/megacells/definition/MEGATranslations.java +++ b/src/main/java/gripe/_90/megacells/definition/MEGATranslations.java @@ -15,6 +15,7 @@ public enum MEGATranslations implements LocalizationEnum { FilterChemicalUnsupported("Filter chemical unsupported!", Type.TOOLTIP), MismatchedFilter("Mismatched filter!", Type.TOOLTIP), ModName("MEGA Cells", Type.GUI), + NotInstalled("%s not installed.", Type.TOOLTIP), PartitionedFor("Partitioned for: %s", Type.TOOLTIP), ProcessingOnly("Supports processing patterns only.", Type.TOOLTIP), Quantity("Quantity: %s", Type.TOOLTIP), diff --git a/src/main/java/gripe/_90/megacells/integration/Addons.java b/src/main/java/gripe/_90/megacells/integration/Addons.java index be669591..2f064ca9 100644 --- a/src/main/java/gripe/_90/megacells/integration/Addons.java +++ b/src/main/java/gripe/_90/megacells/integration/Addons.java @@ -7,16 +7,26 @@ import net.neoforged.neoforge.common.conditions.ModLoadedCondition; public enum Addons { - APPMEK, - APPBOT, - ARSENG, - APPLIEDE, - AE2WTLIB; + APPMEK("Applied Mekanistics"), + APPBOT("Applied Botanics"), + ARSENG("Ars Énergistique"), + APPLIEDE("AppliedE"), + AE2WTLIB("AE2WTLib"); + + private final String modName; + + Addons(String modName) { + this.modName = modName; + } public String getModId() { return name().toLowerCase(); } + public String getModName() { + return modName; + } + public boolean isLoaded() { return ModList.get() != null ? ModList.get().isLoaded(getModId()) diff --git a/src/main/java/gripe/_90/megacells/integration/DummyIntegrationBlock.java b/src/main/java/gripe/_90/megacells/integration/DummyIntegrationBlock.java new file mode 100644 index 00000000..821b858c --- /dev/null +++ b/src/main/java/gripe/_90/megacells/integration/DummyIntegrationBlock.java @@ -0,0 +1,39 @@ +package gripe._90.megacells.integration; + +import java.util.List; + +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.block.Block; + +import appeng.block.AEBaseBlock; +import appeng.block.AEBaseBlockItem; + +import gripe._90.megacells.definition.MEGATranslations; + +public class DummyIntegrationBlock extends AEBaseBlock { + public DummyIntegrationBlock(Properties props) { + super(props); + } + + @Override + public void addToMainCreativeTab(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) {} + + public static class Item extends AEBaseBlockItem { + private final Addons addon; + + public Item(Block block, Properties props, Addons addon) { + super(block, props); + this.addon = addon; + } + + @Override + public void addCheckedInformation( + ItemStack itemStack, TooltipContext context, List lines, TooltipFlag flag) { + lines.add(MEGATranslations.NotInstalled.text(addon.getModName()).withStyle(ChatFormatting.GRAY)); + } + } +} diff --git a/src/main/java/gripe/_90/megacells/integration/DummyIntegrationItem.java b/src/main/java/gripe/_90/megacells/integration/DummyIntegrationItem.java new file mode 100644 index 00000000..d5274045 --- /dev/null +++ b/src/main/java/gripe/_90/megacells/integration/DummyIntegrationItem.java @@ -0,0 +1,32 @@ +package gripe._90.megacells.integration; + +import java.util.List; +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; + +import appeng.items.AEBaseItem; + +import gripe._90.megacells.definition.MEGATranslations; + +public class DummyIntegrationItem extends AEBaseItem { + private final Addons addon; + + public DummyIntegrationItem(Properties properties, Addons addon) { + super(properties); + this.addon = addon; + } + + @ParametersAreNonnullByDefault + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, List lines, TooltipFlag flag) { + lines.add(MEGATranslations.NotInstalled.text(addon.getModName()).withStyle(ChatFormatting.GRAY)); + } + + @Override + public void addToMainCreativeTab(CreativeModeTab.ItemDisplayParameters parameters, CreativeModeTab.Output output) {} +} diff --git a/src/unported/integration/appmek/AppMekIntegration.java b/src/main/java/gripe/_90/megacells/integration/appmek/AppMekIntegration.java similarity index 53% rename from src/unported/integration/appmek/AppMekIntegration.java rename to src/main/java/gripe/_90/megacells/integration/appmek/AppMekIntegration.java index 2ffae856..8f903e63 100644 --- a/src/unported/integration/appmek/AppMekIntegration.java +++ b/src/main/java/gripe/_90/megacells/integration/appmek/AppMekIntegration.java @@ -1,27 +1,53 @@ package gripe._90.megacells.integration.appmek; import java.util.List; +import java.util.function.Function; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; + +import appeng.api.stacks.AEKey; import appeng.api.upgrades.Upgrades; import appeng.core.definitions.AEItems; import appeng.core.localization.GuiText; +import appeng.items.storage.StorageTier; import me.ramidzkh.mekae2.AMItems; +import me.ramidzkh.mekae2.AMMenus; +import me.ramidzkh.mekae2.ae2.MekanismKey; +import me.ramidzkh.mekae2.ae2.MekanismKeyType; +import me.ramidzkh.mekae2.item.ChemicalStorageCell; +import mekanism.api.chemical.attribute.ChemicalAttributeValidator; import gripe._90.megacells.definition.MEGAItems; +import gripe._90.megacells.item.cell.MEGAPortableCell; public final class AppMekIntegration { + public static Function createChemCell(StorageTier tier) { + return p -> new ChemicalStorageCell(p, tier, MEGAItems.MEGA_CHEMICAL_CELL_HOUSING); + } + + public static Function createChemPortable(StorageTier tier) { + return p -> new MEGAPortableCell(p, tier, MekanismKeyType.TYPE, AMMenus.PORTABLE_CHEMICAL_CELL_TYPE, 0x80caff) { + @Override + public boolean isBlackListed(ItemStack cellItem, AEKey requestedAddition) { + return !(requestedAddition instanceof MekanismKey key) + || !ChemicalAttributeValidator.DEFAULT.process(key.getStack()); + } + }; + } + public static void initUpgrades() { var storageCellGroup = GuiText.StorageCells.getTranslationKey(); var portableCellGroup = GuiText.PortableCells.getTranslationKey(); - AppMekItems.getCells().forEach(cell -> { + MEGAItems.getChemicalCells().forEach(cell -> { Upgrades.add(AEItems.INVERTER_CARD, cell, 1, storageCellGroup); Upgrades.add(AEItems.EQUAL_DISTRIBUTION_CARD, cell, 1, storageCellGroup); Upgrades.add(AEItems.VOID_CARD, cell, 1, storageCellGroup); }); - AppMekItems.getPortables().forEach(portable -> { + MEGAItems.getChemicalPortables().forEach(portable -> { Upgrades.add(AEItems.INVERTER_CARD, portable, 1, portableCellGroup); Upgrades.add(MEGAItems.GREATER_ENERGY_CARD, portable, 2, portableCellGroup); Upgrades.add(AEItems.EQUAL_DISTRIBUTION_CARD, portable, 1, portableCellGroup); diff --git a/src/unported/integration/appmek/item/RadioactiveCellInventory.java b/src/main/java/gripe/_90/megacells/integration/appmek/RadioactiveCellInventory.java similarity index 88% rename from src/unported/integration/appmek/item/RadioactiveCellInventory.java rename to src/main/java/gripe/_90/megacells/integration/appmek/RadioactiveCellInventory.java index 7d6e4dca..f8193321 100644 --- a/src/unported/integration/appmek/item/RadioactiveCellInventory.java +++ b/src/main/java/gripe/_90/megacells/integration/appmek/RadioactiveCellInventory.java @@ -1,8 +1,7 @@ -package gripe._90.megacells.integration.appmek.item; +package gripe._90.megacells.integration.appmek; import java.util.Objects; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.world.item.ItemStack; @@ -19,13 +18,10 @@ import mekanism.api.chemical.attribute.ChemicalAttributeValidator; import mekanism.common.registries.MekanismGases; +import gripe._90.megacells.definition.MEGAComponents; import gripe._90.megacells.definition.MEGAConfig; public class RadioactiveCellInventory implements StorageCell { - - private static final String KEY = "key"; - private static final String COUNT = "count"; - static final int MAX_BYTES = 256; private static final long MAX_MB = (long) MAX_BYTES * MekanismKeyType.TYPE.getAmountPerByte(); @@ -45,12 +41,8 @@ public class RadioactiveCellInventory implements StorageCell { var filter = cell.getConfigInventory(this.stack).getKey(0); filterChemical = filter instanceof MekanismKey chemical ? chemical : null; - storedChemical = getTag().contains(KEY) ? AEKey.fromTagGeneric(getTag().getCompound(KEY)) : null; - chemAmount = getTag().getLong(COUNT); - } - - private CompoundTag getTag() { - return stack.getOrCreateTag(); + storedChemical = stack.get(MEGAComponents.RADIOACTIVE_CELL_CHEMICAL); + chemAmount = stack.getOrDefault(MEGAComponents.RADIOACTIVE_CELL_AMOUNT, 0L); } @Override @@ -97,7 +89,7 @@ public double getIdleDrain() { public boolean isBlackListed(AEKey what) { return !(what instanceof MekanismKey key) - || (key.getStack().getType() == MekanismGases.SPENT_NUCLEAR_WASTE.get() + || (key.getStack().getChemical() == MekanismGases.SPENT_NUCLEAR_WASTE.get() ? !MEGAConfig.CONFIG.isSpentWasteAllowed() : ChemicalAttributeValidator.DEFAULT.process(key.getStack())); } @@ -181,11 +173,11 @@ public void persist() { } if (storedChemical == null || chemAmount < 0) { - getTag().remove(KEY); - getTag().remove(COUNT); + stack.remove(MEGAComponents.RADIOACTIVE_CELL_CHEMICAL); + stack.remove(MEGAComponents.RADIOACTIVE_CELL_AMOUNT); } else { - getTag().put(KEY, storedChemical.toTagGeneric()); - getTag().putLong(COUNT, chemAmount); + stack.set(MEGAComponents.RADIOACTIVE_CELL_CHEMICAL, storedChemical); + stack.set(MEGAComponents.RADIOACTIVE_CELL_AMOUNT, chemAmount); } isPersisted = true; diff --git a/src/unported/integration/appmek/item/RadioactiveCellItem.java b/src/main/java/gripe/_90/megacells/integration/appmek/RadioactiveCellItem.java similarity index 98% rename from src/unported/integration/appmek/item/RadioactiveCellItem.java rename to src/main/java/gripe/_90/megacells/integration/appmek/RadioactiveCellItem.java index 34ca602e..ea88d63f 100644 --- a/src/unported/integration/appmek/item/RadioactiveCellItem.java +++ b/src/main/java/gripe/_90/megacells/integration/appmek/RadioactiveCellItem.java @@ -1,4 +1,4 @@ -package gripe._90.megacells.integration.appmek.item; +package gripe._90.megacells.integration.appmek; import java.util.ArrayList; import java.util.List; diff --git a/src/main/resources/assets/megacells/textures/block/sky_osmium_block.png b/src/main/resources/assets/megacells/textures/block/sky_osmium_block.png new file mode 100644 index 00000000..d07022cf Binary files /dev/null and b/src/main/resources/assets/megacells/textures/block/sky_osmium_block.png differ diff --git a/src/main/resources/assets/megacells/textures/item/sky_osmium_ingot.png b/src/main/resources/assets/megacells/textures/item/sky_osmium_ingot.png new file mode 100644 index 00000000..33f2d6aa Binary files /dev/null and b/src/main/resources/assets/megacells/textures/item/sky_osmium_ingot.png differ diff --git a/src/unported/integration/appmek/AppMekItems.java b/src/unported/integration/appmek/AppMekItems.java deleted file mode 100644 index 0bac317f..00000000 --- a/src/unported/integration/appmek/AppMekItems.java +++ /dev/null @@ -1,86 +0,0 @@ -package gripe._90.megacells.integration.appmek; - -import java.util.List; - -import net.minecraft.world.item.ItemStack; - -import appeng.api.stacks.AEKey; -import appeng.core.definitions.ItemDefinition; -import appeng.items.materials.MaterialItem; -import appeng.items.storage.StorageTier; -import appeng.items.tools.powered.AbstractPortableCell; - -import me.ramidzkh.mekae2.AMMenus; -import me.ramidzkh.mekae2.ae2.MekanismKey; -import me.ramidzkh.mekae2.ae2.MekanismKeyType; -import me.ramidzkh.mekae2.item.ChemicalStorageCell; -import mekanism.api.chemical.attribute.ChemicalAttributeValidator; - -import gripe._90.megacells.definition.MEGAItems; -import gripe._90.megacells.integration.appmek.item.RadioactiveCellItem; -import gripe._90.megacells.item.cell.MEGAPortableCell; - -public final class AppMekItems { - @SuppressWarnings("EmptyMethod") - public static void init() { - // TODO: Replace with deferred registration when AE2 does so - } - - public static final ItemDefinition MEGA_CHEMICAL_CELL_HOUSING = - MEGAItems.item("MEGA Chemical Cell Housing", "mega_chemical_cell_housing", MaterialItem::new); - - public static final ItemDefinition CHEMICAL_CELL_1M = cell(MEGAItems.TIER_1M); - public static final ItemDefinition CHEMICAL_CELL_4M = cell(MEGAItems.TIER_4M); - public static final ItemDefinition CHEMICAL_CELL_16M = cell(MEGAItems.TIER_16M); - public static final ItemDefinition CHEMICAL_CELL_64M = cell(MEGAItems.TIER_64M); - public static final ItemDefinition CHEMICAL_CELL_256M = cell(MEGAItems.TIER_256M); - - public static final ItemDefinition PORTABLE_CHEMICAL_CELL_1M = portable(MEGAItems.TIER_1M); - public static final ItemDefinition PORTABLE_CHEMICAL_CELL_4M = portable(MEGAItems.TIER_4M); - public static final ItemDefinition PORTABLE_CHEMICAL_CELL_16M = portable(MEGAItems.TIER_16M); - public static final ItemDefinition PORTABLE_CHEMICAL_CELL_64M = portable(MEGAItems.TIER_64M); - public static final ItemDefinition PORTABLE_CHEMICAL_CELL_256M = portable(MEGAItems.TIER_256M); - - public static final ItemDefinition RADIOACTIVE_CELL_COMPONENT = - MEGAItems.item("MEGA Radioactive Storage Component", "radioactive_cell_component", MaterialItem::new); - public static final ItemDefinition RADIOACTIVE_CHEMICAL_CELL = MEGAItems.item( - "MEGA Radioactive Chemical Storage Cell", "radioactive_chemical_cell", RadioactiveCellItem::new); - - public static List> getCells() { - return List.of(CHEMICAL_CELL_1M, CHEMICAL_CELL_4M, CHEMICAL_CELL_16M, CHEMICAL_CELL_64M, CHEMICAL_CELL_256M); - } - - public static List> getPortables() { - return List.of( - PORTABLE_CHEMICAL_CELL_1M, - PORTABLE_CHEMICAL_CELL_4M, - PORTABLE_CHEMICAL_CELL_16M, - PORTABLE_CHEMICAL_CELL_64M, - PORTABLE_CHEMICAL_CELL_256M); - } - - private static ItemDefinition cell(StorageTier tier) { - return MEGAItems.item( - tier.namePrefix().toUpperCase() + " MEGA Chemical Storage Cell", - "chemical_storage_cell_" + tier.namePrefix(), - p -> new ChemicalStorageCell(p.stacksTo(1), tier, MEGA_CHEMICAL_CELL_HOUSING)); - } - - private static ItemDefinition portable(StorageTier tier) { - return MEGAItems.item( - tier.namePrefix().toUpperCase() + " Portable Chemical Cell", - "portable_chemical_cell_" + tier.namePrefix(), - p -> - new MEGAPortableCell( - p, tier, MekanismKeyType.TYPE, AMMenus.PORTABLE_CHEMICAL_CELL_TYPE, 0x80caff) { - @Override - public boolean isBlackListed(ItemStack cellItem, AEKey requestedAddition) { - if (requestedAddition instanceof MekanismKey key) { - return !ChemicalAttributeValidator.DEFAULT.process(key.getStack()); - } else { - return true; - } - } - }); - } -}