package openmods.gui.component.page;
import com.google.common.base.Strings;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.IIcon;
import net.minecraft.util.StatCollector;
import openmods.gui.component.GuiComponentCraftingGrid;
import openmods.gui.component.GuiComponentItemStackSpinner;
import openmods.gui.component.GuiComponentLabel;
import openmods.gui.component.GuiComponentSprite;
import openmods.utils.RecipeUtils;
import openmods.utils.render.FakeIcon;
public class StandardRecipePage extends PageBase {
public static IIcon iconCraftingGrid = FakeIcon.createSheetIcon(0, 180, 56, 56);
public static IIcon iconArrow = FakeIcon.createSheetIcon(60, 198, 48, 15);
public StandardRecipePage(String title, String description, ItemStack resultingItem) {
addComponent(new GuiComponentSprite(75, 40, iconArrow, BOOK_TEXTURE));
addComponent(new GuiComponentItemStackSpinner(140, 30, resultingItem));
{
final IRecipe recipe = RecipeUtils.getFirstRecipeForItemStack(resultingItem);
if (recipe != null) {
ItemStack[][] input = RecipeUtils.getFullRecipeInput(recipe);
if (input != null) addComponent(new GuiComponentCraftingGrid(10, 20, input, iconCraftingGrid, BOOK_TEXTURE));
}
}
{
String translatedTitle = StatCollector.translateToLocal(title);
final GuiComponentLabel titleLabel = new GuiComponentLabel(0, 2, translatedTitle);
titleLabel.setX((getWidth() - titleLabel.getWidth()) / 2);
titleLabel.setScale(BookScaleConfig.getPageTitleScale());
addComponent(titleLabel);
}
{
String translatedDescription = StatCollector.translateToLocal(description).replaceAll("\\\\n", "\n");
GuiComponentLabel lblDescription = new GuiComponentLabel(10, 80, getWidth() - 5, 200, translatedDescription);
lblDescription.setScale(BookScaleConfig.getPageContentScale());
lblDescription.setAdditionalLineHeight(BookScaleConfig.getRecipePageSeparator());
addComponent(lblDescription);
}
}
public StandardRecipePage(String title, String description, String videoLink, ItemStack resultingItem) {
this(title, description, resultingItem);
if (!Strings.isNullOrEmpty(videoLink)) {
addActionButton(10, 133, videoLink, ActionIcon.YOUTUBE.icon, "openmodslib.gui.watch_video");
}
}
}