@Override public void transform(BookData book, SectionData data) { ContentListing listing = new ContentListing(); listing.title = book.translate(sectionName); PageData listingPage = new PageData(true); listingPage.name = sectionName; listingPage.source = data.source; listingPage.parent = data; listingPage.content = listing; data.pages.forEach(sectionPage -> processPage(book, listing, sectionPage)); if(listing.hasEntries()) { listingPage.load(); data.pages.add(0, listingPage); } }
public static void init() { BookLoader.registerPageType(ContentMaterial.ID, ContentMaterial.class); BookLoader.registerPageType(ContentModifier.ID, ContentModifier.class); BookLoader.registerPageType(ContentModifierFortify.ID, ContentModifierFortify.class); BookLoader.registerPageType(ContentTool.ID, ContentTool.class); BookLoader.registerPageType(ContentSingleStatMultMaterial.ID, ContentSingleStatMultMaterial.class); BookLoader.registerPageType(ContentImageText2.ID, ContentImageText2.class); INSTANCE.addRepository(new FileRepository(Util.resource("book"))); INSTANCE.addTransformer(new ToolSectionTransformer()); INSTANCE.addTransformer(new MaterialSectionTransformer()); INSTANCE.addTransformer(new ModifierSectionTransformer()); INSTANCE.addTransformer(new BowMaterialSectionTransformer()); INSTANCE.addTransformer(BookTransformer.IndexTranformer()); } }
@Override public void transform(BookData book, SectionData data) { ContentListing listing = new ContentListing(); listing.title = book.translate(sectionName); addPage(data, sectionName, "", listing); // don't do stuff during preinit etc, we only want to fill it once everything is added if(!Loader.instance().hasReachedState(LoaderState.POSTINITIALIZATION)) { return; } MATERIAL_TYPES_ON_DISPLAY.forEach(type -> { int pageIndex = data.pages.size(); generateContent(type, data); if(pageIndex < data.pages.size()) { listing.addEntry(getStatName(type), data.pages.get(pageIndex)); } }); }
public class ItemTinkerBook extends Item { public ItemTinkerBook() { this.setCreativeTab(TinkerRegistry.tabGeneral); this.setMaxStackSize(1); } @Nonnull @Override public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) { ItemStack itemStack = playerIn.getHeldItem(handIn); if(worldIn.isRemote) { TinkerBook.INSTANCE.openGui(itemStack); } return new ActionResult<>(EnumActionResult.SUCCESS, itemStack); } @Override public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag flagIn) { if(I18n.canTranslate(super.getUnlocalizedName(stack) + ".tooltip")) { tooltip.addAll(LocUtils.getTooltips(TextFormatting.GRAY.toString() + LocUtils.translateRecursive(super.getUnlocalizedName(stack) + ".tooltip"))); } } }
@Override public void mouseClicked(int mouseX, int mouseY, int mouseButton) { if(mouseButton == 0 && section != null && section.isUnlocked(parent.advancementCache) && isHovered(mouseX, mouseY)) { parent.openPage(parent.book.getFirstPageNumber(section, parent.advancementCache)); } } }
public boolean isUnlocked(GuiBook.AdvancementCache advancementCache) { if(advancementCache == null || requirements == null || requirements.length == 0) { return true; } for(String achievement : requirements) { if(!requirementSatisfied(achievement, advancementCache)) { return false; } } return true; }
public SectionData findSection(String name) { return findSection(name, null); }
public PageData findPage(int number) { return findPage(number, null); }
public int getPageCount() { return getPageCount(null); }
public int getFullPageCount() { return getFullPageCount(null); }
public int getFirstPageNumber(SectionData section) { return getFirstPageNumber(section, null); }
public int findPageNumber(String location) { return findPageNumber(location, null); }
ItemStack partbuilder = new ItemStack(TinkerTools.toolTables, 1, BlockToolTable.TableTypes.PartBuilder.meta); ElementItem elementItem = new ElementTinkerItem(partbuilder); elementItem.tooltip = ImmutableList.of(parent.translate("material.craft_partbuilder")); displayTools.add(elementItem); ItemStack basin = new ItemStack(TinkerSmeltery.castingBlock, 1, BlockCasting.CastingType.BASIN.getMeta()); ElementItem elementItem = new ElementTinkerItem(basin); String text = parent.translate("material.craft_casting"); elementItem.tooltip = ImmutableList.of(String.format(text, material.getFluid().getLocalizedName(new FluidStack(material.getFluid(), 0)))); displayTools.add(elementItem);
public static List<ContentPageIconList> getPagesNeededForItemCount(int count, SectionData data, String title) { List<ContentPageIconList> listPages = Lists.newArrayList(); while(count > 0) { ContentPageIconList overview = new ContentPageIconList(); PageData page = new PageData(true); page.source = data.source; page.parent = data; page.content = overview; page.load(); data.pages.add(page); overview.title = title; listPages.add(overview); count -= overview.getMaxIconCount(); } // ensure same size for all if(listPages.size() > 1) { listPages.forEach(page -> page.maxScale = 1f); } return listPages; } }
TextData head = new TextData(parent.translate("modifier.effect")); head.underlined = true; list.add(new ElementText(10, 20 + h, GuiBook.PAGE_WIDTH / 2 - 5, GuiBook.PAGE_HEIGHT - h - 20, head)); effectData.add(new TextData("\u25CF ")); effectData.add(new TextData(e)); effectData.add(new TextData("\n"));
public String translate(String string) { return parent.translate(string); }
List<ContentPageIconList> listPages = ContentPageIconList.getPagesNeededForItemCount(materialList.size(), data, book.translate(sectionName));