Move guide recipe registration to Mod mapping
The guide's index after loading a world may not be the same as the guide's index at preInit. In the 1.10 version of GuideAPI, there is a `setMappingFunction(Function<Book, Void>)` method that will clean this up.
This commit is contained in:
parent
ffeb0309a8
commit
3a26dbb567
|
@ -11,11 +11,7 @@ import net.minecraftforge.fluids.FluidRegistry;
|
|||
import net.minecraftforge.fml.common.Loader;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.common.SidedProxy;
|
||||
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLInterModComms;
|
||||
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.event.*;
|
||||
import net.minecraftforge.fml.common.network.NetworkRegistry;
|
||||
import WayofTime.bloodmagic.annot.Handler;
|
||||
import WayofTime.bloodmagic.api.Constants;
|
||||
|
@ -141,6 +137,11 @@ public class BloodMagic
|
|||
proxy.postInit();
|
||||
}
|
||||
|
||||
@Mod.EventHandler
|
||||
public void modMapping(FMLModIdMappingEvent event) {
|
||||
ModCompatibility.loadCompat(ICompatibility.InitializationPhase.MAPPING);
|
||||
}
|
||||
|
||||
@Mod.EventHandler
|
||||
public void serverStarting(FMLServerStartingEvent event)
|
||||
{
|
||||
|
|
|
@ -48,6 +48,12 @@ public interface ICompatibility
|
|||
* Represents
|
||||
* {@link net.minecraftforge.fml.common.event.FMLPostInitializationEvent}
|
||||
*/
|
||||
POST_INIT
|
||||
POST_INIT,
|
||||
/**
|
||||
* Represents
|
||||
* {@link net.minecraftforge.fml.common.event.FMLModIdMappingEvent}
|
||||
*/
|
||||
MAPPING,
|
||||
;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,14 +3,19 @@ package WayofTime.bloodmagic.compat.guideapi;
|
|||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.CraftingManager;
|
||||
import net.minecraft.item.crafting.IRecipe;
|
||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import WayofTime.bloodmagic.compat.ICompatibility;
|
||||
import amerifrance.guideapi.api.GuideAPI;
|
||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
||||
|
||||
public class CompatibilityGuideAPI implements ICompatibility
|
||||
{
|
||||
private static IRecipe guideRecipe = null;
|
||||
private static boolean worldFlag;
|
||||
|
||||
@Override
|
||||
public void loadCompatibility(InitializationPhase phase)
|
||||
|
@ -21,8 +26,6 @@ public class CompatibilityGuideAPI implements ICompatibility
|
|||
{
|
||||
GuideBloodMagic.initBook();
|
||||
GameRegistry.register(GuideBloodMagic.guideBook);
|
||||
// AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.BOOK), GuideAPI.getStackFromBook(GuideBloodMagic.guideBook), EnumAltarTier.ONE, 500, 2, 0));
|
||||
GameRegistry.addShapelessRecipe(GuideAPI.getStackFromBook(GuideBloodMagic.guideBook), new ItemStack(Items.BOOK), Blocks.GLASS, Items.FEATHER);
|
||||
if (FMLCommonHandler.instance().getSide() == Side.CLIENT)
|
||||
GuideAPI.setModel(GuideBloodMagic.guideBook);
|
||||
|
||||
|
@ -30,6 +33,7 @@ public class CompatibilityGuideAPI implements ICompatibility
|
|||
}
|
||||
case INIT:
|
||||
{
|
||||
guideRecipe = new ShapelessOreRecipe(GuideAPI.getStackFromBook(GuideBloodMagic.guideBook), new ItemStack(Items.BOOK), Blocks.GLASS, Items.FEATHER);
|
||||
break;
|
||||
}
|
||||
case POST_INIT:
|
||||
|
@ -38,6 +42,17 @@ public class CompatibilityGuideAPI implements ICompatibility
|
|||
GuideBloodMagic.initCategories();
|
||||
break;
|
||||
}
|
||||
case MAPPING:
|
||||
{
|
||||
if (!worldFlag) {
|
||||
GameRegistry.addRecipe(guideRecipe);
|
||||
worldFlag = true;
|
||||
} else {
|
||||
CraftingManager.getInstance().getRecipeList().remove(guideRecipe);
|
||||
worldFlag = false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue