Upgraded to G-API v19

This commit is contained in:
WayofTime 2015-06-04 17:07:23 -04:00
parent 23106c7129
commit 7d7db0b60f
10 changed files with 271 additions and 142 deletions
build.properties
src/main
java/WayofTime/alchemicalWizardry
resources/assets/alchemicalwizardryBooks/lang

View file

@ -1,13 +1,13 @@
#
#Wed May 27 10:11:54 EDT 2015
#Sat May 30 11:48:23 EDT 2015
mod_name=BloodMagic
forge_version=10.13.3.1374-1.7.10
ccc_version=1.0.4.29
nei_version=1.0.3.64
//=Dependency Information
guideapi_version=1.0.0-16
guideapi_version=1.0.1-19
package_group=com.wayoftime.bloodmagic
mod_version=1.3.2aBeta
mod_version=1.3.3
minetweaker_version=Dev-1.7.10-3.0.9B
mc_version=1.7.10
build_number=17
build_number=3

View file

@ -295,7 +295,7 @@ import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
@Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.3.2", guiFactory = "WayofTime.alchemicalWizardry.client.gui.ConfigGuiFactory")
@Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.3.3", guiFactory = "WayofTime.alchemicalWizardry.client.gui.ConfigGuiFactory")
public class AlchemicalWizardry
{

View file

@ -205,7 +205,6 @@ public class ModItems
public static Item itemTankSegmenter;
public static Item itemDestinationClearer;
public static Item itemBloodMagicBook;
public static Item itemHarvestSigil;
public static Item itemCompressionSigil;
@ -339,7 +338,6 @@ public class ModItems
itemAttunedCrystal = new ItemAttunedCrystal().setUnlocalizedName("itemAttunedCrystal");
itemTankSegmenter = new ItemTankSegmenter().setUnlocalizedName("itemTankSegmenter");
itemDestinationClearer = new ItemDestinationClearer().setUnlocalizedName("destinationClearer");
itemBloodMagicBook = new ItemBMBook().setUnlocalizedName("bmBook");
dawnScribeTool = new DawnScribeTool().setUnlocalizedName("dawnScribeTool");
@ -470,8 +468,6 @@ public class ModItems
GameRegistry.registerItem(ModItems.itemAttunedCrystal, "itemAttunedCrystal");
GameRegistry.registerItem(ModItems.itemTankSegmenter, "itemTankSegmenter");
GameRegistry.registerItem(ModItems.itemDestinationClearer, "itemDestinationClearer");
GameRegistry.registerItem(ModItems.itemBloodMagicBook, "itemBloodMagicBook");
GameRegistry.registerItem(ModItems.baseItems, "bloodMagicBaseItems");
GameRegistry.registerItem(ModItems.baseAlchemyItems, "bloodMagicBaseAlchemyItems");

View file

@ -0,0 +1,135 @@
package WayofTime.alchemicalWizardry.api.guide;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import WayofTime.alchemicalWizardry.api.items.ShapedBloodOrbRecipe;
import WayofTime.alchemicalWizardry.api.items.ShapelessBloodOrbRecipe;
import WayofTime.alchemicalWizardry.api.spell.APISpellHelper;
import amerifrance.guideapi.ModInformation;
import amerifrance.guideapi.api.abstraction.CategoryAbstract;
import amerifrance.guideapi.api.abstraction.EntryAbstract;
import amerifrance.guideapi.api.abstraction.IRecipeRenderer;
import amerifrance.guideapi.api.base.Book;
import amerifrance.guideapi.api.util.GuiHelper;
import amerifrance.guideapi.gui.GuiBase;
import cpw.mods.fml.relauncher.ReflectionHelper;
public class OrbRecipeRenderer implements IRecipeRenderer
{
public IRecipe recipe;
public OrbRecipeRenderer(IRecipe recipe)
{
this.recipe = recipe;
}
@Override
public void draw(Book book, CategoryAbstract category, EntryAbstract entry,
int guiLeft, int guiTop, int mouseX, int mouseY, GuiBase guiBase,
FontRenderer fontRenderer) {
Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation(ModInformation.GUITEXLOC + "recipe_elements.png"));
guiBase.drawTexturedModalRect(guiLeft + 42, guiTop + 53, 0, 0, 105, 65);
guiBase.drawCenteredString(fontRenderer, StatCollector.translateToLocal("text.recipe.shapedOrb"), guiLeft + guiBase.xSize / 2, guiTop + 12, 0);
if(recipe instanceof ShapelessBloodOrbRecipe)
{
ShapelessBloodOrbRecipe shapelessBloodOrbRecipe = (ShapelessBloodOrbRecipe) recipe;
List<Object> list = shapelessBloodOrbRecipe.getInput();
int width = 3;
int height = 3;
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
if(list.size() - 1 < y * width + x)
{
continue;
}
int stackX = (x + 1) * 18 + (guiLeft + guiBase.xSize / 7);
int stackY = (y + 1) * 18 + (guiTop + guiBase.ySize / 5);
Object component = list.get(y * width + x);
if (component != null) {
if (component instanceof ItemStack) {
GuiHelper.drawItemStack((ItemStack) component, stackX, stackY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, stackX, stackY, 15, 15)) {
guiBase.renderToolTip((ItemStack) component, stackX, stackY);
}
} else if (component instanceof Integer) {
GuiHelper.drawItemStack(APISpellHelper.getOrbForLevel((Integer) component), stackX, stackY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, stackX, stackY, 15, 15)) {
guiBase.renderToolTip(APISpellHelper.getOrbForLevel((Integer) component), stackX, stackY);
}
} else {
if (((ArrayList<ItemStack>) component).isEmpty()) return;
GuiHelper.drawItemStack(((ArrayList<ItemStack>) component).get(0), stackX, stackY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, stackX, stackY, 15, 15)) {
guiBase.renderToolTip(((ArrayList<ItemStack>) component).get(0), stackX, stackY);
}
}
}
}
}
int outputX = (5 * 18) + (guiLeft + guiBase.xSize / 7);
int outputY = (2 * 18) + (guiTop + guiBase.xSize / 5);
GuiHelper.drawItemStack(shapelessBloodOrbRecipe.getRecipeOutput(), outputX, outputY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, outputX, outputY, 15, 15)) {
guiBase.renderToolTip(shapelessBloodOrbRecipe.getRecipeOutput(), outputX, outputY);
}
}else
{
ShapedBloodOrbRecipe shapedBloodOrbRecipe = (ShapedBloodOrbRecipe) recipe;
int width = ReflectionHelper.getPrivateValue(ShapedBloodOrbRecipe.class, shapedBloodOrbRecipe, 4);
int height = ReflectionHelper.getPrivateValue(ShapedBloodOrbRecipe.class, shapedBloodOrbRecipe, 5);
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int stackX = (x + 1) * 18 + (guiLeft + guiBase.xSize / 7);
int stackY = (y + 1) * 18 + (guiTop + guiBase.ySize / 5);
Object component = shapedBloodOrbRecipe.getInput()[y * width + x];
if (component != null) {
if (component instanceof ItemStack) {
GuiHelper.drawItemStack((ItemStack) component, stackX, stackY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, stackX, stackY, 15, 15)) {
guiBase.renderToolTip((ItemStack) component, stackX, stackY);
}
} else if (component instanceof Integer) {
GuiHelper.drawItemStack(APISpellHelper.getOrbForLevel((Integer) component), stackX, stackY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, stackX, stackY, 15, 15)) {
guiBase.renderToolTip(APISpellHelper.getOrbForLevel((Integer) component), stackX, stackY);
}
} else {
if (((ArrayList<ItemStack>) component).isEmpty()) return;
GuiHelper.drawItemStack(((ArrayList<ItemStack>) component).get(0), stackX, stackY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, stackX, stackY, 15, 15)) {
guiBase.renderToolTip(((ArrayList<ItemStack>) component).get(0), stackX, stackY);
}
}
}
}
}
int outputX = (5 * 18) + (guiLeft + guiBase.xSize / 7);
int outputY = (2 * 18) + (guiTop + guiBase.xSize / 5);
GuiHelper.drawItemStack(shapedBloodOrbRecipe.getRecipeOutput(), outputX, outputY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, outputX, outputY, 15, 15)) {
guiBase.renderToolTip(shapedBloodOrbRecipe.getRecipeOutput(), outputX, outputY);
}
}
}
@Override
public void drawExtras(Book book, CategoryAbstract category,
EntryAbstract entry, int guiLeft, int guiTop, int mouseX,
int mouseY, GuiBase guiBase, FontRenderer fontRenderer) {
// TODO Auto-generated method stub
}
}

View file

@ -1,78 +0,0 @@
package WayofTime.alchemicalWizardry.api.guide;
import java.util.ArrayList;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import WayofTime.alchemicalWizardry.api.items.ShapedBloodOrbRecipe;
import WayofTime.alchemicalWizardry.api.spell.APISpellHelper;
import amerifrance.guideapi.ModInformation;
import amerifrance.guideapi.api.abstraction.CategoryAbstract;
import amerifrance.guideapi.api.abstraction.EntryAbstract;
import amerifrance.guideapi.api.base.Book;
import amerifrance.guideapi.api.util.GuiHelper;
import amerifrance.guideapi.gui.GuiBase;
import amerifrance.guideapi.pages.PageIRecipe;
import cpw.mods.fml.relauncher.ReflectionHelper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PageOrbRecipe extends PageIRecipe {
/**
* @param recipe - Recipe to draw
*/
public PageOrbRecipe(IRecipe recipe)
{
super(recipe);
}
@Override
@SideOnly(Side.CLIENT)
public void draw(Book book, CategoryAbstract category, EntryAbstract entry, int guiLeft, int guiTop, int mouseX, int mouseY, GuiBase guiBase, FontRenderer fontRenderer) {
Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation(ModInformation.GUITEXLOC + "recipe_elements.png"));
guiBase.drawTexturedModalRect(guiLeft + 42, guiTop + 53, 0, 0, 105, 65);
guiBase.drawCenteredString(fontRenderer, StatCollector.translateToLocal("text.recipe.shapedOrb"), guiLeft + guiBase.xSize / 2, guiTop + 12, 0);
ShapedBloodOrbRecipe shapedBloodOrbRecipe = (ShapedBloodOrbRecipe) recipe;
int width = ReflectionHelper.getPrivateValue(ShapedBloodOrbRecipe.class, shapedBloodOrbRecipe, 4);
int height = ReflectionHelper.getPrivateValue(ShapedBloodOrbRecipe.class, shapedBloodOrbRecipe, 5);
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int stackX = (x + 1) * 20 + (guiLeft + guiBase.xSize / 7);
int stackY = (y + 1) * 20 + (guiTop + guiBase.ySize / 5);
Object component = shapedBloodOrbRecipe.getInput()[y * width + x];
if (component != null) {
if (component instanceof ItemStack) {
GuiHelper.drawItemStack((ItemStack) component, stackX, stackY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, stackX, stackY, 15, 15)) {
guiBase.renderToolTip((ItemStack) component, stackX, stackY);
}
} else if (component instanceof Integer) {
GuiHelper.drawItemStack(APISpellHelper.getOrbForLevel((Integer) component), stackX, stackY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, stackX, stackY, 15, 15)) {
guiBase.renderToolTip(APISpellHelper.getOrbForLevel((Integer) component), stackX, stackY);
}
} else {
if (((ArrayList<ItemStack>) component).isEmpty()) return;
GuiHelper.drawItemStack(((ArrayList<ItemStack>) component).get(0), stackX, stackY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, stackX, stackY, 15, 15)) {
guiBase.renderToolTip(((ArrayList<ItemStack>) component).get(0), stackX, stackY);
}
}
}
}
}
int outputX = (5 * 20) + (guiLeft + guiBase.xSize / 7);
int outputY = (2 * 20) + (guiTop + guiBase.xSize / 5);
GuiHelper.drawItemStack(shapedBloodOrbRecipe.getRecipeOutput(), outputX, outputY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, outputX, outputY, 15, 15)) {
guiBase.renderToolTip(shapedBloodOrbRecipe.getRecipeOutput(), outputX, outputY);
}
}
}

View file

@ -7,6 +7,7 @@ import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -15,6 +16,7 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.sacrifice.IIncense;
import WayofTime.alchemicalWizardry.common.tileEntity.TECrucible;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -38,6 +40,33 @@ public class BlockCrucible extends BlockContainer
this.setBlockBounds(0.3125F, 0.0F, 0.3125F, 0.6875F, 0.625F, 0.6875F);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are)
{
TECrucible tileEntity = (TECrucible) world.getTileEntity(x, y, z);
if (tileEntity == null || player.isSneaking())
{
return false;
}
ItemStack playerItem = player.getCurrentEquippedItem();
if (tileEntity.getStackInSlot(0) == null && playerItem != null && playerItem.getItem() instanceof IIncense)
{
ItemStack newItem = playerItem.copy();
newItem.stackSize = 1;
--playerItem.stackSize;
tileEntity.setInventorySlotContents(0, newItem);
// } else if (tileEntity.getStackInSlot(0) != null && playerItem == null) //Disabled currently
// {
// player.inventory.addItemStackToInventory(tileEntity.getStackInSlot(0));
// tileEntity.setInventorySlotContents(0, null);
}
world.markBlockForUpdate(x, y, z);
return true;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister)

View file

@ -5,19 +5,21 @@ import java.util.ArrayList;
import java.util.List;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.api.guide.OrbRecipeRenderer;
import WayofTime.alchemicalWizardry.api.guide.PageAltarRecipe;
import WayofTime.alchemicalWizardry.api.guide.PageOrbRecipe;
import WayofTime.alchemicalWizardry.common.guide.RecipeHolder;
import amerifrance.guideapi.api.GuideRegistry;
import amerifrance.guideapi.api.abstraction.CategoryAbstract;
import amerifrance.guideapi.api.abstraction.EntryAbstract;
import amerifrance.guideapi.api.abstraction.IPage;
import amerifrance.guideapi.api.base.Book;
import amerifrance.guideapi.api.util.BookBuilder;
import amerifrance.guideapi.api.util.PageHelper;
import amerifrance.guideapi.categories.CategoryItemStack;
import amerifrance.guideapi.entries.EntryUniText;
@ -37,10 +39,19 @@ public class BloodMagicGuide
registerSpellBook();
registerAlchemyBook();
bloodMagicGuide = new Book(categories, "guide.BloodMagic.book.title", "guide.BloodMagic.welcomeMessage", "guide.BloodMagic.book.name", new Color(190, 10, 0));
BookBuilder bmBookBuilder = new BookBuilder();
bmBookBuilder.setCategories(categories).setUnlocBookTitle("guide.BloodMagic.book.title").setUnlocWelcomeMessage("guide.BloodMagic.welcomeMessage").setUnlocDisplayName("guide.BloodMagic.book.name").setBookColor(new Color(190, 10, 0));
// bloodMagicGuide = new Book(categories, "guide.BloodMagic.book.title", "guide.BloodMagic.welcomeMessage", "guide.BloodMagic.book.name", new Color(190, 10, 0));
bloodMagicGuide = bmBookBuilder.build();
GuideRegistry.registerBook(bloodMagicGuide);
}
public static PageIRecipe getOrbPageForRecipe(IRecipe recipe)
{
return new PageIRecipe(recipe, new OrbRecipeRenderer(recipe));
}
public static void registerArchitectBook()
{
List<EntryAbstract> entries = new ArrayList();
@ -67,18 +78,18 @@ public class BloodMagicGuide
entries.add(new EntryUniText(blankSlatePages, "guide.BloodMagic.entryName.architect.blankSlate"));
ArrayList<IPage> divinationSigilPages = new ArrayList();
divinationSigilPages.add(new PageOrbRecipe(RecipeHolder.divinationSigilRecipe));
divinationSigilPages.add(getOrbPageForRecipe(RecipeHolder.divinationSigilRecipe));
divinationSigilPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.divination")));
entries.add(new EntryUniText(divinationSigilPages, "guide.BloodMagic.entryName.architect.divination"));
ArrayList<IPage> waterSigilPages = new ArrayList();
waterSigilPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.waterSigil.1")));
waterSigilPages.add(new PageOrbRecipe(RecipeHolder.waterSigilRecipe));
waterSigilPages.add(getOrbPageForRecipe(RecipeHolder.waterSigilRecipe));
waterSigilPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.waterSigil.2")));
entries.add(new EntryUniText(waterSigilPages, "guide.BloodMagic.entryName.architect.waterSigil"));
ArrayList<IPage> lavaCrystalPages = new ArrayList();
lavaCrystalPages.add(new PageOrbRecipe(RecipeHolder.lavaCrystalRecipe));
lavaCrystalPages.add(getOrbPageForRecipe(RecipeHolder.lavaCrystalRecipe));
lavaCrystalPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.lavaCrystal")));
entries.add(new EntryUniText(lavaCrystalPages, "guide.BloodMagic.entryName.architect.lavaCrystal"));
@ -92,7 +103,7 @@ public class BloodMagicGuide
entries.add(new EntryUniText(lavaSigilPages, "guide.BloodMagic.entryName.architect.lavaSigil"));
ArrayList<IPage> blankRunePages = new ArrayList();
blankRunePages.add(new PageOrbRecipe(RecipeHolder.blankRuneRecipe));
blankRunePages.add(getOrbPageForRecipe(RecipeHolder.blankRuneRecipe));
blankRunePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.blankRunes.1")));
blankRunePages.add(new PageUnlocImage("", new ResourceLocation("alchemicalwizardry:textures/misc/screenshots/altars/T2.png"), true));
blankRunePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.blankRunes.2")));
@ -109,17 +120,17 @@ public class BloodMagicGuide
entries.add(new EntryUniText(apprenticeOrbPages, "guide.BloodMagic.entryName.architect.apprenticeOrb"));
ArrayList<IPage> voidSigilPages = new ArrayList();
voidSigilPages.add(new PageOrbRecipe(RecipeHolder.voidSigilRecipe));
voidSigilPages.add(getOrbPageForRecipe(RecipeHolder.voidSigilRecipe));
voidSigilPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.voidSigil")));
entries.add(new EntryUniText(voidSigilPages, "guide.BloodMagic.entryName.architect.voidSigil"));
ArrayList<IPage> airSigilPages = new ArrayList();
airSigilPages.add(new PageOrbRecipe(RecipeHolder.airSigilRecipe));
airSigilPages.add(getOrbPageForRecipe(RecipeHolder.airSigilRecipe));
airSigilPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.airSigil")));
entries.add(new EntryUniText(airSigilPages, "guide.BloodMagic.entryName.architect.airSigil"));
ArrayList<IPage> sightSigilPages = new ArrayList();
sightSigilPages.add(new PageOrbRecipe(RecipeHolder.sightSigilRecipe));
sightSigilPages.add(getOrbPageForRecipe(RecipeHolder.sightSigilRecipe));
sightSigilPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.sightSigil")));
entries.add(new EntryUniText(sightSigilPages, "guide.BloodMagic.entryName.architect.sightSigil"));
@ -128,7 +139,7 @@ public class BloodMagicGuide
entries.add(new EntryUniText(advancedAltarPages, "guide.BloodMagic.entryName.architect.advancedAltar"));
ArrayList<IPage> fastMinerPages = new ArrayList();
fastMinerPages.add(new PageOrbRecipe(RecipeHolder.fastMinerRecipe));
fastMinerPages.add(getOrbPageForRecipe(RecipeHolder.fastMinerRecipe));
fastMinerPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.fastMiner")));
entries.add(new EntryUniText(fastMinerPages, "guide.BloodMagic.entryName.architect.fastMiner"));
@ -137,7 +148,7 @@ public class BloodMagicGuide
entries.add(new EntryUniText(soulFrayPages, "guide.BloodMagic.entryName.architect.soulFray"));
ArrayList<IPage> greenGrovePages = new ArrayList();
greenGrovePages.add(new PageOrbRecipe(RecipeHolder.greenGroveRecipe));
greenGrovePages.add(getOrbPageForRecipe(RecipeHolder.greenGroveRecipe));
greenGrovePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.greenGrove")));
entries.add(new EntryUniText(greenGrovePages, "guide.BloodMagic.entryName.architect.greenGrove"));
@ -147,9 +158,9 @@ public class BloodMagicGuide
entries.add(new EntryUniText(daggerPages, "guide.BloodMagic.entryName.architect.dagger"));
ArrayList<IPage> sacrificePages = new ArrayList();
sacrificePages.add(new PageIRecipe(RecipeHolder.selfSacrificeRuneRecipe));
sacrificePages.add(getOrbPageForRecipe(RecipeHolder.selfSacrificeRuneRecipe));
sacrificePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.sacrifice.1")));
sacrificePages.add(new PageIRecipe(RecipeHolder.sacrificeRuneRecipe));
sacrificePages.add(getOrbPageForRecipe(RecipeHolder.sacrificeRuneRecipe));
sacrificePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.sacrifice.2")));
entries.add(new EntryUniText(sacrificePages, "guide.BloodMagic.entryName.architect.sacrifice"));
@ -173,40 +184,40 @@ public class BloodMagicGuide
entries.add(new EntryUniText(magicianOrbPages, "guide.BloodMagic.entryName.architect.magicianOrb"));
ArrayList<IPage> newRunePages = new ArrayList();
newRunePages.add(new PageOrbRecipe(RecipeHolder.capacityRuneRecipe));
newRunePages.add(getOrbPageForRecipe(RecipeHolder.capacityRuneRecipe));
newRunePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.newRune.1")));
newRunePages.add(new PageOrbRecipe(RecipeHolder.dislocationRuneRecipe));
newRunePages.add(getOrbPageForRecipe(RecipeHolder.dislocationRuneRecipe));
newRunePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.newRune.2")));
entries.add(new EntryUniText(newRunePages, "guide.BloodMagic.entryName.architect.newRune"));
ArrayList<IPage> magnetismPages = new ArrayList();
magnetismPages.add(new PageOrbRecipe(RecipeHolder.magnetismSigilRecipe));
magnetismPages.add(getOrbPageForRecipe(RecipeHolder.magnetismSigilRecipe));
magnetismPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.magnetism")));
entries.add(new EntryUniText(magnetismPages, "guide.BloodMagic.entryName.architect.magnetism"));
ArrayList<IPage> phantomBridgePages = new ArrayList();
phantomBridgePages.add(new PageOrbRecipe(RecipeHolder.phantomBridgeRecipe));
phantomBridgePages.add(getOrbPageForRecipe(RecipeHolder.phantomBridgeRecipe));
phantomBridgePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.phantomBridge")));
entries.add(new EntryUniText(phantomBridgePages, "guide.BloodMagic.entryName.architect.phantomBridge"));
ArrayList<IPage> holdingPages = new ArrayList();
holdingPages.add(new PageOrbRecipe(RecipeHolder.holdingSigilRecipe));
holdingPages.add(getOrbPageForRecipe(RecipeHolder.holdingSigilRecipe));
holdingPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.holding")));
entries.add(new EntryUniText(holdingPages, "guide.BloodMagic.entryName.architect.holding"));
ArrayList<IPage> elementalAffinityPages = new ArrayList();
elementalAffinityPages.add(new PageOrbRecipe(RecipeHolder.affinitySigilRecipe));
elementalAffinityPages.add(getOrbPageForRecipe(RecipeHolder.affinitySigilRecipe));
elementalAffinityPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.elementalAffinity")));
entries.add(new EntryUniText(elementalAffinityPages, "guide.BloodMagic.entryName.architect.elementalAffinity"));
ArrayList<IPage> ritualStonesPages = new ArrayList();
ritualStonesPages.add(new PageOrbRecipe(RecipeHolder.ritualStoneRecipe));
ritualStonesPages.add(new PageOrbRecipe(RecipeHolder.masterStoneRecipe));
ritualStonesPages.add(getOrbPageForRecipe(RecipeHolder.ritualStoneRecipe));
ritualStonesPages.add(getOrbPageForRecipe(RecipeHolder.masterStoneRecipe));
ritualStonesPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.ritualStones")));
entries.add(new EntryUniText(ritualStonesPages, "guide.BloodMagic.entryName.architect.ritualStones"));
ArrayList<IPage> bloodLampPages = new ArrayList();
bloodLampPages.add(new PageOrbRecipe(RecipeHolder.bloodLampRecipe));
bloodLampPages.add(getOrbPageForRecipe(RecipeHolder.bloodLampRecipe));
bloodLampPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.bloodLamp")));
entries.add(new EntryUniText(bloodLampPages, "guide.BloodMagic.entryName.architect.bloodLamp"));
@ -214,7 +225,7 @@ public class BloodMagicGuide
boundArmourPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.boundArmour.1")));
boundArmourPages.add(new PageIRecipe(RecipeHolder.emptySocketRecipe));
boundArmourPages.add(new PageAltarRecipe(RecipeHolder.filledSocketRecipe));
boundArmourPages.add(new PageOrbRecipe(RecipeHolder.soulForgeRecipe));
boundArmourPages.add(getOrbPageForRecipe(RecipeHolder.soulForgeRecipe));
boundArmourPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.boundArmour.2")));
entries.add(new EntryUniText(boundArmourPages, "guide.BloodMagic.entryName.architect.boundArmour"));
@ -253,17 +264,17 @@ public class BloodMagicGuide
entries.add(new EntryUniText(masterOrbPages, "guide.BloodMagic.entryName.architect.masterOrb"));
ArrayList<IPage> whirlwindPages = new ArrayList();
whirlwindPages.add(new PageOrbRecipe(RecipeHolder.whirlwindSigilRecipe));
whirlwindPages.add(getOrbPageForRecipe(RecipeHolder.whirlwindSigilRecipe));
whirlwindPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.whirlwind")));
entries.add(new EntryUniText(whirlwindPages, "guide.BloodMagic.entryName.architect.whirlwind"));
ArrayList<IPage> compressionPages = new ArrayList();
compressionPages.add(new PageOrbRecipe(RecipeHolder.compressionSigilRecipe));
compressionPages.add(getOrbPageForRecipe(RecipeHolder.compressionSigilRecipe));
compressionPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.compression")));
entries.add(new EntryUniText(compressionPages, "guide.BloodMagic.entryName.architect.compression"));
ArrayList<IPage> severancePages = new ArrayList();
severancePages.add(new PageOrbRecipe(RecipeHolder.enderSeveranceSigilRecipe));
severancePages.add(getOrbPageForRecipe(RecipeHolder.enderSeveranceSigilRecipe));
severancePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.severance")));
entries.add(new EntryUniText(severancePages, "guide.BloodMagic.entryName.architect.severance"));
@ -274,17 +285,17 @@ public class BloodMagicGuide
entries.add(new EntryUniText(teleposerPages, "guide.BloodMagic.entryName.architect.teleposer"));
ArrayList<IPage> suppressionPages = new ArrayList();
suppressionPages.add(new PageOrbRecipe(RecipeHolder.suppressionSigilRecipe));
suppressionPages.add(getOrbPageForRecipe(RecipeHolder.suppressionSigilRecipe));
suppressionPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.suppression")));
entries.add(new EntryUniText(suppressionPages, "guide.BloodMagic.entryName.architect.suppression"));
ArrayList<IPage> superiorCapacityPages = new ArrayList();
superiorCapacityPages.add(new PageOrbRecipe(RecipeHolder.superiorCapacityRecipe));
superiorCapacityPages.add(getOrbPageForRecipe(RecipeHolder.superiorCapacityRecipe));
superiorCapacityPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.superiorCapacity")));
entries.add(new EntryUniText(superiorCapacityPages, "guide.BloodMagic.entryName.architect.superiorCapacity"));
ArrayList<IPage> orbRunePages = new ArrayList();
orbRunePages.add(new PageOrbRecipe(RecipeHolder.orbRuneRecipe));
orbRunePages.add(getOrbPageForRecipe(RecipeHolder.orbRuneRecipe));
orbRunePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.orbRune")));
entries.add(new EntryUniText(orbRunePages, "guide.BloodMagic.entryName.architect.orbRune"));
@ -312,17 +323,17 @@ public class BloodMagicGuide
entries.add(new EntryUniText(demonicOrbPages, "guide.BloodMagic.entryName.architect.demonicOrb"));
ArrayList<IPage> energyBazookaPages = new ArrayList();
demonicOrbPages.add(new PageOrbRecipe(RecipeHolder.energyBazookaRecipe));
demonicOrbPages.add(getOrbPageForRecipe(RecipeHolder.energyBazookaRecipe));
energyBazookaPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.energyBazooka")));
entries.add(new EntryUniText(energyBazookaPages, "guide.BloodMagic.entryName.architect.energyBazooka"));
ArrayList<IPage> accelerationRunePages = new ArrayList();
demonicOrbPages.add(new PageOrbRecipe(RecipeHolder.accelerationRuneRecipe));
demonicOrbPages.add(getOrbPageForRecipe(RecipeHolder.accelerationRuneRecipe));
accelerationRunePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.accelerationRune")));
entries.add(new EntryUniText(accelerationRunePages, "guide.BloodMagic.entryName.architect.accelerationRune"));
ArrayList<IPage> harvestPages = new ArrayList();
demonicOrbPages.add(new PageOrbRecipe(RecipeHolder.harvestSigilRecipe));
demonicOrbPages.add(getOrbPageForRecipe(RecipeHolder.harvestSigilRecipe));
harvestPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.architect.harvest")));
entries.add(new EntryUniText(harvestPages, "guide.BloodMagic.entryName.architect.harvest"));
@ -358,13 +369,13 @@ public class BloodMagicGuide
entries.add(new EntryUniText(introPages, "guide.BloodMagic.entryName.rituals.intro"));
ArrayList<IPage> weakRitualPages = new ArrayList();
weakRitualPages.add(new PageOrbRecipe(RecipeHolder.weakRitualStoneRecipe));
weakRitualPages.add(getOrbPageForRecipe(RecipeHolder.weakRitualStoneRecipe));
weakRitualPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.rituals.weakRitual")));
entries.add(new EntryUniText(weakRitualPages, "guide.BloodMagic.entryName.rituals.weakRitual"));
ArrayList<IPage> ritualsPages = new ArrayList();
ritualsPages.add(new PageOrbRecipe(RecipeHolder.ritualStoneRecipe));
ritualsPages.add(new PageOrbRecipe(RecipeHolder.masterStoneRecipe));
ritualsPages.add(getOrbPageForRecipe(RecipeHolder.ritualStoneRecipe));
ritualsPages.add(getOrbPageForRecipe(RecipeHolder.masterStoneRecipe));
ritualsPages.add(new PageAltarRecipe(RecipeHolder.waterScribeTool));
ritualsPages.add(new PageAltarRecipe(RecipeHolder.fireScribeTool));
ritualsPages.add(new PageAltarRecipe(RecipeHolder.earthScribeTool));
@ -512,7 +523,7 @@ public class BloodMagicGuide
entries.add(new EntryUniText(costOfProgressPages, "guide.BloodMagic.entryName.rituals.costOfProgress"));
ArrayList<IPage> zephyrRitualPages = new ArrayList();
zephyrRitualPages.add(new PageUnlocImage("", new ResourceLocation("alchemicalwizardry:textures/misc/screenshots/rituals/Zeohyr.png"), true));
zephyrRitualPages.add(new PageUnlocImage("", new ResourceLocation("alchemicalwizardry:textures/misc/screenshots/rituals/Zephyr.png"), true));
zephyrRitualPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.rituals.zephyrRitual")));
entries.add(new EntryUniText(zephyrRitualPages, "guide.BloodMagic.entryName.rituals.zephyrRitual"));
@ -593,7 +604,7 @@ public class BloodMagicGuide
ArrayList<IPage> symmetryRitualPages = new ArrayList();
symmetryRitualPages.add(new PageUnlocImage("", new ResourceLocation("alchemicalwizardry:textures/misc/screenshots/rituals/SymmetryOmega.png"), true));
symmetryRitualPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.rituals.symmetryRitual")));
entries.add(new EntryUniText(lavaRitualPages, "guide.BloodMagic.entryName.rituals.symmetryRitual"));
entries.add(new EntryUniText(symmetryRitualPages, "guide.BloodMagic.entryName.rituals.symmetryRitual"));
ArrayList<IPage> stallingRitualPages = new ArrayList();
stallingRitualPages.add(new PageUnlocImage("", new ResourceLocation("alchemicalwizardry:textures/misc/screenshots/rituals/StallingOmega.png"), true));
@ -686,7 +697,7 @@ public class BloodMagicGuide
ArrayList<IPage> tableAndSkullsPages = new ArrayList();
tableAndSkullsPages.add(new PageAltarRecipe(RecipeHolder.blankSpellRecipe));
tableAndSkullsPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.spells.tableAndSkulls.1")));
tableAndSkullsPages.add(new PageOrbRecipe(RecipeHolder.spellTableRecipe));
tableAndSkullsPages.add(getOrbPageForRecipe(RecipeHolder.spellTableRecipe));
tableAndSkullsPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.spells.tableAndSkulls.2")));
entries.add(new EntryUniText(tableAndSkullsPages, "guide.BloodMagic.entryName.spells.tableAndSkulls"));
@ -743,7 +754,7 @@ public class BloodMagicGuide
entries.add(new EntryUniText(fatedMeetingPages, "guide.BloodMagic.entryName.alchemy.fatedMeeting"));
ArrayList<IPage> firstStepsPages = new ArrayList();
firstStepsPages.add(new PageOrbRecipe(RecipeHolder.alchemySetRecipe));
firstStepsPages.add(getOrbPageForRecipe(RecipeHolder.alchemySetRecipe));
firstStepsPages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.alchemy.firstSteps")));
entries.add(new EntryUniText(firstStepsPages, "guide.BloodMagic.entryName.alchemy.firstSteps"));
@ -757,10 +768,10 @@ public class BloodMagicGuide
incensePages.add(new PageIRecipe(RecipeHolder.crucibleRecipe));
incensePages.add(new PageIRecipe(RecipeHolder.woodAshRecipe));
incensePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.alchemy.incense.2")));
incensePages.add(new PageIRecipe(RecipeHolder.byrrusRecipe));
incensePages.add(new PageIRecipe(RecipeHolder.livensRecipe));
incensePages.add(new PageIRecipe(RecipeHolder.virRecipe));
incensePages.add(new PageIRecipe(RecipeHolder.purpuraRecipe));
incensePages.add(getOrbPageForRecipe(RecipeHolder.byrrusRecipe));
incensePages.add(getOrbPageForRecipe(RecipeHolder.livensRecipe));
incensePages.add(getOrbPageForRecipe(RecipeHolder.virRecipe));
incensePages.add(getOrbPageForRecipe(RecipeHolder.purpuraRecipe));
incensePages.addAll(PageHelper.pagesForLongText(StatCollector.translateToLocal("aw.entries.alchemy.incense.3")));
entries.add(new EntryUniText(incensePages, "guide.BloodMagic.entryName.alchemy.incense"));

View file

@ -65,6 +65,10 @@ public class RitualEffectExpulsion extends RitualEffect
for (EntityPlayer entityplayer : playerList)
{
if(entityplayer.capabilities.isCreativeMode)
{
continue;
}
String playerString = SpellHelper.getUsername(entityplayer);
if (!playerString.equals(owner))
{

View file

@ -7,10 +7,12 @@ import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.Constants;
import WayofTime.alchemicalWizardry.api.sacrifice.IIncense;
import WayofTime.alchemicalWizardry.api.sacrifice.PlayerSacrificeHandler;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
@ -48,6 +50,8 @@ public class TECrucible extends TEInventory
if(worldObj.isRemote)
return;
boolean stateChanged = false;
if(ticksRemaining <= 0)
{
ItemStack stack = this.getStackInSlot(0);
@ -70,6 +74,8 @@ public class TECrucible extends TEInventory
{
this.setInventorySlotContents(0, null);
}
stateChanged = true;
}
}
@ -79,7 +85,6 @@ public class TECrucible extends TEInventory
if(playerList != null && !playerList.isEmpty())
{
boolean stateChanged = false;
boolean allAreGood = true;
for(EntityPlayer player : playerList)
@ -103,12 +108,7 @@ public class TECrucible extends TEInventory
stateChanged = true;
}
if(stateChanged)
{
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
updateNeighbors();
}
}else
{
if(state != 0)
@ -127,6 +127,13 @@ public class TECrucible extends TEInventory
updateNeighbors();
}
}
if(stateChanged)
{
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
updateNeighbors();
}
}
private void updateNeighbors()
@ -200,6 +207,20 @@ public class TECrucible extends TEInventory
tag.setFloat("gColour", gColour);
tag.setFloat("bColour", bColour);
tag.setInteger("state", state);
NBTTagList invList = new NBTTagList();
for (int i = 0; i < inv.length; i++)
{
if (inv[i] != null)
{
NBTTagCompound stackTag = new NBTTagCompound();
stackTag.setByte("Slot", (byte) i);
inv[i].writeToNBT(stackTag);
invList.appendTag(stackTag);
}
}
tag.setTag("Inventory", invList);
}
public void readClientNBT(NBTTagCompound tag)
@ -208,6 +229,17 @@ public class TECrucible extends TEInventory
gColour = tag.getFloat("gColour");
bColour = tag.getFloat("bColour");
state = tag.getInteger("state");
NBTTagList invList = tag.getTagList("Inventory",
Constants.NBT.TAG_COMPOUND);
for (int i = 0; i < invList.tagCount(); i++)
{
NBTTagCompound stackTag = invList.getCompoundTagAt(i);
int slot = stackTag.getByte("Slot");
if (slot >= 0 && slot < inv.length)
inv[slot] = ItemStack.loadItemStackFromNBT(stackTag);
}
}

File diff suppressed because one or more lines are too long