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.Loader;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.fml.common.SidedProxy;
|
import net.minecraftforge.fml.common.SidedProxy;
|
||||||
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
import net.minecraftforge.fml.common.event.*;
|
||||||
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.network.NetworkRegistry;
|
import net.minecraftforge.fml.common.network.NetworkRegistry;
|
||||||
import WayofTime.bloodmagic.annot.Handler;
|
import WayofTime.bloodmagic.annot.Handler;
|
||||||
import WayofTime.bloodmagic.api.Constants;
|
import WayofTime.bloodmagic.api.Constants;
|
||||||
|
@ -141,6 +137,11 @@ public class BloodMagic
|
||||||
proxy.postInit();
|
proxy.postInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Mod.EventHandler
|
||||||
|
public void modMapping(FMLModIdMappingEvent event) {
|
||||||
|
ModCompatibility.loadCompat(ICompatibility.InitializationPhase.MAPPING);
|
||||||
|
}
|
||||||
|
|
||||||
@Mod.EventHandler
|
@Mod.EventHandler
|
||||||
public void serverStarting(FMLServerStartingEvent event)
|
public void serverStarting(FMLServerStartingEvent event)
|
||||||
{
|
{
|
||||||
|
|
|
@ -48,6 +48,12 @@ public interface ICompatibility
|
||||||
* Represents
|
* Represents
|
||||||
* {@link net.minecraftforge.fml.common.event.FMLPostInitializationEvent}
|
* {@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.Blocks;
|
||||||
import net.minecraft.init.Items;
|
import net.minecraft.init.Items;
|
||||||
import net.minecraft.item.ItemStack;
|
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.FMLCommonHandler;
|
||||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
import WayofTime.bloodmagic.compat.ICompatibility;
|
import WayofTime.bloodmagic.compat.ICompatibility;
|
||||||
import amerifrance.guideapi.api.GuideAPI;
|
import amerifrance.guideapi.api.GuideAPI;
|
||||||
|
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
||||||
|
|
||||||
public class CompatibilityGuideAPI implements ICompatibility
|
public class CompatibilityGuideAPI implements ICompatibility
|
||||||
{
|
{
|
||||||
|
private static IRecipe guideRecipe = null;
|
||||||
|
private static boolean worldFlag;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void loadCompatibility(InitializationPhase phase)
|
public void loadCompatibility(InitializationPhase phase)
|
||||||
|
@ -21,8 +26,6 @@ public class CompatibilityGuideAPI implements ICompatibility
|
||||||
{
|
{
|
||||||
GuideBloodMagic.initBook();
|
GuideBloodMagic.initBook();
|
||||||
GameRegistry.register(GuideBloodMagic.guideBook);
|
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)
|
if (FMLCommonHandler.instance().getSide() == Side.CLIENT)
|
||||||
GuideAPI.setModel(GuideBloodMagic.guideBook);
|
GuideAPI.setModel(GuideBloodMagic.guideBook);
|
||||||
|
|
||||||
|
@ -30,6 +33,7 @@ public class CompatibilityGuideAPI implements ICompatibility
|
||||||
}
|
}
|
||||||
case INIT:
|
case INIT:
|
||||||
{
|
{
|
||||||
|
guideRecipe = new ShapelessOreRecipe(GuideAPI.getStackFromBook(GuideBloodMagic.guideBook), new ItemStack(Items.BOOK), Blocks.GLASS, Items.FEATHER);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case POST_INIT:
|
case POST_INIT:
|
||||||
|
@ -38,6 +42,17 @@ public class CompatibilityGuideAPI implements ICompatibility
|
||||||
GuideBloodMagic.initCategories();
|
GuideBloodMagic.initCategories();
|
||||||
break;
|
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