diff --git a/src/main/java/forestry/factory/DummyManagers.java b/src/main/java/forestry/factory/DummyManagers.java new file mode 100644 index 000000000..ae32960ff --- /dev/null +++ b/src/main/java/forestry/factory/DummyManagers.java @@ -0,0 +1,165 @@ +package forestry.factory; + +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.item.ItemStack; + +import net.minecraftforge.fluids.FluidStack; + +import forestry.api.recipes.ICarpenterManager; +import forestry.api.recipes.ICentrifugeManager; +import forestry.api.recipes.IFabricatorManager; +import forestry.api.recipes.IFermenterManager; +import forestry.api.recipes.IMoistenerManager; +import forestry.api.recipes.ISqueezerManager; +import forestry.api.recipes.IStillManager; + +public class DummyManagers { + + public static class CarpenterManager implements ICarpenterManager { + + @Override + public void addRecipe(ItemStack box, ItemStack product, Object... materials) { + + } + + @Override + public void addRecipe(int packagingTime, ItemStack box, ItemStack product, Object... materials) { + + } + + @Override + public void addRecipe(int packagingTime, FluidStack liquid, ItemStack box, ItemStack product, Object... materials) { + + } + + @Override + public void addCrating(String toCrate, ItemStack unpack, ItemStack crated) { + + } + + @Override + public void addCrating(ItemStack itemStack) { + + } + + @Override + public void addCratingWithOreDict(ItemStack itemStack) { + + } + + @Override + public Map getRecipes() { + return null; + } + } + + public static class CentrifugeManager implements ICentrifugeManager { + + @Override + public void addRecipe(int timePerItem, ItemStack resource, HashMap products) { + + } + + @Override + public void addRecipe(int timePerItem, ItemStack resource, ItemStack[] produce, int[] chances) { + + } + + @Override + public void addRecipe(int timePerItem, ItemStack resource, ItemStack primary, ItemStack secondary, int chance) { + + } + + @Override + public void addRecipe(int timePerItem, ItemStack resource, ItemStack primary) { + + } + + @Override + public Map getRecipes() { + return null; + } + } + + public static class FabricatorManager implements IFabricatorManager { + + @Override + public void addRecipe(ItemStack plan, FluidStack molten, ItemStack result, Object[] pattern) { + + } + + @Override + public void addSmelting(ItemStack resource, FluidStack molten, int meltingPoint) { + + } + + @Override + public Map getRecipes() { + return null; + } + } + + public static class FermenterManager implements IFermenterManager { + + @Override + public void addRecipe(ItemStack resource, int fermentationValue, float modifier, FluidStack output, FluidStack liquid) { + + } + + @Override + public void addRecipe(ItemStack resource, int fermentationValue, float modifier, FluidStack output) { + + } + + @Override + public Map getRecipes() { + return null; + } + } + + public static class MoistenerManager implements IMoistenerManager { + + @Override + public void addRecipe(ItemStack resource, ItemStack product, int timePerItem) { + + } + + @Override + public Map getRecipes() { + return null; + } + } + + public static class SqueezerManager implements ISqueezerManager { + + @Override + public void addRecipe(int timePerItem, ItemStack[] resources, FluidStack liquid, ItemStack remnants, int chance) { + + } + + @Override + public void addRecipe(int timePerItem, ItemStack[] resources, FluidStack liquid) { + + } + + @Override + public Map getRecipes() { + return null; + } + } + + public static class StillManager implements IStillManager { + + @Override + public void addRecipe(int cyclesPerUnit, FluidStack input, FluidStack output) { + + } + + @Override + public Map getRecipes() { + return null; + } + } +} diff --git a/src/main/java/forestry/plugins/ForestryPlugin.java b/src/main/java/forestry/plugins/ForestryPlugin.java index 6e9f54446..2f3a45f9f 100755 --- a/src/main/java/forestry/plugins/ForestryPlugin.java +++ b/src/main/java/forestry/plugins/ForestryPlugin.java @@ -44,13 +44,16 @@ public abstract class ForestryPlugin { protected void preInit() { } + protected void disabledPreInit() { + } + protected void doInit() { } protected void postInit() { } - protected void disabledInit() { + protected void disabledPostInit() { } public boolean processIMCMessage(IMCMessage message) { diff --git a/src/main/java/forestry/plugins/PluginFactory.java b/src/main/java/forestry/plugins/PluginFactory.java index a65424ee9..461797d3d 100644 --- a/src/main/java/forestry/plugins/PluginFactory.java +++ b/src/main/java/forestry/plugins/PluginFactory.java @@ -35,6 +35,7 @@ import forestry.core.items.ItemNBTTile; import forestry.core.proxy.Proxies; import forestry.core.utils.RecipeUtil; import forestry.core.utils.ShapedRecipeCustom; +import forestry.factory.DummyManagers; import forestry.factory.GuiHandlerFactory; import forestry.factory.gadgets.MachineBottler; import forestry.factory.gadgets.MachineCarpenter; @@ -66,6 +67,21 @@ public class PluginFactory extends ForestryPlugin { public static MachineDefinition definitionRaintank; public static MachineDefinition definitionWorktable; + @Override + protected void disabledPreInit() { + super.disabledPreInit(); + + RecipeManagers.craftingProviders = Arrays.asList( + RecipeManagers.carpenterManager = new DummyManagers.CarpenterManager(), + RecipeManagers.centrifugeManager = new DummyManagers.CentrifugeManager(), + RecipeManagers.fabricatorManager = new DummyManagers.FabricatorManager(), + RecipeManagers.fermenterManager = new DummyManagers.FermenterManager(), + RecipeManagers.moistenerManager = new DummyManagers.MoistenerManager(), + RecipeManagers.squeezerManager = new DummyManagers.SqueezerManager(), + RecipeManagers.stillManager = new DummyManagers.StillManager() + ); + } + @Override public void preInit() { super.preInit(); diff --git a/src/main/java/forestry/plugins/PluginManager.java b/src/main/java/forestry/plugins/PluginManager.java index 54b2889b5..f620dcbac 100755 --- a/src/main/java/forestry/plugins/PluginManager.java +++ b/src/main/java/forestry/plugins/PluginManager.java @@ -62,7 +62,7 @@ public class PluginManager { public enum Stage { - SETUP, PRE_INIT, INIT, POST_INIT, INIT_DISABLED, FINISHED + SETUP, PRE_INIT, PRE_INIT_DISABLED, INIT, POST_INIT, POST_INIT_DISABLED, FINISHED } public enum Module { @@ -137,10 +137,6 @@ public class PluginManager { return loadedModules.contains(module); } - public static void addPlugin(ForestryPlugin plugin) { - - } - public static void runPreInit() { stage = Stage.SETUP; Locale locale = Locale.getDefault(); @@ -209,6 +205,14 @@ public class PluginManager { plugin.registerItems(); Proxies.log.fine("Pre-Init Complete: {0}", plugin); } + + stage = Stage.PRE_INIT_DISABLED; + for (Module m : unloadedModules) { + ForestryPlugin plugin = m.instance; + Proxies.log.fine("Disabled-Pre-Init Start: {0}", plugin); + plugin.disabledPreInit(); + Proxies.log.fine("Disabled-Pre-Init Complete: {0}", plugin); + } } private static void loadPlugin(ForestryPlugin plugin) { @@ -276,12 +280,12 @@ public class PluginManager { Proxies.log.fine("Post-Init Complete: {0}", plugin); } - stage = Stage.INIT_DISABLED; + stage = Stage.POST_INIT_DISABLED; for (Module m : unloadedModules) { ForestryPlugin plugin = m.instance; - Proxies.log.fine("Disabled-Init Start: {0}", plugin); - plugin.disabledInit(); - Proxies.log.fine("Disabled-Init Complete: {0}", plugin); + Proxies.log.fine("Disabled-Post-Init Start: {0}", plugin); + plugin.disabledPostInit(); + Proxies.log.fine("Disabled-Post-Init Complete: {0}", plugin); } stage = Stage.FINISHED; }