Skip to content

Commit

Permalink
Start IC2 compat.
Browse files Browse the repository at this point in the history
...Not. Bwahahah.
  • Loading branch information
Sunstrike committed Dec 1, 2013
1 parent 9ccbe48 commit a181dc9
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/main/java/tconstruct/plugins/PluginController.java
Expand Up @@ -6,6 +6,7 @@
import tconstruct.plugins.appeng.AppEng;
import tconstruct.plugins.buildcraft.BuildcraftTransport;
import tconstruct.plugins.fmp.ForgeMultiPart;
import tconstruct.plugins.ic2.IC2;
import tconstruct.plugins.minefactoryreloaded.MineFactoryReloaded;
import tconstruct.plugins.mystcraft.Mystcraft;
import tconstruct.plugins.nei.NotEnoughItems;
Expand Down Expand Up @@ -112,6 +113,7 @@ public void registerBuiltins()
registerPlugin(new AppEng());
registerPlugin(new BuildcraftTransport());
registerPlugin(new ForgeMultiPart());
registerPlugin(new IC2());
registerPlugin(new MineFactoryReloaded());
registerPlugin(new NotEnoughItems());
registerPlugin(new Thaumcraft());
Expand Down
76 changes: 76 additions & 0 deletions src/main/java/tconstruct/plugins/ic2/IC2.java
@@ -0,0 +1,76 @@
package tconstruct.plugins.ic2;

import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import tconstruct.TConstruct;
import tconstruct.common.TRepo;
import tconstruct.library.TConstructRegistry;
import tconstruct.library.crafting.LiquidCasting;
import tconstruct.library.crafting.Smeltery;
import tconstruct.plugins.ICompatPlugin;

import java.util.Map;

public class IC2 implements ICompatPlugin {

private static final String IC2_UUM_FLUIDNAME = "uumatter";
private Fluid fluidUUM;

@Override
public String getModId() {
return "IC2";
}

@Override
public void preInit() {

}

@Override
public void init() {
TConstruct.logger.info("[IC2] Preparing for shenanigans.");

fluidUUM = FluidRegistry.getFluid(IC2_UUM_FLUIDNAME);
if (fluidUUM == null) return;

// Useful stuff
ItemStack ingotCast = new ItemStack(TRepo.metalPattern, 1, 0);
ItemStack gemCast = new ItemStack(TRepo.metalPattern, 1, 26);
FluidStack fluidStack = new FluidStack(fluidUUM, 1);
FluidStack fluidStackBlock = new FluidStack(fluidUUM, 9);
LiquidCasting tableCasting = TConstructRegistry.getTableCasting();
LiquidCasting basinCasting = TConstructRegistry.getBasinCasting();

// Table casting
tableCasting.addCastingRecipe(new ItemStack(Item.ingotIron), fluidStack, ingotCast, 20);
tableCasting.addCastingRecipe(new ItemStack(Item.emerald), fluidStack, gemCast, 20);

// Block casting
basinCasting.addCastingRecipe(new ItemStack(Block.blockIron), fluidStackBlock, null, true, 50); // Iron convenience
// Dirt <-> Diamonds
basinCasting.addCastingRecipe(new ItemStack(Block.dirt), new FluidStack(fluidUUM, 500), new ItemStack(Block.blockDiamond), true, 50);
basinCasting.addCastingRecipe(new ItemStack(Block.blockDiamond), fluidStackBlock, new ItemStack(Block.dirt), true, 50);
// RS cycle
basinCasting.addCastingRecipe(new ItemStack(Block.blockRedstone), fluidStack, new ItemStack(Item.redstone), true, 50);
basinCasting.addCastingRecipe(new ItemStack(Block.hardenedClay, 14, 1), fluidStack, new ItemStack(Block.blockRedstone), true, 50);
basinCasting.addCastingRecipe(new ItemStack(Item.dyePowder, 1, 1), fluidStack, new ItemStack(Block.hardenedClay, 14, 1), true, 50);
basinCasting.addCastingRecipe(new ItemStack(Block.blockRedstone), fluidStack, new ItemStack(Item.dyePowder, 1, 1), true, 50);

// Alloy Mixing
// 1mB Anything + 1mB UU = 2mB UU
for (Map.Entry<String, Fluid> ent : FluidRegistry.getRegisteredFluids().entrySet()) {
if (ent.getValue() != fluidUUM)
Smeltery.addAlloyMixing(new FluidStack(fluidUUM, 2), new FluidStack(fluidUUM, 1), new FluidStack(ent.getValue(), 1));
}
}

@Override
public void postInit() {

}

}

0 comments on commit a181dc9

Please sign in to comment.