Merge pull request #2 from pahimar/master

Update master
This commit is contained in:
Virtuoel 2015-06-12 19:54:02 +03:00
commit 783fa978c2
24 changed files with 663 additions and 449 deletions

View file

@ -3,5 +3,5 @@
minecraft_version = 1.7.10 minecraft_version = 1.7.10
forge_version = 10.13.3.1399-1.7.10 forge_version = 10.13.3.1399-1.7.10
mod_version = 0.3 mod_version = 0.3
api_version = 1.2 api_version = 1.3
release_type = beta release_type = beta

View file

@ -12,6 +12,7 @@ import com.pahimar.ee3.network.PacketHandler;
import com.pahimar.ee3.proxy.IProxy; import com.pahimar.ee3.proxy.IProxy;
import com.pahimar.ee3.recipe.AludelRecipeManager; import com.pahimar.ee3.recipe.AludelRecipeManager;
import com.pahimar.ee3.recipe.RecipeRegistry; import com.pahimar.ee3.recipe.RecipeRegistry;
import com.pahimar.ee3.reference.Files;
import com.pahimar.ee3.reference.Messages; import com.pahimar.ee3.reference.Messages;
import com.pahimar.ee3.reference.Reference; import com.pahimar.ee3.reference.Reference;
import com.pahimar.ee3.reference.Settings; import com.pahimar.ee3.reference.Settings;
@ -69,6 +70,8 @@ public class EquivalentExchange3
{ {
ConfigurationHandler.init(event.getSuggestedConfigurationFile()); ConfigurationHandler.init(event.getSuggestedConfigurationFile());
Files.Global.init(event);
PacketHandler.init(); PacketHandler.init();
proxy.registerKeybindings(); proxy.registerKeybindings();
@ -113,8 +116,6 @@ public class EquivalentExchange3
public void postInit(FMLPostInitializationEvent event) public void postInit(FMLPostInitializationEvent event)
{ {
CachedOreDictionary.getInstance(); CachedOreDictionary.getInstance();
RecipeRegistry.getInstance().registerVanillaRecipes();
AludelRecipeManager.registerRecipes();
Abilities.setOresNotLearnable(); Abilities.setOresNotLearnable();
} }

View file

@ -10,33 +10,67 @@ public final class EnergyValueRegistryProxy
@Mod.Instance("EE3") @Mod.Instance("EE3")
private static Object ee3Mod; private static Object ee3Mod;
public static void addPreCalculationEnergyValue(Object object, float energyValue)
{
addPreCalculationEnergyValue(object, new EnergyValue(energyValue));
}
@Deprecated
public static void addPreAssignedEnergyValue(Object object, float energyValue) public static void addPreAssignedEnergyValue(Object object, float energyValue)
{ {
addPreAssignedEnergyValue(object, new EnergyValue(energyValue)); addPreAssignedEnergyValue(object, new EnergyValue(energyValue));
} }
public static void addPreCalculationEnergyValue(Object object, EnergyValue energyValue)
{
init();
if (ee3Mod != null)
{
EE3Wrapper.ee3mod.getEnergyValueRegistry().addPreCalculationEnergyValue(object, energyValue);
}
}
@Deprecated
public static void addPreAssignedEnergyValue(Object object, EnergyValue energyValue) public static void addPreAssignedEnergyValue(Object object, EnergyValue energyValue)
{ {
init(); init();
if (ee3Mod != null) if (ee3Mod != null)
{ {
EE3Wrapper.ee3mod.getEnergyValueRegistry().addPreAssignedEnergyValue(object, energyValue); EE3Wrapper.ee3mod.getEnergyValueRegistry().addPreCalculationEnergyValue(object, energyValue);
} }
} }
public static void addPostCalculationEnergyValue(Object object, float energyValue)
{
addPostCalculationEnergyValue(object, new EnergyValue(energyValue));
}
@Deprecated
public static void addPostAssignedEnergyValue(Object object, float energyValue) public static void addPostAssignedEnergyValue(Object object, float energyValue)
{ {
addPostAssignedEnergyValue(object, new EnergyValue(energyValue)); addPostAssignedEnergyValue(object, new EnergyValue(energyValue));
} }
public static void addPostCalculationEnergyValue(Object object, EnergyValue energyValue)
{
init();
if (ee3Mod != null)
{
EE3Wrapper.ee3mod.getEnergyValueRegistry().addPostCalculationExactEnergyValue(object, energyValue);
}
}
@Deprecated
public static void addPostAssignedEnergyValue(Object object, EnergyValue energyValue) public static void addPostAssignedEnergyValue(Object object, EnergyValue energyValue)
{ {
init(); init();
if (ee3Mod != null) if (ee3Mod != null)
{ {
EE3Wrapper.ee3mod.getEnergyValueRegistry().addPostAssignedExactEnergyValue(object, energyValue); EE3Wrapper.ee3mod.getEnergyValueRegistry().addPostCalculationExactEnergyValue(object, energyValue);
} }
} }
@ -143,9 +177,22 @@ public final class EnergyValueRegistryProxy
public enum Phase public enum Phase
{ {
PRE_ASSIGNMENT, /**
POST_ASSIGNMENT, * @Deprecated Use PRE_CALCULATION instead
*/
@Deprecated PRE_ASSIGNMENT,
PRE_CALCULATION,
/**
* @Deprecated Use POST_CALCULATION instead
*/
@Deprecated POST_ASSIGNMENT,
POST_CALCULATION,
RUNTIME, RUNTIME,
ALL ALL
} }
} }

View file

@ -9,6 +9,8 @@ import com.pahimar.ee3.tileentity.TileEntityAlchemyArray;
import com.pahimar.ee3.tileentity.TileEntityTransmutationTablet; import com.pahimar.ee3.tileentity.TileEntityTransmutationTablet;
import com.pahimar.ee3.util.CommonParticleHelper; import com.pahimar.ee3.util.CommonParticleHelper;
import com.pahimar.ee3.util.CommonSoundHelper; import com.pahimar.ee3.util.CommonSoundHelper;
import com.pahimar.ee3.util.LogHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
@ -30,6 +32,12 @@ public class AlchemyArrayTransmutation extends AlchemyArrayEE implements IInvent
super(Textures.AlchemyArray.TRANSMUTATION_ALCHEMY_ARRAY, Names.AlchemyArrays.TRANSMUTATION_ALCHEMY_ARRAY); super(Textures.AlchemyArray.TRANSMUTATION_ALCHEMY_ARRAY, Names.AlchemyArrays.TRANSMUTATION_ALCHEMY_ARRAY);
} }
@Override
public void onEntityCollidedWithArray(World world, int eventX, int eventY, int eventZ, int arrayX, int arrayY, int arrayZ, Entity entity)
{
LogHelper.info(entity);
}
@Override @Override
public void onArrayActivated(World world, int eventX, int eventY, int eventZ, int arrayX, int arrayY, int arrayZ, EntityPlayer entityPlayer, int sideHit, float hitX, float hitY, float hitZ) public void onArrayActivated(World world, int eventX, int eventY, int eventZ, int arrayX, int arrayY, int arrayZ, EntityPlayer entityPlayer, int sideHit, float hitX, float hitY, float hitZ)
{ {
@ -66,6 +74,7 @@ public class AlchemyArrayTransmutation extends AlchemyArrayEE implements IInvent
if (world.getTileEntity(arrayX, arrayY - 1, arrayZ) instanceof TileEntityTransmutationTablet) if (world.getTileEntity(arrayX, arrayY - 1, arrayZ) instanceof TileEntityTransmutationTablet)
{ {
((TileEntityTransmutationTablet) world.getTileEntity(arrayX, arrayY - 1, arrayZ)).setOrientation(tileEntityAlchemyArray.getOrientation()); ((TileEntityTransmutationTablet) world.getTileEntity(arrayX, arrayY - 1, arrayZ)).setOrientation(tileEntityAlchemyArray.getOrientation());
((TileEntityTransmutationTablet) world.getTileEntity(arrayX, arrayY - 1, arrayZ)).setRotation(tileEntityAlchemyArray.getRotation());
} }
ejectInventory(world, arrayX, arrayY, arrayZ); ejectInventory(world, arrayX, arrayY, arrayZ);

View file

@ -20,8 +20,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.Explosion; import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -76,11 +74,11 @@ public class BlockAlchemyArray extends BlockTileEntityEE
} }
@Override @Override
public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 startVec, Vec3 endVec) public void setBlockBoundsBasedOnState(IBlockAccess iBlockAccess, int x, int y, int z)
{ {
if (world.getTileEntity(x, y, z) instanceof TileEntityAlchemyArray) if (iBlockAccess.getTileEntity(x, y, z) instanceof TileEntityAlchemyArray)
{ {
TileEntityAlchemyArray tileEntityAlchemyArray = (TileEntityAlchemyArray) world.getTileEntity(x, y, z); TileEntityAlchemyArray tileEntityAlchemyArray = (TileEntityAlchemyArray) iBlockAccess.getTileEntity(x, y, z);
switch (tileEntityAlchemyArray.getOrientation()) switch (tileEntityAlchemyArray.getOrientation())
{ {
@ -118,10 +116,12 @@ public class BlockAlchemyArray extends BlockTileEntityEE
{ {
break; break;
} }
default:
{
this.setBlockBounds(0f, 0f, 0f, 1f, 0.0625f, 1f);
}
} }
} }
return super.collisionRayTrace(world, x, y, z, startVec, endVec);
} }
@Override @Override

View file

@ -13,8 +13,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.Explosion; import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -254,11 +252,11 @@ public class BlockDummyArray extends BlockTileEntityEE
} }
@Override @Override
public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 startVec, Vec3 endVec) public void setBlockBoundsBasedOnState(IBlockAccess iBlockAccess, int x, int y, int z)
{ {
if (world.getTileEntity(x, y, z) instanceof TileEntityDummyArray) if (iBlockAccess.getTileEntity(x, y, z) instanceof TileEntityDummyArray)
{ {
TileEntityDummyArray tileEntityDummyArray = (TileEntityDummyArray) world.getTileEntity(x, y, z); TileEntityDummyArray tileEntityDummyArray = (TileEntityDummyArray) iBlockAccess.getTileEntity(x, y, z);
switch (tileEntityDummyArray.getOrientation()) switch (tileEntityDummyArray.getOrientation())
{ {
@ -298,8 +296,6 @@ public class BlockDummyArray extends BlockTileEntityEE
} }
} }
} }
return super.collisionRayTrace(world, x, y, z, startVec, endVec);
} }
public void breakBlock(World world, int x, int y, int z, Block block, int metaData) public void breakBlock(World world, int x, int y, int z, Block block, int metaData)

View file

@ -14,6 +14,7 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
@ -93,6 +94,13 @@ public class BlockEE extends Block
} }
} }
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z)
{
this.setBlockBoundsBasedOnState(world, x, y, z);
return super.getCollisionBoundingBoxFromPool(world, x, y, z);
}
protected void dropInventory(World world, int x, int y, int z) protected void dropInventory(World world, int x, int y, int z)
{ {
TileEntity tileEntity = world.getTileEntity(x, y, z); TileEntity tileEntity = world.getTileEntity(x, y, z);

View file

@ -12,8 +12,6 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
@ -118,16 +116,12 @@ public class BlockGlassBell extends BlockTileEntityEE
return sideHit; return sideHit;
} }
/**
* Ray traces through the blocks collision from start vector to end vector returning a ray trace hit. Args: world,
* x, y, z, startVec, endVec
*/
@Override @Override
public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 startVec, Vec3 endVec) public void setBlockBoundsBasedOnState(IBlockAccess iBlockAccess, int x, int y, int z)
{ {
if (world.getTileEntity(x, y, z) instanceof TileEntityGlassBell) if (iBlockAccess.getTileEntity(x, y, z) instanceof TileEntityGlassBell)
{ {
TileEntityGlassBell tileGlassBell = (TileEntityGlassBell) world.getTileEntity(x, y, z); TileEntityGlassBell tileGlassBell = (TileEntityGlassBell) iBlockAccess.getTileEntity(x, y, z);
switch (tileGlassBell.getOrientation()) switch (tileGlassBell.getOrientation())
{ {
@ -167,7 +161,5 @@ public class BlockGlassBell extends BlockTileEntityEE
} }
} }
} }
return super.collisionRayTrace(world, x, y, z, startVec, endVec);
} }
} }

View file

@ -15,6 +15,7 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
@ -89,6 +90,13 @@ public abstract class BlockTileEntityEE extends BlockContainer
} }
} }
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z)
{
this.setBlockBoundsBasedOnState(world, x, y, z);
return super.getCollisionBoundingBoxFromPool(world, x, y, z);
}
protected void dropInventory(World world, int x, int y, int z) protected void dropInventory(World world, int x, int y, int z)
{ {
TileEntity tileEntity = world.getTileEntity(x, y, z); TileEntity tileEntity = world.getTileEntity(x, y, z);

View file

@ -30,7 +30,7 @@ public class CommandDebug extends CommandBase
@Override @Override
public void processCommand(ICommandSender commandSender, String[] args) public void processCommand(ICommandSender commandSender, String[] args)
{ {
EnergyValueRegistryProxy.dumpEnergyValueRegistryToLog(EnergyValueRegistryProxy.Phase.PRE_ASSIGNMENT); EnergyValueRegistryProxy.dumpEnergyValueRegistryToLog(EnergyValueRegistryProxy.Phase.PRE_CALCULATION);
} }
@Override @Override

View file

@ -95,22 +95,46 @@ public class CommandSetEnergyValue extends CommandBase
{ {
if (args[1].equalsIgnoreCase("pre")) if (args[1].equalsIgnoreCase("pre"))
{ {
Map<WrappedStack, EnergyValue> preAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.PRE_ASSIGNED_ENERGY_VALUES); EnergyValueRegistry.getInstance().setEnergyValue(wrappedStack, newEnergyValue);
preAssignedValues.put(wrappedStack, newEnergyValue);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.PRE_ASSIGNED_ENERGY_VALUES, preAssignedValues); Map<WrappedStack, EnergyValue> preAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.PRE_CALCULATION_ENERGY_VALUES);
preAssignedValues.put(wrappedStack, newEnergyValue);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.PRE_CALCULATION_ENERGY_VALUES, preAssignedValues);
EnergyValueRegistry.getInstance().setShouldRegenNextRestart(true);
}
else if (args[1].equalsIgnoreCase("global-pre"))
{
EnergyValueRegistry.getInstance().setEnergyValue(wrappedStack, newEnergyValue);
Map<WrappedStack, EnergyValue> preAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.Global.preCalcluationEnergyValueFile);
preAssignedValues.put(wrappedStack, newEnergyValue);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.Global.preCalcluationEnergyValueFile, preAssignedValues);
EnergyValueRegistry.getInstance().setShouldRegenNextRestart(true); EnergyValueRegistry.getInstance().setShouldRegenNextRestart(true);
} }
else if (args[1].equalsIgnoreCase("post")) else if (args[1].equalsIgnoreCase("post"))
{ {
EnergyValueRegistry.getInstance().setEnergyValue(wrappedStack, newEnergyValue); EnergyValueRegistry.getInstance().setEnergyValue(wrappedStack, newEnergyValue);
Map<WrappedStack, EnergyValue> postAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.POST_ASSIGNED_ENERGY_VALUES); Map<WrappedStack, EnergyValue> postAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.POST_CALCULATION_ENERGY_VALUES);
postAssignedValues.put(wrappedStack, newEnergyValue); postAssignedValues.put(wrappedStack, newEnergyValue);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.POST_CALCULATION_ENERGY_VALUES, postAssignedValues);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.POST_ASSIGNED_ENERGY_VALUES, postAssignedValues);
PacketHandler.INSTANCE.sendToAll(new MessageSetEnergyValue(wrappedStack, newEnergyValue)); PacketHandler.INSTANCE.sendToAll(new MessageSetEnergyValue(wrappedStack, newEnergyValue));
} }
else if (args[1].equalsIgnoreCase("global-post"))
{
EnergyValueRegistry.getInstance().setEnergyValue(wrappedStack, newEnergyValue);
Map<WrappedStack, EnergyValue> postAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.Global.postCalcluationEnergyValueFile);
postAssignedValues.put(wrappedStack, newEnergyValue);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.Global.postCalcluationEnergyValueFile, postAssignedValues);
PacketHandler.INSTANCE.sendToAll(new MessageSetEnergyValue(wrappedStack, newEnergyValue));
}
else
{
throw new WrongUsageException(Messages.Commands.SET_ENERGY_VALUE_USAGE);
}
// Notify admins and log the value change // Notify admins and log the value change
func_152373_a(commandSender, this, Messages.Commands.SET_ENERGY_VALUE_SUCCESS, new Object[]{commandSender.getCommandSenderName(), args[1], itemStack.func_151000_E(), newEnergyValue.getChatComponent()}); func_152373_a(commandSender, this, Messages.Commands.SET_ENERGY_VALUE_SUCCESS, new Object[]{commandSender.getCommandSenderName(), args[1], itemStack.func_151000_E(), newEnergyValue.getChatComponent()});
@ -127,7 +151,7 @@ public class CommandSetEnergyValue extends CommandBase
{ {
if (args.length == 2) if (args.length == 2)
{ {
return getListOfStringsMatchingLastWord(args, "pre", "post"); return getListOfStringsMatchingLastWord(args, "pre", "global-pre", "post", "global-post");
} }
else if (args.length == 3) else if (args.length == 3)
{ {

View file

@ -65,22 +65,46 @@ public class CommandSetEnergyValueCurrentItem extends CommandBase
{ {
if (args[1].equalsIgnoreCase("pre")) if (args[1].equalsIgnoreCase("pre"))
{ {
Map<WrappedStack, EnergyValue> preAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.PRE_ASSIGNED_ENERGY_VALUES); EnergyValueRegistry.getInstance().setEnergyValue(wrappedStack, newEnergyValue);
preAssignedValues.put(wrappedStack, newEnergyValue);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.PRE_ASSIGNED_ENERGY_VALUES, preAssignedValues); Map<WrappedStack, EnergyValue> preAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.PRE_CALCULATION_ENERGY_VALUES);
preAssignedValues.put(wrappedStack, newEnergyValue);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.PRE_CALCULATION_ENERGY_VALUES, preAssignedValues);
EnergyValueRegistry.getInstance().setShouldRegenNextRestart(true);
}
else if (args[1].equalsIgnoreCase("global-pre"))
{
EnergyValueRegistry.getInstance().setEnergyValue(wrappedStack, newEnergyValue);
Map<WrappedStack, EnergyValue> preAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.Global.preCalcluationEnergyValueFile);
preAssignedValues.put(wrappedStack, newEnergyValue);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.Global.preCalcluationEnergyValueFile, preAssignedValues);
EnergyValueRegistry.getInstance().setShouldRegenNextRestart(true); EnergyValueRegistry.getInstance().setShouldRegenNextRestart(true);
} }
else if (args[1].equalsIgnoreCase("post")) else if (args[1].equalsIgnoreCase("post"))
{ {
EnergyValueRegistry.getInstance().setEnergyValue(wrappedStack, newEnergyValue); EnergyValueRegistry.getInstance().setEnergyValue(wrappedStack, newEnergyValue);
Map<WrappedStack, EnergyValue> postAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.POST_ASSIGNED_ENERGY_VALUES); Map<WrappedStack, EnergyValue> postAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.POST_CALCULATION_ENERGY_VALUES);
postAssignedValues.put(wrappedStack, newEnergyValue); postAssignedValues.put(wrappedStack, newEnergyValue);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.POST_CALCULATION_ENERGY_VALUES, postAssignedValues);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.POST_ASSIGNED_ENERGY_VALUES, postAssignedValues);
PacketHandler.INSTANCE.sendToAll(new MessageSetEnergyValue(wrappedStack, newEnergyValue)); PacketHandler.INSTANCE.sendToAll(new MessageSetEnergyValue(wrappedStack, newEnergyValue));
} }
else if (args[1].equalsIgnoreCase("global-post"))
{
EnergyValueRegistry.getInstance().setEnergyValue(wrappedStack, newEnergyValue);
Map<WrappedStack, EnergyValue> postAssignedValues = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.Global.postCalcluationEnergyValueFile);
postAssignedValues.put(wrappedStack, newEnergyValue);
SerializationHelper.writeEnergyValueStackMapToJsonFile(Files.Global.postCalcluationEnergyValueFile, postAssignedValues);
PacketHandler.INSTANCE.sendToAll(new MessageSetEnergyValue(wrappedStack, newEnergyValue));
}
else
{
throw new WrongUsageException(Messages.Commands.SET_ENERGY_VALUE_CURRENT_ITEM_USAGE);
}
// Notify admins and log the value change // Notify admins and log the value change
func_152373_a(commandSender, this, Messages.Commands.SET_ENERGY_VALUE_CURRENT_ITEM_SUCCESS, new Object[]{commandSender.getCommandSenderName(), args[1], itemStack.func_151000_E(), newEnergyValue.getChatComponent()}); func_152373_a(commandSender, this, Messages.Commands.SET_ENERGY_VALUE_CURRENT_ITEM_SUCCESS, new Object[]{commandSender.getCommandSenderName(), args[1], itemStack.func_151000_E(), newEnergyValue.getChatComponent()});
@ -102,7 +126,7 @@ public class CommandSetEnergyValueCurrentItem extends CommandBase
{ {
if (args.length == 2) if (args.length == 2)
{ {
return getListOfStringsMatchingLastWord(args, "pre", "post"); return getListOfStringsMatchingLastWord(args, "pre", "global-pre", "post", "global-post");
} }
return null; return null;

View file

@ -1,5 +1,7 @@
package com.pahimar.ee3.exchange; package com.pahimar.ee3.exchange;
import com.pahimar.ee3.recipe.AludelRecipeManager;
import com.pahimar.ee3.recipe.RecipeRegistry;
import com.pahimar.ee3.util.LogHelper; import com.pahimar.ee3.util.LogHelper;
public class DynamicEnergyValueInitThread implements Runnable public class DynamicEnergyValueInitThread implements Runnable
@ -14,6 +16,10 @@ public class DynamicEnergyValueInitThread implements Runnable
@Override @Override
public void run() public void run()
{ {
// Add in recipes to the RecipeRegistry *just* before we do calculations
RecipeRegistry.getInstance().registerVanillaRecipes();
AludelRecipeManager.registerRecipes();
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
EnergyValueRegistry.getInstance().init(); EnergyValueRegistry.getInstance().init();
LogHelper.info(String.format("DynamicEMC system initialized after %s ms", System.currentTimeMillis() - startTime)); LogHelper.info(String.format("DynamicEMC system initialized after %s ms", System.currentTimeMillis() - startTime));

View file

@ -26,15 +26,15 @@ import java.util.*;
public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>, JsonDeserializer<EnergyValueRegistry> public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>, JsonDeserializer<EnergyValueRegistry>
{ {
private static final Gson jsonSerializer = (new GsonBuilder()).registerTypeAdapter(EnergyValueRegistry.class, new EnergyValueRegistry()).registerTypeAdapter(EnergyValueStackMapping.class, new EnergyValueStackMapping()).create(); private static final Gson JSON_SERIALIZER = (new GsonBuilder()).setPrettyPrinting().registerTypeAdapter(EnergyValueRegistry.class, new EnergyValueRegistry()).registerTypeAdapter(EnergyValueStackMapping.class, new EnergyValueStackMapping()).create();
private static final Gson prettyJsonSerializer = (new GsonBuilder()).setPrettyPrinting().registerTypeAdapter(EnergyValueRegistry.class, new EnergyValueRegistry()).registerTypeAdapter(EnergyValueStackMapping.class, new EnergyValueStackMapping()).create();
private boolean shouldRegenNextRestart = false; private boolean shouldRegenNextRestart = false;
private static EnergyValueRegistry energyValueRegistry = null; private static EnergyValueRegistry energyValueRegistry = null;
private static Map<WrappedStack, EnergyValue> preAssignedMappings; private static Map<WrappedStack, EnergyValue> preCalculationMappings;
private static Map<WrappedStack, EnergyValue> postAssignedMappings; private static Map<WrappedStack, EnergyValue> postCalculationMappings;
private ImmutableSortedMap<WrappedStack, EnergyValue> stackMappings; private ImmutableSortedMap<WrappedStack, EnergyValue> stackMappings;
private ImmutableSortedMap<EnergyValue, List<WrappedStack>> valueMappings; private ImmutableSortedMap<EnergyValue, List<WrappedStack>> valueMappings;
private SortedSet<WrappedStack> uncomputedStacks;
private EnergyValueRegistry() private EnergyValueRegistry()
{ {
@ -50,16 +50,16 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
return energyValueRegistry; return energyValueRegistry;
} }
public void addPreAssignedEnergyValue(Object object, float energyValue) public void addPreCalculationEnergyValue(Object object, float energyValue)
{ {
addPreAssignedEnergyValue(object, new EnergyValue(energyValue)); addPreCalculationEnergyValue(object, new EnergyValue(energyValue));
} }
public void addPreAssignedEnergyValue(Object object, EnergyValue energyValue) public void addPreCalculationEnergyValue(Object object, EnergyValue energyValue)
{ {
if (preAssignedMappings == null) if (preCalculationMappings == null)
{ {
preAssignedMappings = new TreeMap<WrappedStack, EnergyValue>(); preCalculationMappings = new TreeMap<WrappedStack, EnergyValue>();
} }
if (WrappedStack.canBeWrapped(object) && energyValue != null && Float.compare(energyValue.getValue(), 0f) > 0) if (WrappedStack.canBeWrapped(object) && energyValue != null && Float.compare(energyValue.getValue(), 0f) > 0)
@ -71,33 +71,33 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
WrappedStack factoredWrappedStack = WrappedStack.wrap(wrappedStack, 1); WrappedStack factoredWrappedStack = WrappedStack.wrap(wrappedStack, 1);
EnergyValue factoredEnergyValue = EnergyValueHelper.factorEnergyValue(energyValue, wrappedStack.getStackSize()); EnergyValue factoredEnergyValue = EnergyValueHelper.factorEnergyValue(energyValue, wrappedStack.getStackSize());
if (preAssignedMappings.containsKey(factoredWrappedStack)) if (preCalculationMappings.containsKey(factoredWrappedStack))
{ {
if (factoredEnergyValue.compareTo(preAssignedMappings.get(factoredWrappedStack)) < 0) if (factoredEnergyValue.compareTo(preCalculationMappings.get(factoredWrappedStack)) < 0)
{ {
LogHelper.trace(String.format("EnergyValueRegistry[%s]: Mod with ID '%s' added a pre-assignment energy value of %s for object %s", LoaderHelper.getLoaderState(), Loader.instance().activeModContainer().getModId(), energyValue, wrappedStack)); LogHelper.trace(String.format("EnergyValueRegistry[%s]: Mod with ID '%s' added a pre-assignment energy value of %s for object %s", LoaderHelper.getLoaderState(), Loader.instance().activeModContainer().getModId(), energyValue, wrappedStack));
preAssignedMappings.put(factoredWrappedStack, factoredEnergyValue); preCalculationMappings.put(factoredWrappedStack, factoredEnergyValue);
} }
} }
else else
{ {
LogHelper.trace(String.format("EnergyValueRegistry[%s]: Mod with ID '%s' added a pre-assignment energy value of %s for object %s", LoaderHelper.getLoaderState(), Loader.instance().activeModContainer().getModId(), energyValue, wrappedStack)); LogHelper.trace(String.format("EnergyValueRegistry[%s]: Mod with ID '%s' added a pre-assignment energy value of %s for object %s", LoaderHelper.getLoaderState(), Loader.instance().activeModContainer().getModId(), energyValue, wrappedStack));
preAssignedMappings.put(factoredWrappedStack, factoredEnergyValue); preCalculationMappings.put(factoredWrappedStack, factoredEnergyValue);
} }
} }
} }
} }
public void addPostAssignedExactEnergyValue(Object object, float energyValue) public void addPostCalculationExactEnergyValue(Object object, float energyValue)
{ {
addPostAssignedExactEnergyValue(object, new EnergyValue(energyValue)); addPostCalculationExactEnergyValue(object, new EnergyValue(energyValue));
} }
public void addPostAssignedExactEnergyValue(Object object, EnergyValue energyValue) public void addPostCalculationExactEnergyValue(Object object, EnergyValue energyValue)
{ {
if (postAssignedMappings == null) if (postCalculationMappings == null)
{ {
postAssignedMappings = new TreeMap<WrappedStack, EnergyValue>(); postCalculationMappings = new TreeMap<WrappedStack, EnergyValue>();
} }
if (WrappedStack.canBeWrapped(object) && energyValue != null && Float.compare(energyValue.getValue(), 0f) > 0) if (WrappedStack.canBeWrapped(object) && energyValue != null && Float.compare(energyValue.getValue(), 0f) > 0)
@ -110,7 +110,7 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
EnergyValue factoredEnergyValue = EnergyValueHelper.factorEnergyValue(energyValue, wrappedStack.getStackSize()); EnergyValue factoredEnergyValue = EnergyValueHelper.factorEnergyValue(energyValue, wrappedStack.getStackSize());
LogHelper.trace(String.format("EnergyValueRegistry[%s]: Mod with ID '%s' added a post-assignment energy value of %s for object %s", LoaderHelper.getLoaderState(), Loader.instance().activeModContainer().getModId(), energyValue, wrappedStack)); LogHelper.trace(String.format("EnergyValueRegistry[%s]: Mod with ID '%s' added a post-assignment energy value of %s for object %s", LoaderHelper.getLoaderState(), Loader.instance().activeModContainer().getModId(), energyValue, wrappedStack));
postAssignedMappings.put(factoredWrappedStack, factoredEnergyValue); postCalculationMappings.put(factoredWrappedStack, factoredEnergyValue);
} }
} }
} }
@ -137,13 +137,13 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
public EnergyValue getEnergyValue(EnergyValueRegistryProxy.Phase phase, Object object, boolean strict) public EnergyValue getEnergyValue(EnergyValueRegistryProxy.Phase phase, Object object, boolean strict)
{ {
if (phase == EnergyValueRegistryProxy.Phase.PRE_ASSIGNMENT) if (phase == EnergyValueRegistryProxy.Phase.PRE_ASSIGNMENT || phase == EnergyValueRegistryProxy.Phase.PRE_CALCULATION)
{ {
return getEnergyValueFromMap(preAssignedMappings, object, strict); return getEnergyValueFromMap(preCalculationMappings, object, strict);
} }
else if (phase == EnergyValueRegistryProxy.Phase.POST_ASSIGNMENT) else if (phase == EnergyValueRegistryProxy.Phase.POST_ASSIGNMENT || phase == EnergyValueRegistryProxy.Phase.POST_CALCULATION)
{ {
return getEnergyValueFromMap(postAssignedMappings, object, strict); return getEnergyValueFromMap(postCalculationMappings, object, strict);
} }
else else
{ {
@ -348,53 +348,60 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
private void runDynamicEnergyValueResolution() private void runDynamicEnergyValueResolution()
{ {
TreeMap<WrappedStack, EnergyValue> stackValueMap = new TreeMap<WrappedStack, EnergyValue>(); TreeMap<WrappedStack, EnergyValue> stackValueMap = new TreeMap<WrappedStack, EnergyValue>();
uncomputedStacks = null;
/* // Add in all mod specified pre-calculation values
* Pre-assigned values stackValueMap.putAll(preCalculationMappings); // TODO Logging
*/
stackValueMap.putAll(preAssignedMappings);
// Grab custom pre-assigned values from file // Add in all global pre-calculation values
Map<WrappedStack, EnergyValue> preAssignedValueMap = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.PRE_ASSIGNED_ENERGY_VALUES); LogHelper.trace(String.format("BEGIN Adding EnergyValue mappings from %s", Files.PRE_CALCULATION_ENERGY_VALUES));
for (WrappedStack wrappedStack : preAssignedValueMap.keySet()) Map<WrappedStack, EnergyValue> globalPreCalculationValueMap = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.Global.preCalcluationEnergyValueFile);
for (WrappedStack wrappedStack : globalPreCalculationValueMap.keySet())
{ {
if (preAssignedValueMap.get(wrappedStack) != null) if (globalPreCalculationValueMap.get(wrappedStack) != null)
{ {
stackValueMap.put(wrappedStack, preAssignedValueMap.get(wrappedStack)); stackValueMap.put(wrappedStack, globalPreCalculationValueMap.get(wrappedStack));
LogHelper.trace(String.format("Adding EnergyValue %s for %s", globalPreCalculationValueMap.get(wrappedStack), wrappedStack));
} }
} }
LogHelper.trace(String.format("END Adding EnergyValue mappings from %s", Files.PRE_CALCULATION_ENERGY_VALUES));
// Add in all instance pre-calculation values
LogHelper.trace(String.format("BEGIN Adding EnergyValue mappings from %s", Files.PRE_CALCULATION_ENERGY_VALUES));
Map<WrappedStack, EnergyValue> instancePreAssignedValueMap = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.PRE_CALCULATION_ENERGY_VALUES);
for (WrappedStack wrappedStack : instancePreAssignedValueMap.keySet())
{
if (instancePreAssignedValueMap.get(wrappedStack) != null)
{
stackValueMap.put(wrappedStack, instancePreAssignedValueMap.get(wrappedStack));
LogHelper.trace(String.format("Adding EnergyValue %s for %s", instancePreAssignedValueMap.get(wrappedStack), wrappedStack));
}
}
LogHelper.trace(String.format("END Adding EnergyValue mappings from %s", Files.PRE_CALCULATION_ENERGY_VALUES));
/* /*
* Auto-assignment * Auto-assignment
*/ */
// Initialize the maps for the first pass to happen Map<WrappedStack, EnergyValue> computedStackValues;
ImmutableSortedMap.Builder<WrappedStack, EnergyValue> stackMappingsBuilder = ImmutableSortedMap.naturalOrder();
stackMappingsBuilder.putAll(stackValueMap);
stackMappings = stackMappingsBuilder.build();
Map<WrappedStack, EnergyValue> computedStackValues = new TreeMap<WrappedStack, EnergyValue>();
// Initialize the pass counter
int passNumber = 0; int passNumber = 0;
long computationStartTime = System.currentTimeMillis(); long computationStartTime = System.currentTimeMillis();
long passStartTime; long passStartTime;
int computedValueCount = 0; int passComputedValueCount = 0;
int totalComputedValueCount = 0; int totalComputedValueCount = 0;
LogHelper.info("Beginning dynamic value computation"); LogHelper.info("Beginning dynamic value calculation");
boolean isFirstPass = true; boolean isFirstPass = true;
while ((isFirstPass || computedValueCount > 0) && (passNumber < 16)) while ((isFirstPass || passComputedValueCount > 0) && (passNumber < 16))
{ {
if (isFirstPass) if (isFirstPass)
{ {
isFirstPass = false; isFirstPass = false;
} }
passComputedValueCount = 0;
computedValueCount = 0;
passStartTime = System.currentTimeMillis(); passStartTime = System.currentTimeMillis();
// Increment the pass counter
passNumber++; passNumber++;
// Compute stack mappings from existing stack mappings // Compute stack mappings from existing stack mappings
computedStackValues = computeStackMappings(stackValueMap); computedStackValues = computeStackMappings(stackValueMap, passNumber);
for (WrappedStack keyStack : computedStackValues.keySet()) for (WrappedStack keyStack : computedStackValues.keySet())
{ {
@ -416,50 +423,70 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
{ {
if (factoredExchangeEnergyValue.compareTo(stackValueMap.get(factoredKeyStack)) == -1) if (factoredExchangeEnergyValue.compareTo(stackValueMap.get(factoredKeyStack)) == -1)
{ {
LogHelper.trace(String.format("")); // TODO Log message
stackValueMap.put(factoredKeyStack, factoredExchangeEnergyValue); stackValueMap.put(factoredKeyStack, factoredExchangeEnergyValue);
} }
} }
else else
{ {
LogHelper.trace(String.format("")); // TODO Log message
stackValueMap.put(factoredKeyStack, factoredExchangeEnergyValue); stackValueMap.put(factoredKeyStack, factoredExchangeEnergyValue);
computedValueCount++; passComputedValueCount++;
totalComputedValueCount++; totalComputedValueCount++;
} }
} }
} }
LogHelper.info(String.format("Pass %s: Computed %s values for objects in %s ms", passNumber, computedValueCount, System.currentTimeMillis() - passStartTime)); LogHelper.info(String.format("Pass %s: Calculated %s values for objects in %s ms", passNumber, passComputedValueCount, System.currentTimeMillis() - passStartTime));
} }
LogHelper.info(String.format("Finished dynamic value computation (computed %s values for objects in %s ms)", totalComputedValueCount, System.currentTimeMillis() - computationStartTime)); LogHelper.info(String.format("Finished dynamic value calculation (calculated %s values for objects in %s ms)", totalComputedValueCount, System.currentTimeMillis() - computationStartTime));
if (postAssignedMappings != null) // Add in all mod specified post-calculation values
// TODO Logging
if (postCalculationMappings != null)
{ {
for (WrappedStack wrappedStack : postAssignedMappings.keySet()) for (WrappedStack wrappedStack : postCalculationMappings.keySet())
{ {
if (postAssignedMappings.get(wrappedStack) != null) if (postCalculationMappings.get(wrappedStack) != null)
{ {
stackValueMap.put(wrappedStack, postAssignedMappings.get(wrappedStack)); stackValueMap.put(wrappedStack, postCalculationMappings.get(wrappedStack));
} }
} }
} }
else else
{ {
postAssignedMappings = new TreeMap<WrappedStack, EnergyValue>(); postCalculationMappings = new TreeMap<WrappedStack, EnergyValue>();
} }
// Grab custom post-assigned values from file // Add in all global post-calculation values
Map<WrappedStack, EnergyValue> postAssignedValueMap = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.POST_ASSIGNED_ENERGY_VALUES); LogHelper.trace(String.format("Begin Adding EnergyValue mappings from %s", Files.POST_CALCULATION_ENERGY_VALUES));
for (WrappedStack wrappedStack : postAssignedValueMap.keySet()) Map<WrappedStack, EnergyValue> globalPostCalculationValueMap = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.Global.postCalcluationEnergyValueFile);
for (WrappedStack wrappedStack : globalPostCalculationValueMap.keySet())
{ {
if (postAssignedValueMap.get(wrappedStack) != null) if (globalPostCalculationValueMap.get(wrappedStack) != null)
{ {
stackValueMap.put(wrappedStack, postAssignedValueMap.get(wrappedStack)); stackValueMap.put(wrappedStack, globalPostCalculationValueMap.get(wrappedStack));
LogHelper.trace(String.format("Adding EnergyValue %s for %s", globalPostCalculationValueMap.get(wrappedStack), wrappedStack));
} }
} }
LogHelper.trace(String.format("END Adding EnergyValue mappings from %s", Files.PRE_CALCULATION_ENERGY_VALUES));
// Add in all instance post-calculation values
LogHelper.trace(String.format("Begin Adding EnergyValue mappings from %s", Files.POST_CALCULATION_ENERGY_VALUES));
Map<WrappedStack, EnergyValue> instancePostCalculationValueMap = SerializationHelper.readEnergyValueStackMapFromJsonFile(Files.POST_CALCULATION_ENERGY_VALUES);
for (WrappedStack wrappedStack : instancePostCalculationValueMap.keySet())
{
if (instancePostCalculationValueMap.get(wrappedStack) != null)
{
stackValueMap.put(wrappedStack, instancePostCalculationValueMap.get(wrappedStack));
LogHelper.trace(String.format("Adding EnergyValue %s for %s", instancePreAssignedValueMap.get(wrappedStack), wrappedStack));
}
}
LogHelper.trace(String.format("End Adding EnergyValue mappings from %s", Files.POST_CALCULATION_ENERGY_VALUES));
/** /**
* Finalize the stack to value map * Finalize the stack to value map
*/ */
stackMappingsBuilder = ImmutableSortedMap.naturalOrder(); ImmutableSortedMap.Builder<WrappedStack, EnergyValue> stackMappingsBuilder = ImmutableSortedMap.naturalOrder();
stackMappingsBuilder.putAll(stackValueMap); stackMappingsBuilder.putAll(stackValueMap);
stackMappings = stackMappingsBuilder.build(); stackMappings = stackMappingsBuilder.build();
@ -471,6 +498,17 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
// Serialize values to disk // Serialize values to disk
LogHelper.info("Saving energy values to disk"); LogHelper.info("Saving energy values to disk");
save(); save();
// TODO Make this make "sense" and also ensure it's added as an option to the debug command
LogHelper.info("BEGIN UNCOMPUTED OBJECT LIST");
for (WrappedStack wrappedStack : uncomputedStacks)
{
if (!hasEnergyValue(wrappedStack))
{
LogHelper.info(wrappedStack);
}
}
LogHelper.info("END UNCOMPUTED OBJECT LIST");
} }
private void generateValueStackMappings() private void generateValueStackMappings()
@ -502,12 +540,13 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
valueMappings = ImmutableSortedMap.copyOf(tempValueMappings); valueMappings = ImmutableSortedMap.copyOf(tempValueMappings);
} }
private Map<WrappedStack, EnergyValue> computeStackMappings(Map<WrappedStack, EnergyValue> stackValueMappings) private Map<WrappedStack, EnergyValue> computeStackMappings(Map<WrappedStack, EnergyValue> stackValueMappings, int passCount)
{ {
Map<WrappedStack, EnergyValue> computedStackMap = new TreeMap<WrappedStack, EnergyValue>(); Map<WrappedStack, EnergyValue> computedStackMap = new TreeMap<WrappedStack, EnergyValue>();
for (WrappedStack recipeOutput : RecipeRegistry.getInstance().getRecipeMappings().keySet()) for (WrappedStack recipeOutput : RecipeRegistry.getInstance().getRecipeMappings().keySet())
{ {
// TODO Review: possible fault in the logic here that is preventing some values from being assigned?
if (!hasEnergyValue(recipeOutput.getWrappedObject(), false) && !computedStackMap.containsKey(recipeOutput)) if (!hasEnergyValue(recipeOutput.getWrappedObject(), false) && !computedStackMap.containsKey(recipeOutput))
{ {
EnergyValue lowestValue = null; EnergyValue lowestValue = null;
@ -523,6 +562,15 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
lowestValue = computedValue; lowestValue = computedValue;
} }
} }
else
{
if (uncomputedStacks == null)
{
uncomputedStacks = new TreeSet<WrappedStack>();
}
uncomputedStacks.add(recipeOutput);
}
} }
if ((lowestValue != null) && (lowestValue.getValue() > 0f)) if ((lowestValue != null) && (lowestValue.getValue() > 0f))
@ -616,47 +664,14 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
{ {
if (wrappedStack != null && energyValue != null && Float.compare(energyValue.getValue(), 0f) > 0) if (wrappedStack != null && energyValue != null && Float.compare(energyValue.getValue(), 0f) > 0)
{ {
TreeMap<WrappedStack, EnergyValue> stackValueMap = new TreeMap<WrappedStack, EnergyValue>(); TreeMap<WrappedStack, EnergyValue> stackValueMap = new TreeMap<WrappedStack, EnergyValue>(stackMappings);
/**
* Read stack value mappings from NBTTagCompound
*/
stackValueMap.putAll(stackMappings);
stackValueMap.put(wrappedStack, energyValue); stackValueMap.put(wrappedStack, energyValue);
ImmutableSortedMap.Builder<WrappedStack, EnergyValue> stackMappingsBuilder = ImmutableSortedMap.naturalOrder(); ImmutableSortedMap.Builder<WrappedStack, EnergyValue> stackMappingsBuilder = ImmutableSortedMap.naturalOrder();
stackMappingsBuilder.putAll(stackValueMap); stackMappingsBuilder.putAll(stackValueMap);
stackMappings = stackMappingsBuilder.build(); stackMappings = stackMappingsBuilder.build();
/** generateValueStackMappings();
* Resolve value stack mappings from the newly loaded stack mappings
*/
SortedMap<EnergyValue, List<WrappedStack>> tempValueMappings = new TreeMap<EnergyValue, List<WrappedStack>>();
for (WrappedStack stack : stackMappings.keySet())
{
if (stack != null)
{
EnergyValue value = stackMappings.get(stack);
if (value != null)
{
if (tempValueMappings.containsKey(value))
{
if (!(tempValueMappings.get(value).contains(stack)))
{
tempValueMappings.get(value).add(stack);
}
}
else
{
tempValueMappings.put(value, new ArrayList<WrappedStack>(Arrays.asList(stack)));
}
}
}
}
valueMappings = ImmutableSortedMap.copyOf(tempValueMappings);
} }
} }
@ -763,7 +778,7 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
public String toJson() public String toJson()
{ {
return prettyJsonSerializer.toJson(this); return JSON_SERIALIZER.toJson(this);
} }
@Override @Override
@ -817,18 +832,18 @@ public class EnergyValueRegistry implements JsonSerializer<EnergyValueRegistry>,
public void dumpEnergyValueRegistryToLog(EnergyValueRegistryProxy.Phase phase) public void dumpEnergyValueRegistryToLog(EnergyValueRegistryProxy.Phase phase)
{ {
LogHelper.info(String.format("BEGIN DUMPING %s ENERGY VALUE MAPPINGS", phase)); LogHelper.info(String.format("BEGIN DUMPING %s ENERGY VALUE MAPPINGS", phase));
if (phase == EnergyValueRegistryProxy.Phase.PRE_ASSIGNMENT) if (phase == EnergyValueRegistryProxy.Phase.PRE_ASSIGNMENT || phase == EnergyValueRegistryProxy.Phase.PRE_CALCULATION)
{ {
for (WrappedStack wrappedStack : this.preAssignedMappings.keySet()) for (WrappedStack wrappedStack : this.preCalculationMappings.keySet())
{ {
LogHelper.info(String.format("- Object: %s, Value: %s", wrappedStack, EnergyValueRegistry.getInstance().getStackValueMap().get(wrappedStack))); LogHelper.info(String.format("- Object: %s, Value: %s", wrappedStack, EnergyValueRegistry.getInstance().getStackValueMap().get(wrappedStack)));
} }
} }
else if (phase == EnergyValueRegistryProxy.Phase.POST_ASSIGNMENT) else if (phase == EnergyValueRegistryProxy.Phase.POST_ASSIGNMENT || phase == EnergyValueRegistryProxy.Phase.POST_CALCULATION)
{ {
if (this.postAssignedMappings != null) if (this.postCalculationMappings != null)
{ {
for (WrappedStack wrappedStack : this.postAssignedMappings.keySet()) for (WrappedStack wrappedStack : this.postCalculationMappings.keySet())
{ {
LogHelper.info(String.format("- Object: %s, Value: %s", wrappedStack, EnergyValueRegistry.getInstance().getStackValueMap().get(wrappedStack))); LogHelper.info(String.format("- Object: %s, Value: %s", wrappedStack, EnergyValueRegistry.getInstance().getStackValueMap().get(wrappedStack)));
} }

View file

@ -32,7 +32,7 @@ public class ConfigurationHandler
Settings.General.syncThreshold = configuration.getInt(Messages.Configuration.GENERAL_SYNC_THRESHOLD, Configuration.CATEGORY_GENERAL, 5, 0, Short.MAX_VALUE, StatCollector.translateToLocal(Messages.Configuration.GENERAL_SYNC_THRESHOLD_COMMENT), Messages.Configuration.GENERAL_SYNC_THRESHOLD_LABEL); Settings.General.syncThreshold = configuration.getInt(Messages.Configuration.GENERAL_SYNC_THRESHOLD, Configuration.CATEGORY_GENERAL, 5, 0, Short.MAX_VALUE, StatCollector.translateToLocal(Messages.Configuration.GENERAL_SYNC_THRESHOLD_COMMENT), Messages.Configuration.GENERAL_SYNC_THRESHOLD_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); 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);
Settings.Abilities.onlyLoadFile = configuration.getBoolean(Messages.Configuration.ABILITIES_ONLY_LOAD_FILE, Configuration.CATEGORY_GENERAL, false, StatCollector.translateToLocal(Messages.Configuration.ABILITIES_ONLY_LOAD_FILE_COMMENT), Messages.Configuration.ABILITIES_ONLY_LOAD_FILE_LABEL); Settings.Abilities.onlyLoadFile = configuration.getBoolean(Messages.Configuration.ABILITIES_ONLY_LOAD_FILE, Configuration.CATEGORY_GENERAL, false, StatCollector.translateToLocal(Messages.Configuration.ABILITIES_ONLY_LOAD_FILE_COMMENT), Messages.Configuration.ABILITIES_ONLY_LOAD_FILE_LABEL);
Settings.DynamicEnergyValueGeneration.regenerateEnergyValuesWhen = ConfigurationHelper.getString(configuration, Messages.Configuration.REGENERATE_ENERGYVALUES_WHEN, Configuration.CATEGORY_GENERAL, "When Mods Change", StatCollector.translateToLocal(Messages.Configuration.REGENERATE_ENERGYVALUES_WHEN_COMMENT), new String[]{"Never", "When Mods Change", "Always"}, Messages.Configuration.REGENERATE_ENERGYVALUES_WHEN_LABEL); Settings.DynamicEnergyValueGeneration.regenerateEnergyValuesWhen = ConfigurationHelper.getString(configuration, Messages.Configuration.REGENERATE_ENERGYVALUES_WHEN, Configuration.CATEGORY_GENERAL, "Always", StatCollector.translateToLocal(Messages.Configuration.REGENERATE_ENERGYVALUES_WHEN_COMMENT), new String[]{"Never", "When Mods Change", "Always"}, Messages.Configuration.REGENERATE_ENERGYVALUES_WHEN_LABEL);
Settings.Debug.logTraceToInfo = configuration.getBoolean(Messages.Configuration.LOG_TRACE_TO_INFO, CATEGORY_DEBUG, false, StatCollector.translateToLocal(Messages.Configuration.LOG_TRACE_TO_INFO_COMMENT), Messages.Configuration.LOG_TRACE_TO_INFO_LABEL); Settings.Debug.logTraceToInfo = configuration.getBoolean(Messages.Configuration.LOG_TRACE_TO_INFO, CATEGORY_DEBUG, false, StatCollector.translateToLocal(Messages.Configuration.LOG_TRACE_TO_INFO_COMMENT), Messages.Configuration.LOG_TRACE_TO_INFO_LABEL);
if (configuration.hasChanged()) if (configuration.hasChanged())

View file

@ -300,7 +300,7 @@ public class AbilityRegistry implements JsonSerializer<AbilityRegistry>, JsonDes
} }
else else
{ {
abilityDirectory = new File(SerializationHelper.getDataDirectory(), "abilities"); abilityDirectory = new File(SerializationHelper.getInstanceDataDirectory(), "abilities");
abilityDirectory.mkdirs(); abilityDirectory.mkdirs();
} }
} }

View file

@ -23,10 +23,10 @@ public class TransmutationKnowledgeRegistry
private TransmutationKnowledgeRegistry() private TransmutationKnowledgeRegistry()
{ {
playerKnowledgeDirectory = new File(SerializationHelper.getPlayerDataDirectory(), "knowledge" + File.separator + "transmutation"); playerKnowledgeDirectory = new File(SerializationHelper.getInstancePlayerDataDirectory(), "knowledge" + File.separator + "transmutation");
playerKnowledgeDirectory.mkdirs(); playerKnowledgeDirectory.mkdirs();
dataKnowledgeDirectory = new File(SerializationHelper.getDataDirectory(), "knowledge" + File.separator + "transmutation"); dataKnowledgeDirectory = new File(SerializationHelper.getInstanceDataDirectory(), "knowledge" + File.separator + "transmutation");
dataKnowledgeDirectory.mkdirs(); dataKnowledgeDirectory.mkdirs();
loadTemplateKnowledgeFromDisk(); loadTemplateKnowledgeFromDisk();

View file

@ -25,253 +25,310 @@ public class RecipesPotions
private static WrappedStack reagentBlazePowder = WrappedStack.wrap(new ItemStack(Items.blaze_powder)); private static WrappedStack reagentBlazePowder = WrappedStack.wrap(new ItemStack(Items.blaze_powder));
private static WrappedStack bottleEmpty = WrappedStack.wrap(Items.glass_bottle); private static WrappedStack bottleEmpty = WrappedStack.wrap(Items.glass_bottle);
public static WrappedStack bottleWater = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 0)); private static WrappedStack bottleWater = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 0));
public static WrappedStack potionAwkward = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16)); private static WrappedStack potionAwkward = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16));
public static WrappedStack potionThick = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 32)); private static WrappedStack potionAwkwardOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16));
public static WrappedStack potionMundane = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 128)); private static WrappedStack potionThickOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 32));
public static WrappedStack potionMundaneExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 64)); private static WrappedStack potionMundane = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 128));
public static WrappedStack potionMundaneSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16512)); private static WrappedStack potionMundaneOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 128));
public static WrappedStack potionMundaneSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16448)); private static WrappedStack potionMundaneExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 64));
private static WrappedStack potionMundaneExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 64));
private static WrappedStack potionMundaneSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16512));
private static WrappedStack potionMundaneSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16512));
private static WrappedStack potionMundaneSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16448));
private static WrappedStack potionMundaneSplashExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16448));
public static WrappedStack potionRegeneration = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8193)); private static WrappedStack potionRegeneration = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8193));
public static WrappedStack potionRegenerationEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8225)); private static WrappedStack potionRegenerationOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8193));
public static WrappedStack potionRegenerationExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8257)); private static WrappedStack potionRegenerationEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8225));
public static WrappedStack potionRegenerationSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16385)); private static WrappedStack potionRegenerationEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8225));
public static WrappedStack potionRegenerationSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16417)); private static WrappedStack potionRegenerationExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8257));
public static WrappedStack potionRegenerationSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16449)); private static WrappedStack potionRegenerationExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8257));
private static WrappedStack potionRegenerationSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16385));
private static WrappedStack potionRegenerationSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16385));
private static WrappedStack potionRegenerationSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16417));
private static WrappedStack potionRegenerationSplashEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16417));
private static WrappedStack potionRegenerationSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16449));
private static WrappedStack potionRegenerationSplashExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16449));
public static WrappedStack potionSwiftness = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8194)); private static WrappedStack potionSwiftness = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8194));
public static WrappedStack potionSwiftnessEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8226)); private static WrappedStack potionSwiftnessOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8194));
public static WrappedStack potionSwiftnessExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8258)); private static WrappedStack potionSwiftnessEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8226));
public static WrappedStack potionSwiftnessSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16386)); private static WrappedStack potionSwiftnessEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8226));
public static WrappedStack potionSwiftnessSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16418)); private static WrappedStack potionSwiftnessExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8258));
public static WrappedStack potionSwiftnessSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16450)); private static WrappedStack potionSwiftnessExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8258));
private static WrappedStack potionSwiftnessSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16386));
private static WrappedStack potionSwiftnessSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16386));
private static WrappedStack potionSwiftnessSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16418));
private static WrappedStack potionSwiftnessSplashEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16418));
private static WrappedStack potionSwiftnessSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16450));
private static WrappedStack potionSwiftnessSplashExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16450));
public static WrappedStack potionFireResist = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8195)); private static WrappedStack potionFireResist = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8195));
public static WrappedStack potionFireResistExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8259)); private static WrappedStack potionFireResistOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8195));
public static WrappedStack potionFireResistSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16387)); private static WrappedStack potionFireResistExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8259));
public static WrappedStack potionFireResistSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16451)); private static WrappedStack potionFireResistExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8259));
private static WrappedStack potionFireResistSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16387));
private static WrappedStack potionFireResistSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16387));
private static WrappedStack potionFireResistSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16451));
private static WrappedStack potionFireResistSplashExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16451));
public static WrappedStack potionPoison = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8196)); private static WrappedStack potionPoison = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8196));
public static WrappedStack potionPoisonEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8228)); private static WrappedStack potionPoisonOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8196));
public static WrappedStack potionPoisonExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8260)); private static WrappedStack potionPoisonEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8228));
public static WrappedStack potionPoisonSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16388)); private static WrappedStack potionPoisonEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8228));
public static WrappedStack potionPoisonSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16420)); private static WrappedStack potionPoisonExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8260));
public static WrappedStack potionPoisonSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16452)); private static WrappedStack potionPoisonExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8260));
private static WrappedStack potionPoisonSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16388));
private static WrappedStack potionPoisonSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16388));
private static WrappedStack potionPoisonSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16420));
private static WrappedStack potionPoisonSplashEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16420));
private static WrappedStack potionPoisonSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16452));
private static WrappedStack potionPoisonSplashExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16452));
public static WrappedStack potionHealing = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8197)); private static WrappedStack potionHealing = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8197));
public static WrappedStack potionHealingEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8229)); private static WrappedStack potionHealingOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8197));
public static WrappedStack potionHealingSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16389)); private static WrappedStack potionHealingEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8229));
public static WrappedStack potionHealingSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16421)); private static WrappedStack potionHealingEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8229));
private static WrappedStack potionHealingSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16389));
private static WrappedStack potionHealingSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16389));
private static WrappedStack potionHealingSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16421));
private static WrappedStack potionHealingSplashEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16421));
public static WrappedStack potionNightVision = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8198)); private static WrappedStack potionNightVision = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8198));
public static WrappedStack potionNightVisionExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8262)); private static WrappedStack potionNightVisionOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8198));
public static WrappedStack potionNightVisionSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16390)); private static WrappedStack potionNightVisionExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8262));
public static WrappedStack potionNightVisionSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16454)); private static WrappedStack potionNightVisionExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8262));
private static WrappedStack potionNightVisionSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16390));
private static WrappedStack potionNightVisionSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16390));
private static WrappedStack potionNightVisionSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16454));
private static WrappedStack potionNightVisionSplashExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16454));
public static WrappedStack potionWeakness = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8200)); private static WrappedStack potionWeakness = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8200));
public static WrappedStack potionWeaknessExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8264)); private static WrappedStack potionWeaknessOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8200));
public static WrappedStack potionWeaknessSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16392)); private static WrappedStack potionWeaknessExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8264));
public static WrappedStack potionWeaknessSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16456)); private static WrappedStack potionWeaknessExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8264));
private static WrappedStack potionWeaknessSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16392));
private static WrappedStack potionWeaknessSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16392));
private static WrappedStack potionWeaknessSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16456));
private static WrappedStack potionWeaknessSplashExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16456));
public static WrappedStack potionStrength = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8201)); private static WrappedStack potionStrength = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8201));
public static WrappedStack potionStrengthEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8233)); private static WrappedStack potionStrengthOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8201));
public static WrappedStack potionStrengthExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8265)); private static WrappedStack potionStrengthEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8233));
public static WrappedStack potionStrengthSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16393)); private static WrappedStack potionStrengthEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8233));
public static WrappedStack potionStrengthSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16425)); private static WrappedStack potionStrengthExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8265));
public static WrappedStack potionStrengthSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16457)); private static WrappedStack potionStrengthExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8265));
private static WrappedStack potionStrengthSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16393));
private static WrappedStack potionStrengthSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16393));
private static WrappedStack potionStrengthSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16425));
private static WrappedStack potionStrengthSplashEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16425));
private static WrappedStack potionStrengthSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16457));
private static WrappedStack potionStrengthSplashExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16457));
public static WrappedStack potionSlowness = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8202)); private static WrappedStack potionSlowness = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8202));
public static WrappedStack potionSlownessExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8266)); private static WrappedStack potionSlownessOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8202));
public static WrappedStack potionSlownessSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16394)); private static WrappedStack potionSlownessExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8266));
public static WrappedStack potionSlownessSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16458)); private static WrappedStack potionSlownessExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8266));
private static WrappedStack potionSlownessSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16394));
private static WrappedStack potionSlownessSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16394));
private static WrappedStack potionSlownessSplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16458));
private static WrappedStack potionSlownessSplashExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16458));
public static WrappedStack potionHarming = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8204)); private static WrappedStack potionHarming = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8204));
public static WrappedStack potionHarmingEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8236)); private static WrappedStack potionHarmingOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8204));
public static WrappedStack potionHarmingSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16396)); private static WrappedStack potionHarmingEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8236));
public static WrappedStack potionHarmingSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16428)); private static WrappedStack potionHarmingEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8236));
private static WrappedStack potionHarmingSplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16396));
private static WrappedStack potionHarmingSplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16396));
private static WrappedStack potionHarmingSplashEnhanced = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16428));
private static WrappedStack potionHarmingSplashEnhancedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16428));
public static WrappedStack potionInvisibility = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8206)); private static WrappedStack potionInvisibility = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8206));
public static WrappedStack potionInvisibilityExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8270)); private static WrappedStack potionInvisibilityOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8206));
public static WrappedStack potionInvisibilitySplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16398)); private static WrappedStack potionInvisibilityExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 8270));
public static WrappedStack potionInvisibilitySplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16462)); private static WrappedStack potionInvisibilityExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 8270));
private static WrappedStack potionInvisibilitySplash = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16398));
private static WrappedStack potionInvisibilitySplashOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16398));
private static WrappedStack potionInvisibilitySplashExtended = WrappedStack.wrap(new ItemStack(Items.potionitem, 1, 16462));
private static WrappedStack potionInvisibilitySplashExtendedOutput = WrappedStack.wrap(new ItemStack(Items.potionitem, 3, 16462));
public static void registerRecipes() public static void registerRecipes()
{ {
RecipeRegistryProxy.addRecipe(bottleWater, Arrays.asList(bottleEmpty, reagentWater)); RecipeRegistryProxy.addRecipe(bottleWater, Arrays.asList(bottleEmpty, reagentWater));
RecipeRegistryProxy.addRecipe(potionAwkward, Arrays.asList(bottleWater, reagentNetherWart)); RecipeRegistryProxy.addRecipe(potionAwkwardOutput, Arrays.asList(bottleWater, reagentNetherWart));
RecipeRegistryProxy.addRecipe(potionNightVision, Arrays.asList(potionAwkward, reagentGoldenCarrot)); RecipeRegistryProxy.addRecipe(potionNightVisionOutput, Arrays.asList(potionAwkward, reagentGoldenCarrot));
RecipeRegistryProxy.addRecipe(potionNightVision, Arrays.asList(potionNightVisionExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionNightVisionOutput, Arrays.asList(potionNightVisionExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionNightVisionSplash, Arrays.asList(potionNightVisionSplashExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionNightVisionSplashOutput, Arrays.asList(potionNightVisionSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionNightVisionSplash, Arrays.asList(potionNightVision, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionNightVisionSplashOutput, Arrays.asList(potionNightVision, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionNightVisionExtended, Arrays.asList(potionNightVision, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionNightVisionExtendedOutput, Arrays.asList(potionNightVision, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionNightVisionSplashExtended, Arrays.asList(potionNightVisionSplash, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionNightVisionSplashExtendedOutput, Arrays.asList(potionNightVisionSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionNightVisionSplashExtended, Arrays.asList(potionNightVisionExtended, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionNightVisionSplashExtendedOutput, Arrays.asList(potionNightVisionExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionInvisibility, Arrays.asList(potionNightVision, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionInvisibilityOutput, Arrays.asList(potionNightVision, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionInvisibility, Arrays.asList(potionInvisibilityExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionInvisibilityOutput, Arrays.asList(potionInvisibilityExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplash, Arrays.asList(potionNightVisionSplash, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionInvisibilitySplashOutput, Arrays.asList(potionNightVisionSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplash, Arrays.asList(potionInvisibilitySplashExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionInvisibilitySplashOutput, Arrays.asList(potionInvisibilitySplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplash, Arrays.asList(potionInvisibility, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionInvisibilitySplashOutput, Arrays.asList(potionInvisibility, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionInvisibilityExtended, Arrays.asList(potionInvisibility, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionInvisibilityExtendedOutput, Arrays.asList(potionInvisibility, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionInvisibilityExtended, Arrays.asList(potionNightVisionExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionInvisibilityExtendedOutput, Arrays.asList(potionNightVisionExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplashExtended, Arrays.asList(potionInvisibilitySplash, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionInvisibilitySplashExtendedOutput, Arrays.asList(potionInvisibilitySplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplashExtended, Arrays.asList(potionNightVisionSplashExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionInvisibilitySplashExtendedOutput, Arrays.asList(potionNightVisionSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionInvisibilitySplashExtended, Arrays.asList(potionInvisibilityExtended, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionInvisibilitySplashExtendedOutput, Arrays.asList(potionInvisibilityExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionFireResist, Arrays.asList(potionAwkward, reagentMagmaCream)); RecipeRegistryProxy.addRecipe(potionFireResistOutput, Arrays.asList(potionAwkward, reagentMagmaCream));
RecipeRegistryProxy.addRecipe(potionFireResist, Arrays.asList(potionFireResistExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionFireResistOutput, Arrays.asList(potionFireResistExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionFireResistSplash, Arrays.asList(potionFireResistSplashExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionFireResistSplashOutput, Arrays.asList(potionFireResistSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionFireResistSplash, Arrays.asList(potionFireResist, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionFireResistSplashOutput, Arrays.asList(potionFireResist, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionFireResistExtended, Arrays.asList(potionFireResist, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionFireResistExtendedOutput, Arrays.asList(potionFireResist, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionFireResistSplashExtended, Arrays.asList(potionFireResistSplash, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionFireResistSplashExtendedOutput, Arrays.asList(potionFireResistSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionFireResistSplashExtended, Arrays.asList(potionFireResistExtended, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionFireResistSplashExtendedOutput, Arrays.asList(potionFireResistExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionSlowness, Arrays.asList(potionFireResist, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionSlownessOutput, Arrays.asList(potionFireResist, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlowness, Arrays.asList(potionSlownessExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionSlownessOutput, Arrays.asList(potionSlownessExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSlowness, Arrays.asList(potionSwiftness, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionSlownessOutput, Arrays.asList(potionSwiftness, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlowness, Arrays.asList(potionSwiftnessExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionSlownessOutput, Arrays.asList(potionSwiftnessExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplash, Arrays.asList(potionFireResistSplash, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionSlownessSplashOutput, Arrays.asList(potionFireResistSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplash, Arrays.asList(potionSlownessSplashExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionSlownessSplashOutput, Arrays.asList(potionSlownessSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSlownessSplash, Arrays.asList(potionSwiftnessSplash, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionSlownessSplashOutput, Arrays.asList(potionSwiftnessSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplash, Arrays.asList(potionSwiftnessSplashExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionSlownessSplashOutput, Arrays.asList(potionSwiftnessSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplash, Arrays.asList(potionSlowness, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionSlownessSplashOutput, Arrays.asList(potionSlowness, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionSlownessExtended, Arrays.asList(potionFireResistExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionSlownessExtendedOutput, Arrays.asList(potionFireResistExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessExtended, Arrays.asList(potionSwiftnessEnhanced, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionSlownessExtendedOutput, Arrays.asList(potionSwiftnessEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplashExtended, Arrays.asList(potionFireResistSplashExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionSlownessSplashExtendedOutput, Arrays.asList(potionFireResistSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplashExtended, Arrays.asList(potionSwiftnessSplashEnhanced, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionSlownessSplashExtendedOutput, Arrays.asList(potionSwiftnessSplashEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionSlownessSplashExtended, Arrays.asList(potionSlownessExtended, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionSlownessSplashExtendedOutput, Arrays.asList(potionSlownessExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionSwiftness, Arrays.asList(potionAwkward, reagentSugar)); RecipeRegistryProxy.addRecipe(potionSwiftnessOutput, Arrays.asList(potionAwkward, reagentSugar));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplash, Arrays.asList(potionSwiftness, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionSwiftnessSplashOutput, Arrays.asList(potionSwiftness, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionSwiftnessExtended, Arrays.asList(potionSwiftness, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionSwiftnessExtendedOutput, Arrays.asList(potionSwiftness, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessExtended, Arrays.asList(potionSwiftnessEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionSwiftnessExtendedOutput, Arrays.asList(potionSwiftnessEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashExtended, Arrays.asList(potionSwiftnessSplash, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionSwiftnessSplashExtendedOutput, Arrays.asList(potionSwiftnessSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashExtended, Arrays.asList(potionSwiftnessSplashEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionSwiftnessSplashExtendedOutput, Arrays.asList(potionSwiftnessSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashExtended, Arrays.asList(potionSwiftnessExtended, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionSwiftnessSplashExtendedOutput, Arrays.asList(potionSwiftnessExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionSwiftnessEnhanced, Arrays.asList(potionSwiftness, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionSwiftnessEnhancedOutput, Arrays.asList(potionSwiftness, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessEnhanced, Arrays.asList(potionSwiftnessExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionSwiftnessEnhancedOutput, Arrays.asList(potionSwiftnessExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashEnhanced, Arrays.asList(potionSwiftnessSplash, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionSwiftnessSplashEnhancedOutput, Arrays.asList(potionSwiftnessSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashEnhanced, Arrays.asList(potionSwiftnessSplashExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionSwiftnessSplashEnhancedOutput, Arrays.asList(potionSwiftnessSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionSwiftnessSplashEnhanced, Arrays.asList(potionSwiftnessEnhanced, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionSwiftnessSplashEnhancedOutput, Arrays.asList(potionSwiftnessEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionHealing, Arrays.asList(potionAwkward, reagentGlisteringMelon)); RecipeRegistryProxy.addRecipe(potionHealingOutput, Arrays.asList(potionAwkward, reagentGlisteringMelon));
RecipeRegistryProxy.addRecipe(potionHealing, Arrays.asList(potionHealingEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionHealingOutput, Arrays.asList(potionHealingEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionHealingSplash, Arrays.asList(potionHealingSplashEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionHealingSplashOutput, Arrays.asList(potionHealingSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionHealingSplash, Arrays.asList(potionHealing, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionHealingSplashOutput, Arrays.asList(potionHealing, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionHealingEnhanced, Arrays.asList(potionHealing, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionHealingEnhancedOutput, Arrays.asList(potionHealing, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionHealingSplashEnhanced, Arrays.asList(potionHealingSplash, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionHealingSplashEnhancedOutput, Arrays.asList(potionHealingSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionHealingSplashEnhanced, Arrays.asList(potionHealingEnhanced, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionHealingSplashEnhancedOutput, Arrays.asList(potionHealingEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionHarming, Arrays.asList(potionHealing, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionHarmingOutput, Arrays.asList(potionHealing, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarming, Arrays.asList(potionPoison, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionHarmingOutput, Arrays.asList(potionPoison, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarming, Arrays.asList(potionPoisonExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionHarmingOutput, Arrays.asList(potionPoisonExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarming, Arrays.asList(potionHarmingEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionHarmingOutput, Arrays.asList(potionHarmingEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionHarmingSplash, Arrays.asList(potionHealingSplash, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionHarmingSplashOutput, Arrays.asList(potionHealingSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplash, Arrays.asList(potionPoisonSplash, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionHarmingSplashOutput, Arrays.asList(potionPoisonSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplash, Arrays.asList(potionPoisonSplashExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionHarmingSplashOutput, Arrays.asList(potionPoisonSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplash, Arrays.asList(potionHarmingSplashEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionHarmingSplashOutput, Arrays.asList(potionHarmingSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionHarmingSplash, Arrays.asList(potionHarming, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionHarmingSplashOutput, Arrays.asList(potionHarming, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionHarmingEnhanced, Arrays.asList(potionHealingEnhanced, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionHarmingEnhancedOutput, Arrays.asList(potionHealingEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingEnhanced, Arrays.asList(potionHarming, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionHarmingEnhancedOutput, Arrays.asList(potionHarming, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionHarmingEnhanced, Arrays.asList(potionPoisonEnhanced, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionHarmingEnhancedOutput, Arrays.asList(potionPoisonEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhanced, Arrays.asList(potionHealingSplashEnhanced, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhancedOutput, Arrays.asList(potionHealingSplashEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhanced, Arrays.asList(potionHarmingSplash, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhancedOutput, Arrays.asList(potionHarmingSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhanced, Arrays.asList(potionPoisonSplashEnhanced, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhancedOutput, Arrays.asList(potionPoisonSplashEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhanced, Arrays.asList(potionHarmingEnhanced, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionHarmingSplashEnhancedOutput, Arrays.asList(potionHarmingEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionPoison, Arrays.asList(potionAwkward, reagentSpiderEye)); RecipeRegistryProxy.addRecipe(potionPoisonOutput, Arrays.asList(potionAwkward, reagentSpiderEye));
RecipeRegistryProxy.addRecipe(potionPoisonSplash, Arrays.asList(potionPoison, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionPoisonSplashOutput, Arrays.asList(potionPoison, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionPoisonExtended, Arrays.asList(potionPoisonExtended, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionPoisonExtendedOutput, Arrays.asList(potionPoisonExtended, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonExtended, Arrays.asList(potionPoisonEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionPoisonExtendedOutput, Arrays.asList(potionPoisonEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashExtended, Arrays.asList(potionPoisonSplashExtended, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionPoisonSplashExtendedOutput, Arrays.asList(potionPoisonSplashExtended, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashExtended, Arrays.asList(potionPoisonSplashEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionPoisonSplashExtendedOutput, Arrays.asList(potionPoisonSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashExtended, Arrays.asList(potionPoisonExtended, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionPoisonSplashExtendedOutput, Arrays.asList(potionPoisonExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionPoisonEnhanced, Arrays.asList(potionPoison, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionPoisonEnhancedOutput, Arrays.asList(potionPoison, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonEnhanced, Arrays.asList(potionPoisonExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionPoisonEnhancedOutput, Arrays.asList(potionPoisonExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashEnhanced, Arrays.asList(potionPoisonSplash, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionPoisonSplashEnhancedOutput, Arrays.asList(potionPoisonSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashEnhanced, Arrays.asList(potionPoisonSplashExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionPoisonSplashEnhancedOutput, Arrays.asList(potionPoisonSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionPoisonSplashEnhanced, Arrays.asList(potionPoisonEnhanced, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionPoisonSplashEnhancedOutput, Arrays.asList(potionPoisonEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionRegeneration, Arrays.asList(potionAwkward, reagentGhastTear)); RecipeRegistryProxy.addRecipe(potionRegenerationOutput, Arrays.asList(potionAwkward, reagentGhastTear));
RecipeRegistryProxy.addRecipe(potionRegenerationSplash, Arrays.asList(potionRegeneration, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionRegenerationSplashOutput, Arrays.asList(potionRegeneration, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionRegenerationExtended, Arrays.asList(potionRegeneration, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionRegenerationExtendedOutput, Arrays.asList(potionRegeneration, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationExtended, Arrays.asList(potionRegenerationEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionRegenerationExtendedOutput, Arrays.asList(potionRegenerationEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashExtended, Arrays.asList(potionRegenerationSplash, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionRegenerationSplashExtendedOutput, Arrays.asList(potionRegenerationSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashExtended, Arrays.asList(potionRegenerationSplashEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionRegenerationSplashExtendedOutput, Arrays.asList(potionRegenerationSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashExtended, Arrays.asList(potionRegenerationExtended, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionRegenerationSplashExtendedOutput, Arrays.asList(potionRegenerationExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionRegenerationEnhanced, Arrays.asList(potionRegeneration, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionRegenerationEnhancedOutput, Arrays.asList(potionRegeneration, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationEnhanced, Arrays.asList(potionRegenerationExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionRegenerationEnhancedOutput, Arrays.asList(potionRegenerationExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashEnhanced, Arrays.asList(potionRegenerationSplash, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionRegenerationSplashEnhancedOutput, Arrays.asList(potionRegenerationSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashEnhanced, Arrays.asList(potionRegenerationSplashExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionRegenerationSplashEnhancedOutput, Arrays.asList(potionRegenerationSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionRegenerationSplashEnhanced, Arrays.asList(potionRegenerationEnhanced, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionRegenerationSplashEnhancedOutput, Arrays.asList(potionRegenerationEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionAwkward, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessOutput, Arrays.asList(potionAwkward, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionRegeneration, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessOutput, Arrays.asList(potionRegeneration, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionRegenerationEnhanced, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessOutput, Arrays.asList(potionRegenerationEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionStrength, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessOutput, Arrays.asList(potionStrength, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionStrengthEnhanced, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessOutput, Arrays.asList(potionStrengthEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionMundane, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessOutput, Arrays.asList(potionMundane, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeakness, Arrays.asList(potionWeaknessExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionWeaknessOutput, Arrays.asList(potionWeaknessExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionRegenerationSplash, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashOutput, Arrays.asList(potionRegenerationSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionRegenerationSplashEnhanced, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashOutput, Arrays.asList(potionRegenerationSplashEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionStrengthSplash, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashOutput, Arrays.asList(potionStrengthSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionStrengthSplashEnhanced, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashOutput, Arrays.asList(potionStrengthSplashEnhanced, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionMundaneSplash, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashOutput, Arrays.asList(potionMundaneSplash, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionWeaknessSplashExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashOutput, Arrays.asList(potionWeaknessSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionWeaknessSplash, Arrays.asList(potionWeakness, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashOutput, Arrays.asList(potionWeakness, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionWeaknessExtended, Arrays.asList(potionWeakness, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionWeaknessExtendedOutput, Arrays.asList(potionWeakness, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionWeaknessExtended, Arrays.asList(potionRegenerationExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessExtendedOutput, Arrays.asList(potionRegenerationExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessExtended, Arrays.asList(potionStrengthExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessExtendedOutput, Arrays.asList(potionStrengthExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessExtended, Arrays.asList(potionMundaneExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessExtendedOutput, Arrays.asList(potionMundaneExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtended, Arrays.asList(potionWeaknessSplash, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtendedOutput, Arrays.asList(potionWeaknessSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtended, Arrays.asList(potionRegenerationSplashExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtendedOutput, Arrays.asList(potionRegenerationSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtended, Arrays.asList(potionStrengthSplashExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtendedOutput, Arrays.asList(potionStrengthSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtended, Arrays.asList(potionMundaneSplashExtended, reagentFermentedSpiderEye)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtendedOutput, Arrays.asList(potionMundaneSplashExtended, reagentFermentedSpiderEye));
RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtended, Arrays.asList(potionWeaknessExtended, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionWeaknessSplashExtendedOutput, Arrays.asList(potionWeaknessExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionStrength, Arrays.asList(potionAwkward, reagentBlazePowder)); RecipeRegistryProxy.addRecipe(potionStrengthOutput, Arrays.asList(potionAwkward, reagentBlazePowder));
RecipeRegistryProxy.addRecipe(potionStrengthSplash, Arrays.asList(potionStrength, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionStrengthSplashOutput, Arrays.asList(potionStrength, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionStrengthEnhanced, Arrays.asList(potionStrength, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionStrengthEnhancedOutput, Arrays.asList(potionStrength, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthEnhanced, Arrays.asList(potionStrengthExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionStrengthEnhancedOutput, Arrays.asList(potionStrengthExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashEnhanced, Arrays.asList(potionStrengthSplash, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionStrengthSplashEnhancedOutput, Arrays.asList(potionStrengthSplash, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashEnhanced, Arrays.asList(potionStrengthSplashExtended, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionStrengthSplashEnhancedOutput, Arrays.asList(potionStrengthSplashExtended, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashEnhanced, Arrays.asList(potionStrengthEnhanced, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionStrengthSplashEnhancedOutput, Arrays.asList(potionStrengthEnhanced, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionStrengthExtended, Arrays.asList(potionStrength, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionStrengthExtendedOutput, Arrays.asList(potionStrength, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthExtended, Arrays.asList(potionStrengthEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionStrengthExtendedOutput, Arrays.asList(potionStrengthEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashExtended, Arrays.asList(potionStrengthSplash, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionStrengthSplashExtendedOutput, Arrays.asList(potionStrengthSplash, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashExtended, Arrays.asList(potionStrengthSplashEnhanced, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionStrengthSplashExtendedOutput, Arrays.asList(potionStrengthSplashEnhanced, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionStrengthSplashExtended, Arrays.asList(potionStrengthExtended, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionStrengthSplashExtendedOutput, Arrays.asList(potionStrengthExtended, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionThick, Arrays.asList(bottleWater, reagentGlowstoneDust)); RecipeRegistryProxy.addRecipe(potionThickOutput, Arrays.asList(bottleWater, reagentGlowstoneDust));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentSugar)); RecipeRegistryProxy.addRecipe(potionMundaneOutput, Arrays.asList(bottleWater, reagentSugar));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentGlisteringMelon)); RecipeRegistryProxy.addRecipe(potionMundaneOutput, Arrays.asList(bottleWater, reagentGlisteringMelon));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentSpiderEye)); RecipeRegistryProxy.addRecipe(potionMundaneOutput, Arrays.asList(bottleWater, reagentSpiderEye));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentBlazePowder)); RecipeRegistryProxy.addRecipe(potionMundaneOutput, Arrays.asList(bottleWater, reagentBlazePowder));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentMagmaCream)); RecipeRegistryProxy.addRecipe(potionMundaneOutput, Arrays.asList(bottleWater, reagentMagmaCream));
RecipeRegistryProxy.addRecipe(potionMundane, Arrays.asList(bottleWater, reagentGhastTear)); RecipeRegistryProxy.addRecipe(potionMundaneOutput, Arrays.asList(bottleWater, reagentGhastTear));
RecipeRegistryProxy.addRecipe(potionMundaneSplash, Arrays.asList(potionMundane, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionMundaneSplashOutput, Arrays.asList(potionMundane, reagentGunpowder));
RecipeRegistryProxy.addRecipe(potionMundaneExtended, Arrays.asList(bottleWater, reagentRedstoneDust)); RecipeRegistryProxy.addRecipe(potionMundaneExtendedOutput, Arrays.asList(bottleWater, reagentRedstoneDust));
RecipeRegistryProxy.addRecipe(potionMundaneSplashExtended, Arrays.asList(potionMundaneExtended, reagentGunpowder)); RecipeRegistryProxy.addRecipe(potionMundaneSplashExtendedOutput, Arrays.asList(potionMundaneExtended, reagentGunpowder));
} }
} }

View file

@ -1,10 +1,45 @@
package com.pahimar.ee3.reference; package com.pahimar.ee3.reference;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import java.io.File;
public class Files public class Files
{ {
public static final String PRE_ASSIGNED_ENERGY_VALUES = "pre-assigned-energy-values.json"; public static final String PRE_CALCULATION_ENERGY_VALUES = "pre-calculation-energy-values.json";
public static final String POST_ASSIGNED_ENERGY_VALUES = "post-assigned-energy-values.json"; public static final String POST_CALCULATION_ENERGY_VALUES = "post-calculation-energy-values.json";
public static final String TEMPLATE_JSON_FILE = "template.json"; public static final String TEMPLATE_JSON_FILE = "template.json";
public static final String ABILITIES_JSON_FILE = "abilities.json"; public static final String ABILITIES_JSON_FILE = "abilities.json";
public static final String STATIC_ENERGY_VALUES_JSON = "energy-values.json.gz"; public static final String STATIC_ENERGY_VALUES_JSON = "energy-values.json.gz";
public static class Global
{
public static File dataDirectory;
public static File preCalcluationEnergyValueFile;
public static File postCalcluationEnergyValueFile;
public static File abilityFile;
public static File templateTransmutationKnowledgeFile;
public static void init(FMLPreInitializationEvent event)
{
dataDirectory = new File(event.getModConfigurationDirectory().getParentFile(), "data" + File.separator + Reference.LOWERCASE_MOD_ID);
dataDirectory.mkdirs();
File energyValueDataDirectory = new File(dataDirectory, "energyvalues");
energyValueDataDirectory.mkdirs();
preCalcluationEnergyValueFile = new File(energyValueDataDirectory, PRE_CALCULATION_ENERGY_VALUES);
postCalcluationEnergyValueFile = new File(energyValueDataDirectory, POST_CALCULATION_ENERGY_VALUES);
File abilityDataDirectory = new File(dataDirectory, "abilities");
abilityDataDirectory.mkdirs();
abilityFile = new File(abilityDataDirectory, ABILITIES_JSON_FILE);
File knowledgeDataDirectory = new File(dataDirectory, "knowledge");
knowledgeDataDirectory.mkdirs();
templateTransmutationKnowledgeFile = new File(knowledgeDataDirectory, TEMPLATE_JSON_FILE);
}
}
} }

View file

@ -19,14 +19,6 @@ public class Names
public static final String DUMMY_ARRAY = "dummyArray"; public static final String DUMMY_ARRAY = "dummyArray";
} }
public static final class TileEntities
{
private static final String PREFIX = "tile.ee3:";
private static final String SUFFIX = ".name";
public static final String ALCHEMICAL_CHEST = PREFIX + Blocks.ALCHEMICAL_CHEST + SUFFIX;
}
public static final class Items public static final class Items
{ {
public static final String ALCHEMICAL_BAG = "alchemicalBag"; public static final String ALCHEMICAL_BAG = "alchemicalBag";

View file

@ -486,63 +486,63 @@ public class VanillaEnergyValueTest extends EnergyValueMappingsTestSuite
{ {
add(Items.ghast_tear, 4096); add(Items.ghast_tear, 4096);
add(new ItemStack(Items.potionitem, 1, 0), 2); add(new ItemStack(Items.potionitem, 1, 0), 2);
add(new ItemStack(Items.potionitem, 1, 16), 26); add(new ItemStack(Items.potionitem, 1, 16), 8.667);
add(new ItemStack(Items.potionitem, 1, 8193), 4122); add(new ItemStack(Items.potionitem, 1, 8193), 1368.222);
add(new ItemStack(Items.potionitem, 1, 8225), 4506); add(new ItemStack(Items.potionitem, 1, 8225), 163.064);
add(new ItemStack(Items.potionitem, 1, 8257), 4154); add(new ItemStack(Items.potionitem, 1, 8257), 76.151);
add(new ItemStack(Items.potionitem, 1, 16385), 4314); add(new ItemStack(Items.potionitem, 1, 16385), 520.074);
add(new ItemStack(Items.potionitem, 1, 16417), 4698); add(new ItemStack(Items.potionitem, 1, 16417), 129.484);
add(new ItemStack(Items.potionitem, 1, 16449), 4346); add(new ItemStack(Items.potionitem, 1, 16449), 63.509);
add(new ItemStack(Items.potionitem, 1, 8194), 58); add(new ItemStack(Items.potionitem, 1, 8194), 13.556);
add(new ItemStack(Items.potionitem, 1, 8226), 442); add(new ItemStack(Items.potionitem, 1, 8226), 132.519);
add(new ItemStack(Items.potionitem, 1, 8258), 90); add(new ItemStack(Items.potionitem, 1, 8258), 15.185);
add(new ItemStack(Items.potionitem, 1, 16386), 250); add(new ItemStack(Items.potionitem, 1, 16386), 68.519);
add(new ItemStack(Items.potionitem, 1, 16418), 634); add(new ItemStack(Items.potionitem, 1, 16418), 108.173);
add(new ItemStack(Items.potionitem, 1, 16450), 282); add(new ItemStack(Items.potionitem, 1, 16450), 33.506);
add(new ItemStack(Items.potionitem, 1, 8227), null); add(new ItemStack(Items.potionitem, 1, 8227), null);
add(new ItemStack(Items.potionitem, 1, 8259), null); add(new ItemStack(Items.potionitem, 1, 8259), null);
add(new ItemStack(Items.potionitem, 1, 16419), null); add(new ItemStack(Items.potionitem, 1, 16419), null);
add(new ItemStack(Items.potionitem, 1, 16451), null); add(new ItemStack(Items.potionitem, 1, 16451), null);
add(new ItemStack(Items.potionitem, 1, 8196), 154); add(new ItemStack(Items.potionitem, 1, 8196), 45.556);
add(new ItemStack(Items.potionitem, 1, 8228), 538); add(new ItemStack(Items.potionitem, 1, 8228), 138.044);
add(new ItemStack(Items.potionitem, 1, 8260), 570); add(new ItemStack(Items.potionitem, 1, 8260), 20.711);
add(new ItemStack(Items.potionitem, 1, 16388), 346); add(new ItemStack(Items.potionitem, 1, 16388), 79.185);
add(new ItemStack(Items.potionitem, 1, 16420), 730); add(new ItemStack(Items.potionitem, 1, 16420), 111.728);
add(new ItemStack(Items.potionitem, 1, 16452), 762); add(new ItemStack(Items.potionitem, 1, 16452), 26.636);
add(new ItemStack(Items.potionitem, 1, 8261), null); add(new ItemStack(Items.potionitem, 1, 8261), null);
add(new ItemStack(Items.potionitem, 1, 8229), 2246.448); add(new ItemStack(Items.potionitem, 1, 8229), 168.557);
add(new ItemStack(Items.potionitem, 1, 16453), null); add(new ItemStack(Items.potionitem, 1, 16453), null);
add(new ItemStack(Items.potionitem, 1, 16421), 2438.448); add(new ItemStack(Items.potionitem, 1, 16421), 120.186);
add(new ItemStack(Items.potionitem, 1, 8230), null); add(new ItemStack(Items.potionitem, 1, 8230), null);
add(new ItemStack(Items.potionitem, 1, 8262), 1902.448); add(new ItemStack(Items.potionitem, 1, 8262), 77.396);
add(new ItemStack(Items.potionitem, 1, 16422), null); add(new ItemStack(Items.potionitem, 1, 16422), null);
add(new ItemStack(Items.potionitem, 1, 16454), 2094.448); add(new ItemStack(Items.potionitem, 1, 16454), 54.243);
add(new ItemStack(Items.potionitem, 1, 8232), null); add(new ItemStack(Items.potionitem, 1, 8232), null);
add(new ItemStack(Items.potionitem, 1, 8264), 226); add(new ItemStack(Items.potionitem, 1, 8264), 32.963);
add(new ItemStack(Items.potionitem, 1, 16424), null); add(new ItemStack(Items.potionitem, 1, 16424), null);
add(new ItemStack(Items.potionitem, 1, 16456), 418); add(new ItemStack(Items.potionitem, 1, 16456), 39.432);
add(new ItemStack(Items.potionitem, 1, 8201), 794); add(new ItemStack(Items.potionitem, 1, 8201), 258.889);
add(new ItemStack(Items.potionitem, 1, 8233), 1178); add(new ItemStack(Items.potionitem, 1, 8233), 149.369);
add(new ItemStack(Items.potionitem, 1, 8265), 826); add(new ItemStack(Items.potionitem, 1, 8265), 62.455);
add(new ItemStack(Items.potionitem, 1, 16393), 986); add(new ItemStack(Items.potionitem, 1, 16393), 150.296);
add(new ItemStack(Items.potionitem, 1, 16425), 1370); add(new ItemStack(Items.potionitem, 1, 16425), 115.789);
add(new ItemStack(Items.potionitem, 1, 16457), 1018); add(new ItemStack(Items.potionitem, 1, 16457), 49.813);
add(new ItemStack(Items.potionitem, 1, 8234), null); add(new ItemStack(Items.potionitem, 1, 8234), null);
add(new ItemStack(Items.potionitem, 1, 8266), 634); add(new ItemStack(Items.potionitem, 1, 8266), 85.468);
add(new ItemStack(Items.potionitem, 1, 16426), null); add(new ItemStack(Items.potionitem, 1, 16426), null);
add(new ItemStack(Items.potionitem, 1, 16458), 826); add(new ItemStack(Items.potionitem, 1, 16458), 84.551);
add(new ItemStack(Items.potionitem, 1, 8268), null); add(new ItemStack(Items.potionitem, 1, 8268), null);
add(new ItemStack(Items.potionitem, 1, 8236), 730); add(new ItemStack(Items.potionitem, 1, 8236), 111.728);
add(new ItemStack(Items.potionitem, 1, 16460), null); add(new ItemStack(Items.potionitem, 1, 16460), null);
add(new ItemStack(Items.potionitem, 1, 16428), 922); add(new ItemStack(Items.potionitem, 1, 16428), 101.243);
add(new ItemStack(Items.potionitem, 1, 8237), null); add(new ItemStack(Items.potionitem, 1, 8237), null);
add(new ItemStack(Items.potionitem, 1, 8269), null); add(new ItemStack(Items.potionitem, 1, 8269), null);
add(new ItemStack(Items.potionitem, 1, 16429), null); add(new ItemStack(Items.potionitem, 1, 16429), null);
add(new ItemStack(Items.potionitem, 1, 16461), null); add(new ItemStack(Items.potionitem, 1, 16461), null);
add(new ItemStack(Items.potionitem, 1, 8238), null); add(new ItemStack(Items.potionitem, 1, 8238), null);
add(new ItemStack(Items.potionitem, 1, 8270), 2094.448); add(new ItemStack(Items.potionitem, 1, 8270), 54.243);
add(new ItemStack(Items.potionitem, 1, 16430), null); add(new ItemStack(Items.potionitem, 1, 16430), null);
add(new ItemStack(Items.potionitem, 1, 16462), 2286.448); add(new ItemStack(Items.potionitem, 1, 16462), 61.989);
add(Items.glass_bottle, 1); add(Items.glass_bottle, 1);
add(Items.fermented_spider_eye, 192); add(Items.fermented_spider_eye, 192);
add(Items.blaze_powder, 768); add(Items.blaze_powder, 768);

View file

@ -21,17 +21,17 @@ import java.util.*;
public class SerializationHelper public class SerializationHelper
{ {
private static File dataDirectory; private static File instanceDataDirectory;
private static File playerDataDirectory; private static File instancePlayerDataDirectory;
/** /**
* Returns a File reference to the mod specific directory in the data directory * Returns a File reference to the mod specific directory in the data directory
* *
* @return * @return
*/ */
public static File getDataDirectory() public static File getInstanceDataDirectory()
{ {
return dataDirectory; return instanceDataDirectory;
} }
/** /**
@ -39,9 +39,9 @@ public class SerializationHelper
* *
* @return * @return
*/ */
public static File getPlayerDataDirectory() public static File getInstancePlayerDataDirectory()
{ {
return playerDataDirectory; return instancePlayerDataDirectory;
} }
/** /**
@ -49,11 +49,11 @@ public class SerializationHelper
*/ */
public static void initModDataDirectories() public static void initModDataDirectories()
{ {
dataDirectory = new File(FMLCommonHandler.instance().getMinecraftServerInstance().getEntityWorld().getSaveHandler().getWorldDirectory(), "data" + File.separator + Reference.LOWERCASE_MOD_ID); instanceDataDirectory = new File(FMLCommonHandler.instance().getMinecraftServerInstance().getEntityWorld().getSaveHandler().getWorldDirectory(), "data" + File.separator + Reference.LOWERCASE_MOD_ID);
dataDirectory.mkdirs(); instanceDataDirectory.mkdirs();
playerDataDirectory = new File(FMLCommonHandler.instance().getMinecraftServerInstance().getEntityWorld().getSaveHandler().getWorldDirectory(), "playerdata" + File.separator + Reference.LOWERCASE_MOD_ID); instancePlayerDataDirectory = new File(FMLCommonHandler.instance().getMinecraftServerInstance().getEntityWorld().getSaveHandler().getWorldDirectory(), "playerdata" + File.separator + Reference.LOWERCASE_MOD_ID);
playerDataDirectory.mkdirs(); instancePlayerDataDirectory.mkdirs();
} }
public static String getModListMD5() public static String getModListMD5()

View file

@ -132,9 +132,9 @@ commands.ee3.usage=/ee3
commands.ee3.player-not-found.error=Player with name %s was not found on the server commands.ee3.player-not-found.error=Player with name %s was not found on the server
commands.ee3.invalid-nbt-tag.error=Data tag parsing failed: %s commands.ee3.invalid-nbt-tag.error=Data tag parsing failed: %s
commands.ee3.no-item.error=No current item commands.ee3.no-item.error=No current item
commands.ee3.set-energy-value.usage=/ee3 set-energy-value <pre> <item> <value> [data] [dataTag] OR /ee3 set-energy-value <post> <item> <value> [data] [dataTag] commands.ee3.set-energy-value.usage=/ee3 set-energy-value <pre|global-pre|post|global-post> <item> <value> [data] [dataTag]
commands.ee3.set-energy-value.success=%s set a %s EnergyValue of %s to %s commands.ee3.set-energy-value.success=%s set a %s EnergyValue of %s to %s
commands.ee3.set-energy-value-current-item.usage=/ee3 set-energy-value-current-item <pre> <value> OR /ee3 set-energy-value-current-item <post> <value> commands.ee3.set-energy-value-current-item.usage=/ee3 set-energy-value-current-item <pre|global-pre|post|global-post> <value>
commands.ee3.set-energy-value-current-item.success=%s set a %s EnergyValue of %s to %s commands.ee3.set-energy-value-current-item.success=%s set a %s EnergyValue of %s to %s
commands.ee3.sync-energy-values.usage=/ee3 sync-energy-values commands.ee3.sync-energy-values.usage=/ee3 sync-energy-values
commands.ee3.sync-energy-values.success=Successfully synchronized energy values with the server commands.ee3.sync-energy-values.success=Successfully synchronized energy values with the server

View file

@ -5115,7 +5115,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 26.0 "value": 8.667
} }
}, },
{ {
@ -5128,7 +5128,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 4122.0 "value": 1368.222
} }
}, },
{ {
@ -5141,7 +5141,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 58.0 "value": 13.556
} }
}, },
{ {
@ -5154,7 +5154,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 154.0 "value": 45.556
} }
}, },
{ {
@ -5167,7 +5167,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 794.0 "value": 258.889
} }
}, },
{ {
@ -5180,7 +5180,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 4506.0 "value": 163.064
} }
}, },
{ {
@ -5193,7 +5193,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 442.0 "value": 132.519
} }
}, },
{ {
@ -5216,7 +5216,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 538.0 "value": 138.044
} }
}, },
{ {
@ -5229,7 +5229,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 2246.448 "value": 168.557
} }
}, },
{ {
@ -5262,7 +5262,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 1178.0 "value": 149.369
} }
}, },
{ {
@ -5285,7 +5285,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 730.0 "value": 111.728
} }
}, },
{ {
@ -5318,7 +5318,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 4154.0 "value": 76.151
} }
}, },
{ {
@ -5331,7 +5331,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 90.0 "value": 15.185
} }
}, },
{ {
@ -5354,7 +5354,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 570.0 "value": 20.711
} }
}, },
{ {
@ -5377,7 +5377,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 1902.448 "value": 77.396
} }
}, },
{ {
@ -5390,7 +5390,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 226.0 "value": 32.963
} }
}, },
{ {
@ -5403,7 +5403,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 826.0 "value": 62.455
} }
}, },
{ {
@ -5416,7 +5416,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 634.0 "value": 85.468
} }
}, },
{ {
@ -5449,7 +5449,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 2094.448 "value": 54.243
} }
}, },
{ {
@ -5462,7 +5462,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 4314.0 "value": 520.074
} }
}, },
{ {
@ -5475,7 +5475,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 250.0 "value": 68.519
} }
}, },
{ {
@ -5488,7 +5488,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 346.0 "value": 79.185
} }
}, },
{ {
@ -5501,7 +5501,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 986.0 "value": 150.296
} }
}, },
{ {
@ -5514,7 +5514,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 4698.0 "value": 129.484
} }
}, },
{ {
@ -5527,7 +5527,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 634.0 "value": 108.173
} }
}, },
{ {
@ -5550,7 +5550,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 730.0 "value": 111.728
} }
}, },
{ {
@ -5563,7 +5563,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 2438.448 "value": 120.186
} }
}, },
{ {
@ -5596,7 +5596,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 1370.0 "value": 115.789
} }
}, },
{ {
@ -5619,7 +5619,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 922.0 "value": 101.243
} }
}, },
{ {
@ -5652,7 +5652,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 4346.0 "value": 63.509
} }
}, },
{ {
@ -5665,7 +5665,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 282.0 "value": 33.506
} }
}, },
{ {
@ -5688,7 +5688,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 762.0 "value": 26.636
} }
}, },
{ {
@ -5711,7 +5711,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 2094.448 "value": 54.243
} }
}, },
{ {
@ -5724,7 +5724,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 418.0 "value": 39.432
} }
}, },
{ {
@ -5737,7 +5737,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 1018.0 "value": 49.813
} }
}, },
{ {
@ -5750,7 +5750,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 826.0 "value": 84.551
} }
}, },
{ {
@ -5783,7 +5783,7 @@
} }
}, },
"energyValue": { "energyValue": {
"value": 2286.448 "value": 61.989
} }
}, },
{ {