Fruitful work on .txt document parser

This commit is contained in:
WayofTime 2015-02-14 21:37:47 -05:00
parent 815dc167dd
commit 1c806c4328
13 changed files with 557 additions and 17 deletions

View file

@ -9,14 +9,14 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.lang.reflect.*;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import WayofTime.alchemicalWizardry.common.rituals.*;
import cpw.mods.fml.common.*;
import cpw.mods.fml.common.event.*;
import net.minecraft.client.Minecraft;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
@ -77,6 +77,7 @@ import WayofTime.alchemicalWizardry.common.alchemy.CombinedPotionRegistry;
import WayofTime.alchemicalWizardry.common.block.ArmourForge;
import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars;
import WayofTime.alchemicalWizardry.common.book.BUEntries;
import WayofTime.alchemicalWizardry.common.book.SpecialEntryRegistry;
import WayofTime.alchemicalWizardry.common.commands.CommandBind;
import WayofTime.alchemicalWizardry.common.commands.CommandSN;
import WayofTime.alchemicalWizardry.common.commands.CommandUnbind;
@ -141,6 +142,41 @@ import WayofTime.alchemicalWizardry.common.potion.PotionReciprocation;
import WayofTime.alchemicalWizardry.common.potion.PotionSoulFray;
import WayofTime.alchemicalWizardry.common.potion.PotionSoulHarden;
import WayofTime.alchemicalWizardry.common.renderer.AlchemyCircleRenderer;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectAlphaPact;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectAnimalGrowth;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectAutoAlchemy;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectBiomeChanger;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectContainment;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectCrushing;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectDemonPortal;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectEllipsoid;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectEvaporation;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectExpulsion;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFeatheredEarth;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFeatheredKnife;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFlight;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFullStomach;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectGrowth;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectHarvest;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectHealing;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectInterdiction;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectItemRouting;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectItemSuction;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectJumping;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectLava;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectLeap;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectLifeConduit;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectMagnetic;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectOmegaStalling;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectOmegaTest;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSoulBound;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSpawnWard;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSummonMeteor;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSupression;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectUnbinding;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectVeilOfEvil;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectWater;
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectWellOfSuffering;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.cse.earth.CSEMeleeDefaultEarth;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.cse.earth.CSEMeleeDefensiveEarth;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.cse.earth.CSEMeleeEnvironmentalEarth;
@ -240,8 +276,18 @@ import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer;
import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable;
import WayofTime.alchemicalWizardry.common.tileEntity.gui.GuiHandler;
import WayofTime.alchemicalWizardry.common.tweaker.MineTweakerIntegration;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.ModContainer;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
@ -625,12 +671,19 @@ public class AlchemicalWizardry
ItemStack magicalesStack = new ItemStack(ModItems.magicales);
//All crafting goes here
GameRegistry.addRecipe(sacrificialDaggerStack, "ggg", " dg", "i g", 'g', glassStack, 'd', goldIngotStack, 'i', ironIngotStack);
SpecialEntryRegistry.registerLatestIRecipe("sacrificialKnife");
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(lavaCrystalStackCrafted, "glg", "lbl", "odo", 'g', glassStack, 'l', lavaBucketStack, 'b', weakBloodOrbStack, 'd', diamondStack, 'o', obsidianStack));
SpecialEntryRegistry.registerLatestIRecipe("lavaCrystal");
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(waterSigilStackCrafted, "www", "wbw", "wow", 'w', waterBucketStack, 'b', blankSlateStack, 'o', weakBloodOrbStack));
SpecialEntryRegistry.registerLatestIRecipe("waterSigil");
GameRegistry.addRecipe(lavaSigilStackCrafted, "lml", "lbl", "lcl", 'l', lavaBucketStack, 'b', blankSlateStack, 'm', magmaCreamStack, 'c', lavaCrystalStack);
SpecialEntryRegistry.registerLatestIRecipe("lavaSigil");
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(voidSigilStackCrafted, "ese", "ere", "eoe", 'e', emptyBucketStack, 'r', reinforcedSlateStack, 'o', apprenticeBloodOrbStack, 's', stringStack));
SpecialEntryRegistry.registerLatestIRecipe("voidSigil");
GameRegistry.addRecipe(bloodAltarStack, "s s", "scs", "gdg", 's', stoneStack, 'c', furnaceStack, 'd', diamondStack, 'g', goldIngotStack);
SpecialEntryRegistry.registerLatestIRecipe("bloodAltar");
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(bloodRuneCraftedStack, "sss", "ror", "sss", 's', stoneStack, 'o', weakBloodOrbStack, 'r', blankSlateStack));
SpecialEntryRegistry.registerLatestIRecipe("blankRune");
GameRegistry.addRecipe(speedRuneStack, "sbs", "uru", "sbs", 'u', sugarStack, 's', stoneStack, 'r', bloodRuneStack, 'b', blankSlateStack);
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 1), "sbs", "bob", "srs", 's', stoneStack, 'o', magicianBloodOrbStack, 'b', emptyBucketStack, 'r', new ItemStack(ModItems.imbuedSlate)));
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 2), "sbs", "bob", "srs", 's', stoneStack, 'o', magicianBloodOrbStack, 'b', waterBucketStack, 'r', new ItemStack(ModItems.imbuedSlate)));
@ -1566,7 +1619,7 @@ public class AlchemicalWizardry
continue;
}
if(strLine.startsWith("//TITLE "))
if(strLine.startsWith("//TITLE ")) //New entry~
{
String[] newStrings = new String[currentPage + 1 + 1]; //Just to show that it is increasing
for(int i=0; i<strings.length; i++)
@ -1636,7 +1689,7 @@ public class AlchemicalWizardry
{
changePage = true;
}
if(changePage)
if(changePage) //Encode into current entry, then move to next entry
{
String[] newStrings = new String[currentPage + 1 + 1]; //Just to show that it is increasing
for(int i=0; i<strings.length; i++)

View file

@ -0,0 +1,21 @@
package WayofTime.alchemicalWizardry.book.entries;
import net.minecraft.item.crafting.IRecipe;
public class EntryCraftingRecipeCustomText extends EntryCraftingRecipe implements IEntryCustomText
{
public EntryCraftingRecipeCustomText(IRecipe recipes)
{
super(recipes);
}
@Override
public String getText()
{
return "";
}
@Override
public void setText(String str){}
}

View file

@ -0,0 +1,49 @@
package WayofTime.alchemicalWizardry.book.entries;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
public class EntryImageCustomText extends EntryImage implements IEntryCustomText
{
public EntryImageCustomText(String resource, int iconWidth, int iconHeight)
{
super(resource, iconWidth, iconHeight);
}
public EntryImageCustomText(String resource, int iconWidth, int iconHeight, String entryName)
{
super(resource, iconWidth, iconHeight, entryName);
}
public String str = "";
@Override
public String getText()
{
return str;
}
@Override
public void setText(String str)
{
this.str = str;
}
public void drawText(GuiEntry entry, int width, int height, int left, int top, EntityPlayer player, String key, int page, int mX, int mY)
{
int x, y;
if(this.entryName == null)
this.entryName = key;
String s = this.str;
x = left + width / 2 - 58;
y = (top + 15) + 65;
Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(true);
Minecraft.getMinecraft().fontRenderer.drawSplitString(s, x, y, 110, 0);
Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(false);
}
}

View file

@ -0,0 +1,38 @@
package WayofTime.alchemicalWizardry.book.entries;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
public class EntryTextCustomText extends EntryText implements IEntryCustomText
{
public String str = "";
@Override
public String getText()
{
return str;
}
@Override
public void setText(String str)
{
this.str = str;
}
@Override
public void draw(GuiEntry entry, int width, int height, int left, int top, EntityPlayer player, String key, int page, int mX, int mY){
int x, y;
if(this.entryName == null)
this.entryName = key;
String s = this.str;
x = left + width / 2 - 58;
y = (top + 15);
Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(true);
Minecraft.getMinecraft().fontRenderer.drawSplitString(s, x, y, 110, 0);
Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(false);
}
}

View file

@ -0,0 +1,7 @@
package WayofTime.alchemicalWizardry.book.entries;
public interface IEntryCustomText extends IEntry
{
public String getText();
public void setText(String str);
}

View file

@ -43,6 +43,7 @@ public class EntryRegistry
public static HashMap<String, Entry> basics = new HashMap<String, Entry>();
public static HashMap<String, Entry> rituals = new HashMap<String, Entry>();
public static HashMap<String, Entry> bloodUtils = new HashMap<String, Entry>();
public static HashMap<String, Entry> test = new HashMap();
public static Entry[] getEntriesInOrderForCategory(Category category)
{

View file

@ -1,6 +1,7 @@
package WayofTime.alchemicalWizardry.common.book;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.minecraft.item.ItemStack;
@ -30,16 +31,20 @@ public class BUEntries
categoryRituals = new Category("Rituals", new ItemStack(ModItems.itemRitualDiviner), EnumType.ITEM);
catagoryArchitect = new Category("The Architect", new ItemStack(ModBlocks.blockAltar), EnumType.BLOCK);
categoryTest = new Category("Test", new ItemStack(ModItems.aether), EnumType.ITEM);
registerCategories();
}
public static Category categoryBasics;
public static Category categoryRituals;
public static Category catagoryArchitect;
public static Category categoryTest;
public void registerCategories(){
EntryRegistry.registerCategories(BUEntries.categoryBasics);
EntryRegistry.registerCategories(BUEntries.categoryRituals);
EntryRegistry.registerCategories(BUEntries.catagoryArchitect);
EntryRegistry.registerCategories(BUEntries.categoryTest);
}
public void initEntries()
@ -133,6 +138,8 @@ public class BUEntries
/** Debug */
debug = new Entry(new IEntry[]{new EntryText("Debug"), new EntryImage("bloodutils:textures/misc/screenshots/t1.png", 854, 480, "Debug")}, EnumChatFormatting.AQUA + "De" + EnumChatFormatting.RED + "bug", 1);
registerKeys();
registerEntries();
}
@ -251,6 +258,11 @@ public class BUEntries
public static Entry debug;
public void registerKeys()
{
}
public void registerEntries()
{
/* Architect */
@ -332,5 +344,17 @@ public class BUEntries
/** Debug */
EntryRegistry.registerEntry(BUEntries.categoryBasics, EntryRegistry.basics, BUEntries.debug);
this.registerCategory(BUEntries.categoryTest, EntryRegistry.test, BookParser.parseTextFile());
}
public void registerCategory(Category cat, HashMap<String, Entry> entryMap, List<Entry> entries)
{
for(Entry entry : entries)
{
EntryRegistry.registerEntry(cat, entryMap, entry);
}
}
}

View file

@ -0,0 +1,319 @@
package WayofTime.alchemicalWizardry.common.book;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.item.crafting.IRecipe;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.book.compact.Entry;
import WayofTime.alchemicalWizardry.book.entries.EntryCraftingRecipeCustomText;
import WayofTime.alchemicalWizardry.book.entries.EntryImageCustomText;
import WayofTime.alchemicalWizardry.book.entries.EntryTextCustomText;
import WayofTime.alchemicalWizardry.book.entries.IEntryCustomText;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BookParser
{
@SideOnly(Side.CLIENT)
public static List<Entry> parseTextFile()
{
File textFiles = new File("config/BloodMagic/bookDocs");
ArrayList<Entry> entryList = new ArrayList();
//if(textFiles.exists())
{
try {
System.out.println("I am in an island of files!");
InputStream input = AlchemicalWizardry.class.getResourceAsStream("/assets/alchemicalwizardryBooks/books/book.txt");
Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(true);
if(input != null)
{
DataInputStream in = new DataInputStream(input);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
int defMaxLines = 16;
int maxLines = defMaxLines;
int currentPage = 0;
int pageIndex = 1;
String currentTitle = "aw.entry.Magnus";
String[] strings = new String[1];
strings[0] = "";
//New entry stuff
ArrayList<IEntryCustomText> iEntryList = new ArrayList();
IEntryCustomText currentIEntry = new EntryTextCustomText();
boolean lastPageWasSpecial = true;
int entriesPerPage = 14;
while ((strLine = br.readLine()) != null)
{
if(strLine.trim().isEmpty())
{
continue;
}
if(strLine.startsWith("//TITLE ")) //New entry~
{
lastPageWasSpecial = false;
String[] newStrings = new String[currentPage + 1 + 1]; //Just to show that it is increasing
for(int i=0; i<strings.length; i++)
{
newStrings[i] = strings[i];
}
if(currentPage != 0) /* New stuff */
{
currentIEntry.setText(strings[currentPage]);
iEntryList.add(currentIEntry);
Entry entry = new Entry(BookParser.getArrayForList(iEntryList), currentTitle, entryList.size() / entriesPerPage + 1);
entryList.add(entry);
iEntryList.clear();
currentIEntry = new EntryTextCustomText();
}
currentPage++;
newStrings[currentPage - 1] = currentTitle + "." + pageIndex + "=" + newStrings[currentPage - 1];
newStrings[currentPage] = "";
strings = newStrings;
pageIndex = 1;
String title = strLine.replaceFirst("//TITLE ", " ").trim();
currentTitle = title;
continue;
}else if(BookParser.containsSpecialInfo(strLine))
{
if(!strings[currentPage].isEmpty() || lastPageWasSpecial)
{
String[] newStrings = new String[currentPage + 1 + 1]; //Just to show that it is increasing
for(int i=0; i<strings.length; i++)
{
newStrings[i] = strings[i];
}
currentIEntry.setText(strings[currentPage]);
iEntryList.add(currentIEntry);
currentPage++;
newStrings[currentPage - 1] = currentTitle + "." + pageIndex + "=" + newStrings[currentPage - 1];
newStrings[currentPage] = "";
strings = newStrings;
}
currentIEntry = BookParser.getEntryForStringTitle(strLine);
maxLines = BookParser.getlineLimitForStringTitle(strLine, defMaxLines);
lastPageWasSpecial = true;
continue;
}
strLine = strLine.replace('”', '"').replace('“','"').replace("", "...").replace('', '\'').replace('', '-');
if(Minecraft.getMinecraft() != null && Minecraft.getMinecraft().fontRenderer != null)
{
List list = Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strLine, 110);
if(list != null)
{
System.out.println("Number of lines: " + list.size());
}
}
String[] cutStrings = strLine.split(" ");
for(String word : cutStrings)
{
lastPageWasSpecial = true;
boolean changePage = false;
int length = word.length();
word = word.replace('\t', ' ');
List list = Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strings[currentPage] + " " + word, 110);
if(list.size() > maxLines)
{
changePage = true;
}
if(changePage) //Encode into current entry, then move to next entry
{
String[] newStrings = new String[currentPage + 1 + 1]; //Just to show that it is increasing
for(int i=0; i<strings.length; i++)
{
newStrings[i] = strings[i];
}
currentIEntry.setText(strings[currentPage]);
iEntryList.add(currentIEntry);
currentIEntry = new EntryTextCustomText();
currentPage++;
newStrings[currentPage - 1] = currentTitle + "." + pageIndex + "=" + newStrings[currentPage - 1];
newStrings[currentPage] = word;
strings = newStrings;
pageIndex++;
maxLines = defMaxLines;
changePage = false;
}else
{
strings[currentPage] = strings[currentPage] + " " + word;
}
}
int currentLines = Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strings[currentPage], 110).size();
while(Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strings[currentPage] + " ", 110).size() <= currentLines)
{
{
strings[currentPage] = strings[currentPage] + " ";
}
}
System.out.println("" + strLine);
}
strings[currentPage] = strings[currentPage];
//
currentIEntry.setText(strings[currentPage]);
iEntryList.add(currentIEntry);
Entry entry = new Entry(BookParser.getArrayForList(iEntryList), currentTitle, entryList.size() / entriesPerPage + 1);
entryList.add(entry);
iEntryList.clear();
//
File bmDirectory = new File("src/main/resources/assets/alchemicalwizardryBooks");
if(!bmDirectory.exists())
{
bmDirectory.mkdirs();
}
File file = new File(bmDirectory, "books.txt");
// if (file.exists() && file.length() > 3L)
// {
//
// }else
{
PrintWriter writer = new PrintWriter(file);
for(String stri : strings)
{
writer.println(stri);
}
writer.close();
}
//
}
Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(false);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return entryList;
}
public static IEntryCustomText[] getArrayForList(List<IEntryCustomText> list)
{
Object[] tempArray = list.toArray();
IEntryCustomText[] customTextArray = new IEntryCustomText[tempArray.length];
for(int i=0; i<tempArray.length; i++)
{
if(tempArray[i] instanceof IEntryCustomText)
{
customTextArray[i] = (IEntryCustomText)tempArray[i];
}
}
return customTextArray;
}
public static boolean containsSpecialInfo(String unparsedString)
{
return unparsedString.startsWith("//IMAGE") || unparsedString.startsWith("//CRAFTING");
}
public static IEntryCustomText getEntryForStringTitle(String unparsedString)
{
if(unparsedString.startsWith("//IMAGE ")) //Format is //IMAGE maxLines xSize ySize ImageString (optional)Title
{
String lines = unparsedString.replaceFirst("//IMAGE ", "");
String[] arguments = lines.split(" ");
if(arguments.length < 4)
{
return null;
}
int xSize = Integer.decode(arguments[1]);
int ySize = Integer.decode(arguments[2]);
if(arguments.length >= 5)
{
return new EntryImageCustomText(arguments[3], xSize, ySize, arguments[4]);
}else
{
return new EntryImageCustomText(arguments[3], xSize, ySize);
}
}else if(unparsedString.startsWith("//CRAFTING "))
{
String lines = unparsedString.replaceFirst("//CRAFTING ", "");
IRecipe recipe = SpecialEntryRegistry.getIRecipeForKey(lines);
if(recipe != null)
{
return new EntryCraftingRecipeCustomText(recipe);
}
}
return new EntryTextCustomText();
}
public static int getlineLimitForStringTitle(String unparsedString, int def)
{
if(unparsedString.startsWith("//IMAGE "))
{
String lines = unparsedString.replaceFirst("//IMAGE ", "");
String[] arguments = lines.split(" ");
if(arguments.length < 4)
{
return def;
}
return Integer.decode(arguments[0]);
}else if(unparsedString.startsWith("//CRAFTING "))
{
return 0;
}
return def;
}
}

View file

@ -0,0 +1,27 @@
package WayofTime.alchemicalWizardry.common.book;
import java.util.HashMap;
import java.util.Map;
import WayofTime.alchemicalWizardry.book.registries.RecipeRegistry;
import net.minecraft.item.crafting.IRecipe;
public class SpecialEntryRegistry
{
public static Map<String, IRecipe> recipeStringMap = new HashMap();
public static void registerIRecipeKey(IRecipe recipe, String key)
{
recipeStringMap.put(key, recipe);
}
public static IRecipe getIRecipeForKey(String str)
{
return recipeStringMap.get(str);
}
public static void registerLatestIRecipe(String key)
{
SpecialEntryRegistry.registerIRecipeKey(RecipeRegistry.getLatestCraftingRecipe(), key);
}
}

View file

@ -57,7 +57,7 @@ public class RitualEffectDemonPortal extends RitualEffect
if(reagentAmount < neededAmount)
{
reagentsFulfilled = false;
System.out.println("Reagents not fulfilled. Missing: " + ReagentRegistry.getKeyForReagent(reagent));
// System.out.println("Reagents not fulfilled. Missing: " + ReagentRegistry.getKeyForReagent(reagent));
int drainAmount = Math.min(drainRate, neededAmount - reagentAmount);
if(drainAmount <= 0)

View file

@ -619,7 +619,7 @@ public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFlui
PotionEffect regenEffect = player.getActivePotionEffect(Potion.regeneration);
if (regenEffect != null && regenEffect.getAmplifier() > 0)
{
if(AlchemicalWizardry.causeHungerChatMessage && player.getActivePotionEffect(Potion.hunger) != null)
if(AlchemicalWizardry.causeHungerChatMessage && player.getActivePotionEffect(Potion.hunger) == null)
{
player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("message.altar.hunger")));
}