From 8edf42a5cb8584f7d5b16070efa0bb9cdb4f93a2 Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Sun, 5 Jun 2016 16:29:36 -0700 Subject: [PATCH] Add IGuideLinked for ritual controller --- gradle.properties | 2 +- .../block/BlockRitualController.java | 34 ++++++++++++++++++- .../compat/guideapi/book/CategoryAlchemy.java | 11 +++--- .../guideapi/book/CategoryArchitect.java | 9 ++--- .../compat/guideapi/book/CategoryRitual.java | 15 ++++++-- .../compat/guideapi/book/CategorySpell.java | 10 +++--- .../recipeRenderer/OrbRecipeRenderer.java | 2 +- 7 files changed, 64 insertions(+), 19 deletions(-) diff --git a/gradle.properties b/gradle.properties index ffbbfd16..fb50eb6f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,4 +11,4 @@ jei_version=3.4.0.204 waila_version=1.7.0-B3 thaumcraft_version=5.1.5 baubles_version=1.1.3.0 -guideapi_version=2.0.0-35 \ No newline at end of file +guideapi_version=2.0.0-37 \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java b/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java index c4d4bd72..af666420 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockRitualController.java @@ -3,6 +3,8 @@ package WayofTime.bloodmagic.block; import java.util.ArrayList; import java.util.List; +import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual; +import amerifrance.guideapi.api.IGuideLinked; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -11,10 +13,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.Explosion; import net.minecraft.world.World; +import net.minecraftforge.fml.common.Optional; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; @@ -32,7 +36,10 @@ import WayofTime.bloodmagic.tile.TileImperfectRitualStone; import WayofTime.bloodmagic.tile.TileMasterRitualStone; import WayofTime.bloodmagic.util.ChatUtil; -public class BlockRitualController extends BlockStringContainer implements IVariantProvider +import javax.annotation.Nullable; + +@Optional.Interface(modid = "guideapi", iface = "amerifrance.guideapi.api.IGuideLinked") +public class BlockRitualController extends BlockStringContainer implements IVariantProvider, IGuideLinked { public static final String[] names = { "master", "imperfect" }; @@ -109,6 +116,8 @@ public class BlockRitualController extends BlockStringContainer implements IVari return meta == 0 ? (new TileMasterRitualStone()) : (new TileImperfectRitualStone()); } + // IVariantProvider + @Override public List> getVariants() { @@ -117,4 +126,27 @@ public class BlockRitualController extends BlockStringContainer implements IVari ret.add(new ImmutablePair(i, "type=" + names[i])); return ret; } + + // IGuideLinked + + @Override + @Nullable + public ResourceLocation getLinkedEntry(World world, BlockPos pos, EntityPlayer player, ItemStack stack) + { + IBlockState state = world.getBlockState(pos); + if (state.getValue(getStringProp()).equals(names[0])) + { + TileMasterRitualStone mrs = (TileMasterRitualStone) world.getTileEntity(pos); + if (mrs == null || mrs.getCurrentRitual() == null) + return null; + else + return new ResourceLocation("bloodmagic", "ritual_" + mrs.getCurrentRitual().getName()); + } else if (state.getValue(getStringProp()).equals(names[1])) + { + ImperfectRitual imperfectRitual = ImperfectRitualRegistry.getRitualForBlock(BlockStack.getStackFromPos(world, pos.up())); + if (imperfectRitual != null) + return new ResourceLocation("bloodmagic", "ritual_" + imperfectRitual.getName()); + } + return null; + } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryAlchemy.java b/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryAlchemy.java index 6f10a844..db84a523 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryAlchemy.java +++ b/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryAlchemy.java @@ -4,13 +4,14 @@ import WayofTime.bloodmagic.api.Constants; import amerifrance.guideapi.api.impl.abstraction.EntryAbstract; import net.minecraft.util.ResourceLocation; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; -public class CategoryAlchemy { - - public static Map buildCategory() { - Map entries = new HashMap(); +public class CategoryAlchemy +{ + public static Map buildCategory() + { + Map entries = new LinkedHashMap(); String keyBase = Constants.Mod.DOMAIN + "alchemy_"; diff --git a/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryArchitect.java b/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryArchitect.java index b287fa80..45c386a0 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryArchitect.java +++ b/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryArchitect.java @@ -4,13 +4,14 @@ import WayofTime.bloodmagic.api.Constants; import amerifrance.guideapi.api.impl.abstraction.EntryAbstract; import net.minecraft.util.ResourceLocation; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; -public class CategoryArchitect { - +public class CategoryArchitect +{ public static Map buildCategory() { - Map entries = new HashMap(); + + Map entries = new LinkedHashMap(); String keyBase = Constants.Mod.DOMAIN + "architect_"; diff --git a/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryRitual.java b/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryRitual.java index 367548dd..d4f3b821 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryRitual.java +++ b/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategoryRitual.java @@ -1,8 +1,10 @@ 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; @@ -12,16 +14,15 @@ import amerifrance.guideapi.page.PageImage; import net.minecraft.util.ResourceLocation; import java.util.ArrayList; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; public class CategoryRitual { - public static Map buildCategory() { - Map entries = new HashMap(); + Map entries = new LinkedHashMap(); String keyBase = Constants.Mod.DOMAIN + "ritual_"; for (Ritual ritual : RitualRegistry.getRituals()) @@ -32,6 +33,14 @@ public class CategoryRitual entries.put(new ResourceLocation(keyBase + ritual.getName()), new EntryText(ritualPages, TextHelper.localize(ritual.getUnlocalizedName()), true)); } + for (ImperfectRitual imperfectRitual : ImperfectRitualRegistry.getRituals()) + { + List ritualPages = new ArrayList(); + ritualPages.addAll(PageHelper.pagesForLongText(TextHelper.localize(imperfectRitual.getUnlocalizedName() + ".info"))); + 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()), true)); + } + return entries; } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategorySpell.java b/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategorySpell.java index d0538f83..1abc04b8 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategorySpell.java +++ b/src/main/java/WayofTime/bloodmagic/compat/guideapi/book/CategorySpell.java @@ -5,12 +5,14 @@ import amerifrance.guideapi.api.impl.abstraction.EntryAbstract; import net.minecraft.util.ResourceLocation; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; -public class CategorySpell { - - public static Map buildCategory() { - Map entries = new HashMap(); +public class CategorySpell +{ + public static Map buildCategory() + { + Map entries = new LinkedHashMap(); String keyBase = Constants.Mod.DOMAIN + "spell_"; diff --git a/src/main/java/WayofTime/bloodmagic/compat/guideapi/page/recipeRenderer/OrbRecipeRenderer.java b/src/main/java/WayofTime/bloodmagic/compat/guideapi/page/recipeRenderer/OrbRecipeRenderer.java index 88037ce0..5f57509d 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/guideapi/page/recipeRenderer/OrbRecipeRenderer.java +++ b/src/main/java/WayofTime/bloodmagic/compat/guideapi/page/recipeRenderer/OrbRecipeRenderer.java @@ -32,7 +32,7 @@ public class OrbRecipeRenderer implements IRecipeRenderer @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(GuideMod.GUITEXLOC + "recipe_elements.png")); + Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation("gudieapi", "textures/gui/recipe_elements.png")); guiBase.drawTexturedModalRect(guiLeft + 42, guiTop + 53, 0, 0, 105, 65); guiBase.drawCenteredString(fontRenderer, TextHelper.localize("text.recipe.shapedOrb"), guiLeft + guiBase.xSize / 2, guiTop + 12, 0);