Removed redundant book code.

This commit is contained in:
WayofTime 2015-07-08 22:03:38 -04:00
parent 723a8b4a7e
commit 786498e615
36 changed files with 7 additions and 2510 deletions

View file

@ -11,8 +11,6 @@ import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import WayofTime.alchemicalWizardry.common.thread.CommandDown
loadGAPI;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@ -256,6 +254,7 @@ import WayofTime.alchemicalWizardry.common.spell.simple.SpellWateryGrave;
import WayofTime.alchemicalWizardry.common.spell.simple.SpellWindGust;
import WayofTime.alchemicalWizardry.common.summoning.SummoningHelperAW;
import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry;
import WayofTime.alchemicalWizardry.common.thread.CommandDownloadGAPI;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAlchemicCalcinator;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEBellJar;

View file

@ -1,83 +0,0 @@
package WayofTime.alchemicalWizardry.book.classes.guide;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import WayofTime.alchemicalWizardry.book.classes.guide.elements.ElementCategory;
import WayofTime.alchemicalWizardry.book.compact.Category;
import WayofTime.alchemicalWizardry.book.registries.EntryRegistry;
public class GuiCategories extends GuiScreen{
public GuiCategories(EntityPlayer player){
this.player = player;
}
private static final ResourceLocation gui = new ResourceLocation("bloodutils:textures/gui/front.png");
int gwidth = 192;
int gheight = 192;
int x, y;
ElementCategory[] categories = new ElementCategory[EntryRegistry.categories.size()];
EntityPlayer player;
@Override
public void initGui(){
super.initGui();
x = (this.width/2) - (gwidth/2);
y = (this.height/2) - (gheight/2);
this.buttonList.clear();
int pX = x - 1;
int pY = y + 12;
int iWidth = 20;
int iHeight = 20;
for(int i = 0; i < EntryRegistry.categories.size(); i++){
Category category = EntryRegistry.categories.get(i);
this.categories[i] = new ElementCategory(category, pX, pY + (i*iHeight) - 2, iWidth, iHeight, this.player);
}
}
@Override
public void drawScreen(int mX, int mY, float f1){
super.drawScreen(mX, mY, f1);
int fHeight = Minecraft.getMinecraft().fontRenderer.FONT_HEIGHT;
GL11.glColor4f(1F, 1F, 1F, 1F);
this.mc.renderEngine.bindTexture(gui);
drawTexturedModalRect(x, y, 0, 0, gwidth, gheight);
/** Title */
String str = "Categories";
this.drawCenteredString(fontRendererObj, str, this.x + gwidth / 2, y - 15, 0x336666);
for(int i = 0; i < EntryRegistry.categories.size(); i++){
ElementCategory category = this.categories[i];
category.drawElement();
if(category.isMouseInElement(mX, mY)){
category.onMouseEnter(mX, mY);
}
}
}
@Override
public void mouseClicked(int mX, int mY, int type){
super.mouseClicked(mX, mY, type);
for(int i = 0; i < EntryRegistry.categories.size(); i++){
ElementCategory category = this.categories[i];
if(category.isMouseInElement(mX, mY)){
category.onMouseClick(mX, mY, type);
}
}
}
@Override
public boolean doesGuiPauseGame(){
return false;
}
}

View file

@ -1,150 +0,0 @@
package WayofTime.alchemicalWizardry.book.classes.guide;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import WayofTime.alchemicalWizardry.book.classes.guide.buttons.ButtonNext;
import WayofTime.alchemicalWizardry.book.compact.Category;
import WayofTime.alchemicalWizardry.book.compact.Entry;
import WayofTime.alchemicalWizardry.book.entries.IEntry;
import WayofTime.alchemicalWizardry.book.registries.EntryRegistry;
public class GuiEntry extends GuiScreen{
public GuiEntry(String key, EntityPlayer player, Category category){
this.key = key;
this.player = player;
this.category = category;
}
public GuiEntry(String key, EntityPlayer player, Category category, int currPage){
this.key = key;
this.player = player;
this.category = category;
this.currPage = currPage;
}
private static final ResourceLocation gui = new ResourceLocation("bloodutils:textures/gui/guide.png");
int gwidth = 192;
int gheight = 192;
int prevPage;
int left, top;
String key;
int currPage = 1;
GuiButton next, prev, back;
EntityPlayer player;
Category category;
@SuppressWarnings("unchecked")
@Override
public void initGui(){
super.initGui();
left = (this.width/2) - (gwidth/2);
top = (this.height/2) - (gheight/2);
this.buttonList.clear();
int k = (this.width - this.gwidth) / 2;
this.buttonList.add(next = new ButtonNext(500, k + 120, top + 160, true));
this.buttonList.add(prev = new ButtonNext(501, k + 38, top + 160, false));
Entry e = EntryRegistry.entries.get(this.category).get(this.key);
if(e != null){
IEntry entry = e.entry[this.currPage - 1];
if(entry != null)
entry.initGui(gwidth, gheight, left, top, player, this.buttonList);
}else{
mc.displayGuiScreen(new GuiCategories(this.player));
}
}
@Override
public void drawScreen(int mX, int mY, float f1){
GL11.glColor4f(1F, 1F, 1F, 1F);
this.mc.renderEngine.bindTexture(gui);
drawTexturedModalRect(left, top, 0, 0, gwidth, gheight);
Entry e = EntryRegistry.entries.get(this.category).get(this.key);
/** Title */
String str = e.name;
this.drawCenteredString(fontRendererObj, str, this.left + gwidth / 2, top - 15, 0x336666);
/** Current Page */
this.drawCenteredString(fontRendererObj, (currPage) + "/" + (e.entry.length), this.left + gwidth / 2, top + 160, 0x336666);
IEntry entry = e.entry[currPage - 1];
if(entry != null){
entry.draw(this, gwidth, gheight, left, top, player, e.name, currPage, mX, mY);
}
super.drawScreen(mX, mY, f1);
}
@Override
public void mouseClicked(int mX, int mY, int type){
super.mouseClicked(mX, mY, type);
if(type == 1)
mc.displayGuiScreen(new GuiIndex(this.category, this.player));
}
@Override
public void keyTyped(char c, int i){
super.keyTyped(c, i);
if(Keyboard.getEventKeyState()){
if(i == 14){
mc.displayGuiScreen(new GuiIndex(this.category, this.player));
return;
}
}
}
@Override
public boolean doesGuiPauseGame(){
return false;
}
@Override
protected void actionPerformed(GuiButton button){
int id = button.id;
int maxPages = EntryRegistry.entries.get(this.category).get(this.key).entry.length;
if(id == 500){
if(currPage < maxPages){
currPage++;
initGui();
}
}else if(id == 501){
if(currPage > 1){
currPage--;
initGui();
}
}else{
Entry e = EntryRegistry.entries.get(this.category).get(this.key);
if(e != null){
IEntry entry = e.entry[this.currPage];
if(entry != null)
entry.actionPerformed(button);
}else{
mc.displayGuiScreen(new GuiCategories(this.player));
}
}
}
@Override
public void onGuiClosed(){
ItemStack held = player.getHeldItem();
if(held.hasTagCompound()){
held.getTagCompound().setString("CATEGORY", this.category.name);
held.getTagCompound().setString("KEY", this.key);
held.getTagCompound().setInteger("PAGE", this.currPage);
}
}
}

View file

@ -1,216 +0,0 @@
package WayofTime.alchemicalWizardry.book.classes.guide;
import java.util.HashMap;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import WayofTime.alchemicalWizardry.book.classes.guide.buttons.ButtonNext;
import WayofTime.alchemicalWizardry.book.classes.guide.buttons.ButtonPage;
import WayofTime.alchemicalWizardry.book.classes.guide.elements.ElementCategory;
import WayofTime.alchemicalWizardry.book.compact.Category;
import WayofTime.alchemicalWizardry.book.compact.Entry;
import WayofTime.alchemicalWizardry.book.registries.EntryRegistry;
public class GuiIndex extends GuiScreen{
public GuiIndex(Category category, EntityPlayer player){
this.category = category;
this.player = player;
}
public GuiIndex(Category category, EntityPlayer player, int currPage){
this.category = category;
this.player = player;
this.currPage = currPage;
}
private static final ResourceLocation gui = new ResourceLocation("bloodutils:textures/gui/guide.png");
GuiButton prev, next, back;
Category category;
EntityPlayer player;
ElementCategory[] categories = new ElementCategory[EntryRegistry.categories.size()];
int gwidth = 192;
int gheight = 192;
int left, top;
int currPage = 0;
@SuppressWarnings("unchecked")
@Override
public void initGui(){
super.initGui();
left = (this.width/2) - (gwidth/2);
top = (this.height/2) - (gheight/2);
this.buttonList.clear();
populate();
drawCategories();
int k = (this.width - this.gwidth) / 2;
this.buttonList.add(next = new ButtonNext(500, k + 120, top + 160, true));
this.buttonList.add(prev = new ButtonNext(501, k + 38, top + 160, false));
}
public void drawCategories(){
int pX = left - 1;
int pY = top + 12;
int iWidth = 20;
int iHeight = 20;
for(int i = 0; i < EntryRegistry.categories.size(); i++){
Category category = EntryRegistry.categories.get(i);
this.categories[i] = new ElementCategory(category, pX, pY + (i*iHeight) - 2, iWidth, iHeight, this.player);
}
}
@SuppressWarnings("unchecked")
public void populate(){
this.buttonList.clear();
HashMap<String, Entry> entries = EntryRegistry.entries.get(this.category);
int x, y;
if(entries != null && !entries.isEmpty()){
int j = 0;
Entry[] entryList = EntryRegistry.getEntriesInOrderForCategory(category);
for(int i = 0; i < entryList.length; i++){
Entry entry = entryList[i];
if(entry != null && entry.indexPage == this.currPage){
x = this.left + gwidth / 2 - 75;
y = (top + 15) + (10*j);
buttonList.add(new ButtonPage(j, x, y, 110, 10, ""));
j++;
}
}
}
int k = (this.width - this.gwidth) / 2;
this.buttonList.add(next = new ButtonNext(500, k + 120, top + 160, true));
this.buttonList.add(prev = new ButtonNext(501, k + 38, top + 160, false));
}
@Override
public void drawScreen(int mX, int mY, float f1){
GL11.glColor4f(1F, 1F, 1F, 1F);
this.mc.renderEngine.bindTexture(gui);
drawTexturedModalRect(left, top, 0, 0, gwidth, gheight);
/** Title */
String str = category.name;
this.drawCenteredString(fontRendererObj, str, this.left + gwidth / 2, top - 15, 0x336666);
/** Current Page */
if(this.category != null && EntryRegistry.maxEntries.containsKey(this.category)){
int size = EntryRegistry.maxEntries.get(this.category);
this.drawCenteredString(fontRendererObj, (currPage + 1) + "/" + (size + 1), this.left + gwidth / 2, top + 160, 0x336666);
registerButtons();
}
for(int i = 0; i < EntryRegistry.categories.size(); i++){
ElementCategory category = this.categories[i];
category.drawElement();
if(category.isMouseInElement(mX, mY)){
category.onMouseEnter(mX, mY);
}
}
super.drawScreen(mX, mY, f1);
}
public void registerButtons(){
HashMap<String, Entry> entries = EntryRegistry.entries.get(this.category);
if(entries != null && !entries.isEmpty()){
Entry[] entryList = EntryRegistry.getEntriesInOrderForCategory(category);
int j = 0;
for(int i = 0; i < entryList.length; i++){
Entry entry = entryList[i];
if(entry != null && entry.indexPage == this.currPage){
String title = entry.name;
if(title != null && buttonList.get(j) != null && buttonList.get(j) instanceof ButtonPage){
ButtonPage button = (ButtonPage) buttonList.get(j);
button.displayString = title;
j++;
}
}
}
}
}
@Override
public void mouseClicked(int mX, int mY, int type){
super.mouseClicked(mX, mY, type);
if(type == 1)
mc.displayGuiScreen(new GuiCategories(this.player));
for(int i = 0; i < EntryRegistry.categories.size(); i++){
ElementCategory category = this.categories[i];
if(category.isMouseInElement(mX, mY)){
category.onMouseClick(mX, mY, type);
}
}
}
@Override
public boolean doesGuiPauseGame(){
return false;
}
@Override
protected void actionPerformed(GuiButton button){
int id = button.id;
int size;
if(EntryRegistry.maxEntries.containsKey(this.category))
size = EntryRegistry.maxEntries.get(this.category);
else
size = 1;
if(id == 500){
if(currPage + 1 < size + 1){
currPage++;
populate();
registerButtons();
}
}else if(id == 501){
if(currPage > 0){
currPage--;
populate();
registerButtons();
}
}else{
mc.displayGuiScreen(new GuiEntry(button.displayString, player, category));
}
}
@Override
public void keyTyped(char c, int i){
super.keyTyped(c, i);
if(Keyboard.getEventKeyState()){
if(i == 14){
mc.displayGuiScreen(new GuiCategories(this.player));
return;
}
}
}
@Override
public void onGuiClosed(){
ItemStack held = player.getHeldItem();
if(held.hasTagCompound()){
held.getTagCompound().setString("CATEGORY", this.category.name);
held.getTagCompound().setString("KEY", "0");
held.getTagCompound().setInteger("PAGE", this.currPage);
}
}
}

View file

@ -1,38 +0,0 @@
package WayofTime.alchemicalWizardry.book.classes.guide.buttons;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
public class ButtonNext extends GuiButton {
private final boolean field_146151_o;
public ButtonNext(int id, int x, int y, boolean p_i1079_4_){
super(id, x, y, 23, 13, "");
this.field_146151_o = p_i1079_4_;
}
public void drawButton(Minecraft mc, int p_146112_2_, int p_146112_3_){
if (this.visible){
boolean flag = p_146112_2_ >= this.xPosition && p_146112_3_ >= this.yPosition && p_146112_2_ < this.xPosition + this.width && p_146112_3_ < this.yPosition + this.height;
GL11.glEnable(GL11.GL_BLEND);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
mc.getTextureManager().bindTexture(new ResourceLocation("bloodutils:textures/gui/guide.png"));
int k = 0;
int l = 192;
if (flag){
k += 23;
}
if (!this.field_146151_o){
l += 13;
}
this.drawTexturedModalRect(this.xPosition, this.yPosition, k, l, 23, 13);
GL11.glDisable(GL11.GL_BLEND);
}
}
}

View file

@ -1,33 +0,0 @@
package WayofTime.alchemicalWizardry.book.classes.guide.buttons;
import java.awt.Color;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
public class ButtonPage extends GuiButton {
public ButtonPage(int id, int xPos, int yPos, int width, int height, String string) {
super(id, xPos, yPos, width, height, string);
}
int gwidth = 170;
int gheight = 180;
@Override
public void drawButton(Minecraft mc, int x, int y) {
field_146123_n = x >= xPosition && y >= yPosition && x < xPosition + width && y < yPosition + height;
int state = getHoverState(field_146123_n);
x = this.xPosition + width / 2 - 30;
y = this.yPosition + (height - 6) / 2;
mc.fontRenderer.setUnicodeFlag(true);
mc.fontRenderer.drawString(displayString, x + (state == 2 ? 5 : 0), y, calcColor(state));
mc.fontRenderer.setUnicodeFlag(false);
}
public int calcColor(int state){
if(state == 2)
return new Color(155, 155, 155).getRGB();
else
return new Color(55, 55, 55).getRGB();
}
}

View file

@ -1,55 +0,0 @@
package WayofTime.alchemicalWizardry.book.classes.guide.elements;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiIndex;
import WayofTime.alchemicalWizardry.book.compact.Category;
import WayofTime.alchemicalWizardry.book.helpers.GuiHelper;
import WayofTime.alchemicalWizardry.book.interfaces.IEntryElement;
public class ElementCategory extends GuiScreen implements IEntryElement{
public ElementCategory(Category category, int x, int y, int width, int height, EntityPlayer player) {
this.category = category;
this.player = player;
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
public Category category;
public EntityPlayer player;
public int x;
public int y;
public int width;
public int height;
@Override
public void drawElement() {
IIcon icon = category.iconStack.getIconIndex();
Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation("bloodutils:textures/misc/tab.png"));
GuiHelper.drawIconWithoutColor(x - 1, y - 1, width + 2 , height + 2, 0);
GuiHelper.renderIcon(x + 3, y + 2, 16, 16, icon, this.category.type);
}
@Override
public boolean isMouseInElement(int mX, int mY) {
return GuiHelper.isMouseBetween(mX, mY, x, y, width, height);
}
@Override
public void onMouseEnter(int mX, int mY) {
Minecraft.getMinecraft().fontRenderer.drawString(this.category.name, mX + 6, mY, 0);
}
@Override
public void onMouseClick(int mX, int mY, int type){
Minecraft.getMinecraft().displayGuiScreen(new GuiIndex(this.category, this.player));
}
}

View file

@ -1,16 +0,0 @@
package WayofTime.alchemicalWizardry.book.compact;
import net.minecraft.item.ItemStack;
import WayofTime.alchemicalWizardry.book.enums.EnumType;
public class Category {
public Category(String name, ItemStack iconStack, EnumType type){
this.name = name;
this.iconStack = iconStack;
this.type = type;
}
public String name;
public ItemStack iconStack;
public EnumType type;
}

View file

@ -1,21 +0,0 @@
package WayofTime.alchemicalWizardry.book.compact;
import net.minecraft.item.Item;
public class CompactItem {
public CompactItem(Item item1, Item item2){
this.item1 = item1;
this.item2 = item2;
}
public Item item1;
public Item item2;
@Override
public boolean equals(Object obj){
if(obj instanceof CompactItem){
CompactItem ci = (CompactItem)obj;
return ci.item1 == this.item1 && ci.item2 == this.item2;
}
return false;
}
}

View file

@ -1,14 +0,0 @@
package WayofTime.alchemicalWizardry.book.compact;
import WayofTime.alchemicalWizardry.book.entries.IEntry;
public class Entry {
public Entry(IEntry[] entry, String name, int indexPage){
this.entry = entry;
this.name = name;
this.indexPage = indexPage - 1;
}
public IEntry[] entry;
public String name;
public int indexPage;
}

View file

@ -1,124 +0,0 @@
package WayofTime.alchemicalWizardry.book.entries;
import java.awt.Color;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipe;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
public class EntryAltarRecipe implements IEntry{
public EntryAltarRecipe(AltarRecipe recipes){
this.recipes = recipes;
populate(recipes);
}
public AltarRecipe recipes;
public ItemStack input;
public ItemStack output;
public int essence;
public ArrayList<ItemIcon> icons = new ArrayList<ItemIcon>();
@SuppressWarnings("unchecked")
public void populate(AltarRecipe recipe){
this.input = recipe.requiredItem;
this.output = recipe.result;
this.essence = recipe.liquidRequired;
}
@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;
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1F, 1F, 1F, 1F);
RenderHelper.enableGUIStandardItemLighting();
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glEnable(GL11.GL_DEPTH_TEST);
renderOverlay(entry, width, height, left, top);
x = left + width / 2 - (65-45);
y = (height/2 - 36) + (18*(4-3));
drawIcon(this.input, x, y);
/** Result */
x = left + width / 2 - (65-(48+48)-5);
y = (height/2 - 36) + (18*(4-3));
drawIcon(this.output, x, y);
RenderHelper.disableStandardItemLighting();
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
for(ItemIcon icon : icons){
if(icon.stack != null)
icon.onMouseBetween(mX, mY);
}
}
public void drawIcon(ItemStack stack, int x, int y){
RenderItem ri = new RenderItem();
ri.renderItemAndEffectIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().getTextureManager(), stack, x, y);
ri.renderItemOverlayIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().getTextureManager(), stack, x, y);
icons.add(new ItemIcon(stack, x, y));
}
public void renderOverlay(GuiEntry entry, int width, int height, int left, int top){
TextureManager tm = Minecraft.getMinecraft().getTextureManager();
tm.bindTexture(new ResourceLocation("bloodutils:textures/gui/altar.png"));
entry.drawTexturedModalRect(left, (height/2 - 36) + (18*0) - 17, 0, 0, width, height);
}
@SuppressWarnings("rawtypes")
@Override
public void initGui(int width, int height, int left, int top,
EntityPlayer player, List buttonList){
}
@Override
public void actionPerformed(GuiButton button){
}
static class ItemIcon {
public ItemIcon(ItemStack stack, int x, int y){
this.stack = stack;
this.x = x;
this.y = y;
}
public ItemStack stack;
public int x, y;
public void onMouseBetween(int mX, int mY){
int xSize = x + 16;
int ySize = y + 16;
if(mX > x && mX < xSize && mY > y && mY < ySize){
GL11.glDisable(GL11.GL_DEPTH_TEST);
if(stack != null && stack.getDisplayName() != null)
Minecraft.getMinecraft().fontRenderer.drawString(stack.getDisplayName(), mX + 6, mY, new Color(139, 137, 137).getRGB());
GL11.glEnable(GL11.GL_DEPTH_TEST);
}
}
}
}

View file

@ -1,209 +0,0 @@
package WayofTime.alchemicalWizardry.book.entries;
import java.awt.Color;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.item.crafting.ShapedRecipes;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.oredict.ShapedOreRecipe;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry;
import WayofTime.alchemicalWizardry.api.items.ShapedBloodOrbRecipe;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
public class EntryCraftingRecipe implements IEntry{
public EntryCraftingRecipe(IRecipe recipes){
this.recipes = recipes;
populate(recipes);
}
public IRecipe recipes;
public ItemStack[] recipe;
public ItemStack output;
public ArrayList<ItemIcon> icons = new ArrayList<ItemIcon>();
@SuppressWarnings("unchecked")
public void populate(IRecipe recipe){
if(recipe instanceof ShapedRecipes){
ShapedRecipes rec = (ShapedRecipes)recipe;
if(rec != null && rec.recipeItems != null && rec.recipeItems.length > 0){
this.recipe = rec.recipeItems;
this.output = rec.getRecipeOutput();
}
}else if(recipe instanceof ShapedOreRecipe){
ShapedOreRecipe rec = (ShapedOreRecipe)recipe;
this.recipe = new ItemStack[rec.getInput().length];;
for(int i = 0; i < rec.getInput().length; i++){
ItemStack s = null;
if(rec.getInput()[i] instanceof ItemStack){
s = (ItemStack)rec.getInput()[i];
}else{
s = ((ArrayList<ItemStack>)rec.getInput()[i]).get(0);
}
this.recipe[i] = s;
this.output = rec.getRecipeOutput();
}
}else if(recipe instanceof ShapedBloodOrbRecipe){
ShapedBloodOrbRecipe rec = (ShapedBloodOrbRecipe)recipe;
this.recipe = new ItemStack[rec.getInput().length];;
for(int i = 0; i < rec.getInput().length; i++){
ItemStack s = null;
if(rec.getInput()[i] instanceof ItemStack){
s = (ItemStack)rec.getInput()[i];
}else if(rec.getInput()[i] instanceof Integer)
{
s = AltarRecipeRegistry.orbMap.get((Integer)rec.getInput()[i]);
}else if(rec.getInput()[i] instanceof Object){
System.out.println(rec.getInput()[i].getClass());
s = new ItemStack(ModItems.masterBloodOrb);
}else{
s = ((ArrayList<ItemStack>)rec.getInput()[i]).get(0);
}
this.recipe[i] = s;
this.output = rec.getRecipeOutput();
}
}
}
@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;
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1F, 1F, 1F, 1F);
RenderHelper.enableGUIStandardItemLighting();
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glEnable(GL11.GL_DEPTH_TEST);
renderOverlay(entry, width, height, left, top);
/** Row 1 */
x = (left + width / 2) - (65-31);
y = (height/2 - 18) + (18*0);
drawIcon(0, x, y);
x = left + width / 2 - (65-48) + 1;
y = (height/2 - 18) + (18*(3-3));
drawIcon(1, x, y);
x = left + width / 2 - (65-(48+16)-3);
y = (height/2 - 18) + (18*(6-6));
drawIcon(2, x, y);
/** Row 2 */
x = (left + width / 2) - (65-31);
y = (height/2 - 18) + (18*1);
drawIcon(3, x, y);
x = left + width / 2 - (65-48) + 1;
y = (height/2 - 18) + (18*(4-3));
drawIcon(4, x, y);
x = left + width / 2 - (65-(48+16)-3);
y = (height/2 - 18) + (18*(7-6));
drawIcon(5, x, y);
/** Row 3 */
x = (left + width / 2) - (65-31);
y = (height/2 - 18) + (18*2);
drawIcon(6, x, y);
x = left + width / 2 - (65-48) + 1;
y = (height/2 - 18) + (18*(5-3));
drawIcon(7, x, y);
x = left + width / 2 - (65-(48+16)-3);
y = (height/2 - 18) + (18*(8-6));
drawIcon(8, x, y);
/** Result */
x = left + width / 2 - (65-(48+48)-5);
y = (height/2 - 18) + (18*(4-3));
drawIcon(this.output, x, y);
RenderHelper.disableStandardItemLighting();
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
for(ItemIcon icon : icons){
if(icon.stack != null)
icon.onMouseBetween(mX, mY);
}
}
public void drawIcon(int entry, int x, int y){
RenderItem ri = new RenderItem();
if(recipe != null && recipe.length > 0 && recipe[entry] != null){
ri.renderItemAndEffectIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().getTextureManager(), recipe[entry], x, y);
ri.renderItemOverlayIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().getTextureManager(), recipe[entry], x, y);
icons.add(new ItemIcon(recipe[entry], x, y));
}
}
public void drawIcon(ItemStack stack, int x, int y){
RenderItem ri = new RenderItem();
ri.renderItemAndEffectIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().getTextureManager(), stack, x, y);
ri.renderItemOverlayIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().getTextureManager(), stack, x, y);
icons.add(new ItemIcon(stack, x, y));
}
public void renderOverlay(GuiEntry entry, int width, int height, int left, int top){
TextureManager tm = Minecraft.getMinecraft().getTextureManager();
tm.bindTexture(new ResourceLocation("bloodutils:textures/gui/crafting.png"));
entry.drawTexturedModalRect(left, (height/2 - 18) + (18*0) - 17, 0, 0, width, height);
}
@SuppressWarnings("rawtypes")
@Override
public void initGui(int width, int height, int left, int top,
EntityPlayer player, List buttonList){
}
@Override
public void actionPerformed(GuiButton button){
}
static class ItemIcon {
public ItemIcon(ItemStack stack, int x, int y){
this.stack = stack;
this.x = x;
this.y = y;
}
public ItemStack stack;
public int x, y;
public void onMouseBetween(int mX, int mY){
int xSize = x + 16;
int ySize = y + 16;
if(mX > x && mX < xSize && mY > y && mY < ySize){
GL11.glDisable(GL11.GL_DEPTH_TEST);
if(stack != null && stack.getDisplayName() != null)
Minecraft.getMinecraft().fontRenderer.drawString(stack.getDisplayName(), mX + 6, mY, new Color(139, 137, 137).getRGB());
GL11.glEnable(GL11.GL_DEPTH_TEST);
}
}
}
}

View file

@ -1,21 +0,0 @@
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

@ -1,73 +0,0 @@
package WayofTime.alchemicalWizardry.book.entries;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
import WayofTime.alchemicalWizardry.book.helpers.GuiHelper;
public class EntryImage implements IEntry{
public EntryImage(String resource, int iconWidth, int iconHeight){
this.resource = new ResourceLocation(resource);
this.iconWidth = iconWidth;
this.iconHeight = iconHeight;
}
public ResourceLocation resource;
public int iconWidth;
public int iconHeight;
public EntryImage(String resource, int iconWidth, int iconHeight, String entryName){
this.resource = new ResourceLocation(resource);
this.iconWidth = iconWidth;
this.iconHeight = iconHeight;
this.entryName = entryName;
}
public String entryName;
@Override
public void draw(GuiEntry entry, int width, int height, int left, int top, EntityPlayer player, String key, int page, int mX, int mY){
drawImage(entry, width, height, left, top, player, key, page, mX, mY);
drawText(entry, width, height, left, top, player, key, page, mX, mY);
}
public void drawImage(GuiEntry entry, int width, int height, int left, int top, EntityPlayer player, String key, int page, int mX, int mY){
int x = left + 32;
int y = top + 10;
Minecraft.getMinecraft().getTextureManager().bindTexture(this.resource);
GuiHelper.drawScaledIconWithoutColor(x, y, this.iconWidth, this.iconHeight, 0);
}
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 = StatCollector.translateToLocal("aw.entry." + this.entryName + "." + page);
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);
}
@SuppressWarnings("rawtypes")
@Override
public void initGui(int width, int height, int left, int top,
EntityPlayer player, List buttonList) {
}
@Override
public void actionPerformed(GuiButton button){
}
}

View file

@ -1,49 +0,0 @@
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

@ -1,52 +0,0 @@
package WayofTime.alchemicalWizardry.book.entries;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
public class EntryItemCustomText extends EntryItemText implements IEntryCustomText
{
public EntryItemCustomText(ItemStack stack)
{
super(stack);
}
public EntryItemCustomText(ItemStack stack, String title)
{
super(stack, title);
}
public String str = "";
@Override
public String getText()
{
return str;
}
@Override
public void setText(String str)
{
this.str = str;
}
@Override
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);
Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(true);
Minecraft.getMinecraft().fontRenderer.drawSplitString(s, x, y, 110, 0);
Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(false);
}
}

View file

@ -1,86 +0,0 @@
package WayofTime.alchemicalWizardry.book.entries;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
public class EntryItemText implements IEntry{
public EntryItemText(ItemStack stack){
this.stack = stack;
}
public ItemStack stack;
public EntryItemText(ItemStack stack, String entryName){
this.stack = stack;
this.entryName = entryName;
}
public String entryName;
@Override
public void draw(GuiEntry entry, int width, int height, int left, int top, EntityPlayer player, String key, int page, int mX, int mY){
drawText(entry, width, height, left, top, player, key, page, mX, mY);
drawBlock(entry, width, height, left, top, player, key, page, mX, mY);
}
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 = StatCollector.translateToLocal("aw.entry." + this.entryName + "." + page);
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);
}
public void drawBlock(GuiEntry entry, int width, int height, int left, int top, EntityPlayer player, String key, int page, int mX, int mY){
RenderItem ri = new RenderItem();
GL11.glPushMatrix();
GL11.glScaled(3, 3, 1);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1F, 1F, 1F, 1F);
RenderHelper.enableGUIStandardItemLighting();
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glEnable(GL11.GL_DEPTH_TEST);
ri.renderItemAndEffectIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().getTextureManager(), stack, left - (left/2) + 2, top + 20);
ri.renderItemOverlayIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().getTextureManager(), stack, left - (left/2) + 2, top + 20);
RenderHelper.disableStandardItemLighting();
GL11.glPopMatrix();
GL11.glDisable(GL11.GL_LIGHTING);
}
@SuppressWarnings("rawtypes")
@Override
public void initGui(int width, int height, int left, int top,
EntityPlayer player, List buttonList) {
}
@Override
public void actionPerformed(GuiButton button){
}
}

View file

@ -1,38 +0,0 @@
package WayofTime.alchemicalWizardry.book.entries;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.EntityPlayer;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
public class EntryRitualInfo implements IEntry{
public EntryRitualInfo(int cost){
this.cost = cost;
}
public int cost;
@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;
x = left + width / 2 - 58;
y = (top + 15);
Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(true);
Minecraft.getMinecraft().fontRenderer.drawString("Cost: " + this.cost + " LP", x, y, 0);
Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(false);
}
@SuppressWarnings("rawtypes")
@Override
public void initGui(int width, int height, int left, int top,
EntityPlayer player, List buttonList){
}
@Override
public void actionPerformed(GuiButton button){
}
}

View file

@ -1,48 +0,0 @@
package WayofTime.alchemicalWizardry.book.entries;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.StatCollector;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
public class EntryText implements IEntry{
public EntryText(){
}
public EntryText(String entryName){
this.entryName = entryName;
}
public String entryName;
@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 = StatCollector.translateToLocal("aw.entry." + this.entryName + "." + page);
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);
}
@SuppressWarnings("rawtypes")
@Override
public void initGui(int width, int height, int left, int top,
EntityPlayer player, List buttonList){
}
@Override
public void actionPerformed(GuiButton button){
}
}

View file

@ -1,38 +0,0 @@
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

@ -1,25 +0,0 @@
package WayofTime.alchemicalWizardry.book.entries;
import java.util.List;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.EntityPlayer;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
public interface IEntry {
/**
* This get's called in GuiEntry, you can do whatever you want here (images, recipes, icons, text, combination of them)
* @param width
* @param height
* @param left
* @param top
* @param player
* The player who has the book open
*/
public void draw(GuiEntry entry, int width, int height, int left, int top, EntityPlayer player, String key, int page, int mX, int mY);
@SuppressWarnings("rawtypes")
public void initGui(int width, int height, int left, int top, EntityPlayer player, List buttonList);
public void actionPerformed(GuiButton button);
}

View file

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

View file

@ -1,5 +0,0 @@
package WayofTime.alchemicalWizardry.book.enums;
public enum EnumType {
BLOCK, ITEM;
}

View file

@ -1,102 +0,0 @@
package WayofTime.alchemicalWizardry.book.helpers;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.util.IIcon;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import WayofTime.alchemicalWizardry.book.enums.EnumType;
public class GuiHelper {
public static boolean isMouseBetween(int mouseX, int mouseY, int x, int y, int width, int height) {
int xSize = x + width;
int ySize = y + height;
return (mouseX > x && mouseX < xSize && mouseY > y && mouseY < ySize);
}
public static void renderIcon(int x, int y, int width, int height, IIcon icon, EnumType type){
if(type == EnumType.BLOCK)
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
else if(type == EnumType.ITEM)
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationItemsTexture);
int zLevel = 0;
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1F, 1F, 1F, 1F);
RenderHelper.enableGUIStandardItemLighting();
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glEnable(GL11.GL_DEPTH_TEST);
Tessellator t = Tessellator.instance;
t.startDrawingQuads();
t.addVertexWithUV((double)(x + 0), (double)(y + height), (double)zLevel, (double)icon.getMinU(), (double)icon.getMaxV());
t.addVertexWithUV((double)(x + width), (double)(y + height), (double)zLevel, (double)icon.getMaxU(), (double)icon.getMaxV());
t.addVertexWithUV((double)(x + width), (double)(y + 0), (double)zLevel, (double)icon.getMaxU(), (double)icon.getMinV());
t.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)zLevel, (double)icon.getMinU(), (double)icon.getMinV());
t.draw();
RenderHelper.disableStandardItemLighting();
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
public static void drawScaledIconWithoutColor(int x, int y, int width, int height, float zLevel){
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1F, 1F, 1F, 1F);
GL11.glScaled(0.13D, 0.13D, 0.13D);
GL11.glTranslated(x + 900, y + 250, 0);
RenderHelper.enableGUIStandardItemLighting();
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glEnable(GL11.GL_DEPTH_TEST);
Tessellator t = Tessellator.instance;
t.startDrawingQuads();
t.addVertexWithUV(x + 0, y + height, zLevel, 0D, 1D);
t.addVertexWithUV(x + width, y + height, zLevel, 1D, 1D);
t.addVertexWithUV(x + width, y + 0, zLevel, 1D, 0D);
t.addVertexWithUV(x + 0, y + 0, zLevel, 0D, 0D);
t.draw();
RenderHelper.disableStandardItemLighting();
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
public static void drawIconWithoutColor(int x, int y, int width, int height, float zLevel){
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1F, 1F, 1F, 1F);
RenderHelper.enableGUIStandardItemLighting();
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glEnable(GL11.GL_DEPTH_TEST);
Tessellator t = Tessellator.instance;
t.startDrawingQuads();
t.addVertexWithUV(x + 0, y + height, zLevel, 0D, 1D);
t.addVertexWithUV(x + width, y + height, zLevel, 1D, 1D);
t.addVertexWithUV(x + width, y + 0, zLevel, 1D, 0D);
t.addVertexWithUV(x + 0, y + 0, zLevel, 0D, 0D);
t.draw();
RenderHelper.disableStandardItemLighting();
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
}

View file

@ -1,16 +0,0 @@
package WayofTime.alchemicalWizardry.book.helpers;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
public class OreDictionaryHelper {
public static boolean entryExists(String material){
return OreDictionary.getOres(material).size() > 0;
}
public static ItemStack getItemStack(String material, int entry){
if(entryExists(material))
return OreDictionary.getOres(material).get(entry);
return null;
}
}

View file

@ -1,41 +0,0 @@
package WayofTime.alchemicalWizardry.book.interfaces;
/**
* Copied from WaslieCore, to make it no longer require it in the API. (https://github.com/wasliebob/WaslieCore/blob/master/src/main/java/wasliecore/interfaces/IElement.java)
*/
public interface IEntryElement{
/**
* In here you need to draw the element
*/
void drawElement();
/**
* @param mX
* Mouse X Position
* @param mY
* Mouse Y Position
* @return is the mouse in a element
*/
boolean isMouseInElement(int mX, int mY);
/**
* This get's called when you enter the element
* @param mX
* Mouse X Position
* @param mY
* Mouse Y Position
*/
void onMouseEnter(int mX, int mY);
/**
* This get's called when you click within the element
* @param mX
* Mouse X Position
* @param mY
* Mouse Y Position
* @param type
* Type of click (right, left, scroll)
*/
void onMouseClick(int mX, int mY, int type);
}

View file

@ -1,7 +0,0 @@
package WayofTime.alchemicalWizardry.book.interfaces;
import net.minecraft.world.World;
public interface IReviving {
void spawnEntity(World world, int x, int y, int z);
}

View file

@ -1,14 +0,0 @@
package WayofTime.alchemicalWizardry.book.interfaces;
import WayofTime.alchemicalWizardry.book.compact.Entry;
public class StringEntry
{
public String str;
public Entry entry;
public StringEntry(String str, Entry ent)
{
this.str = str;
this.entry = ent;
}
}

View file

@ -1,70 +0,0 @@
package WayofTime.alchemicalWizardry.book.registries;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import WayofTime.alchemicalWizardry.book.compact.Category;
import WayofTime.alchemicalWizardry.book.compact.Entry;
public class EntryRegistry
{
public static void registerCategories(Category category)
{
categories.add(category);
categoryMap.put(category.name, category);
entryOrder.put(category, new ArrayList());
categoryCount++;
}
public static ArrayList<Category> categories = new ArrayList<Category>();
public static HashMap<Category, List<String>> entryOrder = new HashMap();
public static HashMap<String, Category> categoryMap = new HashMap<String, Category>();
public static int categoryCount = 0;
public static void registerEntry(Category category, HashMap<String, Entry> entryMap, Entry entry)
{
entryMap.put(entry.name, entry);
entries.put(category, entryMap);
entryOrder.get(category).add(entry.name);
if(maxEntries.containsKey(category) && entry.indexPage > maxEntries.get(category))
maxEntries.put(category, entry.indexPage);
else if(!maxEntries.containsKey(category))
maxEntries.put(category, 0);
}
public static HashMap<Category, HashMap<String, Entry>> entries = new HashMap<Category, HashMap<String, Entry>>();
public static HashMap<Category, Integer> maxEntries = new HashMap<Category, Integer>();
public static HashMap<String, Entry> architect = new HashMap<String, Entry>();
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)
{
HashMap<String, Entry> entries = EntryRegistry.entries.get(category);
List<String> nameList = entryOrder.get(category);
ArrayList<Entry> list = new ArrayList<Entry>();
for(String str : nameList)
{
list.add(entries.get(str));
}
Object[] entriesList = list.toArray();
Entry[] entryList = new Entry[entriesList.length];
for(int i=0; i<entriesList.length; i++)
{
entryList[i] = (Entry)(entriesList[i]);
}
return entryList;
}
}

View file

@ -1,47 +0,0 @@
package WayofTime.alchemicalWizardry.book.registries;
import java.util.ArrayList;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.oredict.ShapedOreRecipe;
import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipe;
import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry;
import WayofTime.alchemicalWizardry.api.items.ShapedBloodOrbRecipe;
import cpw.mods.fml.common.registry.GameRegistry;
public class RecipeRegistry {
public static ArrayList<IRecipe> craftingRecipes = new ArrayList<IRecipe>();
public static ArrayList<AltarRecipe> altarRecipes = new ArrayList<AltarRecipe>();
/** Used to register crafting recipes to the guide */
public static IRecipe getLatestCraftingRecipe(){
IRecipe rec = (IRecipe)CraftingManager.getInstance().getRecipeList().get(CraftingManager.getInstance().getRecipeList().size() -1);
craftingRecipes.add(rec);
return craftingRecipes.get(craftingRecipes.size() - 1);
}
/** Used to register items to the guide */
public static AltarRecipe getLatestAltarRecipe(){
AltarRecipe rec = (AltarRecipe)AltarRecipeRegistry.altarRecipes.get(AltarRecipeRegistry.altarRecipes.size() - 1);
altarRecipes.add(rec);
return altarRecipes.get(altarRecipes.size() - 1);
}
public static void addAltarRecipe(ItemStack result, ItemStack requiredItem, int minTier, int liquidRequired, int consumptionRate, int drainRate, boolean canBeFilled){
AltarRecipeRegistry.registerAltarRecipe(result, requiredItem, minTier, liquidRequired, consumptionRate, drainRate, canBeFilled);
}
public static void addShapedRecipe(ItemStack output, Object[] obj){
GameRegistry.addShapedRecipe(output, obj);
}
public static void addShapedOrbRecipe(ItemStack output, Object[] obj){
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(output, obj));
}
public static void addShapedOreRecipe(ItemStack output, Object[] obj){
GameRegistry.addRecipe(new ShapedOreRecipe(output, obj));
}
}

View file

@ -1,357 +0,0 @@
package WayofTime.alchemicalWizardry.common.book;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.book.compact.Category;
import WayofTime.alchemicalWizardry.book.compact.Entry;
import WayofTime.alchemicalWizardry.book.entries.EntryImage;
import WayofTime.alchemicalWizardry.book.entries.EntryItemText;
import WayofTime.alchemicalWizardry.book.entries.EntryRitualInfo;
import WayofTime.alchemicalWizardry.book.entries.EntryText;
import WayofTime.alchemicalWizardry.book.entries.IEntry;
import WayofTime.alchemicalWizardry.book.enums.EnumType;
import WayofTime.alchemicalWizardry.book.registries.EntryRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BUEntries
{
public void postInit()
{
initCategories();
initEntries();
}
public void initCategories(){
categoryBasics = new Category("Basics", new ItemStack(ModItems.weakBloodOrb), EnumType.ITEM);
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);
}
@SideOnly(Side.CLIENT)
public void initEntries()
{
HashMap<Integer, IEntry> aIntroMap = new HashMap();
aIntroMap.put(0, new EntryImage("bloodutils:textures/misc/screenshots/t1.png", 854, 480));
/* The Architect */
aIntro = this.getMixedTextEntry(6, "Your classic tragic backstory", 1, aIntroMap);
aBloodAltar = this.getPureTextEntry(3, "The Blood Altar", 1);
aSoulNetwork = this.getPureTextEntry(3, "The Soul Network", 1);
aBasicsOfSigils = this.getPureTextEntry(4, "Basics of sigils and a glimpse into the soul", 1);
aTrainingAndWaterSigil = this.getPureTextEntry(6, "Training, and water sigils", 1);
aLavaCrystal = this.getPureTextEntry(5, "The Lava crystal", 1);
aLavaSigil = this.getPureTextEntry(8, "The perversion of the Nether, and a sigil of lava", 1);
aBlankRunes = this.getPureTextEntry(5, "Blank runes, the building blocks of the future", 1);
aSpeedRune = this.getPureTextEntry(2, "Speed runes", 1);
aApprenticeOrb = this.getPureTextEntry(4, "A shining green orb", 1);
aVoidSigil = this.getPureTextEntry(2, "The void sigil", 1);
aAirSigil = this.getPureTextEntry(2, "Air sigil", 1);
aSightSigil = this.getPureTextEntry(2, "Sigil of Sight", 1);
aAdvancedAltar = this.getPureTextEntry(5, "Advanced altar mechanics", 1);
aFastMinder = this.getPureTextEntry(2, "Sigil of the fast miner", 2);
aSoulFray = this.getPureTextEntry(2, "Soul Fray, a few thin threads", 2);
aGreenGrove = this.getPureTextEntry(2, "Green grove, a farmers friend", 2);
aDaggerOfSacrifice = this.getPureTextEntry(9, "Dagger of sacrifice, an alternative energy source", 2);
aRunesOfSacrifice = this.getPureTextEntry(10, "Runes of Sacrifice", 2);
aBloodLetterPack = this.getPureTextEntry(4, "The blood letters pack", 2);
aNewFriends = this.getPureTextEntry(18, "And then there was five", 2);
aUpgradedAltar = this.getPureTextEntry(4, "An altar upgraded, and orb formed", 2);
aNewRunes = this.getPureTextEntry(5, "New runes", 2);
aPhandomBridge = this.getPureTextEntry(8, "The Phantom bridge", 2);
aHolding = this.getPureTextEntry(2, "Sigil of holding", 2);
aElementalAffinity = this.getPureTextEntry(2, "Elemental affinity, a spell casters best friend", 2);
aRitualStones = this.getPureTextEntry(2, "Recreating ritual stones", 2);
aBloodLamp = this.getPureTextEntry(3, "Shining a blood lamp sigil", 2);
aBoundArmour = this.getPureTextEntry(8, "Bound armor, the walking fortress", 3);
aSanguineArmour = this.getPureTextEntry(2, "Sanguine armor", 3);
aSoulSuppressing = this.getPureTextEntry(1, "Suppressing the soul", 3);
aRitualDiviner = this.getPureTextEntry(5, "The ritual diviner", 3);
aBloodShards = this.getPureTextEntry(5, "Blood shards", 3);
aLifeOfMage = this.getPureTextEntry(9, "he life of a Mage", 3);
aT4 = this.getPureTextEntry(5, "The T4 altar, and a master's orb", 3);
aSigilOfWhirlwind = this.getPureTextEntry(2, "The sigil of whirlwinds", 3);
aSigilOfCompression = this.getPureTextEntry(2, "The sigil of compression", 3);
aEnderDivergence = this.getPureTextEntry(3, "The Ender divergence", 3);
aTeleposer = this.getPureTextEntry(9, "The Teleposer", 3);
aSuppression = this.getPureTextEntry(2, "The sigil of suppression", 3);
aSuperiorCapacity = this.getPureTextEntry(2, "The superior capacity rune", 3);
aRuneOfOrb = this.getPureTextEntry(3, "The rune of the orb", 3);
aFieldTrip = this.getPureTextEntry(19, "A field trip", 4);
aKeyOfBinding = this.getPureTextEntry(4, "The key of binding", 4);
aT5 = this.getPureTextEntry(4, "The trials of a T5 altar", 4);
aPriceOfPower = this.getPureTextEntry(2, "The price of power", 4);
aDemonicOrb = this.getPureTextEntry(1, "Demonic orb", 4);
aEnergyBazooka = this.getPureTextEntry(2, "The unspeakable power of the energy bazooka", 4);
aAccelerationRune = this.getPureTextEntry(2, "Acceleration runes", 4);
aHarvestSigil = this.getPureTextEntry(3, "The sigil of the Harvest goddess", 4);
aDemons = this.getPureTextEntry(6, "Solving a demon problem with more demons", 4);
aT6 = this.getPureTextEntry(3, "The T6 altar already", 4);
rIntro = new Entry(new IEntry[]{new EntryText(), new EntryText(), new EntryText()}, "Introduction", 1);
rWeakRituals = new Entry(new IEntry[]{new EntryText(), new EntryText(), new EntryText(), new EntryText()}, "Weak Rituals", 1);
rRituals = new Entry(new IEntry[]{new EntryText(), new EntryText(), new EntryText(), new EntryText()}, "Rituals", 1);
rRitualWater = this.getPureTextEntry(2, "Ritual of the Full Spring", 1);
theAltar = new Entry(new IEntry[]{new EntryItemText(new ItemStack(ModBlocks.blockAltar), "Blood Altar")}, EnumChatFormatting.BLUE + "Blood Altar", 1);
runes = new Entry(new IEntry[]{new EntryItemText(new ItemStack(ModBlocks.runeOfSelfSacrifice)), new EntryItemText(new ItemStack(ModBlocks.runeOfSacrifice)), new EntryItemText(new ItemStack(ModBlocks.speedRune))}, "Runes", 1);
/** Page 1 */
ritualWater = new Entry(new IEntry[]{new EntryText()}, "Full Spring", 1);
ritualLava = new Entry(new IEntry[]{new EntryText(), new EntryText()}, "Nether", 1);
ritualGreenGrove = new Entry(new IEntry[]{new EntryText(), new EntryText()}, "Green Grove", 1);
ritualInterdiction = new Entry(new IEntry[]{new EntryText(), new EntryText()}, "Interdiction", 1);
ritualContainment = new Entry(new IEntry[]{new EntryText()}, "Containment", 1);
ritualHighJump = new Entry(new IEntry[]{new EntryText()}, "High Jump", 1);
ritualSpeed = new Entry(new IEntry[]{new EntryText()}, "Speed", 1);
ritualMagnet = new Entry(new IEntry[]{new EntryText()}, "Magnetism", 1);
ritualCrusher = new Entry(new IEntry[]{new EntryText()}, "Crusher", 1);
ritualShepherd = new Entry(new IEntry[]{new EntryText()}, "Shepherd", 1);
ritualRegeneration = new Entry(new IEntry[]{new EntryText(), new EntryText(), new EntryText()}, "Regeneration", 1);
ritualFeatheredKnife = new Entry(new IEntry[]{new EntryText(), new EntryText(), new EntryText(), new EntryText()}, "Feathered Knife", 1);
ritualMoon = new Entry(new IEntry[]{new EntryText()}, "Harvest Moon", 1);
ritualSoul = new Entry(new IEntry[]{new EntryText(), new EntryText()}, "Eternal Soul", 2);
ritualCure = new Entry(new IEntry[]{new EntryText(), new EntryRitualInfo(500)}, "Curing", 1);
// blockDivination = new Entry(new IEntry[]{new EntryItemText(new ItemStack(BUBlocks.altarProgress)), new EntryCraftingRecipe(BURecipes.altarProgress)}, "Divination Block", 1);
// sigilAdvancedDivination = new Entry(new IEntry[]{new EntryItemText(new ItemStack(BUItems.sigil_advancedDivination)), new EntryAltarRecipe(BURecipes.advancedSigil)}, "Advanced Divination", 1);
//
// elementRituals = new Entry(new IEntry[]{new EntryItemText(new ItemStack(BUBlocks.darknessArea)), new EntryText(), new EntryCraftingRecipe(BURecipes.gemEmpty), new EntryAltarRecipe(BURecipes.diamondBlood)}, "Elemental Rituals", 1);
// reviving = new Entry(new IEntry[]{new EntryText(), new EntryCraftingRecipe(BURecipes.reviver)}, "Reviving", 1);
/** 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);
registerEntries();
}
public Entry getPureTextEntry(int numberOfPages, String name, int pageNumber)
{
IEntry[] entries = new IEntry[numberOfPages];
for(int i=0; i<numberOfPages; i++)
{
entries[i] = new EntryText();
}
return new Entry(entries, name, pageNumber);
}
public Entry getMixedTextEntry(int numberOfPages, String name, int pageNumber, Map<Integer, IEntry> map)
{
IEntry[] entries = new IEntry[numberOfPages];
for(int i=0; i<numberOfPages; i++)
{
entries[i] = new EntryText();
}
for(Map.Entry<Integer, IEntry> ent : map.entrySet())
{
if(ent.getKey() < entries.length)
{
entries[ent.getKey()] = ent.getValue();
}
}
return new Entry(entries, name, pageNumber);
}
/* Architect */
public static Entry aIntro;
public static Entry aBloodAltar;
public static Entry aSoulNetwork;
public static Entry aBasicsOfSigils;
public static Entry aTrainingAndWaterSigil;
public static Entry aLavaCrystal;
public static Entry aLavaSigil;
public static Entry aBlankRunes;
public static Entry aSpeedRune;
public static Entry aApprenticeOrb;
public static Entry aVoidSigil;
public static Entry aAirSigil;
public static Entry aSightSigil;
public static Entry aAdvancedAltar;
public static Entry aFastMinder;
public static Entry aSoulFray;
public static Entry aGreenGrove;
public static Entry aDaggerOfSacrifice;
public static Entry aRunesOfSacrifice;
public static Entry aBloodLetterPack;
public static Entry aNewFriends;
public static Entry aUpgradedAltar;
public static Entry aNewRunes;
public static Entry aPhandomBridge;
public static Entry aHolding;
public static Entry aElementalAffinity;
public static Entry aRitualStones;
public static Entry aBloodLamp;
public static Entry aBoundArmour;
public static Entry aSanguineArmour;
public static Entry aSoulSuppressing;
public static Entry aRitualDiviner;
public static Entry aBloodShards;
public static Entry aLifeOfMage;
public static Entry aT4;
public static Entry aSigilOfWhirlwind;
public static Entry aSigilOfCompression;
public static Entry aEnderDivergence;
public static Entry aTeleposer;
public static Entry aSuppression;
public static Entry aSuperiorCapacity;
public static Entry aRuneOfOrb;
public static Entry aFieldTrip;
public static Entry aKeyOfBinding;
public static Entry aT5;
public static Entry aPriceOfPower;
public static Entry aDemonicOrb;
public static Entry aEnergyBazooka;
public static Entry aAccelerationRune;
public static Entry aHarvestSigil;
public static Entry aDemons;
public static Entry aT6;
public static Entry rIntro;
public static Entry rWeakRituals;
public static Entry rRituals;
public static Entry rRitualWater;
public static Entry theAltar;
public static Entry runes;
public static Entry ritualCure;
public static Entry sigilAdvancedDivination;
public static Entry blockDivination;
public static Entry ritualWater;
public static Entry ritualLava;
public static Entry ritualGreenGrove;
public static Entry ritualInterdiction;
public static Entry ritualContainment;
public static Entry ritualHighJump;
public static Entry ritualSpeed;
public static Entry ritualMagnet;
public static Entry ritualCrusher;
public static Entry ritualShepherd;
public static Entry ritualRegeneration;
public static Entry ritualFeatheredKnife;
public static Entry ritualMoon;
public static Entry ritualSoul;
public static Entry elementRituals;
public static Entry reviving;
public static Entry debug;
public void registerEntries()
{
/* Architect */
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aIntro);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aBloodAltar);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aSoulNetwork);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aBasicsOfSigils);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aTrainingAndWaterSigil);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aLavaCrystal);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aLavaSigil);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aBlankRunes);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aSpeedRune);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aApprenticeOrb);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aVoidSigil);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aAirSigil);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aSightSigil);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aAdvancedAltar);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aFastMinder);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aSoulFray);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aGreenGrove);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aDaggerOfSacrifice);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aRunesOfSacrifice);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aBloodLetterPack);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aNewFriends);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aUpgradedAltar);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aNewRunes);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aPhandomBridge);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aHolding);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aElementalAffinity);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aRitualStones);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aBloodLamp);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aBoundArmour);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aSanguineArmour);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aSoulSuppressing);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aRitualDiviner);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aBloodShards);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aLifeOfMage);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aT4);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aSigilOfWhirlwind);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aSigilOfCompression);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aEnderDivergence);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aTeleposer);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aSuppression);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aSuperiorCapacity);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aRuneOfOrb);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aFieldTrip);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aKeyOfBinding);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aT5);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aPriceOfPower);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aDemonicOrb);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aEnergyBazooka);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aAccelerationRune);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aHarvestSigil);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aDemons);
EntryRegistry.registerEntry(BUEntries.catagoryArchitect, EntryRegistry.architect, BUEntries.aT6);
EntryRegistry.registerEntry(BUEntries.categoryBasics, EntryRegistry.basics, BUEntries.theAltar);
EntryRegistry.registerEntry(BUEntries.categoryBasics, EntryRegistry.basics, BUEntries.runes);
EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.rIntro);
EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.rWeakRituals);
EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.rRituals);
EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.rRitualWater);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualWater);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualLava);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualGreenGrove);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualInterdiction);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualContainment);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualHighJump);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualSpeed);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualMagnet);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualCrusher);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualShepherd);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualRegeneration);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualFeatheredKnife);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualMoon);
// EntryRegistry.registerEntry(BUEntries.categoryRituals, EntryRegistry.rituals, BUEntries.ritualSoul);
/** Debug */
EntryRegistry.registerEntry(BUEntries.categoryBasics, EntryRegistry.basics, BUEntries.debug);
// this.registerCategory(BUEntries.categoryTest, EntryRegistry.test, BookParser.parseTextFile("/assets/alchemicalwizardryBooks/books/book.txt"));
}
public void registerCategory(Category cat, HashMap<String, Entry> entryMap, List<Entry> entries)
{
for(Entry entry : entries)
{
EntryRegistry.registerEntry(cat, entryMap, entry);
}
}
}

View file

@ -1,333 +0,0 @@
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.util.ArrayList;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.spell.APISpellHelper;
import WayofTime.alchemicalWizardry.book.compact.Entry;
import WayofTime.alchemicalWizardry.book.entries.EntryCraftingRecipeCustomText;
import WayofTime.alchemicalWizardry.book.entries.EntryImageCustomText;
import WayofTime.alchemicalWizardry.book.entries.EntryItemCustomText;
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(String location)
{
// 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(location);
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") || unparsedString.startsWith("//ITEM");
}
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 ", "");
ItemStack stack = APISpellHelper.getItemStackForString(lines);
IRecipe recipe = APISpellHelper.getRecipeForItemStack(stack);
if(recipe != null)
{
return new EntryCraftingRecipeCustomText(recipe);
}
}else if(unparsedString.startsWith("//ITEM "))
{
String lines = unparsedString.replaceFirst("//ITEM ", "");
ItemStack stack = APISpellHelper.getItemStackForString(lines);
if(stack != null)
{
return new EntryItemCustomText(stack);
}
}
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;
}else if(unparsedString.startsWith("//ITEM "))
{
return 9;
}
return def;
}
}

View file

@ -1,62 +0,0 @@
package WayofTime.alchemicalWizardry.common.book;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.entity.mob.BookEntityItem;
public class ItemBMBook extends Item
{
public ItemBMBook()
{
super();
setMaxStackSize(1);
this.setCreativeTab(AlchemicalWizardry.tabBloodMagic);
}
@Override
public void registerIcons(IIconRegister ir)
{
itemIcon = ir.registerIcon("AlchemicalWizardry" + ":" + "guide");
}
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
{
player.openGui(AlchemicalWizardry.instance, 2, world, (int)player.posX, (int)player.posY, (int)player.posZ);
return stack;
}
@Override
public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5)
{
super.onUpdate(stack, world, entity, par4, par5);
if(!stack.hasTagCompound())
stack.setTagCompound(new NBTTagCompound());
}
@Override
public void onCreated(ItemStack stack, World world, EntityPlayer player)
{
super.onCreated(stack, world, player);
if(!stack.hasTagCompound())
stack.setTagCompound(new NBTTagCompound());
}
@Override
public boolean hasCustomEntity(ItemStack stack)
{
return true;
}
@Override
public Entity createEntity(World world, Entity location, ItemStack itemstack)
{
return new BookEntityItem(world, location, itemstack);
}
}

View file

@ -1,27 +0,0 @@
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

@ -37,7 +37,8 @@ public class ItemRitualDismantler extends EnergyItems
public void addInformation(ItemStack stack, EntityPlayer player, List par3List, boolean x)
{
par3List.add(StatCollector.translateToLocal("tooltip.dismatler.desc"));
par3List.add(StatCollector.translateToLocal("tooltip.owner.currentowner") + " " + stack.getTagCompound().getString("ownerName"));
if(stack.hasTagCompound())
par3List.add(StatCollector.translateToLocal("tooltip.owner.currentowner") + " " + stack.getTagCompound().getString("ownerName"));
}
@Override

View file

@ -1,17 +1,12 @@
package WayofTime.alchemicalWizardry.common.tileEntity.gui;
import WayofTime.alchemicalWizardry.common.items.sigil.holding.ContainerHolding;
import WayofTime.alchemicalWizardry.common.items.sigil.holding.GuiHolding;
import WayofTime.alchemicalWizardry.common.items.sigil.holding.InventoryHolding;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiCategories;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiEntry;
import WayofTime.alchemicalWizardry.book.classes.guide.GuiIndex;
import WayofTime.alchemicalWizardry.book.compact.Category;
import WayofTime.alchemicalWizardry.book.registries.EntryRegistry;
import WayofTime.alchemicalWizardry.common.items.sigil.holding.ContainerHolding;
import WayofTime.alchemicalWizardry.common.items.sigil.holding.GuiHolding;
import WayofTime.alchemicalWizardry.common.items.sigil.holding.InventoryHolding;
import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer;
import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable;
import WayofTime.alchemicalWizardry.common.tileEntity.container.ContainerTeleposer;
@ -82,28 +77,7 @@ public class GuiHandler implements IGuiHandler
break;
case 2:
if(held.hasTagCompound() && held.getTagCompound().getString("CATEGORY") != null){
if(held.hasTagCompound() && held.getTagCompound().getString("KEY") != null && held.getTagCompound().getString("KEY") != "0"){
String cate = held.getTagCompound().getString("CATEGORY");
String key = held.getTagCompound().getString("KEY");
int page = held.getTagCompound().getInteger("PAGE");
if(EntryRegistry.categoryMap.containsKey(cate)){
Category category = EntryRegistry.categoryMap.get(cate);
return new GuiEntry(key, player, category, page);
}else{
return new GuiCategories(player);
}
}else if(held.hasTagCompound() && held.getTagCompound().getString("CATEGORY") != null){
String cate = held.getTagCompound().getString("CATEGORY");
int page = held.getTagCompound().getInteger("PAGE");
if(EntryRegistry.categoryMap.containsKey(cate)){
Category category = EntryRegistry.categoryMap.get(cate);
return new GuiIndex(category, player, page);
}
}
}
return new GuiCategories(player);
case 3:
return new GuiHolding(player, new InventoryHolding(player.getHeldItem()));