From 59715dbd457dcf9f1d42b49d0d2a01e7a9043d7a Mon Sep 17 00:00:00 2001 From: 90 Date: Sat, 27 Jan 2024 15:05:42 +0000 Subject: [PATCH] =?UTF-8?q?Add=20Ars=20=C3=89nergistique=20integration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 1 + .../java/gripe/_90/megacells/core/Addons.java | 1 + forge/build.gradle.kts | 18 +++ .../megacells/datagen/ForgeModelProvider.java | 10 ++ .../datagen/ForgeRecipeProvider.java | 129 ++++++++++++------ .../_90/megacells/forge/ForgePlatform.java | 18 +++ .../_90/megacells/forge/MEGACellsForge.java | 5 + .../integration/arseng/ArsEngIntegration.java | 33 +++++ .../integration/arseng/ArsEngItems.java | 62 +++++++++ .../block/drive/cells/mega_source_cell.png | Bin 0 -> 79 bytes .../portable/portable_source_cell_16m.png | Bin 0 -> 257 bytes .../cell/portable/portable_source_cell_1m.png | Bin 0 -> 256 bytes .../portable/portable_source_cell_256m.png | Bin 0 -> 256 bytes .../cell/portable/portable_source_cell_4m.png | Bin 0 -> 255 bytes .../portable/portable_source_cell_64m.png | Bin 0 -> 257 bytes .../cell/standard/source_storage_cell_16m.png | Bin 0 -> 223 bytes .../cell/standard/source_storage_cell_1m.png | Bin 0 -> 223 bytes .../standard/source_storage_cell_256m.png | Bin 0 -> 223 bytes .../cell/standard/source_storage_cell_4m.png | Bin 0 -> 224 bytes .../cell/standard/source_storage_cell_64m.png | Bin 0 -> 223 bytes .../item/mega_source_cell_housing.png | Bin 0 -> 204 bytes .../recipes/mega_source_cell_housing.json | 52 +++++++ settings.gradle.kts | 8 ++ 23 files changed, 294 insertions(+), 43 deletions(-) create mode 100644 forge/src/main/java/gripe/_90/megacells/integration/arseng/ArsEngIntegration.java create mode 100644 forge/src/main/java/gripe/_90/megacells/integration/arseng/ArsEngItems.java create mode 100644 forge/src/main/resources/assets/megacells/textures/block/drive/cells/mega_source_cell.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_16m.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_1m.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_256m.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_4m.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_64m.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/cell/standard/source_storage_cell_16m.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/cell/standard/source_storage_cell_1m.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/cell/standard/source_storage_cell_256m.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/cell/standard/source_storage_cell_4m.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/cell/standard/source_storage_cell_64m.png create mode 100644 forge/src/main/resources/assets/megacells/textures/item/mega_source_cell_housing.png create mode 100644 forge/src/main/resources/data/arseng/recipes/mega_source_cell_housing.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index adee3c18..eab5944c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -69,6 +69,7 @@ jobs: ae2(required){curseforge:223794}{modrinth:XxWD5pD3} appmek(optional){curseforge:574300}{modrinth:IiATswDj} appbot(optional){curseforge:610632}{modrinth:545hUrw9} + arseng(optional){curseforge:905641}{modrinth:IJI3QuK8} ae2wtlib(optional){curseforge:459929}{modrinth:pNabrMMw} cloth_config(required){curseforge:348521}{modrinth:9s6osm5g} diff --git a/common/src/main/java/gripe/_90/megacells/core/Addons.java b/common/src/main/java/gripe/_90/megacells/core/Addons.java index f95f2f4a..e4edb69d 100644 --- a/common/src/main/java/gripe/_90/megacells/core/Addons.java +++ b/common/src/main/java/gripe/_90/megacells/core/Addons.java @@ -3,6 +3,7 @@ public enum Addons { APPMEK("appmek"), APPBOT("appbot"), + ARSENG("arseng"), AE2WTLIB("ae2wtlib"); private final String modId; diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 591186c5..34b93145 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -58,6 +58,19 @@ repositories { includeGroup("top.theillusivec4.curios") } } + + maven { + name = "BlameJared" + url = uri("https://maven.blamejared.com") + content { + includeGroup("com.hollingsworth.ars_nouveau") + } + } + + maven { + name = "GeckoLib" + url = uri("https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/") + } } dependencies { @@ -75,6 +88,11 @@ dependencies { modRuntimeOnly(libs.botania.forge) modRuntimeOnly(libs.patchouli.forge) + modImplementation(libs.arseng) + modRuntimeOnly(libs.arsnouveau) + modRuntimeOnly(libs.geckolib) + runtimeOnly(libs.mixinextras) + modImplementation(libs.ae2wtlib.forge) modRuntimeOnly(libs.architectury.forge) modRuntimeOnly(libs.curios) diff --git a/forge/src/data/java/gripe/_90/megacells/datagen/ForgeModelProvider.java b/forge/src/data/java/gripe/_90/megacells/datagen/ForgeModelProvider.java index 0c1b302b..eb61fca4 100644 --- a/forge/src/data/java/gripe/_90/megacells/datagen/ForgeModelProvider.java +++ b/forge/src/data/java/gripe/_90/megacells/datagen/ForgeModelProvider.java @@ -11,6 +11,7 @@ import gripe._90.megacells.MEGACells; import gripe._90.megacells.core.Addons; import gripe._90.megacells.integration.appmek.AppMekItems; +import gripe._90.megacells.integration.arseng.ArsEngItems; class ForgeModelProvider extends ItemModelProvider { private static final ResourceLocation STORAGE_CELL_LED = AppEng.makeId("item/storage_cell_led"); @@ -39,6 +40,15 @@ protected void registerModels() { driveCell("mega_chemical_cell"); driveCell("radioactive_chemical_cell"); } + + if (MEGACells.PLATFORM.isAddonLoaded(Addons.ARSENG)) { + basicItem(ArsEngItems.MEGA_SOURCE_CELL_HOUSING.asItem()); + + ArsEngItems.getCells().forEach(c -> cell(c, "standard", STORAGE_CELL_LED)); + ArsEngItems.getPortables().forEach(c -> cell(c, "portable", PORTABLE_CELL_LED)); + + driveCell("mega_source_cell"); + } } private void cell(ItemDefinition cell, String type, ResourceLocation led) { diff --git a/forge/src/data/java/gripe/_90/megacells/datagen/ForgeRecipeProvider.java b/forge/src/data/java/gripe/_90/megacells/datagen/ForgeRecipeProvider.java index 05ac3824..06ada025 100644 --- a/forge/src/data/java/gripe/_90/megacells/datagen/ForgeRecipeProvider.java +++ b/forge/src/data/java/gripe/_90/megacells/datagen/ForgeRecipeProvider.java @@ -6,7 +6,6 @@ import net.minecraft.data.PackOutput; import net.minecraft.data.recipes.FinishedRecipe; -import net.minecraft.data.recipes.RecipeBuilder; import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeProvider; import net.minecraft.data.recipes.ShapedRecipeBuilder; @@ -28,6 +27,7 @@ import gripe._90.megacells.core.Addons; import gripe._90.megacells.definition.MEGAItems; import gripe._90.megacells.integration.appmek.AppMekItems; +import gripe._90.megacells.integration.arseng.ArsEngItems; public class ForgeRecipeProvider extends RecipeProvider { private static final TagKey OSMIUM = ItemTags.create(new ResourceLocation("forge", "ingots/osmium")); @@ -37,11 +37,10 @@ public ForgeRecipeProvider(PackOutput output) { } @Override - protected void buildRecipes(@NotNull Consumer consumer) { + protected void buildRecipes(@NotNull Consumer writer) { if (MEGACells.PLATFORM.isAddonLoaded(Addons.APPMEK)) { - appmekRecipe( - consumer, - MEGACells.makeId("cells/mega_chemical_cell_housing"), + MEGACells.PLATFORM.addIntegrationRecipe( + writer, ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AppMekItems.MEGA_CHEMICAL_CELL_HOUSING) .pattern("aba") .pattern("b b") @@ -49,23 +48,24 @@ protected void buildRecipes(@NotNull Consumer consumer) { .define('a', AEBlocks.QUARTZ_VIBRANT_GLASS) .define('b', AEItems.SKY_DUST) .define('d', OSMIUM) - .unlockedBy("has_dusts/sky_stone", has(AEItems.SKY_DUST))); - - chemCell(consumer, AppMekItems.CHEMICAL_CELL_1M, MEGAItems.CELL_COMPONENT_1M); - chemCell(consumer, AppMekItems.CHEMICAL_CELL_4M, MEGAItems.CELL_COMPONENT_4M); - chemCell(consumer, AppMekItems.CHEMICAL_CELL_16M, MEGAItems.CELL_COMPONENT_16M); - chemCell(consumer, AppMekItems.CHEMICAL_CELL_64M, MEGAItems.CELL_COMPONENT_64M); - chemCell(consumer, AppMekItems.CHEMICAL_CELL_256M, MEGAItems.CELL_COMPONENT_256M); - - chemPortable(consumer, AppMekItems.PORTABLE_CHEMICAL_CELL_1M, MEGAItems.CELL_COMPONENT_1M); - chemPortable(consumer, AppMekItems.PORTABLE_CHEMICAL_CELL_4M, MEGAItems.CELL_COMPONENT_4M); - chemPortable(consumer, AppMekItems.PORTABLE_CHEMICAL_CELL_16M, MEGAItems.CELL_COMPONENT_16M); - chemPortable(consumer, AppMekItems.PORTABLE_CHEMICAL_CELL_64M, MEGAItems.CELL_COMPONENT_64M); - chemPortable(consumer, AppMekItems.PORTABLE_CHEMICAL_CELL_256M, MEGAItems.CELL_COMPONENT_256M); - - appmekRecipe( - consumer, - MEGACells.makeId("crafting/radioactive_cell_component"), + .unlockedBy("has_dusts/sky_stone", has(AEItems.SKY_DUST)), + Addons.APPMEK, + MEGACells.makeId("cells/mega_chemical_cell_housing")); + + chemCell(writer, AppMekItems.CHEMICAL_CELL_1M, MEGAItems.CELL_COMPONENT_1M); + chemCell(writer, AppMekItems.CHEMICAL_CELL_4M, MEGAItems.CELL_COMPONENT_4M); + chemCell(writer, AppMekItems.CHEMICAL_CELL_16M, MEGAItems.CELL_COMPONENT_16M); + chemCell(writer, AppMekItems.CHEMICAL_CELL_64M, MEGAItems.CELL_COMPONENT_64M); + chemCell(writer, AppMekItems.CHEMICAL_CELL_256M, MEGAItems.CELL_COMPONENT_256M); + + chemPortable(writer, AppMekItems.PORTABLE_CHEMICAL_CELL_1M, MEGAItems.CELL_COMPONENT_1M); + chemPortable(writer, AppMekItems.PORTABLE_CHEMICAL_CELL_4M, MEGAItems.CELL_COMPONENT_4M); + chemPortable(writer, AppMekItems.PORTABLE_CHEMICAL_CELL_16M, MEGAItems.CELL_COMPONENT_16M); + chemPortable(writer, AppMekItems.PORTABLE_CHEMICAL_CELL_64M, MEGAItems.CELL_COMPONENT_64M); + chemPortable(writer, AppMekItems.PORTABLE_CHEMICAL_CELL_256M, MEGAItems.CELL_COMPONENT_256M); + + MEGACells.PLATFORM.addIntegrationRecipe( + writer, ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AppMekItems.RADIOACTIVE_CELL_COMPONENT) .pattern("aba") .pattern("cdc") @@ -76,10 +76,11 @@ protected void buildRecipes(@NotNull Consumer consumer) { .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))); - appmekRecipe( - consumer, - MEGACells.makeId("cells/standard/radioactive_chemical_cell"), + .unlockedBy("has_waste_barrel", has(MekanismBlocks.RADIOACTIVE_WASTE_BARREL)), + Addons.APPMEK, + MEGACells.makeId("crafting/radioactive_cell_component")); + MEGACells.PLATFORM.addIntegrationRecipe( + writer, ShapedRecipeBuilder.shaped(RecipeCategory.MISC, AppMekItems.RADIOACTIVE_CHEMICAL_CELL) .pattern("aba") .pattern("bcb") @@ -89,14 +90,29 @@ protected void buildRecipes(@NotNull Consumer consumer) { .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))); + .unlockedBy("has_radioactive_cell_component", has(AppMekItems.RADIOACTIVE_CELL_COMPONENT)), + Addons.APPMEK, + MEGACells.makeId("cells/standard/radioactive_chemical_cell")); + } + + if (MEGACells.PLATFORM.isAddonLoaded(Addons.ARSENG)) { + sourceCell(writer, ArsEngItems.SOURCE_CELL_1M, MEGAItems.CELL_COMPONENT_1M); + sourceCell(writer, ArsEngItems.SOURCE_CELL_4M, MEGAItems.CELL_COMPONENT_4M); + sourceCell(writer, ArsEngItems.SOURCE_CELL_16M, MEGAItems.CELL_COMPONENT_16M); + sourceCell(writer, ArsEngItems.SOURCE_CELL_64M, MEGAItems.CELL_COMPONENT_64M); + sourceCell(writer, ArsEngItems.SOURCE_CELL_256M, MEGAItems.CELL_COMPONENT_256M); + + sourcePortable(writer, ArsEngItems.PORTABLE_SOURCE_CELL_1M, MEGAItems.CELL_COMPONENT_1M); + sourcePortable(writer, ArsEngItems.PORTABLE_SOURCE_CELL_4M, MEGAItems.CELL_COMPONENT_4M); + sourcePortable(writer, ArsEngItems.PORTABLE_SOURCE_CELL_16M, MEGAItems.CELL_COMPONENT_16M); + sourcePortable(writer, ArsEngItems.PORTABLE_SOURCE_CELL_64M, MEGAItems.CELL_COMPONENT_64M); + sourcePortable(writer, ArsEngItems.PORTABLE_SOURCE_CELL_256M, MEGAItems.CELL_COMPONENT_256M); } } - private void chemCell(Consumer consumer, ItemDefinition cell, ItemDefinition component) { - appmekRecipe( - consumer, - MEGACells.makeId("cells/standard/" + cell.id().getPath()), + private void chemCell(Consumer writer, ItemDefinition cell, ItemDefinition component) { + MEGACells.PLATFORM.addIntegrationRecipe( + writer, ShapedRecipeBuilder.shaped(RecipeCategory.MISC, cell) .pattern("aba") .pattern("bcb") @@ -105,21 +121,23 @@ private void chemCell(Consumer consumer, ItemDefinition cell, .define('b', AEItems.SKY_DUST) .define('c', component) .define('d', OSMIUM) - .unlockedBy("has_" + component.id().getPath(), has(component))); - appmekRecipe( - consumer, - MEGACells.makeId("cells/standard/" + cell.id().getPath() + "_with_housing"), + .unlockedBy("has_" + component.id().getPath(), has(component)), + Addons.APPMEK, + MEGACells.makeId("cells/standard/" + cell.id().getPath())); + MEGACells.PLATFORM.addIntegrationRecipe( + writer, ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, cell) .requires(AppMekItems.MEGA_CHEMICAL_CELL_HOUSING) .requires(component) .unlockedBy("has_" + component.id().getPath(), has(component)) - .unlockedBy("has_mega_chemical_cell_housing", has(AppMekItems.MEGA_CHEMICAL_CELL_HOUSING))); + .unlockedBy("has_mega_chemical_cell_housing", has(AppMekItems.MEGA_CHEMICAL_CELL_HOUSING)), + Addons.APPMEK, + MEGACells.makeId("cells/standard/" + cell.id().getPath() + "_with_housing")); } - private void chemPortable(Consumer consumer, ItemDefinition cell, ItemDefinition component) { - appmekRecipe( - consumer, - MEGACells.makeId("cells/portable/" + cell.id().getPath()), + private void chemPortable(Consumer writer, ItemDefinition cell, ItemDefinition component) { + MEGACells.PLATFORM.addIntegrationRecipe( + writer, ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, cell) .requires(AEBlocks.CHEST) .requires(component) @@ -127,10 +145,35 @@ private void chemPortable(Consumer consumer, ItemDefinition c .requires(AppMekItems.MEGA_CHEMICAL_CELL_HOUSING) .unlockedBy("has_mega_chemical_cell_housing", has(AppMekItems.MEGA_CHEMICAL_CELL_HOUSING)) .unlockedBy("has_" + component.id().getPath(), has(component)) - .unlockedBy("has_dense_energy_cell", has(AEBlocks.DENSE_ENERGY_CELL))); + .unlockedBy("has_dense_energy_cell", has(AEBlocks.DENSE_ENERGY_CELL)), + Addons.APPMEK, + MEGACells.makeId("cells/portable/" + cell.id().getPath())); + } + + private void sourceCell(Consumer writer, ItemDefinition cell, ItemDefinition component) { + MEGACells.PLATFORM.addIntegrationRecipe( + writer, + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, cell) + .requires(ArsEngItems.MEGA_SOURCE_CELL_HOUSING) + .requires(component) + .unlockedBy("has_" + component.id().getPath(), has(component)) + .unlockedBy("has_mega_source_cell_housing", has(ArsEngItems.MEGA_SOURCE_CELL_HOUSING)), + Addons.ARSENG, + MEGACells.makeId("cells/standard/" + cell.id().getPath())); } - private void appmekRecipe(Consumer consumer, ResourceLocation id, RecipeBuilder builder) { - MEGACells.PLATFORM.addIntegrationRecipe(consumer, builder, Addons.APPMEK, id); + private void sourcePortable(Consumer writer, ItemDefinition cell, ItemDefinition component) { + MEGACells.PLATFORM.addIntegrationRecipe( + writer, + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, cell) + .requires(AEBlocks.CHEST) + .requires(component) + .requires(AEBlocks.DENSE_ENERGY_CELL) + .requires(ArsEngItems.MEGA_SOURCE_CELL_HOUSING) + .unlockedBy("has_mega_source_cell_housing", has(ArsEngItems.MEGA_SOURCE_CELL_HOUSING)) + .unlockedBy("has_" + component.id().getPath(), has(component)) + .unlockedBy("has_dense_energy_cell", has(AEBlocks.DENSE_ENERGY_CELL)), + Addons.ARSENG, + MEGACells.makeId("cells/portable/" + cell.id().getPath())); } } diff --git a/forge/src/main/java/gripe/_90/megacells/forge/ForgePlatform.java b/forge/src/main/java/gripe/_90/megacells/forge/ForgePlatform.java index 7243502d..d80be08a 100644 --- a/forge/src/main/java/gripe/_90/megacells/forge/ForgePlatform.java +++ b/forge/src/main/java/gripe/_90/megacells/forge/ForgePlatform.java @@ -76,6 +76,8 @@ import gripe._90.megacells.definition.MEGAMenus; import gripe._90.megacells.integration.appmek.AppMekIntegration; import gripe._90.megacells.integration.appmek.AppMekItems; +import gripe._90.megacells.integration.arseng.ArsEngIntegration; +import gripe._90.megacells.integration.arseng.ArsEngItems; import gripe._90.megacells.misc.CompressionService; import gripe._90.megacells.misc.LavaTransformLogic; @@ -111,6 +113,10 @@ public void initItems() { if (isAddonLoaded(Addons.APPMEK)) { AppMekItems.init(); } + + if (isAddonLoaded(Addons.ARSENG)) { + ArsEngItems.init(); + } } @Override @@ -122,6 +128,10 @@ public List getAllCells() { cells.add(AppMekItems.RADIOACTIVE_CHEMICAL_CELL); } + if (isAddonLoaded(Addons.ARSENG)) { + cells.addAll(ArsEngItems.getCells()); + } + return cells; } @@ -133,6 +143,10 @@ public List getAllPortables() { portables.addAll(AppMekItems.getPortables()); } + if (isAddonLoaded(Addons.ARSENG)) { + portables.addAll(ArsEngItems.getPortables()); + } + return portables; } @@ -172,6 +186,10 @@ public void initUpgrades() { if (isAddonLoaded(Addons.APPMEK)) { event.enqueueWork(AppMekIntegration::initUpgrades); } + + if (isAddonLoaded(Addons.ARSENG)) { + event.enqueueWork(ArsEngIntegration::initUpgrades); + } }); } diff --git a/forge/src/main/java/gripe/_90/megacells/forge/MEGACellsForge.java b/forge/src/main/java/gripe/_90/megacells/forge/MEGACellsForge.java index a3df9ad1..d172fd1b 100644 --- a/forge/src/main/java/gripe/_90/megacells/forge/MEGACellsForge.java +++ b/forge/src/main/java/gripe/_90/megacells/forge/MEGACellsForge.java @@ -6,6 +6,7 @@ import gripe._90.megacells.MEGACells; import gripe._90.megacells.core.Addons; import gripe._90.megacells.integration.appmek.AppMekIntegration; +import gripe._90.megacells.integration.arseng.ArsEngIntegration; @Mod(MEGACells.MODID) public class MEGACellsForge { @@ -17,6 +18,10 @@ public MEGACellsForge() { AppMekIntegration.init(); } + if (MEGACells.PLATFORM.isAddonLoaded(Addons.ARSENG)) { + ArsEngIntegration.init(); + } + if (FMLEnvironment.dist.isClient()) { MEGACells.Client.initClient(); } diff --git a/forge/src/main/java/gripe/_90/megacells/integration/arseng/ArsEngIntegration.java b/forge/src/main/java/gripe/_90/megacells/integration/arseng/ArsEngIntegration.java new file mode 100644 index 00000000..0bfe8dd2 --- /dev/null +++ b/forge/src/main/java/gripe/_90/megacells/integration/arseng/ArsEngIntegration.java @@ -0,0 +1,33 @@ +package gripe._90.megacells.integration.arseng; + +import java.util.Collection; +import java.util.stream.Stream; + +import net.minecraftforge.fml.loading.FMLEnvironment; + +import appeng.api.client.StorageCellModels; +import appeng.api.upgrades.Upgrades; +import appeng.core.definitions.AEItems; +import appeng.core.localization.GuiText; + +import gripe._90.megacells.MEGACells; + +public class ArsEngIntegration { + public static void init() { + if (FMLEnvironment.dist.isClient()) { + Stream.of(ArsEngItems.getCells(), ArsEngItems.getPortables()) + .flatMap(Collection::stream) + .forEach(c -> + StorageCellModels.registerModel(c, MEGACells.makeId("block/drive/cells/mega_source_cell"))); + } + } + + public static void initUpgrades() { + ArsEngItems.getCells() + .forEach(cell -> Upgrades.add(AEItems.VOID_CARD, cell, 1, GuiText.StorageCells.getTranslationKey())); + ArsEngItems.getPortables().forEach(cell -> { + Upgrades.add(AEItems.ENERGY_CARD, cell, 2, GuiText.PortableCells.getTranslationKey()); + Upgrades.add(AEItems.VOID_CARD, cell, 1, GuiText.PortableCells.getTranslationKey()); + }); + } +} diff --git a/forge/src/main/java/gripe/_90/megacells/integration/arseng/ArsEngItems.java b/forge/src/main/java/gripe/_90/megacells/integration/arseng/ArsEngItems.java new file mode 100644 index 00000000..7b074ada --- /dev/null +++ b/forge/src/main/java/gripe/_90/megacells/integration/arseng/ArsEngItems.java @@ -0,0 +1,62 @@ +package gripe._90.megacells.integration.arseng; + +import java.util.List; + +import appeng.core.definitions.ItemDefinition; +import appeng.items.materials.MaterialItem; +import appeng.items.storage.StorageTier; +import appeng.items.tools.powered.AbstractPortableCell; + +import gripe._90.arseng.item.PortableSourceCellItem; +import gripe._90.arseng.item.SourceCellItem; +import gripe._90.megacells.MEGACells; +import gripe._90.megacells.definition.MEGAItems; + +public class ArsEngItems { + public static void init() { + MEGACells.LOGGER.info("Initialised Ars Énergistique integration."); + } + + public static final ItemDefinition MEGA_SOURCE_CELL_HOUSING = + MEGAItems.item("MEGA Source Cell Housing", "mega_source_cell_housing", MaterialItem::new); + + public static final ItemDefinition SOURCE_CELL_1M = cell(MEGAItems.TIER_1M); + public static final ItemDefinition SOURCE_CELL_4M = cell(MEGAItems.TIER_4M); + public static final ItemDefinition SOURCE_CELL_16M = cell(MEGAItems.TIER_16M); + public static final ItemDefinition SOURCE_CELL_64M = cell(MEGAItems.TIER_64M); + public static final ItemDefinition SOURCE_CELL_256M = cell(MEGAItems.TIER_256M); + + public static final ItemDefinition PORTABLE_SOURCE_CELL_1M = portable(MEGAItems.TIER_1M); + public static final ItemDefinition PORTABLE_SOURCE_CELL_4M = portable(MEGAItems.TIER_4M); + public static final ItemDefinition PORTABLE_SOURCE_CELL_16M = portable(MEGAItems.TIER_16M); + public static final ItemDefinition PORTABLE_SOURCE_CELL_64M = portable(MEGAItems.TIER_64M); + public static final ItemDefinition PORTABLE_SOURCE_CELL_256M = + portable(MEGAItems.TIER_256M); + + public static List> getCells() { + return List.of(SOURCE_CELL_1M, SOURCE_CELL_4M, SOURCE_CELL_16M, SOURCE_CELL_64M, SOURCE_CELL_256M); + } + + public static List> getPortables() { + return List.of( + PORTABLE_SOURCE_CELL_1M, + PORTABLE_SOURCE_CELL_4M, + PORTABLE_SOURCE_CELL_16M, + PORTABLE_SOURCE_CELL_64M, + PORTABLE_SOURCE_CELL_256M); + } + + private static ItemDefinition cell(StorageTier tier) { + return MEGAItems.item( + tier.namePrefix().toUpperCase() + " MEGA Source Storage Cell", + "source_storage_cell_" + tier.namePrefix(), + p -> new SourceCellItem(p, tier, MEGA_SOURCE_CELL_HOUSING)); + } + + private static ItemDefinition portable(StorageTier tier) { + return MEGAItems.item( + tier.namePrefix().toUpperCase() + " Portable Source Cell", + "portable_source_cell_" + tier.namePrefix(), + p -> new PortableSourceCellItem(p, tier)); + } +} diff --git a/forge/src/main/resources/assets/megacells/textures/block/drive/cells/mega_source_cell.png b/forge/src/main/resources/assets/megacells/textures/block/drive/cells/mega_source_cell.png new file mode 100644 index 0000000000000000000000000000000000000000..2a3114d1473bcee53f0d71adf0ce17ef6e4f144b GIT binary patch literal 79 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|VxBIJAsQ2tcL;r+uX4m-Rbt5D c4_6r&m@M?=*UZ&>0aU@@>FVdQ&MBb@0FnI^PXGV_ literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_16m.png b/forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_16m.png new file mode 100644 index 0000000000000000000000000000000000000000..7fa8026f13f192fe6fc359e2942d01a5c525bd42 GIT binary patch literal 257 zcmV+c0sj7pP)9RE#YA3Vi16Q&d%qy>1_#{SM9t+U~UzV zP;+)^o~eZ5RF;t>yjcW9CZvz-S4Zas*Q!b+fHH{&=_8|n&6LCfBSH8bw8R1v!IY#s z{QnGR)Eed$BY~EPfM@;PC13(;NjSkQ(2^_ywS+7Nm#!b^ztA2CJxbO90000}oIo literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_256m.png b/forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_256m.png new file mode 100644 index 0000000000000000000000000000000000000000..9b25fc2ced7f890eeb92624e62f95ef933c6fc7e GIT binary patch literal 256 zcmV+b0ssDqP)>&5*-A2Bi7N7*1$9X000036Ua4=e=#B<=3^ zXE>v_Ft3;itV9JotIwtY3)o812_}J_WEN;8WHvZ=eE}*L*?AL7bVvXI002ovPDHLk FV1g%sV|V}n literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_64m.png b/forge/src/main/resources/assets/megacells/textures/item/cell/portable/portable_source_cell_64m.png new file mode 100644 index 0000000000000000000000000000000000000000..aed77988d1d63e3c46ed062d67b136cf3e5364fd GIT binary patch literal 257 zcmV+c0sj7pP)yF#DehzlM)Z??h^9Y_P&IJzDYp<(q1Iww&{Ecn^!48qA<5A zNT@lxR?l2Qu{^ekB)(Y%L?@(=>=!2qg7sN437}45LHfubU^6E1z(f##2P^TwOfV*C z4!=Lc8MTFZ#YA8wD&Sdub{Uw#RuWI}7wAc5fmT9hgLBsxf|}Ql*~8J+00000NkvXX Hu0mjfF0N=P literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/assets/megacells/textures/item/cell/standard/source_storage_cell_16m.png b/forge/src/main/resources/assets/megacells/textures/item/cell/standard/source_storage_cell_16m.png new file mode 100644 index 0000000000000000000000000000000000000000..b276fdee4c21afc0ecca457114848beecf7c7c51 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`%RF5iLo7}wCoE9axH|i%eA~%O z73I(BE!0j4#7J>UHF+y@7|#_ul+WSu;I8BwDaRQP_iNNSJIpz3_dk%QG1KLk1uvs< z1J?y!M{|ao)e5Bwb5`8=BA>@_f-R>l;W9@M`=J762bmZkyCaFA$YOys(8M;z8$6bi z**40muq7?dzW3ml$W?|C=LEKfjQR3`5>kdHi=~_1FfB59WYnV4dt;KhVlP8X@wsXV TmLq$BE@tp_^>bP0l+XkK18GhB literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/assets/megacells/textures/item/cell/standard/source_storage_cell_1m.png b/forge/src/main/resources/assets/megacells/textures/item/cell/standard/source_storage_cell_1m.png new file mode 100644 index 0000000000000000000000000000000000000000..86239cba9d55edd8e4b7fb73cb775c36200c35d4 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`%RF5iLo7}wCoE9axH|i%eA~%O z73I(BE!0j4#7J>UHF+y@oS!!7P(FvpgS(P%q#P^eZZfKKc9?V6?tdUpW2Vb73tmP; z2d)dej^+$Es})KW=B&8!MLv(=1Y1s9!ex#i_Cp2C4l*%7c1IFJk;MXOpowjaH+U>3 zvu%`BVM|(^eec09k*f?P&IxP{8S~`>C8P{Z7E3q1VOnJJ$f!l7_r@f1#a@PAmrvhr TuDGxp=wb#>S3j3^P6UHF+y@JbxW?G@rxc!ClEWQjR-r{^YE4c9?V6?tdUpW2Vb73tmP; z2d)dej^+$Es})KW=B&8!MLv(=1Y1s9!ex#i_Cp2C4l*%7c1IFJk;MXOpowjaH+U>3 zvu%`BVM|(^eec09k*f?P&IxP{8S~`>C8P{Z7E3q1VOnJJ$f!l7_r@f1#a@O-@9(xU TKE3e;=wb#>S3j3^P6UHF+y@#P2)aa9?1;f!)S8Oq)I||IhP-m$8uV_aApdmSuvHk4;#P zFlaiMv)pA!dEa=Yv0zcs<@z0r3ep=Sn|zf$WH}D=G87ho*jP zkvdW~L87B~U1js@;1K2uyp56!i)!m!5;Klm=*i>Q#NBbJUHF+y@tQNa_JfFkk!ClEWQjRy)eYdZ3c9?V6?tdUpW2Vb73tmP; z2d)dej^+$Es})KW=B&8!MLv(=1Y1s9!ex#i_Cp2C4l*%7c1IFJk;MXOpowjaH+U>3 zvu%`BVM|(^eec09k*f?P&IxP{8S~`>C8P{Z7E3q1VOnJJ$f!l7_r@f1#a@QoEB6n| T%S~qjx|qS!)z4*}Q$iB}iTqC0 literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/assets/megacells/textures/item/mega_source_cell_housing.png b/forge/src/main/resources/assets/megacells/textures/item/mega_source_cell_housing.png new file mode 100644 index 0000000000000000000000000000000000000000..62476dc83611d0962ecdec3dccb590ff9bd0399b GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`lRaG=Lo7}wCoE9axH|i%eA~%O z73I(BE!0j4#7J>UHF+y@sB4)$G-pxy@Q$af_k_f9MTK*T^Z#qKEyzBW&2fgosZF7p ze+gfU<0B2W1Y?%jZZo3Ruq}{o@>T9)d~wggjAgnT5Az1eA~oJ5>z>|qmCdh%Lzpk{ zHcB!qa^$*bnv~&Y&T^C0CG$usho{s=)qE!@#wjK@wi`7+(*-(@!PC{xWt~$(69BmQ BL>2%5 literal 0 HcmV?d00001 diff --git a/forge/src/main/resources/data/arseng/recipes/mega_source_cell_housing.json b/forge/src/main/resources/data/arseng/recipes/mega_source_cell_housing.json new file mode 100644 index 00000000..b22a1f1b --- /dev/null +++ b/forge/src/main/resources/data/arseng/recipes/mega_source_cell_housing.json @@ -0,0 +1,52 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "arseng" + } + ], + "recipe": { + "type": "ars_nouveau:enchanting_apparatus", + "keepNbtOfReagent": false, + "output": { + "item": "megacells:mega_source_cell_housing" + }, + "pedestalItems": [ + { + "item": "ars_nouveau:manipulation_essence" + }, + { + "item": "ars_nouveau:manipulation_essence" + }, + { + "item": "ars_nouveau:manipulation_essence" + }, + { + "item": "ars_nouveau:source_gem_block" + }, + { + "item": "ars_nouveau:source_gem_block" + }, + { + "item": "megacells:sky_steel_ingot" + }, + { + "item": "megacells:sky_steel_ingot" + }, + { + "item": "megacells:sky_steel_ingot" + } + ], + "reagent": [ + { + "item": "arseng:source_cell_housing" + } + ], + "sourceCost": 2000 + } + } + ] +} diff --git a/settings.gradle.kts b/settings.gradle.kts index a58248f1..bb1cf773 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -58,6 +58,14 @@ dependencyResolutionManagement { library("appmek", "maven.modrinth", "applied-mekanistics").versionRef("appmek") library("mekanism", "mekanism", "Mekanism").version("$minecraftVersion-10.4.0.14") + // Ars Énergistique + version("arseng", "1.1.5") + library("arseng", "maven.modrinth", "ars-energistique").versionRef("arseng") + + library("arsnouveau", "com.hollingsworth.ars_nouveau", "ars_nouveau-$minecraftVersion").version("4.8.3.135") + library("geckolib", "software.bernie.geckolib", "geckolib-forge-$minecraftVersion").version("4.2.1") + library("mixinextras", "io.github.llamalad7", "mixinextras-forge").version("0.2.1") + // Runtime mods version("jei", "15.2.0.23") library("jei-fabric", "mezz.jei", "jei-$minecraftVersion-fabric").versionRef("jei")