Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public static OritechRecipeBuilder build() {
public void validate(ResourceLocation id) throws IllegalStateException {
if (inputs != null && inputs.size() > 1)
throw new IllegalStateException("too many inputs for recipe " + id + " (type " + type + ")");
if ((fluidInput == null || fluidInput.isEmpty()))
if ((fluidInput == null || fluidInput.isEmpty()) && fluidOutputs.isEmpty())
throw new IllegalStateException("fluid input or output required for recipe " + id + " (type " + type + ")");
}

Expand Down
8 changes: 8 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,16 @@ create_version_id = 6323264
registrate_version = MC1.21-1.3.0+62
energized_power_neo_version_id = 6341211
enderio_version = 7.1.8-alpha
evilcraft_version_id = 7827720
cyclopscore_version_id = 7786075
extendedae_version_id = 7727948
geore_version_id = 7563411
glodium_version_id = 5821676
immersive_engineering_version_id = 6235316
industrial_foregoing_version_id = 6283758
irons_spells_version_id = 6054197
caelus_version_id = 5694215
player_animator_version_id = 7389814
titanium_version_id = 6337206
mekanism_version = 1.21.1-10.7.14.79
pneumaticcraft_version_id = 6288626
Expand Down
12 changes: 12 additions & 0 deletions neoforge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,23 @@ dependencies {
dataImplementation("com.enderio:enderio-machines:$enderio_version") { transitive = false }
// Energized Power
dataImplementation "curse.maven:energized-power-782147:$energized_power_neo_version_id"
// EvilCraft
dataImplementation "curse.maven:evilcraft-74610:$evilcraft_version_id"
dataRuntimeOnly "curse.maven:cyclops-core-232758:$cyclopscore_version_id"
// Extended AE
dataImplementation "curse.maven:ex-pattern-provider-892005:$extendedae_version_id"
dataRuntimeOnly "curse.maven:glodium-957920:$glodium_version_id"
// GeOre
dataImplementation "curse.maven:geore-530544:$geore_version_id"
// Immersive Engineering
dataImplementation "curse.maven:immersive-engineering-231951:$immersive_engineering_version_id"
// Industrial Foregoing
dataImplementation "curse.maven:industrial-foregoing-266515:$industrial_foregoing_version_id"
dataImplementation "curse.maven:titanium-287342:$titanium_version_id"
// Iron's Spells 'n Spellbooks
dataImplementation "curse.maven:irons-spells-n-spellbooks-855414:$irons_spells_version_id"
dataRuntimeOnly "curse.maven:playeranimator-658587:$player_animator_version_id"
dataRuntimeOnly "curse.maven:caelus-308989:$caelus_version_id"
// Mekanism
dataImplementation "curse.maven:mekanism-268560:6486993"
dataImplementation "curse.maven:mekanism-generators-268566:6486996"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@

import appeng.api.ids.AEConstants;
import blusunrize.immersiveengineering.ImmersiveEngineering;
import com.buuz135.industrial.utils.Reference;
import com.enderio.core.EnderCore;
import com.glodblock.github.extendedae.ExtendedAE;
import com.simibubi.create.Create;
import cy.jdkdigital.productivemetalworks.ProductiveMetalworks;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import io.redspace.ironsspellbooks.IronsSpellbooks;
import me.desht.pneumaticcraft.api.lib.Names;
import me.jddev0.ep.api.EPAPI;
import mekanism.common.Mekanism;
Expand All @@ -32,8 +33,12 @@
import rearth.oritech.generator.compat.CreateRecipeGenerator;
import rearth.oritech.generator.compat.EnderIORecipeGenerator;
import rearth.oritech.generator.compat.EnergizedPowerRecipeGenerator;
import rearth.oritech.generator.compat.EvilCraftRecipeGenerator;
import rearth.oritech.generator.compat.ExtendedAERecipeGenerator;
import rearth.oritech.generator.compat.GeOreRecipeGenerator;
import rearth.oritech.generator.compat.ImmersiveEngineeringRecipeGenerator;
import rearth.oritech.generator.compat.IndustrialForegoingRecipeGenerator;
import rearth.oritech.generator.compat.IronsSpellbooksRecipeGenerator;
import rearth.oritech.generator.compat.MekanismRecipeGenerator;
import rearth.oritech.generator.compat.MekanismGeneratorsRecipeGenerator;
import rearth.oritech.generator.compat.PneumaticcraftRecipeGenerator;
Expand Down Expand Up @@ -67,8 +72,12 @@ public void buildRecipes(RecipeOutput exporter) {
CreateRecipeGenerator.generateRecipes(this, packOutput, registries, exporter.withConditions(this.modLoaded(Create.ID)));
EnderIORecipeGenerator.generateRecipes(exporter.withConditions(this.modLoaded(EnderCore.MOD_ID)), this);
EnergizedPowerRecipeGenerator.generateRecipes(this, exporter.withConditions(this.modLoaded(EPAPI.MOD_ID)));
EvilCraftRecipeGenerator.generateRecipes(exporter.withConditions(this.modLoaded(org.cyclops.evilcraft.Reference.MOD_ID)));
ExtendedAERecipeGenerator.generateRecipes(exporter.withConditions(this.modLoaded(ExtendedAE.MODID)));
GeOreRecipeGenerator.generateRecipes(exporter.withConditions(this.modLoaded(com.shynieke.geore.Reference.MOD_ID)));
ImmersiveEngineeringRecipeGenerator.generateRecipes(this, exporter.withConditions(this.modLoaded(ImmersiveEngineering.MODID)));
IndustrialForegoingRecipeGenerator.generateRecipes(exporter.withConditions(this.modLoaded(Reference.MOD_ID)));
IndustrialForegoingRecipeGenerator.generateRecipes(exporter.withConditions(this.modLoaded(com.buuz135.industrial.utils.Reference.MOD_ID)));
IronsSpellbooksRecipeGenerator.generateRecipes(exporter.withConditions(this.modLoaded(IronsSpellbooks.MODID)));
MekanismRecipeGenerator.generateRecipes(this, exporter.withConditions(this.modLoaded(Mekanism.MODID)));
MekanismGeneratorsRecipeGenerator.generateRecipes(exporter.withConditions(this.modLoaded(MekanismGenerators.MODID)));
PneumaticcraftRecipeGenerator.generateRecipes(exporter.withConditions(this.modLoaded(Names.MOD_ID)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import net.minecraft.world.item.crafting.Ingredient;
import net.neoforged.neoforge.common.Tags;
import rearth.oritech.Oritech;
import rearth.oritech.api.recipe.CentrifugeRecipeBuilder;
import rearth.oritech.api.recipe.LaserRecipeBuilder;
import rearth.oritech.api.recipe.PulverizerRecipeBuilder;
import rearth.oritech.init.ItemContent;
Expand All @@ -23,7 +24,12 @@ public static void generateRecipes(RecipeOutput exporter) {

PulverizerRecipeBuilder.build().input(AEBlocks.SKY_STONE_BLOCK).result(AEItems.SKY_DUST.get()).addToGrinder().export(exporter, PATH + "skydust");
PulverizerRecipeBuilder.build().input(cItemTag("gems/certus_quartz")).result(AEItems.CERTUS_QUARTZ_DUST.get()).addToGrinder().export(exporter, PATH + "certusdust");
PulverizerRecipeBuilder.build().input(cItemTag("gems/fluix")).result(AEItems.FLUIX_DUST.get()).addToGrinder().export(exporter, PATH + "fluixdust");

// enderic compound from ender pearl dust
CentrifugeRecipeBuilder.build().input(AEItems.ENDER_DUST).result(ItemContent.ENDERIC_COMPOUND, 2).export(exporter, PATH + "endericcompound");

// fluxite in AE2 charger
exporter.accept(Oritech.id(PATH + "charger/fluxite"), new ChargerRecipe(Ingredient.of(Tags.Items.GEMS_AMETHYST), new ItemStack(ItemContent.FLUXITE)), null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,34 @@
import java.util.List;
import java.util.Optional;

import com.enderio.base.common.init.EIOFluids;
import com.enderio.base.common.init.EIOItems;
import com.enderio.base.common.recipe.FireCraftingRecipe;
import com.enderio.machines.common.blocks.soul_binder.SoulBindingRecipe;
import com.enderio.machines.common.blocks.alloy.AlloySmeltingRecipe;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.data.recipes.RecipeCategory;
import net.minecraft.data.recipes.RecipeOutput;
import net.minecraft.data.recipes.RecipeProvider;
import net.minecraft.data.recipes.ShapedRecipeBuilder;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.level.Level;
import net.neoforged.neoforge.common.Tags;
import net.neoforged.neoforge.common.crafting.SizedIngredient;
import rearth.oritech.Oritech;
import rearth.oritech.api.recipe.CentrifugeRecipeBuilder;
import rearth.oritech.api.recipe.CentrifugeFluidRecipeBuilder;
import rearth.oritech.api.recipe.FoundryRecipeBuilder;
import rearth.oritech.init.BlockContent;
import rearth.oritech.init.ItemContent;
import rearth.oritech.init.TagContent;
import rearth.oritech.util.FluidIngredient;
import rearth.oritech.generator.loot.FireCraftingLootProvider;

public class EnderIORecipeGenerator {
Expand All @@ -33,8 +41,13 @@ public class EnderIORecipeGenerator {
public static void generateRecipes(RecipeOutput exporter, RecipeProvider provider) {
addAlloys(exporter);
conduitBinderCrafting(exporter, provider);
soulBinding(exporter);

// enderic compound from ender pearl dust
CentrifugeRecipeBuilder.build().input(EIOItems.POWDERED_ENDER_PEARL.get()).result(ItemContent.ENDERIC_COMPOUND, 2).export(exporter, PATH + "endericcompound");

// xp juice from sculk
CentrifugeFluidRecipeBuilder.build().input(Items.SCULK).fluidInput(Fluids.WATER, 0.25f).fluidOutput(EIOFluids.XP_JUICE.getSource(), 0.1f).export(exporter, PATH + "sculkxp");
}

private static void addAlloys(RecipeOutput exporter) {
Expand Down Expand Up @@ -71,4 +84,22 @@ private static void conduitBinderCrafting(RecipeOutput exporter, RecipeProvider
.pattern("sbs")
.unlockedBy(provider.getHasName(conduitBinder), RecipeProvider.has(conduitBinder)).save(exporter, Oritech.id(PATH + "crafting/pump"));
}

private static void soulBinding(RecipeOutput exporter) {
// Kind of redundant, but still fun. A soul vial is filled the exact same way a dubious container is--by "capturing" an entity with the item.
for (EntityType entityType : List.of(EntityType.ALLAY, EntityType.VEX, EntityType.PHANTOM)) {
var entityKey = BuiltInRegistries.ENTITY_TYPE.getKey(entityType);
exporter.accept(
Oritech.id(PATH + entityKey.getPath() + "soul"),
new SoulBindingRecipe(
new ItemStack(ItemContent.UNHOLY_INTELLIGENCE),
Ingredient.of(ItemContent.DUBIOS_CONTAINER),
51200,
4,
Optional.of(entityKey),
Optional.empty(),
Optional.empty(),
false), null);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package rearth.oritech.generator.compat;

import static rearth.oritech.util.TagUtils.cItemTag;
import static rearth.oritech.util.TagUtils.itemTag;

import net.minecraft.data.recipes.RecipeOutput;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.level.material.Fluids;
import net.neoforged.neoforge.common.Tags;
import org.cyclops.evilcraft.Reference;
import org.cyclops.evilcraft.RegistryEntries;
import rearth.oritech.Oritech;
import rearth.oritech.api.recipe.CentrifugeFluidRecipeBuilder;
import rearth.oritech.api.recipe.PulverizerRecipeBuilder;
import rearth.oritech.init.ItemContent;

public class EvilCraftRecipeGenerator {
private static final String PATH = "compat/evilcraft/";

public static void generateRecipes(RecipeOutput exporter) {
// poison
CentrifugeFluidRecipeBuilder.build()
.input(itemTag(Reference.MOD_ID, "poisonous"))
.fluidInput(Fluids.WATER, 0.25f)
.fluidOutput(RegistryEntries.FLUID_POISON.get(), 0.25f)
.export(exporter, PATH + "poison");

// blood from leaves
CentrifugeFluidRecipeBuilder.build()
.input(RegistryEntries.BLOCK_UNDEAD_LEAVES.get())
.fluidInput(Fluids.WATER, 0.1f)
.fluidOutput(RegistryEntries.FLUID_BLOOD.get(), 0.05f)
.result(RegistryEntries.ITEM_HARDENED_BLOOD_SHARD.get())
.export(exporter, PATH + "bloodfromleaves");

// red sand from sand + blood
CentrifugeFluidRecipeBuilder.build()
.input(cItemTag("sands/colorless"))
.fluidInput(RegistryEntries.FLUID_BLOOD.get(), 0.01f)
.result(Items.RED_SAND)
.export(exporter, PATH + "stainedsand");

// crushing gem
PulverizerRecipeBuilder.build()
.input(RegistryEntries.ITEM_DARK_GEM.get())
.result(RegistryEntries.ITEM_DARK_GEM_CRUSHED.get())
.addToGrinder()
.export(exporter, PATH + "crusheddarkgem");

// dark ore processing
PulverizerRecipeBuilder.build()
.input(itemTag(Reference.MOD_ID, "dark_ores"))
.result(RegistryEntries.ITEM_DARK_GEM.get(), 2)
.result(RegistryEntries.ITEM_DARK_GEM_CRUSHED.get())
.addToGrinder()
.export(exporter, PATH + "darkores");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package rearth.oritech.generator.compat;

import static rearth.oritech.util.TagUtils.cItemTag;

import com.glodblock.github.extendedae.common.EAESingletons;
import net.minecraft.data.recipes.RecipeOutput;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Ingredient;
import net.neoforged.neoforge.common.Tags;
import rearth.oritech.Oritech;
import rearth.oritech.api.recipe.PulverizerRecipeBuilder;
import rearth.oritech.init.ItemContent;

public class ExtendedAERecipeGenerator {
private static final String PATH = "compat/extendedae/";

public static void generateRecipes(RecipeOutput exporter) {
PulverizerRecipeBuilder.build().input(cItemTag("gems/entro")).result(EAESingletons.ENTRO_DUST).addToGrinder().export(exporter, PATH + "entrodust");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package rearth.oritech.generator.compat;

import static rearth.oritech.util.TagUtils.cItemTag;

import com.shynieke.geore.registry.GeOreBlockReg;
import com.shynieke.geore.registry.GeOreRegistry;

import net.minecraft.data.recipes.RecipeOutput;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Ingredient;
import net.neoforged.neoforge.common.Tags;
import rearth.oritech.Oritech;
import rearth.oritech.api.recipe.AssemblerRecipeBuilder;
import rearth.oritech.api.recipe.LaserRecipeBuilder;
import rearth.oritech.api.recipe.PulverizerRecipeBuilder;
import rearth.oritech.init.ItemContent;

public class GeOreRecipeGenerator {
private static final String PATH = "compat/geore/";

public static void generateRecipes(RecipeOutput exporter) {
for (GeOreBlockReg geOreBlock : GeOreRegistry.getGeOres()) {
AssemblerRecipeBuilder.build()
.input(geOreBlock.getShard().get())
.input(geOreBlock.getShard().get())
.input(ItemContent.ENDERIC_COMPOUND)
.input(ItemContent.OVERCHARGED_CRYSTAL)
.result(geOreBlock.getBudding().get().asItem())
.export(exporter, PATH + "budding" + geOreBlock.getName());


}
// enderic laser should yield plutonium dust when harvesting uranium clusters
LaserRecipeBuilder.build().input(GeOreRegistry.URANIUM_GEORE.getCluster().get()).result(ItemContent.PLUTONIUM_DUST).export(exporter, PATH + "plutoniumdust");

// pulverize quartz shards into quartz dust, no need for intermediate smelting
PulverizerRecipeBuilder.build().input(GeOreRegistry.QUARTZ_GEORE.getShard().get()).result(ItemContent.QUARTZ_DUST).addToGrinder().export(exporter, PATH + "quartzdust");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package rearth.oritech.generator.compat;

import static rearth.oritech.util.TagUtils.cItemTag;

import io.redspace.ironsspellbooks.IronsSpellbooks;
import io.redspace.ironsspellbooks.registries.ItemRegistry;
import net.minecraft.data.recipes.RecipeOutput;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Ingredient;
import net.neoforged.neoforge.common.Tags;
import rearth.oritech.Oritech;
import rearth.oritech.api.recipe.FoundryRecipeBuilder;
import rearth.oritech.api.recipe.PulverizerRecipeBuilder;
import rearth.oritech.init.ItemContent;

public class IronsSpellbooksRecipeGenerator {
private static final String PATH = "compat/ironsspellbooks/";

public static void generateRecipes(RecipeOutput exporter) {
PulverizerRecipeBuilder.build()
.input(cItemTag("ores/mithril"))
.result(ItemRegistry.RAW_MITHRIL.get(), 3)
.addToGrinder()
.export(exporter, PATH + "rawmithril");

FoundryRecipeBuilder.build()
.input(cItemTag("raw_materials/mithril"))
.input(cItemTag("raw_materials/mithril"))
.result(ItemRegistry.MITHRIL_SCRAP.get(), 4)
.export(exporter, PATH + "mithrilscrap");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"neoforge:conditions": [
{
"type": "neoforge:mod_loaded",
"modid": "geore"
}
],
"type": "oritech:assembler",
"fluidInput": {
"amount": 0,
"fluid": "minecraft:empty"
},
"fluidOutputs": [],
"ingredients": [
{
"item": "geore:allthemodium_shard"
},
{
"item": "geore:allthemodium_shard"
},
{
"item": "oritech:enderic_compound"
},
{
"item": "oritech:overcharged_crystal"
}
],
"results": [
{
"count": 1,
"id": "geore:budding_allthemodium"
}
],
"time": 120
}
Loading
Loading