It now gets to the main menu without ic2 :) o/ Next I need to fix the powered items.

This commit is contained in:
modmuss50 2015-07-23 16:19:07 +01:00
parent 496151fcae
commit 8725c5932d
12 changed files with 1183 additions and 1299 deletions

View file

@ -24,7 +24,7 @@ public class CompatManager {
public CompatManager() {
registerCompact(CompatModuleWaila.class, "Waila");
registerCompact(RecipesIC2.class, "IC2");
registerCompact(RecipesBuildcraft.class, "BuildCraft|Core");
registerCompact(RecipesBuildcraft.class, "BuildCraft|Core", "IC2");
registerCompact(RecipesThermalExpansion.class, "ThermalExpansion");
registerCompact(EmcValues.class, "EE3");
registerCompact(RecipesNatura.class, "Natura");
@ -34,15 +34,18 @@ public class CompatManager {
registerCompact(MinetweakerCompat.class, "MineTweaker");
}
public void registerCompact(Class<?> moduleClass, String modid) {
if (Loader.isModLoaded(modid)) {
try {
compatModules.add((ICompatModule) moduleClass.newInstance());
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
public void registerCompact(Class<?> moduleClass, String... modid) {
for(String id : modid){
if(!Loader.isModLoaded(id)){
return;
}
}
try {
compatModules.add((ICompatModule) moduleClass.newInstance());
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}

View file

@ -14,121 +14,16 @@ import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
import ic2.api.item.IC2Items;
import ic2.api.recipe.IRecipeInput;
import ic2.api.recipe.RecipeInputFluidContainer;
import ic2.api.recipe.RecipeInputItemStack;
import ic2.api.recipe.RecipeInputOreDict;
import ic2.api.recipe.RecipeOutput;
import ic2.api.recipe.Recipes;
import ic2.core.AdvRecipe;
import ic2.core.AdvShapelessRecipe;
import ic2.core.Ic2Items;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fluids.FluidStack;
import techreborn.api.recipe.IBaseRecipeType;
import techreborn.api.recipe.RecipeHandler;
import techreborn.compat.ICompatModule;
import techreborn.items.ItemParts;
import techreborn.items.ItemPlates;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class EmcValues implements ICompatModule {
public static void addIC2Handlers() {
for (Map.Entry<IRecipeInput, RecipeOutput> entry : Recipes.macerator.getRecipes().entrySet())
sendRecipeEntry(entry);
for (Map.Entry<IRecipeInput, RecipeOutput> entry : Recipes.compressor.getRecipes().entrySet())
sendRecipeEntry(entry);
for (Map.Entry<IRecipeInput, RecipeOutput> entry : Recipes.extractor.getRecipes().entrySet())
sendRecipeEntry(entry);
for (Map.Entry<IRecipeInput, RecipeOutput> entry : Recipes.metalformerCutting.getRecipes().entrySet())
sendRecipeEntry(entry);
for (Map.Entry<IRecipeInput, RecipeOutput> entry : Recipes.metalformerExtruding.getRecipes().entrySet())
sendRecipeEntry(entry);
for (Map.Entry<IRecipeInput, RecipeOutput> entry : Recipes.metalformerRolling.getRecipes().entrySet())
sendRecipeEntry(entry);
for (Map.Entry<IRecipeInput, RecipeOutput> entry : Recipes.oreWashing.getRecipes().entrySet())
sendRecipeEntry(entry);
for (Map.Entry<IRecipeInput, RecipeOutput> entry : Recipes.centrifuge.getRecipes().entrySet())
sendRecipeEntry(entry);
for (Map.Entry<IRecipeInput, RecipeOutput> entry : Recipes.blockcutter.getRecipes().entrySet())
sendRecipeEntry(entry);
for (Map.Entry<IRecipeInput, RecipeOutput> entry : Recipes.blastfurance.getRecipes().entrySet())
sendRecipeEntry(entry);
for (Object recipeObject : CraftingManager.getInstance().getRecipeList()) {
if (recipeObject instanceof AdvRecipe || recipeObject instanceof AdvShapelessRecipe) {
IRecipe recipe = (IRecipe) recipeObject;
if (recipe.getRecipeOutput() != null) {
List<Object> recipeInputs = getRecipeInputs(recipe);
if (recipeInputs != null && !recipeInputs.isEmpty()) {
RecipeRegistryProxy.addRecipe(recipe.getRecipeOutput(), recipeInputs);
}
}
}
}
}
private static void sendRecipeEntry(Map.Entry<IRecipeInput, RecipeOutput> entry) {
List<ItemStack> recipeStackOutputs = entry.getValue().items;
if (recipeStackOutputs.size() == 1) {
ItemStack recipeOutput = recipeStackOutputs.get(0);
if (recipeOutput != null) {
recipeOutput = recipeOutput.copy();
recipeOutput.setTagCompound(entry.getValue().metadata);
for (ItemStack recipeInput : entry.getKey().getInputs()) {
if (recipeInput != null) {
recipeInput = recipeInput.copy();
recipeInput.stackSize = entry.getKey().getAmount();
RecipeRegistryProxy.addRecipe(recipeOutput, Arrays.asList(recipeInput));
}
}
}
}
}
private static List<Object> getRecipeInputs(IRecipe recipe) {
List<Object> recipeInputs = new ArrayList<Object>();
if (recipe instanceof AdvRecipe) {
for (Object object : ((AdvRecipe) recipe).input) {
addInputToList(recipeInputs, object);
}
} else if (recipe instanceof AdvShapelessRecipe) {
for (Object object : ((AdvShapelessRecipe) recipe).input) {
addInputToList(recipeInputs, object);
}
}
return recipeInputs;
}
public static void addInputToList(List<Object> recipeInputs, Object object) {
if (object instanceof ItemStack) {
ItemStack itemStack = ((ItemStack) object).copy();
recipeInputs.add(itemStack);
} else if (object instanceof String) {
OreStack stack = new OreStack((String) object);
recipeInputs.add(stack);
} else if (object instanceof IRecipeInput) {
if (object instanceof RecipeInputItemStack)
recipeInputs.add(((RecipeInputItemStack) object).input);
else if (object instanceof RecipeInputOreDict)
recipeInputs.add(new OreStack(((RecipeInputOreDict) object).input));
else if (object instanceof RecipeInputFluidContainer)
recipeInputs.add(new FluidStack(((RecipeInputFluidContainer) object).fluid, ((RecipeInputFluidContainer) object).amount));
}
}
@Override
public void preInit(FMLPreInitializationEvent event) {
@ -165,22 +60,8 @@ public class EmcValues implements ICompatModule {
addOre("dustTin", 256);
}
if(!Loader.isModLoaded("EE3Compatibility")){
addStack(IC2Items.getItem("rubber"), 32);
addStack(IC2Items.getItem("carbonPlate"), 256);
addStack(Ic2Items.energyCrystal, 32896 / 9);
addStack(Ic2Items.chargingEnergyCrystal, 32896 / 9);
addStack(IC2Items.getItem("refinedIronIngot"), 512);
addStack(Ic2Items.plateadviron, 512);
addStack(Ic2Items.reBattery, 608);
addStack(Ic2Items.chargedReBattery, 608);
}
addStack(ItemPlates.getPlateByName("steel"), 512);
addStack(ItemParts.getPartByName("lazuriteChunk"), 7776);
if(!Loader.isModLoaded("EE3Compatibility")){
addIC2Handlers();
}
}
@Override

View file

@ -3,14 +3,9 @@ package techreborn.compat.nei.recipes;
import codechicken.lib.gui.GuiDraw;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.TemplateRecipeHandler;
import ic2.core.util.DrawUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.util.IIcon;
import techreborn.api.recipe.IBaseRecipeType;
import techreborn.api.recipe.machines.BlastFurnaceRecipe;
import techreborn.api.recipe.machines.GrinderRecipe;
import techreborn.client.gui.GuiBlastFurnace;
import techreborn.util.ItemUtils;

View file

@ -3,13 +3,13 @@ package techreborn.compat.nei.recipes;
import codechicken.lib.gui.GuiDraw;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.TemplateRecipeHandler;
import ic2.core.util.DrawUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.util.IIcon;
import techreborn.api.recipe.IBaseRecipeType;
import techreborn.api.recipe.machines.GrinderRecipe;
import techreborn.client.GuiUtil;
import techreborn.client.gui.GuiGrinder;
import techreborn.util.ItemUtils;
@ -91,7 +91,7 @@ public class GrinderRecipeHandler extends GenericRecipeHander implements INeiBas
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
int liquidHeight = grinderRecipe.fluidStack.amount * 100 / 16000;
DrawUtil.drawRepeated(fluidIcon, 7, 22 + 47 - liquidHeight, 14.0D, liquidHeight, GuiDraw.gui.getZLevel());
GuiUtil.drawRepeated(fluidIcon, 7, 22 + 47 - liquidHeight, 14.0D, liquidHeight, GuiDraw.gui.getZLevel());
}
GuiDraw.drawString(grinderRecipe.fluidStack.amount + "mb of " + grinderRecipe.fluidStack.getLocalizedName(), 14, 135, -1);

View file

@ -1,19 +1,13 @@
package techreborn.compat.nei.recipes;
import codechicken.lib.gui.GuiDraw;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.TemplateRecipeHandler;
import ic2.core.util.DrawUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.util.IIcon;
import techreborn.api.recipe.IBaseRecipeType;
import techreborn.api.recipe.machines.IndustrialElectrolyzerRecipe;
import techreborn.client.gui.GuiIndustrialElectrolyzer;
import techreborn.util.ItemUtils;
import java.awt.Rectangle;
import java.awt.*;
import java.util.List;
public class IndustrialElectrolyzerRecipeHandler extends GenericRecipeHander implements INeiBaseRecipe {

View file

@ -3,13 +3,13 @@ package techreborn.compat.nei.recipes;
import codechicken.lib.gui.GuiDraw;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.TemplateRecipeHandler;
import ic2.core.util.DrawUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.util.IIcon;
import techreborn.api.recipe.IBaseRecipeType;
import techreborn.api.recipe.machines.IndustrialSawmillRecipe;
import techreborn.client.GuiUtil;
import techreborn.client.gui.GuiIndustrialSawmill;
import java.awt.*;
@ -84,7 +84,7 @@ public class IndustrialSawmillRecipeHandler extends GenericRecipeHander implemen
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
int liquidHeight = grinderRecipe.fluidStack.amount * 100 / 16000;
DrawUtil.drawRepeated(fluidIcon, 7, 22 + 47 - liquidHeight, 14.0D, liquidHeight, GuiDraw.gui.getZLevel());
GuiUtil.drawRepeated(fluidIcon, 7, 22 + 47 - liquidHeight, 14.0D, liquidHeight, GuiDraw.gui.getZLevel());
}
GuiDraw.drawString(grinderRecipe.fluidStack.amount + "mb of " + grinderRecipe.fluidStack.getLocalizedName(), 14, 135, -1);

File diff suppressed because it is too large Load diff