Testing
This commit is contained in:
commit
8601e9faff
498 changed files with 45817 additions and 0 deletions
198
BM_src/thaumcraft/api/research/ResearchPage.java
Normal file
198
BM_src/thaumcraft/api/research/ResearchPage.java
Normal file
|
@ -0,0 +1,198 @@
|
|||
package thaumcraft.api.research;
|
||||
|
||||
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 thaumcraft.api.aspects.AspectList;
|
||||
import thaumcraft.api.crafting.CrucibleRecipe;
|
||||
import thaumcraft.api.crafting.IArcaneRecipe;
|
||||
import thaumcraft.api.crafting.InfusionEnchantmentRecipe;
|
||||
import thaumcraft.api.crafting.InfusionRecipe;
|
||||
|
||||
public class ResearchPage
|
||||
{
|
||||
public static enum PageType
|
||||
{
|
||||
TEXT,
|
||||
TEXT_CONCEALED,
|
||||
IMAGE,
|
||||
CRUCIBLE_CRAFTING,
|
||||
ARCANE_CRAFTING,
|
||||
ASPECTS,
|
||||
NORMAL_CRAFTING,
|
||||
INFUSION_CRAFTING,
|
||||
COMPOUND_CRAFTING,
|
||||
INFUSION_ENCHANTMENT
|
||||
}
|
||||
|
||||
public PageType type = PageType.TEXT;
|
||||
|
||||
public String text = null;
|
||||
public String research = null;
|
||||
public ResourceLocation image = null;
|
||||
public AspectList aspects = null;
|
||||
public Object recipe = null;
|
||||
public ItemStack recipeOutput = null;
|
||||
|
||||
/**
|
||||
* @param text this can (but does not have to) be a reference to a localization variable, not the actual text.
|
||||
*/
|
||||
public ResearchPage(String text)
|
||||
{
|
||||
this.type = PageType.TEXT;
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param research this page will only be displayed if the player has discovered this research
|
||||
* @param text this can (but does not have to) be a reference to a localization variable, not the actual text.
|
||||
*/
|
||||
public ResearchPage(String research, String text)
|
||||
{
|
||||
this.type = PageType.TEXT_CONCEALED;
|
||||
this.research = research;
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param recipe a vanilla crafting recipe.
|
||||
*/
|
||||
public ResearchPage(IRecipe recipe)
|
||||
{
|
||||
this.type = PageType.NORMAL_CRAFTING;
|
||||
this.recipe = recipe;
|
||||
this.recipeOutput = recipe.getRecipeOutput();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param recipe a collection of vanilla crafting recipes.
|
||||
*/
|
||||
public ResearchPage(IRecipe[] recipe)
|
||||
{
|
||||
this.type = PageType.NORMAL_CRAFTING;
|
||||
this.recipe = recipe;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param recipe a collection of arcane crafting recipes.
|
||||
*/
|
||||
public ResearchPage(IArcaneRecipe[] recipe)
|
||||
{
|
||||
this.type = PageType.ARCANE_CRAFTING;
|
||||
this.recipe = recipe;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param recipe a collection of infusion crafting recipes.
|
||||
*/
|
||||
public ResearchPage(InfusionRecipe[] recipe)
|
||||
{
|
||||
this.type = PageType.INFUSION_CRAFTING;
|
||||
this.recipe = recipe;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param recipe a compound crafting recipe.
|
||||
*/
|
||||
public ResearchPage(List recipe)
|
||||
{
|
||||
this.type = PageType.COMPOUND_CRAFTING;
|
||||
this.recipe = recipe;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param recipe an arcane worktable crafting recipe.
|
||||
*/
|
||||
public ResearchPage(IArcaneRecipe recipe)
|
||||
{
|
||||
this.type = PageType.ARCANE_CRAFTING;
|
||||
this.recipe = recipe;
|
||||
this.recipeOutput = recipe.getRecipeOutput();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param recipe an alchemy crafting recipe.
|
||||
*/
|
||||
public ResearchPage(CrucibleRecipe recipe)
|
||||
{
|
||||
this.type = PageType.CRUCIBLE_CRAFTING;
|
||||
this.recipe = recipe;
|
||||
this.recipeOutput = recipe.recipeOutput;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param recipe an infusion crafting recipe.
|
||||
*/
|
||||
public ResearchPage(InfusionRecipe recipe)
|
||||
{
|
||||
this.type = PageType.INFUSION_CRAFTING;
|
||||
this.recipe = recipe;
|
||||
|
||||
if (recipe.recipeOutput instanceof ItemStack)
|
||||
{
|
||||
this.recipeOutput = (ItemStack) recipe.recipeOutput;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.recipeOutput = recipe.recipeInput;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param recipe an infusion crafting recipe.
|
||||
*/
|
||||
public ResearchPage(InfusionEnchantmentRecipe recipe)
|
||||
{
|
||||
this.type = PageType.INFUSION_ENCHANTMENT;
|
||||
this.recipe = recipe;
|
||||
// if (recipe.recipeOutput instanceof ItemStack) {
|
||||
// this.recipeOutput = (ItemStack) recipe.recipeOutput;
|
||||
// } else {
|
||||
// this.recipeOutput = recipe.recipeInput;
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
* @param image
|
||||
* @param caption this can (but does not have to) be a reference to a localization variable, not the actual text.
|
||||
*/
|
||||
public ResearchPage(ResourceLocation image, String caption)
|
||||
{
|
||||
this.type = PageType.IMAGE;
|
||||
this.image = image;
|
||||
this.text = caption;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function should really not be called directly - used internally
|
||||
*/
|
||||
public ResearchPage(AspectList as)
|
||||
{
|
||||
this.type = PageType.ASPECTS;
|
||||
this.aspects = as;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns a localized text of the text field (if one exists). Returns the text field itself otherwise.
|
||||
* @return
|
||||
*/
|
||||
public String getTranslatedText()
|
||||
{
|
||||
String ret = "";
|
||||
|
||||
if (text != null)
|
||||
{
|
||||
ret = StatCollector.translateToLocal(text);
|
||||
|
||||
if (ret.isEmpty())
|
||||
{
|
||||
ret = text;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue