package techreborn.compat.ee3; import com.pahimar.ee3.api.exchange.EnergyValue; import com.pahimar.ee3.api.exchange.EnergyValueRegistryProxy; import com.pahimar.ee3.api.exchange.RecipeRegistryProxy; import com.pahimar.ee3.exchange.EnergyValueRegistry; import com.pahimar.ee3.exchange.OreStack; import com.pahimar.ee3.exchange.WrappedStack; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.event.FMLServerStartingEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import techreborn.api.recipe.IBaseRecipeType; import techreborn.api.recipe.RecipeHandler; import techreborn.compat.ICompatModule; import techreborn.items.ItemParts; import techreborn.items.ItemPlates; public class EmcValues implements ICompatModule { @Override public void preInit(FMLPreInitializationEvent event) { } @Override public void init(FMLInitializationEvent event) { for (IBaseRecipeType recipeType : RecipeHandler.recipeList) { if (recipeType.getOutputsSize() == 1) { RecipeRegistryProxy.addRecipe(recipeType.getOutput(0), recipeType.getInputs()); } } } @Override public void postInit(FMLPostInitializationEvent event) { if (!Loader.isModLoaded("EE3Compatibility")) { MinecraftForge.EVENT_BUS.register(this); addOre("ingotCopper", 128); addOre("ingotSilver", 1024); addOre("ingotTin", 256); addOre("ingotLead", 256); addOre("dustSteel", 512); addOre("ingotRefinedIron", 512); addOre("dustCoal", 32); addOre("dustDiamond", 8192); addOre("dustSulfur", 32); addOre("dustLead", 256); addOre("ingotBronze", 256); addOre("ingotElectrum", 2052); addOre("dustLapis", 864); addOre("dustSilver", 1024); addOre("dustTin", 256); } addStack(ItemPlates.getPlateByName("steel"), 512); addStack(ItemParts.getPartByName("lazuriteChunk"), 7776); } @Override public void serverStarting(FMLServerStartingEvent event) { event.registerServerCommand(new CommandRegen()); event.registerServerCommand(new CommandReload()); } @SubscribeEvent public void serverTick(TickEvent.ServerTickEvent event) { //This should be a fix for the things not saving EnergyValueRegistry.getInstance().setShouldRegenNextRestart(false); } private void addOre(String name, float value) { WrappedStack stack = WrappedStack.wrap(new OreStack(name)); EnergyValue energyValue = new EnergyValue(value); EnergyValueRegistryProxy.addPreAssignedEnergyValue(stack, energyValue); } private void addStack(ItemStack itemStack, float value) { WrappedStack stack = WrappedStack.wrap(itemStack); EnergyValue energyValue = new EnergyValue(value); EnergyValueRegistryProxy.addPreAssignedEnergyValue(stack, energyValue); } }