Initial stab at documentation

This commit is contained in:
Nick 2016-02-26 21:22:34 -08:00
parent 70f4c117d7
commit 8d5e9c125b
9 changed files with 201 additions and 2 deletions

View file

@ -115,7 +115,7 @@ public class Constants
public static final String DOMAIN = MODID.toLowerCase(Locale.ENGLISH) + ":";
public static final String NAME = "Blood Magic: Alchemical Wizardry";
public static final String VERSION = "@VERSION@";
public static final String DEPEND = "after:JEI@[2.23.0,)";
public static final String DEPEND = "after:JEI@[2.23.0,);after:guideapi";
}
public static final class Gui

View file

@ -0,0 +1,23 @@
package WayofTime.bloodmagic.compat.guideapi;
import WayofTime.bloodmagic.compat.ICompatibility;
import WayofTime.bloodmagic.compat.guideapi.guide.GuideBloodMagic;
public class CompatibilityGuideAPI implements ICompatibility {
@Override
public void loadCompatibility(InitializationPhase phase) {
if (phase == InitializationPhase.PRE_INIT)
GuideBloodMagic.initGuide();
}
@Override
public String getModId() {
return "guideapi";
}
@Override
public boolean enableCompat() {
return true;
}
}

View file

@ -0,0 +1,76 @@
package WayofTime.bloodmagic.compat.guideapi.guide;
import WayofTime.bloodmagic.api.altar.EnumAltarTier;
import WayofTime.bloodmagic.api.registry.AltarRecipeRegistry;
import WayofTime.bloodmagic.api.registry.OrbRegistry;
import WayofTime.bloodmagic.compat.guideapi.guide.page.PageAltarRecipe;
import WayofTime.bloodmagic.registry.ModBlocks;
import WayofTime.bloodmagic.registry.ModItems;
import WayofTime.bloodmagic.util.helper.TextHelper;
import amerifrance.guideapi.api.GuideAPIItems;
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.PageHelper;
import amerifrance.guideapi.category.CategoryItemStack;
import amerifrance.guideapi.entry.EntryItemStack;
import amerifrance.guideapi.page.PageIRecipe;
import lombok.Getter;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.oredict.ShapedOreRecipe;
import java.awt.Color;
import java.util.ArrayList;
import java.util.List;
public class GuideBloodMagic {
@Getter
private static Book bloodMagicGuide;
public static List<CategoryAbstract> categories = new ArrayList<CategoryAbstract>();
public static void initGuide() {
bloodMagicGuide = new Book();
bloodMagicGuide.setAuthor("guide.BloodMagic.book.author");
bloodMagicGuide.setUnlocBookTitle("guide.BloodMagic.book.title");
bloodMagicGuide.setUnlocDisplayName("guide.BloodMagic.book.display");
bloodMagicGuide.setUnlocWelcomeMessage("guide.BloodMagic.book.welcome");
bloodMagicGuide.setBookColor(new Color(0xFF100F));
addArchitect();
bloodMagicGuide.setCategoryList(categories);
GuideRegistry.registerBook(bloodMagicGuide, null);
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT)
ModelLoader.setCustomModelResourceLocation(GuideAPIItems.guideBook, GuideRegistry.getIndexOf(bloodMagicGuide), new ModelResourceLocation(new ResourceLocation("guideapi", "ItemGuideBook"), "type=book"));
}
private static void addArchitect() {
List<EntryAbstract> entries = new ArrayList<EntryAbstract>();
List<IPage> introPages = new ArrayList<IPage>();
introPages.addAll(PageHelper.pagesForLongText(TextHelper.localize("guide.BloodMagic.entry.architect.intro.1"), 315));
entries.add(new EntryItemStack(introPages, "guide.BloodMagic.entry.architect.intro", new ItemStack(Items.writable_book)));
List<IPage> bloodAltarPages = new ArrayList<IPage>();
bloodAltarPages.add(new PageIRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.altar), "a a", "aba", "cdc", 'a', "stone", 'b', Blocks.furnace, 'c', "ingotGold", 'd', new ItemStack(ModItems.monsterSoul))));
bloodAltarPages.add(new PageIRecipe(new ShapedOreRecipe(new ItemStack(ModItems.sacrificialDagger), "aaa", " ba", "c a", 'a', "blockGlass", 'b', "ingotGold", 'c', "ingotIron")));
bloodAltarPages.addAll(PageHelper.pagesForLongText(TextHelper.localize("guide.BloodMagic.entry.architect.bloodAltar.1"), 340));
bloodAltarPages.add(new PageAltarRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.diamond), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 2000, 2, 1)));
bloodAltarPages.addAll(PageHelper.pagesForLongText(TextHelper.localize("guide.BloodMagic.entry.architect.bloodAltar.2")));
entries.add(new EntryItemStack(bloodAltarPages, "guide.BloodMagic.entry.architect.bloodAltar", new ItemStack(ModBlocks.altar)));
categories.add(new CategoryItemStack(entries, "guide.BloodMagic.category.architect.name", new ItemStack(ModBlocks.altar)));
}
}

View file

@ -0,0 +1,69 @@
package WayofTime.bloodmagic.compat.guideapi.guide.page;
import WayofTime.bloodmagic.api.altar.EnumAltarTier;
import WayofTime.bloodmagic.api.registry.AltarRecipeRegistry;
import WayofTime.bloodmagic.util.helper.TextHelper;
import amerifrance.guideapi.api.abstraction.CategoryAbstract;
import amerifrance.guideapi.api.abstraction.EntryAbstract;
import amerifrance.guideapi.api.base.Book;
import amerifrance.guideapi.api.base.PageBase;
import amerifrance.guideapi.api.util.GuiHelper;
import amerifrance.guideapi.gui.GuiBase;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class PageAltarRecipe extends PageBase {
public ItemStack input;
public ItemStack output;
public EnumAltarTier tier;
public int bloodRequired;
public PageAltarRecipe(AltarRecipeRegistry.AltarRecipe recipe) {
this.input = recipe.getInput();
this.output = recipe.getOutput();
this.tier = recipe.getMinTier();
this.bloodRequired = recipe.getSyphon();
}
@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("bloodmagicguide" + ":textures/gui/altar.png"));
guiBase.drawTexturedModalRect(guiLeft + 42, guiTop + 53, 0, 87, 146, 104);
guiBase.drawCenteredString(fontRenderer, TextHelper.localize("guide.BloodMagic.page.bloodAltar"), guiLeft + guiBase.xSize / 2, guiTop + 12, 0);
int inputX = (1 + 1) * 20 + (guiLeft + guiBase.xSize / 7) + 1;
int inputY = (20) + (guiTop + guiBase.ySize / 5) - 1; //1 * 20
GuiHelper.drawItemStack(input, inputX, inputY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, inputX, inputY, 15, 15)) {
guiBase.renderToolTip(input, mouseX, mouseY);
}
if (output == null) {
output = new ItemStack(Blocks.barrier);
}
int outputX = (5 * 20) + (guiLeft + guiBase.xSize / 7) + 1;
int outputY = (20) + (guiTop + guiBase.xSize / 5) - 1; // 1 * 20
GuiHelper.drawItemStack(output, outputX, outputY);
if (GuiHelper.isMouseBetween(mouseX, mouseY, outputX, outputY, 15, 15)) {
guiBase.renderToolTip(output, outputX, outputY);
}
if (output.getItem() == Item.getItemFromBlock(Blocks.barrier)) {
guiBase.drawCenteredString(fontRenderer, TextHelper.localize("text.furnace.error"), guiLeft + guiBase.xSize / 2, guiTop + 4 * guiBase.ySize / 6, 0xED073D);
guiBase.drawCenteredString(fontRenderer, TextHelper.localize("guide.BloodMagic.page.tier", tier.toInt()), guiLeft + guiBase.xSize / 2, guiTop + 4 * guiBase.ySize / 6 + 15, 0);
guiBase.drawCenteredString(fontRenderer, TextHelper.localize("guide.BloodMagic.page.lp", bloodRequired), guiLeft + guiBase.xSize / 2, guiTop + 4 * guiBase.ySize / 6 + 30, 0);
}
guiBase.drawCenteredString(fontRenderer, TextHelper.localize("guide.BloodMagic.page.tier", tier.toInt()), guiLeft + guiBase.xSize / 2, guiTop + 4 * guiBase.ySize / 6, 0);
guiBase.drawCenteredString(fontRenderer, TextHelper.localize("guide.BloodMagic.page.lp", bloodRequired), guiLeft + guiBase.xSize / 2, guiTop + 4 * guiBase.ySize / 6 + 15, 0);
}
}

View file

@ -2,6 +2,7 @@ package WayofTime.bloodmagic.registry;
import java.util.ArrayList;
import WayofTime.bloodmagic.compat.guideapi.CompatibilityGuideAPI;
import net.minecraftforge.fml.common.Loader;
import WayofTime.bloodmagic.compat.ICompatibility;
import WayofTime.bloodmagic.compat.jei.CompatibilityJustEnoughItems;
@ -17,6 +18,7 @@ public class ModCompatibility
compatibilities.add(new CompatibilityJustEnoughItems());
compatibilities.add(new CompatibilityWaila());
compatibilities.add(new CompatibilityThaumcraft());
compatibilities.add(new CompatibilityGuideAPI());
}
public static void loadCompat(ICompatibility.InitializationPhase phase)