Updated the book so it contains most of the rituals.

This commit is contained in:
WayofTime 2016-11-20 10:32:13 -05:00
parent a04c8af550
commit 82f04d4b6c
4 changed files with 182 additions and 41 deletions

View file

@ -1,48 +1,121 @@
package WayofTime.bloodmagic.compat.guideapi.book;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry;
import WayofTime.bloodmagic.api.registry.RitualRegistry;
import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
import WayofTime.bloodmagic.compat.guideapi.entry.EntryText;
import WayofTime.bloodmagic.util.helper.TextHelper;
import amerifrance.guideapi.api.IPage;
import amerifrance.guideapi.api.impl.abstraction.EntryAbstract;
import amerifrance.guideapi.api.util.PageHelper;
import amerifrance.guideapi.page.PageImage;
import amerifrance.guideapi.page.PageText;
import net.minecraft.util.ResourceLocation;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.ResourceLocation;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.registry.OrbRegistry;
import WayofTime.bloodmagic.api.registry.AltarRecipeRegistry.AltarRecipe;
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.compat.guideapi.BookUtils;
import WayofTime.bloodmagic.compat.guideapi.entry.EntryText;
import WayofTime.bloodmagic.compat.guideapi.page.PageAltarRecipe;
import WayofTime.bloodmagic.registry.ModBlocks;
import WayofTime.bloodmagic.registry.ModItems;
import WayofTime.bloodmagic.util.helper.RecipeHelper;
import WayofTime.bloodmagic.util.helper.TextHelper;
import amerifrance.guideapi.api.IPage;
import amerifrance.guideapi.api.impl.abstraction.EntryAbstract;
import amerifrance.guideapi.api.util.PageHelper;
import amerifrance.guideapi.page.PageText;
public class CategoryRitual
{
static String keyBase = "guide." + Constants.Mod.MODID + ".entry.ritual.";
public static Map<ResourceLocation, EntryAbstract> buildCategory()
{
Map<ResourceLocation, EntryAbstract> entries = new LinkedHashMap<ResourceLocation, EntryAbstract>();
String keyBase = Constants.Mod.DOMAIN + "ritual_";
for (Ritual ritual : RitualRegistry.getRituals())
addRitualPagesToEntries("intro", entries);
addRitualPagesToEntries("basics", entries);
List<IPage> ritualStonePages = new ArrayList<IPage>();
IRecipe ritualStoneRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.RITUAL_STONE));
if (ritualStoneRecipe != null)
{
List<IPage> ritualPages = new ArrayList<IPage>();
ritualPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(ritual.getUnlocalizedName() + ".info"), 370));
// ritualPages.add(new PageImage(new ResourceLocation("bloodmagicguide", "textures/guide/" + ritual.getName() + ".png")));
entries.put(new ResourceLocation(keyBase + ritual.getName()), new EntryText(ritualPages, TextHelper.localize(ritual.getUnlocalizedName())));
ritualStonePages.add(BookUtils.getPageForRecipe(ritualStoneRecipe));
}
for (ImperfectRitual imperfectRitual : ImperfectRitualRegistry.getRituals())
ritualStonePages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "ritualStone" + ".info.1"), 370));
for (int i = 1; i < 5; i++)
{
List<IPage> ritualPages = new ArrayList<IPage>();
ritualPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(imperfectRitual.getUnlocalizedName() + ".info"), 370));
ritualPages.add(new PageImage(new ResourceLocation("bloodmagicguide", "textures/guide/" + imperfectRitual.getName() + ".png")));
entries.put(new ResourceLocation(keyBase + imperfectRitual.getName()), new EntryText(ritualPages, TextHelper.localize(imperfectRitual.getUnlocalizedName())));
EnumRuneType type = EnumRuneType.values()[i];
AltarRecipe scribeRecipe = RecipeHelper.getAltarRecipeForOutput(type.getScribeStack());
if (scribeRecipe != null)
{
ritualStonePages.add(new PageAltarRecipe(scribeRecipe));
}
}
ritualStonePages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "ritualStone" + ".info.2"), 370));
entries.put(new ResourceLocation(keyBase + "ritualStone"), new EntryText(ritualStonePages, TextHelper.localize(keyBase + "ritualStone"), true));
List<IPage> masterRitualStonePages = new ArrayList<IPage>();
IRecipe masterRitualStoneRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModBlocks.RITUAL_CONTROLLER, 1, 0));
if (masterRitualStoneRecipe != null)
{
masterRitualStonePages.add(BookUtils.getPageForRecipe(masterRitualStoneRecipe));
}
masterRitualStonePages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "masterRitualStone" + ".info"), 370));
entries.put(new ResourceLocation(keyBase + "masterRitualStone"), new EntryText(masterRitualStonePages, TextHelper.localize(keyBase + "masterRitualStone"), true));
List<IPage> activationCrystalPages = new ArrayList<IPage>();
activationCrystalPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "activationCrystal" + ".info.1"), 370));
AltarRecipe crystalRecipe = RecipeHelper.getAltarRecipeForOutput(new ItemStack(ModItems.ACTIVATION_CRYSTAL));
if (crystalRecipe != null)
{
activationCrystalPages.add(new PageAltarRecipe(crystalRecipe));
}
activationCrystalPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "activationCrystal" + ".info.2"), 370));
entries.put(new ResourceLocation(keyBase + "activationCrystal"), new EntryText(activationCrystalPages, TextHelper.localize(keyBase + "activationCrystal"), true));
List<IPage> divinerPages = new ArrayList<IPage>();
divinerPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "diviner" + ".info.1"), 370));
IRecipe divinerRecipe = RecipeHelper.getRecipeForOutput(new ItemStack(ModItems.RITUAL_DIVINER));
if (divinerRecipe != null)
{
divinerPages.add(BookUtils.getPageForRecipe(divinerRecipe));
}
divinerPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + "diviner" + ".info.2"), 370));
entries.put(new ResourceLocation(keyBase + "diviner"), new EntryText(divinerPages, TextHelper.localize(keyBase + "diviner"), true));
addRitualPagesToEntries("fullSpring", entries);
addRitualPagesToEntries("lava", entries);
addRitualPagesToEntries("greenGrove", entries);
addRitualPagesToEntries("magnetism", entries);
addRitualPagesToEntries("crusher", entries);
addRitualPagesToEntries("highJump", entries);
addRitualPagesToEntries("speed", entries);
addRitualPagesToEntries("wellOfSuffering", entries);
addRitualPagesToEntries("featheredKnife", entries);
addRitualPagesToEntries("regen", entries);
addRitualPagesToEntries("harvest", entries);
addRitualPagesToEntries("interdiction", entries);
addRitualPagesToEntries("containment", entries);
addRitualPagesToEntries("suppression", entries);
addRitualPagesToEntries("expulsion", entries);
addRitualPagesToEntries("zephyr", entries);
addRitualPagesToEntries("laying", entries);
addRitualPagesToEntries("timberman", entries);
addRitualPagesToEntries("meteor", entries);
for (Entry<ResourceLocation, EntryAbstract> entry : entries.entrySet())
{
for (IPage page : entry.getValue().pageList)
@ -56,4 +129,11 @@ public class CategoryRitual
return entries;
}
public static void addRitualPagesToEntries(String name, Map<ResourceLocation, EntryAbstract> entries)
{
List<IPage> pages = new ArrayList<IPage>();
pages.addAll(PageHelper.pagesForLongText(TextHelper.localize(keyBase + name + ".info"), 370));
entries.put(new ResourceLocation(keyBase + name), new EntryText(pages, TextHelper.localize(keyBase + name), true));
}
}

View file

@ -1,21 +1,24 @@
package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.util.Utils;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.ritual.AreaDescriptor;
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.util.Utils;
public class RitualZephyr extends Ritual
{
public static final String ZEPHYR_RANGE = "zephyrRange";
@ -41,7 +44,7 @@ public class RitualZephyr extends Ritual
AreaDescriptor chestRange = getBlockRange(CHEST_RANGE);
TileEntity tileInventory = world.getTileEntity(chestRange.getContainedPositions(masterPos).get(0));
if (!masterRitualStone.getWorldObj().isRemote && tileInventory != null && tileInventory instanceof IInventory)
if (!masterRitualStone.getWorldObj().isRemote && tileInventory != null)
{
if (currentEssence < getRefreshCost())
{
@ -65,7 +68,7 @@ public class RitualZephyr extends Ritual
ItemStack copyStack = entityItem.getEntityItem().copy();
int originalAmount = copyStack.stackSize;
ItemStack newStack = Utils.insertStackIntoInventory(copyStack, (IInventory) tileInventory, EnumFacing.DOWN);
ItemStack newStack = Utils.insertStackIntoTile(copyStack, tileInventory, EnumFacing.DOWN);
if (newStack != null && newStack.stackSize < originalAmount)
{