Commmitting another whack of code

This commit is contained in:
Pahimar 2014-07-24 16:01:42 -04:00
parent f764310622
commit 644f07dd20
29 changed files with 440 additions and 292 deletions

View file

@ -12,6 +12,7 @@ import com.pahimar.ee3.init.Recipes;
import com.pahimar.ee3.network.PacketHandler;
import com.pahimar.ee3.proxy.IProxy;
import com.pahimar.ee3.recipe.RecipeRegistry;
import com.pahimar.ee3.recipe.RecipesAludel;
import com.pahimar.ee3.reference.Messages;
import com.pahimar.ee3.reference.Reference;
import com.pahimar.ee3.skill.SkillRegistry;
@ -20,8 +21,10 @@ import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent;
import cpw.mods.fml.common.event.FMLFingerprintViolationEvent;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
@ -49,12 +52,6 @@ public class EquivalentExchange3
}
}
@EventHandler
public void serverStarting(FMLServerStartingEvent event)
{
}
@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
@ -96,13 +93,8 @@ public class EquivalentExchange3
@EventHandler
public void postInit(FMLPostInitializationEvent event)
{
RecipeRegistry.getInstance();
}
@EventHandler
public void handleIMCMessages(IMCEvent event)
{
RecipeRegistry.getInstance().registerVanillaRecipes();
RecipesAludel.registerRecipes();
}
public EnergyValueRegistry getEnergyValueRegistry()

View file

@ -27,6 +27,11 @@ public class SkillRegistryProxy
}
public static void addSkill(ItemStack itemStack, boolean isLearnable, boolean isRecovereable)
{
addSkill(itemStack, isLearnable, isRecovereable, 0);
}
public static void addSkill(ItemStack itemStack, boolean isLearnable, boolean isRecovereable, int tier)
{
init();
@ -36,7 +41,7 @@ public class SkillRegistryProxy
return;
}
EE3Wrapper.ee3mod.getSkillRegistry().addSkill(itemStack, isLearnable, isRecovereable);
EE3Wrapper.ee3mod.getSkillRegistry().addSkill(itemStack, isLearnable, isRecovereable, tier);
}
public static boolean isLearnable(ItemStack itemStack)

View file

@ -4,7 +4,6 @@ import com.pahimar.ee3.reference.Messages;
import com.pahimar.ee3.reference.Reference;
import com.pahimar.ee3.reference.Settings;
import com.pahimar.ee3.util.ConfigurationHelper;
import com.pahimar.ee3.util.LogHelper;
import cpw.mods.fml.client.event.ConfigChangedEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.util.StatCollector;
@ -28,11 +27,11 @@ public class ConfigurationHandler
private static void loadConfiguration()
{
// TODO Come back and do these constants in logical locations and names
Settings.Transmutation.knowledgeMode = ConfigurationHelper.getString(configuration, Messages.Configuration.TRANSMUTATION_KNOWLEDGE_MODE, Messages.Configuration.CATEGORY_TRANSMUTATION, Settings.Transmutation.KNOWLEDGE_MODE_ALL, StatCollector.translateToLocal(Messages.Configuration.TRANSMUTATION_KNOWLEDGE_MODE_COMMENT), new String[]{Settings.Transmutation.KNOWLEDGE_MODE_ALL, Settings.Transmutation.KNOWLEDGE_MODE_SELECT, Settings.Transmutation.KNOWLEDGE_MODE_NONE}, Messages.Configuration.TRANSMUTATION_KNOWLEDGE_MODE_LABEL);
Settings.Transmutation.knowledgeMode = ConfigurationHelper.getString(configuration, Messages.Configuration.TRANSMUTATION_KNOWLEDGE_MODE, Messages.Configuration.CATEGORY_TRANSMUTATION, "All", StatCollector.translateToLocal(Messages.Configuration.TRANSMUTATION_KNOWLEDGE_MODE_COMMENT), new String[]{"All", "Select", "Tier", "Restricted", "None"}, Messages.Configuration.TRANSMUTATION_KNOWLEDGE_MODE_LABEL);
Settings.Transmutation.maxKnowledgeTier = configuration.getInt(Messages.Configuration.TRANSMUTATION_KNOWLEDGE_MAX_TIER, Messages.Configuration.CATEGORY_TRANSMUTATION, 0, 0, Short.MAX_VALUE, StatCollector.translateToLocal(Messages.Configuration.TRANSMUTATION_KNOWLEDGE_MAX_TIER_COMMENT), Messages.Configuration.TRANSMUTATION_KNOWLEDGE_MAX_TIER_LABEL);
Settings.Transmutation.useTemplateFile = configuration.getBoolean(Messages.Configuration.TRANSMUTATION_KNOWLEDGE_TEMPLATE, Messages.Configuration.CATEGORY_TRANSMUTATION, true, StatCollector.translateToLocal(Messages.Configuration.TRANSMUTATION_KNOWLEDGE_TEMPLATE_COMMENT), Messages.Configuration.TRANSMUTATION_KNOWLEDGE_TEMPLATE_LABEL);
Settings.Sounds.soundMode = ConfigurationHelper.getString(configuration, Messages.Configuration.SOUND_MODE, Configuration.CATEGORY_GENERAL, Settings.Sounds.SOUND_MODE_ALL, StatCollector.translateToLocal(Messages.Configuration.SOUND_MODE_COMMENT), new String[]{Settings.Sounds.SOUND_MODE_ALL, Settings.Sounds.SOUND_MODE_SELF, Settings.Sounds.SOUND_MODE_NONE}, Messages.Configuration.SOUND_MODE_LABEL);
Settings.Sounds.soundMode = ConfigurationHelper.getString(configuration, Messages.Configuration.SOUND_MODE, Configuration.CATEGORY_GENERAL, "All", StatCollector.translateToLocal(Messages.Configuration.SOUND_MODE_COMMENT), new String[]{"All", "Self", "None"}, Messages.Configuration.SOUND_MODE_LABEL);
LogHelper.info(Settings.Transmutation.knowledgeMode);
if (configuration.hasChanged())
{
configuration.save();

View file

@ -104,6 +104,12 @@ public class PlayerKnowledgeHandler
{
e.printStackTrace();
}
finally
{
NBTTagCompound nbtTagCompound = new NBTTagCompound();
new PlayerKnowledge().writeToNBT(nbtTagCompound);
return nbtTagCompound;
}
}
}
@ -112,6 +118,41 @@ public class PlayerKnowledgeHandler
return nbtTagCompound;
}
private static NBTTagCompound readAllowedKnowledgeFile()
{
if (playerDataDirectory != null && playerDataDirectory.isDirectory())
{
File allowedKnowledgeFile = new File(playerDataDirectory, EXPLICITLY_ALLOWED_KNOWLEDGE_FILENAME);
if (allowedKnowledgeFile.exists() && allowedKnowledgeFile.isFile())
{
try
{
return CompressedStreamTools.readCompressed(new FileInputStream(allowedKnowledgeFile));
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
NBTTagCompound nbtTagCompound = new NBTTagCompound();
new PlayerKnowledge().writeToNBT(nbtTagCompound);
return nbtTagCompound;
}
}
}
NBTTagCompound nbtTagCompound = new NBTTagCompound();
new PlayerKnowledge().writeToNBT(nbtTagCompound);
return nbtTagCompound;
}
public static PlayerKnowledge getAllowedPlayerKnowledge()
{
return new PlayerKnowledge(readAllowedKnowledgeFile());
}
public static void initializeTemplateFile(PlayerKnowledge templatePlayerKnowledge)
{
if (playerDataDirectory != null && playerDataDirectory.isDirectory())
@ -142,4 +183,5 @@ public class PlayerKnowledgeHandler
public static final String KNOWLEDGE_FILE_EXTENSION = ".ee3";
private static final String TEMPLATE_FILENAME = "template" + KNOWLEDGE_FILE_EXTENSION;
private static final String EXPLICITLY_ALLOWED_KNOWLEDGE_FILENAME = "allowedKnowledge" + KNOWLEDGE_FILE_EXTENSION;
}

View file

@ -21,6 +21,7 @@ public class ModItems
public static final ItemEE alchemicalTome = new ItemAlchemicalTome();
public static final ItemEE guide = new ItemGuide();
public static final ItemEE matter = new ItemMatter();
public static final ItemEE gem = new ItemGem();
public static final ItemToolEE shovelDarkMatter = new ItemDarkMatterShovel();
public static final ItemToolEE pickAxeDarkMatter = new ItemDarkMatterPickAxe();
@ -49,6 +50,7 @@ public class ModItems
GameRegistry.registerItem(alchemicalTome, Names.Items.ALCHEMICAL_TOME);
GameRegistry.registerItem(guide, Names.Items.GUIDE);
GameRegistry.registerItem(matter, Names.Items.MATTER);
GameRegistry.registerItem(gem, Names.Items.GEM);
GameRegistry.registerItem(shovelDarkMatter, Names.Tools.DARK_MATTER_SHOVEL);
GameRegistry.registerItem(pickAxeDarkMatter, Names.Tools.DARK_MATTER_PICKAXE);

View file

@ -1,7 +1,6 @@
package com.pahimar.ee3.init;
import com.pahimar.ee3.recipe.RecipesAludel;
import com.pahimar.ee3.recipe.RecipesVanilla;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@ -15,8 +14,6 @@ public class Recipes
{
initModRecipes();
initAludelRecipes();
RecipesVanilla.init();
}
private static void initModRecipes()

View file

@ -0,0 +1,69 @@
package com.pahimar.ee3.item;
import com.pahimar.ee3.reference.Names;
import com.pahimar.ee3.reference.Textures;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import java.util.List;
public class ItemGem extends ItemEE
{
@SideOnly(Side.CLIENT)
private IIcon[] icons;
public ItemGem()
{
super();
this.setMaxStackSize(64);
this.setHasSubtypes(true);
this.setUnlocalizedName(Names.Items.GEM);
}
@Override
public String getUnlocalizedName()
{
return String.format("item.%s%s", Textures.RESOURCE_PREFIX, Names.Items.GEM);
}
@Override
public String getUnlocalizedName(ItemStack itemStack)
{
return String.format("item.%s%s%s", Textures.RESOURCE_PREFIX, Names.Items.GEM, Names.Items.GEM_SUBTYPES[MathHelper.clamp_int(itemStack.getItemDamage(), 0, Names.Items.GEM_SUBTYPES.length - 1)]);
}
@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs creativeTab, List list)
{
for (int meta = 0; meta < Names.Items.GEM_SUBTYPES.length; ++meta)
{
list.add(new ItemStack(this, 1, meta));
}
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int meta)
{
return icons[MathHelper.clamp_int(meta, 0, Names.Items.GEM_SUBTYPES.length - 1)];
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister)
{
icons = new IIcon[Names.Items.GEM_SUBTYPES.length];
for (int i = 0; i < Names.Items.GEM_SUBTYPES.length; i++)
{
icons[i] = iconRegister.registerIcon(Textures.RESOURCE_PREFIX + Names.Items.GEM + Names.Items.GEM_SUBTYPES[i]);
}
}
}

View file

@ -1,9 +1,9 @@
package com.pahimar.ee3.recipe;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Multimap;
import com.pahimar.ee3.exchange.WrappedStack;
import com.pahimar.ee3.item.crafting.RecipeAludel;
import java.util.ArrayList;
import java.util.List;
@ -61,59 +61,15 @@ public class RecipeRegistry
}
}
private void init()
public void registerVanillaRecipes()
{
// Add recipes in the vanilla crafting manager
for (WrappedStack outputStack : RecipesVanilla.getVanillaRecipes().keySet())
{
for (List<WrappedStack> inputStacks : RecipesVanilla.getVanillaRecipes().get(outputStack))
{
if (!recipeMap.get(outputStack).contains(inputStacks))
{
recipeMap.put(outputStack, inputStacks);
}
}
}
// Add fluid container recipes
for (WrappedStack outputStack : RecipesFluidContainers.getFluidContainerRecipes().keySet())
{
for (List<WrappedStack> inputStacks : RecipesFluidContainers.getFluidContainerRecipes().get(outputStack))
{
if (!recipeMap.get(outputStack).contains(inputStacks))
{
recipeMap.put(outputStack, inputStacks);
}
}
}
// Add potion recipes
for (WrappedStack outputStack : RecipesPotions.getPotionRecipes().keySet())
{
for (List<WrappedStack> inputStacks : RecipesPotions.getPotionRecipes().get(outputStack))
{
if (!recipeMap.get(outputStack).contains(inputStacks))
{
recipeMap.put(outputStack, inputStacks);
}
}
}
// Add Aludel recipes
for (RecipeAludel recipeAludel : RecipesAludel.getInstance().getRecipes())
{
WrappedStack recipeOutput = new WrappedStack(recipeAludel.getRecipeOutput());
List<WrappedStack> recipeInputs = recipeAludel.getRecipeInputsAsWrappedStacks();
if (!recipeMap.get(recipeOutput).contains(recipeInputs))
{
recipeMap.put(recipeOutput, recipeInputs);
}
}
RecipesVanilla.registerRecipes();
RecipesFluidContainers.registerRecipes();
RecipesPotions.registerRecipes();
}
public Multimap<WrappedStack, List<WrappedStack>> getRecipeMappings()
{
return recipeRegistry.recipeMap;
return ImmutableMultimap.copyOf(recipeRegistry.recipeMap);
}
}

View file

@ -1,5 +1,7 @@
package com.pahimar.ee3.recipe;
import com.google.common.collect.ImmutableList;
import com.pahimar.ee3.api.RecipeRegistryProxy;
import com.pahimar.ee3.exchange.OreStack;
import com.pahimar.ee3.item.crafting.RecipeAludel;
import net.minecraft.item.ItemStack;
@ -74,6 +76,14 @@ public class RecipesAludel
public List<RecipeAludel> getRecipes()
{
return aludelRecipes;
return ImmutableList.copyOf(aludelRecipes);
}
public static void registerRecipes()
{
for (RecipeAludel recipeAludel : RecipesAludel.getInstance().getRecipes())
{
RecipeRegistryProxy.addRecipe(recipeAludel.getRecipeOutput(), recipeAludel.getRecipeInputsAsWrappedStacks());
}
}
}

View file

@ -1,38 +1,22 @@
package com.pahimar.ee3.recipe;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import com.pahimar.ee3.exchange.WrappedStack;
import com.pahimar.ee3.api.RecipeRegistryProxy;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData;
import java.util.Arrays;
import java.util.List;
public class RecipesFluidContainers
{
private static Multimap<WrappedStack, List<WrappedStack>> fluidContainerRecipes = null;
public static Multimap<WrappedStack, List<WrappedStack>> getFluidContainerRecipes()
public static void registerRecipes()
{
if (fluidContainerRecipes == null)
{
init();
}
return fluidContainerRecipes;
}
private static void init()
{
fluidContainerRecipes = HashMultimap.create();
for (FluidContainerData fluidContainerData : FluidContainerRegistry.getRegisteredFluidContainerData())
{
if (fluidContainerData.fluid != null)
{
if (fluidContainerData.filledContainer != null && fluidContainerData.emptyContainer != null)
{
fluidContainerRecipes.put(new WrappedStack(fluidContainerData.filledContainer.copy()), Arrays.asList(new WrappedStack(fluidContainerData.fluid.copy()), new WrappedStack(fluidContainerData.emptyContainer.copy())));
RecipeRegistryProxy.addRecipe(fluidContainerData.filledContainer.copy(), Arrays.asList(fluidContainerData.fluid.copy(), fluidContainerData.emptyContainer.copy()));
}
}
}

View file

@ -1,20 +1,15 @@
package com.pahimar.ee3.recipe;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import com.pahimar.ee3.api.RecipeRegistryProxy;
import com.pahimar.ee3.exchange.WrappedStack;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import java.util.Arrays;
import java.util.List;
public class RecipesPotions
{
private static Multimap<WrappedStack, List<WrappedStack>> potionRecipes = null;
private static WrappedStack reagentWater = new WrappedStack(new ItemStack(Blocks.water));
private static WrappedStack reagentNetherWart = new WrappedStack(new ItemStack(Items.nether_wart));
private static WrappedStack reagentGlowstoneDust = new WrappedStack(new ItemStack(Items.glowstone_dust));
@ -102,195 +97,181 @@ public class RecipesPotions
private static WrappedStack potionInvisibilitySplash = new WrappedStack(new ItemStack(Items.potionitem, 1, 16398));
private static WrappedStack potionInvisibilitySplashExtended = new WrappedStack(new ItemStack(Items.potionitem, 1, 16462));
public static Multimap<WrappedStack, List<WrappedStack>> getPotionRecipes()
public static void registerRecipes()
{
RecipeRegistryProxy.addRecipe(bottleWater, Arrays.asList(bottleEmpty, reagentWater));
if (potionRecipes == null)
{
init();
}
RecipeRegistryProxy.addRecipe(potionAwkward, Arrays.asList(bottleWater, reagentNetherWart));
return potionRecipes;
}
RecipeRegistryProxy.addRecipe(potionNightVision, Arrays.asList(potionAwkward, reagentGoldenCarrot));
RecipeRegistryProxy.addRecipe(potionNightVision, Arrays.asList(potionNightVisionExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionNightVisionSplash, Arrays.asList(potionNightVisionSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionNightVisionSplash, Arrays.asList(potionNightVision, reagentGunpowder));
private static void init()
{
RecipeRegistryProxy.addRecipe(potionNightVisionExtended, Arrays.asList(potionNightVision, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionNightVisionSplashExtended, Arrays.asList(potionNightVisionSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionNightVisionSplashExtended, Arrays.asList(potionNightVisionExtended, reagentGunpowder));
potionRecipes = HashMultimap.create();
RecipeRegistryProxy.addRecipe(potionInvisibility, Arrays.asList(potionNightVision, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionInvisibility, Arrays.asList(potionInvisibilityExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplash, Arrays.asList(potionNightVisionSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplash, Arrays.asList(potionInvisibilitySplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplash, Arrays.asList(potionInvisibility, reagentGunpowder));
potionRecipes.put(bottleWater, Arrays.asList(bottleEmpty, reagentWater));
RecipeRegistryProxy.addRecipe(potionInvisibilityExtended, Arrays.asList(potionInvisibility, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionInvisibilityExtended, Arrays.asList(potionNightVisionExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplashExtended, Arrays.asList(potionInvisibilitySplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplashExtended, Arrays.asList(potionNightVisionSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplashExtended, Arrays.asList(potionInvisibilityExtended, reagentGunpowder));
potionRecipes.put(potionAwkward, Arrays.asList(bottleWater, reagentNetherWart));
RecipeRegistryProxy.addRecipe(potionFireResist, Arrays.asList(potionAwkward, reagentMagmaCream));
RecipeRegistryProxy.addRecipe(potionFireResist, Arrays.asList(potionFireResistExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionFireResistSplash, Arrays.asList(potionFireResistSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionFireResistSplash, Arrays.asList(potionFireResist, reagentGunpowder));
potionRecipes.put(potionNightVision, Arrays.asList(potionAwkward, reagentGoldenCarrot));
potionRecipes.put(potionNightVision, Arrays.asList(potionNightVisionExtended, reagentGlowstoneDust));
potionRecipes.put(potionNightVisionSplash, Arrays.asList(potionNightVisionSplashExtended, reagentGlowstoneDust));
potionRecipes.put(potionNightVisionSplash, Arrays.asList(potionNightVision, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionFireResistExtended, Arrays.asList(potionFireResist, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionFireResistSplashExtended, Arrays.asList(potionFireResistSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionFireResistSplashExtended, Arrays.asList(potionFireResistExtended, reagentGunpowder));
potionRecipes.put(potionNightVisionExtended, Arrays.asList(potionNightVision, reagentRedstoneDust));
potionRecipes.put(potionNightVisionSplashExtended, Arrays.asList(potionNightVisionSplash, reagentRedstoneDust));
potionRecipes.put(potionNightVisionSplashExtended, Arrays.asList(potionNightVisionExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionSlowness, Arrays.asList(potionFireResist, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlowness, Arrays.asList(potionSlownessExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSlowness, Arrays.asList(potionSwiftness, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlowness, Arrays.asList(potionSwiftnessExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplash, Arrays.asList(potionFireResistSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplash, Arrays.asList(potionSlownessSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSlownessSplash, Arrays.asList(potionSwiftnessSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplash, Arrays.asList(potionSwiftnessSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplash, Arrays.asList(potionSlowness, reagentGunpowder));
potionRecipes.put(potionInvisibility, Arrays.asList(potionNightVision, reagentFermentedSpiderEye));
potionRecipes.put(potionInvisibility, Arrays.asList(potionInvisibilityExtended, reagentGlowstoneDust));
potionRecipes.put(potionInvisibilitySplash, Arrays.asList(potionNightVisionSplash, reagentFermentedSpiderEye));
potionRecipes.put(potionInvisibilitySplash, Arrays.asList(potionInvisibilitySplashExtended, reagentGlowstoneDust));
potionRecipes.put(potionInvisibilitySplash, Arrays.asList(potionInvisibility, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionSlownessExtended, Arrays.asList(potionFireResistExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessExtended, Arrays.asList(potionSwiftnessEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplashExtended, Arrays.asList(potionFireResistSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplashExtended, Arrays.asList(potionSwiftnessSplashEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplashExtended, Arrays.asList(potionSlownessExtended, reagentGunpowder));
potionRecipes.put(potionInvisibilityExtended, Arrays.asList(potionInvisibility, reagentRedstoneDust));
potionRecipes.put(potionInvisibilityExtended, Arrays.asList(potionNightVisionExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionInvisibilitySplashExtended, Arrays.asList(potionInvisibilitySplash, reagentRedstoneDust));
potionRecipes.put(potionInvisibilitySplashExtended, Arrays.asList(potionNightVisionSplashExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionInvisibilitySplashExtended, Arrays.asList(potionInvisibilityExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionSwiftness, Arrays.asList(potionAwkward, reagentSugar));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplash, Arrays.asList(potionSwiftness, reagentGunpowder));
potionRecipes.put(potionFireResist, Arrays.asList(potionAwkward, reagentMagmaCream));
potionRecipes.put(potionFireResist, Arrays.asList(potionFireResistExtended, reagentGlowstoneDust));
potionRecipes.put(potionFireResistSplash, Arrays.asList(potionFireResistSplashExtended, reagentGlowstoneDust));
potionRecipes.put(potionFireResistSplash, Arrays.asList(potionFireResist, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionSwiftnessExtended, Arrays.asList(potionSwiftness, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessExtended, Arrays.asList(potionSwiftnessEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashExtended, Arrays.asList(potionSwiftnessSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashExtended, Arrays.asList(potionSwiftnessSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashExtended, Arrays.asList(potionSwiftnessExtended, reagentGunpowder));
potionRecipes.put(potionFireResistExtended, Arrays.asList(potionFireResist, reagentRedstoneDust));
potionRecipes.put(potionFireResistSplashExtended, Arrays.asList(potionFireResistSplash, reagentRedstoneDust));
potionRecipes.put(potionFireResistSplashExtended, Arrays.asList(potionFireResistExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionSwiftnessEnhanced, Arrays.asList(potionSwiftness, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessEnhanced, Arrays.asList(potionSwiftnessExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashEnhanced, Arrays.asList(potionSwiftnessSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashEnhanced, Arrays.asList(potionSwiftnessSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashEnhanced, Arrays.asList(potionSwiftnessEnhanced, reagentGunpowder));
potionRecipes.put(potionSlowness, Arrays.asList(potionFireResist, reagentFermentedSpiderEye));
potionRecipes.put(potionSlowness, Arrays.asList(potionSlownessExtended, reagentGlowstoneDust));
potionRecipes.put(potionSlowness, Arrays.asList(potionSwiftness, reagentFermentedSpiderEye));
potionRecipes.put(potionSlowness, Arrays.asList(potionSwiftnessExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionSlownessSplash, Arrays.asList(potionFireResistSplash, reagentFermentedSpiderEye));
potionRecipes.put(potionSlownessSplash, Arrays.asList(potionSlownessSplashExtended, reagentGlowstoneDust));
potionRecipes.put(potionSlownessSplash, Arrays.asList(potionSwiftnessSplash, reagentFermentedSpiderEye));
potionRecipes.put(potionSlownessSplash, Arrays.asList(potionSwiftnessSplashExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionSlownessSplash, Arrays.asList(potionSlowness, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionHealing, Arrays.asList(potionAwkward, reagentGlisteringMelon));
RecipeRegistryProxy.addRecipe(potionHealing, Arrays.asList(potionHealingEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionHealingSplash, Arrays.asList(potionHealingSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionHealingSplash, Arrays.asList(potionHealing, reagentGunpowder));
potionRecipes.put(potionSlownessExtended, Arrays.asList(potionFireResistExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionSlownessExtended, Arrays.asList(potionSwiftnessEnhanced, reagentFermentedSpiderEye));
potionRecipes.put(potionSlownessSplashExtended, Arrays.asList(potionFireResistSplashExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionSlownessSplashExtended, Arrays.asList(potionSwiftnessSplashEnhanced, reagentFermentedSpiderEye));
potionRecipes.put(potionSlownessSplashExtended, Arrays.asList(potionSlownessExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionHealingEnhanced, Arrays.asList(potionHealing, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionHealingSplashEnhanced, Arrays.asList(potionHealingSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionHealingSplashEnhanced, Arrays.asList(potionHealingEnhanced, reagentGunpowder));
potionRecipes.put(potionSwiftness, Arrays.asList(potionAwkward, reagentSugar));
potionRecipes.put(potionSwiftnessSplash, Arrays.asList(potionSwiftness, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionHarming, Arrays.asList(potionHealing, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarming, Arrays.asList(potionPoison, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarming, Arrays.asList(potionPoisonExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarming, Arrays.asList(potionHarmingEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionHarmingSplash, Arrays.asList(potionHealingSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplash, Arrays.asList(potionPoisonSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplash, Arrays.asList(potionPoisonSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplash, Arrays.asList(potionHarmingSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionHarmingSplash, Arrays.asList(potionHarming, reagentGunpowder));
potionRecipes.put(potionSwiftnessExtended, Arrays.asList(potionSwiftness, reagentRedstoneDust));
potionRecipes.put(potionSwiftnessExtended, Arrays.asList(potionSwiftnessEnhanced, reagentRedstoneDust));
potionRecipes.put(potionSwiftnessSplashExtended, Arrays.asList(potionSwiftnessSplash, reagentRedstoneDust));
potionRecipes.put(potionSwiftnessSplashExtended, Arrays.asList(potionSwiftnessSplashEnhanced, reagentRedstoneDust));
potionRecipes.put(potionSwiftnessSplashExtended, Arrays.asList(potionSwiftnessExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionHarmingEnhanced, Arrays.asList(potionHealingEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingEnhanced, Arrays.asList(potionHarming, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionHarmingEnhanced, Arrays.asList(potionPoisonEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhanced, Arrays.asList(potionHealingSplashEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhanced, Arrays.asList(potionHarmingSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhanced, Arrays.asList(potionPoisonSplashEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhanced, Arrays.asList(potionHarmingEnhanced, reagentGunpowder));
potionRecipes.put(potionSwiftnessEnhanced, Arrays.asList(potionSwiftness, reagentGlowstoneDust));
potionRecipes.put(potionSwiftnessEnhanced, Arrays.asList(potionSwiftnessExtended, reagentGlowstoneDust));
potionRecipes.put(potionSwiftnessSplashEnhanced, Arrays.asList(potionSwiftnessSplash, reagentGlowstoneDust));
potionRecipes.put(potionSwiftnessSplashEnhanced, Arrays.asList(potionSwiftnessSplashExtended, reagentGlowstoneDust));
potionRecipes.put(potionSwiftnessSplashEnhanced, Arrays.asList(potionSwiftnessEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionPoison, Arrays.asList(potionAwkward, reagentSpiderEye));
RecipeRegistryProxy.addRecipe(potionPoisonSplash, Arrays.asList(potionPoison, reagentGunpowder));
potionRecipes.put(potionHealing, Arrays.asList(potionAwkward, reagentGlisteringMelon));
potionRecipes.put(potionHealing, Arrays.asList(potionHealingEnhanced, reagentRedstoneDust));
potionRecipes.put(potionHealingSplash, Arrays.asList(potionHealingSplashEnhanced, reagentRedstoneDust));
potionRecipes.put(potionHealingSplash, Arrays.asList(potionHealing, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionPoisonExtended, Arrays.asList(potionPoisonExtended, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonExtended, Arrays.asList(potionPoisonEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashExtended, Arrays.asList(potionPoisonSplashExtended, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashExtended, Arrays.asList(potionPoisonSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashExtended, Arrays.asList(potionPoisonExtended, reagentGunpowder));
potionRecipes.put(potionHealingEnhanced, Arrays.asList(potionHealing, reagentGlowstoneDust));
potionRecipes.put(potionHealingSplashEnhanced, Arrays.asList(potionHealingSplash, reagentGlowstoneDust));
potionRecipes.put(potionHealingSplashEnhanced, Arrays.asList(potionHealingEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionPoisonEnhanced, Arrays.asList(potionPoison, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonEnhanced, Arrays.asList(potionPoisonExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashEnhanced, Arrays.asList(potionPoisonSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashEnhanced, Arrays.asList(potionPoisonSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashEnhanced, Arrays.asList(potionPoisonEnhanced, reagentGunpowder));
potionRecipes.put(potionHarming, Arrays.asList(potionHealing, reagentFermentedSpiderEye));
potionRecipes.put(potionHarming, Arrays.asList(potionPoison, reagentFermentedSpiderEye));
potionRecipes.put(potionHarming, Arrays.asList(potionPoisonExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionHarming, Arrays.asList(potionHarmingEnhanced, reagentRedstoneDust));
potionRecipes.put(potionHarmingSplash, Arrays.asList(potionHealingSplash, reagentFermentedSpiderEye));
potionRecipes.put(potionHarmingSplash, Arrays.asList(potionPoisonSplash, reagentFermentedSpiderEye));
potionRecipes.put(potionHarmingSplash, Arrays.asList(potionPoisonSplashExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionHarmingSplash, Arrays.asList(potionHarmingSplashEnhanced, reagentRedstoneDust));
potionRecipes.put(potionHarmingSplash, Arrays.asList(potionHarming, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionRegeneration, Arrays.asList(potionAwkward, reagentGhastTear));
RecipeRegistryProxy.addRecipe(potionRegenerationSplash, Arrays.asList(potionRegeneration, reagentGunpowder));
potionRecipes.put(potionHarmingEnhanced, Arrays.asList(potionHealingEnhanced, reagentFermentedSpiderEye));
potionRecipes.put(potionHarmingEnhanced, Arrays.asList(potionHarming, reagentGlowstoneDust));
potionRecipes.put(potionHarmingEnhanced, Arrays.asList(potionPoisonEnhanced, reagentFermentedSpiderEye));
potionRecipes.put(potionHarmingSplashEnhanced, Arrays.asList(potionHealingSplashEnhanced, reagentFermentedSpiderEye));
potionRecipes.put(potionHarmingSplashEnhanced, Arrays.asList(potionHarmingSplash, reagentGlowstoneDust));
potionRecipes.put(potionHarmingSplashEnhanced, Arrays.asList(potionPoisonSplashEnhanced, reagentFermentedSpiderEye));
potionRecipes.put(potionHarmingSplashEnhanced, Arrays.asList(potionHarmingEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionRegenerationExtended, Arrays.asList(potionRegeneration, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationExtended, Arrays.asList(potionRegenerationEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashExtended, Arrays.asList(potionRegenerationSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashExtended, Arrays.asList(potionRegenerationSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashExtended, Arrays.asList(potionRegenerationExtended, reagentGunpowder));
potionRecipes.put(potionPoison, Arrays.asList(potionAwkward, reagentSpiderEye));
potionRecipes.put(potionPoisonSplash, Arrays.asList(potionPoison, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionRegenerationEnhanced, Arrays.asList(potionRegeneration, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationEnhanced, Arrays.asList(potionRegenerationExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashEnhanced, Arrays.asList(potionRegenerationSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashEnhanced, Arrays.asList(potionRegenerationSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashEnhanced, Arrays.asList(potionRegenerationEnhanced, reagentGunpowder));
potionRecipes.put(potionPoisonExtended, Arrays.asList(potionPoisonExtended, reagentRedstoneDust));
potionRecipes.put(potionPoisonExtended, Arrays.asList(potionPoisonEnhanced, reagentRedstoneDust));
potionRecipes.put(potionPoisonSplashExtended, Arrays.asList(potionPoisonSplashExtended, reagentRedstoneDust));
potionRecipes.put(potionPoisonSplashExtended, Arrays.asList(potionPoisonSplashEnhanced, reagentRedstoneDust));
potionRecipes.put(potionPoisonSplashExtended, Arrays.asList(potionPoisonExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionAwkward, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionRegeneration, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionRegenerationEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionStrength, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionStrengthEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionMundane, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionWeaknessExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionRegenerationSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionRegenerationSplashEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionStrengthSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionStrengthSplashEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionMundaneSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionWeaknessSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionWeakness, reagentGunpowder));
potionRecipes.put(potionPoisonEnhanced, Arrays.asList(potionPoison, reagentGlowstoneDust));
potionRecipes.put(potionPoisonEnhanced, Arrays.asList(potionPoisonExtended, reagentGlowstoneDust));
potionRecipes.put(potionPoisonSplashEnhanced, Arrays.asList(potionPoisonSplash, reagentGlowstoneDust));
potionRecipes.put(potionPoisonSplashEnhanced, Arrays.asList(potionPoisonSplashExtended, reagentGlowstoneDust));
potionRecipes.put(potionPoisonSplashEnhanced, Arrays.asList(potionPoisonEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionWeaknessExtended, Arrays.asList(potionWeakness, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionWeaknessExtended, Arrays.asList(potionRegenerationExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessExtended, Arrays.asList(potionStrengthExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessExtended, Arrays.asList(potionMundaneExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtended, Arrays.asList(potionWeaknessSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtended, Arrays.asList(potionRegenerationSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtended, Arrays.asList(potionStrengthSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtended, Arrays.asList(potionMundaneSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtended, Arrays.asList(potionWeaknessExtended, reagentGunpowder));
potionRecipes.put(potionRegeneration, Arrays.asList(potionAwkward, reagentGhastTear));
potionRecipes.put(potionRegenerationSplash, Arrays.asList(potionRegeneration, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionStrength, Arrays.asList(potionAwkward, reagentBlazePowder));
RecipeRegistryProxy.addRecipe(potionStrengthSplash, Arrays.asList(potionStrength, reagentGunpowder));
potionRecipes.put(potionRegenerationExtended, Arrays.asList(potionRegeneration, reagentRedstoneDust));
potionRecipes.put(potionRegenerationExtended, Arrays.asList(potionRegenerationEnhanced, reagentRedstoneDust));
potionRecipes.put(potionRegenerationSplashExtended, Arrays.asList(potionRegenerationSplash, reagentRedstoneDust));
potionRecipes.put(potionRegenerationSplashExtended, Arrays.asList(potionRegenerationSplashEnhanced, reagentRedstoneDust));
potionRecipes.put(potionRegenerationSplashExtended, Arrays.asList(potionRegenerationExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionStrengthEnhanced, Arrays.asList(potionStrength, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthEnhanced, Arrays.asList(potionStrengthExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashEnhanced, Arrays.asList(potionStrengthSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashEnhanced, Arrays.asList(potionStrengthSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashEnhanced, Arrays.asList(potionStrengthEnhanced, reagentGunpowder));
potionRecipes.put(potionRegenerationEnhanced, Arrays.asList(potionRegeneration, reagentGlowstoneDust));
potionRecipes.put(potionRegenerationEnhanced, Arrays.asList(potionRegenerationExtended, reagentGlowstoneDust));
potionRecipes.put(potionRegenerationSplashEnhanced, Arrays.asList(potionRegenerationSplash, reagentGlowstoneDust));
potionRecipes.put(potionRegenerationSplashEnhanced, Arrays.asList(potionRegenerationSplashExtended, reagentGlowstoneDust));
potionRecipes.put(potionRegenerationSplashEnhanced, Arrays.asList(potionRegenerationEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionStrengthExtended, Arrays.asList(potionStrength, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthExtended, Arrays.asList(potionStrengthEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashExtended, Arrays.asList(potionStrengthSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashExtended, Arrays.asList(potionStrengthSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashExtended, Arrays.asList(potionStrengthExtended, reagentGunpowder));
potionRecipes.put(potionWeakness, Arrays.asList(potionAwkward, reagentFermentedSpiderEye));
potionRecipes.put(potionWeakness, Arrays.asList(potionRegeneration, reagentFermentedSpiderEye));
potionRecipes.put(potionWeakness, Arrays.asList(potionRegenerationEnhanced, reagentFermentedSpiderEye));
potionRecipes.put(potionWeakness, Arrays.asList(potionStrength, reagentFermentedSpiderEye));
potionRecipes.put(potionWeakness, Arrays.asList(potionStrengthEnhanced, reagentFermentedSpiderEye));
potionRecipes.put(potionWeakness, Arrays.asList(potionMundane, reagentFermentedSpiderEye));
potionRecipes.put(potionWeakness, Arrays.asList(potionWeaknessExtended, reagentGlowstoneDust));
potionRecipes.put(potionWeaknessSplash, Arrays.asList(potionRegenerationSplash, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessSplash, Arrays.asList(potionRegenerationSplashEnhanced, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessSplash, Arrays.asList(potionStrengthSplash, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessSplash, Arrays.asList(potionStrengthSplashEnhanced, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessSplash, Arrays.asList(potionMundaneSplash, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessSplash, Arrays.asList(potionWeaknessSplashExtended, reagentGlowstoneDust));
potionRecipes.put(potionWeaknessSplash, Arrays.asList(potionWeakness, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionThick, Arrays.asList(bottleWater, reagentGlowstoneDust));
potionRecipes.put(potionWeaknessExtended, Arrays.asList(potionWeakness, reagentRedstoneDust));
potionRecipes.put(potionWeaknessExtended, Arrays.asList(potionRegenerationExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessExtended, Arrays.asList(potionStrengthExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessExtended, Arrays.asList(potionMundaneExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessSplashExtended, Arrays.asList(potionWeaknessSplash, reagentRedstoneDust));
potionRecipes.put(potionWeaknessSplashExtended, Arrays.asList(potionRegenerationSplashExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessSplashExtended, Arrays.asList(potionStrengthSplashExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessSplashExtended, Arrays.asList(potionMundaneSplashExtended, reagentFermentedSpiderEye));
potionRecipes.put(potionWeaknessSplashExtended, Arrays.asList(potionWeaknessExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentSugar));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentGlisteringMelon));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentSpiderEye));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentBlazePowder));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentMagmaCream));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentGhastTear));
RecipeRegistryProxy.addRecipe(potionMundaneSplash, Arrays.asList(potionMundane, reagentGunpowder));
potionRecipes.put(potionStrength, Arrays.asList(potionAwkward, reagentBlazePowder));
potionRecipes.put(potionStrengthSplash, Arrays.asList(potionStrength, reagentGunpowder));
potionRecipes.put(potionStrengthEnhanced, Arrays.asList(potionStrength, reagentGlowstoneDust));
potionRecipes.put(potionStrengthEnhanced, Arrays.asList(potionStrengthExtended, reagentGlowstoneDust));
potionRecipes.put(potionStrengthSplashEnhanced, Arrays.asList(potionStrengthSplash, reagentGlowstoneDust));
potionRecipes.put(potionStrengthSplashEnhanced, Arrays.asList(potionStrengthSplashExtended, reagentGlowstoneDust));
potionRecipes.put(potionStrengthSplashEnhanced, Arrays.asList(potionStrengthEnhanced, reagentGunpowder));
potionRecipes.put(potionStrengthExtended, Arrays.asList(potionStrength, reagentRedstoneDust));
potionRecipes.put(potionStrengthExtended, Arrays.asList(potionStrengthEnhanced, reagentRedstoneDust));
potionRecipes.put(potionStrengthSplashExtended, Arrays.asList(potionStrengthSplash, reagentRedstoneDust));
potionRecipes.put(potionStrengthSplashExtended, Arrays.asList(potionStrengthSplashEnhanced, reagentRedstoneDust));
potionRecipes.put(potionStrengthSplashExtended, Arrays.asList(potionStrengthExtended, reagentGunpowder));
potionRecipes.put(potionThick, Arrays.asList(bottleWater, reagentGlowstoneDust));
potionRecipes.put(potionMundane, Arrays.asList(bottleWater, reagentSugar));
potionRecipes.put(potionMundane, Arrays.asList(bottleWater, reagentGlisteringMelon));
potionRecipes.put(potionMundane, Arrays.asList(bottleWater, reagentSpiderEye));
potionRecipes.put(potionMundane, Arrays.asList(bottleWater, reagentBlazePowder));
potionRecipes.put(potionMundane, Arrays.asList(bottleWater, reagentMagmaCream));
potionRecipes.put(potionMundane, Arrays.asList(bottleWater, reagentGhastTear));
potionRecipes.put(potionMundaneSplash, Arrays.asList(potionMundane, reagentGunpowder));
potionRecipes.put(potionMundaneExtended, Arrays.asList(bottleWater, reagentRedstoneDust));
potionRecipes.put(potionMundaneSplashExtended, Arrays.asList(potionMundaneExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionMundaneExtended, Arrays.asList(bottleWater, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionMundaneSplashExtended, Arrays.asList(potionMundaneExtended, reagentGunpowder));
}
}

View file

@ -15,7 +15,7 @@ import java.util.List;
public class RecipesVanilla
{
public static void init()
public static void registerRecipes()
{
for (Object recipeObject : CraftingManager.getInstance().getRecipeList())
{

View file

@ -17,6 +17,10 @@ public final class Messages
public static final String TRANSMUTATION_KNOWLEDGE_MODE_LABEL = "general.transmutation.knowledge.mode.label";
public static final String TRANSMUTATION_KNOWLEDGE_MODE_COMMENT = "general.transmutation.knowledge.mode.comment";
public static final String TRANSMUTATION_KNOWLEDGE_MAX_TIER = "maxTier";
public static final String TRANSMUTATION_KNOWLEDGE_MAX_TIER_LABEL = "general.transmutation.knowledge.maxTier.label";
public static final String TRANSMUTATION_KNOWLEDGE_MAX_TIER_COMMENT = "general.transmutation.knowledge.maxTier.comment";
public static final String TRANSMUTATION_KNOWLEDGE_TEMPLATE = "useTemplateFile";
public static final String TRANSMUTATION_KNOWLEDGE_TEMPLATE_LABEL = "general.transmutation.knowledge.template.label";
public static final String TRANSMUTATION_KNOWLEDGE_TEMPLATE_COMMENT = "general.transmutation.knowledge.template.comment";

View file

@ -36,6 +36,8 @@ public class Names
public static final String GUIDE = "guide";
public static final String MATTER = "matter";
public static final String[] MATTER_SUBTYPES = {"Dark", "Corporeal", "Kinetic", "Temporal", "Essentia", "Amorphous", "Void", "Omni"};
public static final String GEM = "gem";
public static final String[] GEM_SUBTYPES = {"Black", "Blue", "Green", "Grey", "Purple", "Red", "Yellow"};
}
public static final class Materials

View file

@ -5,10 +5,7 @@ public class Settings
public static class Transmutation
{
public static String knowledgeMode;
public static final String KNOWLEDGE_MODE_ALL = "All";
public static final String KNOWLEDGE_MODE_SELECT = "Select";
public static final String KNOWLEDGE_MODE_NONE = "None";
public static int maxKnowledgeTier;
public static boolean useTemplateFile;
}

View file

@ -32,6 +32,12 @@ public class PlayerKnowledge implements INBTTaggable
this(Arrays.asList(knownItemStacks));
}
public PlayerKnowledge(NBTTagCompound nbtTagCompound)
{
this.knownItemStacks = new TreeSet<ItemStack>(ItemHelper.comparator);
this.readFromNBT(nbtTagCompound);
}
public boolean isItemStackKnown(ItemStack itemStack)
{
ItemStack unitItemStack = itemStack.copy();

View file

@ -4,11 +4,31 @@ public class Skill
{
private boolean learnable;
private boolean recoverable;
private int tier;
public Skill()
{
this(true, true, 0);
}
public Skill(boolean learnable, boolean recoverable)
{
this(learnable, recoverable, 0);
}
public Skill(boolean learnable, boolean recoverable, int tier)
{
this.learnable = learnable;
this.recoverable = recoverable;
if (tier >= 0)
{
this.tier = tier;
}
else
{
this.tier = 0;
}
}
public boolean isLearnable()
@ -31,15 +51,25 @@ public class Skill
this.recoverable = recoverable;
}
public int getTier()
{
return tier;
}
public void setTier(int tier)
{
this.tier = tier;
}
@Override
public boolean equals(Object object)
{
return object instanceof Skill && (this.learnable == ((Skill) object).learnable && this.recoverable == ((Skill) object).recoverable);
return object instanceof Skill && (this.learnable == ((Skill) object).learnable && this.recoverable == ((Skill) object).recoverable && this.tier == ((Skill) object).tier);
}
@Override
public String toString()
{
return String.format("Skill[learnable: %s, recoverable: %s]", learnable, recoverable);
return String.format("Skill[learnable: %s, recoverable: %s, tier: %s]", learnable, recoverable, tier);
}
}

View file

@ -50,7 +50,12 @@ public class SkillRegistry
public void addSkill(ItemStack itemStack, boolean learnable, boolean recoverable)
{
addSkill(itemStack, new Skill(learnable, recoverable));
addSkill(itemStack, new Skill(learnable, recoverable, 0));
}
public void addSkill(ItemStack itemStack, boolean learnable, boolean recoverable, int tier)
{
addSkill(itemStack, new Skill(learnable, recoverable, tier));
}
private void addSkill(ItemStack itemStack, Skill skill)
@ -89,4 +94,17 @@ public class SkillRegistry
return false;
}
public int getTier(ItemStack itemStack)
{
ItemStack unitItemStack = itemStack.copy();
unitItemStack.stackSize = 1;
if (skillMap.containsKey(unitItemStack))
{
return skillMap.get(unitItemStack).getTier();
}
return -1;
}
}

View file

@ -1,11 +1,7 @@
package com.pahimar.ee3.tileentity;
import com.pahimar.ee3.exchange.EnergyValueRegistry;
import com.pahimar.ee3.item.ItemAlchemicalTome;
import com.pahimar.ee3.reference.Names;
import com.pahimar.ee3.reference.Settings;
import com.pahimar.ee3.skill.PlayerKnowledge;
import com.pahimar.ee3.skill.SkillRegistry;
import com.pahimar.ee3.util.PlayerKnowledgeHelper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
@ -202,26 +198,7 @@ public class TileEntityResearchStation extends TileEntityEE implements IInventor
private boolean canLearnItemStack()
{
if (inventory[ITEM_SLOT_INVENTORY_INDEX] == null || inventory[TOME_SLOT_INVENTORY_INDEX] == null)
{
return false;
}
else
{
// TODO Check the book in the Tome spot to see if it already knows the itemstack
if (Settings.Transmutation.knowledgeMode.equalsIgnoreCase(Settings.Transmutation.KNOWLEDGE_MODE_ALL))
{
PlayerKnowledge playerKnowledge = ItemAlchemicalTome.readPlayerKnowledge(inventory[TOME_SLOT_INVENTORY_INDEX]);
return EnergyValueRegistry.getInstance().hasEnergyValue(inventory[ITEM_SLOT_INVENTORY_INDEX]) && playerKnowledge.isItemStackKnown(inventory[TOME_SLOT_INVENTORY_INDEX]);
}
else if (Settings.Transmutation.knowledgeMode.equalsIgnoreCase(Settings.Transmutation.KNOWLEDGE_MODE_SELECT))
{
return EnergyValueRegistry.getInstance().hasEnergyValue(inventory[ITEM_SLOT_INVENTORY_INDEX]) && SkillRegistry.getInstance().isLearnable(inventory[ITEM_SLOT_INVENTORY_INDEX]);
}
}
return false;
return PlayerKnowledgeHelper.canLearnItemStack(inventory[ITEM_SLOT_INVENTORY_INDEX], inventory[TOME_SLOT_INVENTORY_INDEX]);
}
private void learnItemStack()

View file

@ -0,0 +1,67 @@
package com.pahimar.ee3.util;
import com.pahimar.ee3.exchange.EnergyValueRegistry;
import com.pahimar.ee3.handler.PlayerKnowledgeHandler;
import com.pahimar.ee3.item.ItemAlchemicalTome;
import com.pahimar.ee3.reference.Settings;
import com.pahimar.ee3.skill.PlayerKnowledge;
import com.pahimar.ee3.skill.SkillRegistry;
import net.minecraft.item.ItemStack;
public class PlayerKnowledgeHelper
{
public static boolean canLearnItemStack(ItemStack itemStack, ItemStack alchemicalTomeStack)
{
if (itemStack == null || itemStack.getItem() == null || alchemicalTomeStack == null || !(alchemicalTomeStack.getItem() instanceof ItemAlchemicalTome))
{
return false;
}
else
{
PlayerKnowledge playerKnowledge = ItemAlchemicalTome.readPlayerKnowledge(alchemicalTomeStack);
return canLearnItemStack(itemStack, playerKnowledge);
}
}
public static boolean canLearnItemStack(ItemStack itemStack, PlayerKnowledge playerKnowledge)
{
if (itemStack == null || itemStack.getItem() == null || playerKnowledge == null)
{
return false;
}
else
{
if (Settings.Transmutation.knowledgeMode.equalsIgnoreCase("All"))
{
return EnergyValueRegistry.getInstance().hasEnergyValue(itemStack)
&& !playerKnowledge.isItemStackKnown(itemStack);
}
else if (Settings.Transmutation.knowledgeMode.equalsIgnoreCase("Select"))
{
return EnergyValueRegistry.getInstance().hasEnergyValue(itemStack)
&& !playerKnowledge.isItemStackKnown(itemStack)
&& SkillRegistry.getInstance().isLearnable(itemStack);
}
else if (Settings.Transmutation.knowledgeMode.equalsIgnoreCase("Tier"))
{
int itemStackKnowledgeTier = SkillRegistry.getInstance().getTier(itemStack);
return EnergyValueRegistry.getInstance().hasEnergyValue(itemStack)
&& !playerKnowledge.isItemStackKnown(itemStack)
&& SkillRegistry.getInstance().isLearnable(itemStack)
&& itemStackKnowledgeTier >= 0 && itemStackKnowledgeTier <= Settings.Transmutation.maxKnowledgeTier;
}
else if (Settings.Transmutation.knowledgeMode.equalsIgnoreCase("Restricted"))
{
PlayerKnowledge allowedKnowledge = PlayerKnowledgeHandler.getAllowedPlayerKnowledge();
return EnergyValueRegistry.getInstance().hasEnergyValue(itemStack)
&& !playerKnowledge.isItemStackKnown(itemStack)
&& SkillRegistry.getInstance().isLearnable(itemStack)
&& allowedKnowledge.isItemStackKnown(itemStack);
}
}
return false;
}
}

View file

@ -1,7 +1,10 @@
# Configuration
general.transmutation=Transmutation Settings
general.transmutation.knowledge.mode.label=Transmutation Knowledge Mode
general.transmutation.knowledge.mode.comment=All - Player can learn all items that have a value, Select - Player can learn select items, None - Player cannot learn any items
general.transmutation.knowledge.mode.comment=All - Player can learn all items that have a value, Select - Player can learn select items, Tier - Player can learn items below this tier level, Restricted - Player can only learn items listed in the restricted file, None - Player cannot learn any items
general.transmutation.knowledge.maxTier.label=Highest Available Knowledge Tier
general.transmutation.knowledge.maxTier.comment=The highest available knowledge tier for which players can learn transmutations
general.transmutation.knowledge.template.label=Use Knowledge Template File
general.transmutation.knowledge.template.comment=If true, new player's will have their transmutation knowledge copied from the knowledge template file (template.ee3)
@ -47,6 +50,13 @@ item.ee3:matterTemporal.name=Temporal Matter [WIP]
item.ee3:matterEssentia.name=Essentia Matter [WIP]
item.ee3:matterAmorphous.name=Amorphous Matter [WIP]
item.ee3:matterVoid.name=Void Matter [WIP]
item.ee3:gemBlack.name=Black Gem [WIP]
item.ee3:gemBlue.name=Blue Gem [WIP]
item.ee3:gemGreen.name=Green Gem [WIP]
item.ee3:gemGrey.name=Grey Gem [WIP]
item.ee3:gemPurple.name=Purple Gem [WIP]
item.ee3:gemRed.name=Red Gem [WIP]
item.ee3:gemYellow.name=Yellow Gem [WIP]
# Tools
item.ee3:shovelDarkMatter.name=Dark Matter Shovel [WIP]

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB