From 81584c2fb196ff759f97305693857c5370794ee3 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 11 Nov 2016 18:55:32 +0100 Subject: [PATCH] B U T T O N S --- .../api/booklet/IBookletChapter.java | 2 +- .../api/booklet/IBookletPage.java | 6 +- .../api/booklet/internal/GuiBookletBase.java | 2 +- .../mod/booklet/InitBooklet.java | 8 +- .../mod/booklet/chapter/BookletChapter.java | 4 +- .../mod/booklet/gui/GuiBooklet.java | 60 ++++++++++++ .../mod/booklet/gui/GuiEntry.java | 12 ++- .../mod/booklet/gui/GuiMainPage.java | 2 +- .../mod/booklet/gui/GuiPage.java | 86 +++++++++++++++++- .../mod/booklet/misc/BookletUtils.java | 9 +- .../mod/booklet/page/BookletPage.java | 16 ++-- .../mod/booklet/page/ItemDisplay.java | 12 ++- .../mod/booklet/page/PageCrafting.java | 37 ++++++-- .../mod/items/ItemBooklet.java | 2 +- .../jei/booklet/BookletRecipeCategory.java | 8 +- .../mod/jei/booklet/BookletRecipeWrapper.java | 16 ++-- .../gui/booklet/guiBookletGadgets.png | Bin 2760 -> 3295 bytes 17 files changed, 234 insertions(+), 48 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/booklet/IBookletChapter.java b/src/main/java/de/ellpeck/actuallyadditions/api/booklet/IBookletChapter.java index 76d798c39..194e3a5b0 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/booklet/IBookletChapter.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/booklet/IBookletChapter.java @@ -26,5 +26,5 @@ public interface IBookletChapter{ String getIdentifier(); - int getPageNum(IBookletPage page); + int getPageIndex(IBookletPage page); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/booklet/IBookletPage.java b/src/main/java/de/ellpeck/actuallyadditions/api/booklet/IBookletPage.java index 18dfdb721..1b6925645 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/booklet/IBookletPage.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/booklet/IBookletPage.java @@ -21,9 +21,9 @@ import java.util.List; public interface IBookletPage{ - List getItemStacksForPage(); + void getItemStacksForPage(List list); - List getFluidStacksForPage(); + void getFluidStacksForPage(List list); IBookletChapter getChapter(); @@ -47,7 +47,7 @@ public interface IBookletPage{ void initGui(GuiBookletBase gui, int startX, int startY); @SideOnly(Side.CLIENT) - void updateScreen(GuiBookletBase gui, int startX, int startY); + void updateScreen(GuiBookletBase gui, int startX, int startY, int pageTimer); @SideOnly(Side.CLIENT) void drawScreenPre(GuiBookletBase gui, int startX, int startY, int mouseX, int mouseY, float partialTicks); diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/booklet/internal/GuiBookletBase.java b/src/main/java/de/ellpeck/actuallyadditions/api/booklet/internal/GuiBookletBase.java index 9b3197965..0aa235f3d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/booklet/internal/GuiBookletBase.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/booklet/internal/GuiBookletBase.java @@ -32,5 +32,5 @@ public abstract class GuiBookletBase extends GuiScreen{ public abstract int getSizeY(); - public abstract void addItemRenderer(ItemStack renderedStack, int x, int y, float scale, boolean shouldTryTransfer); + public abstract void addOrModifyItemRenderer(ItemStack renderedStack, int x, int y, float scale, boolean shouldTryTransfer); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/InitBooklet.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/InitBooklet.java index add7a2005..1843eefa1 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/InitBooklet.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/InitBooklet.java @@ -79,10 +79,12 @@ public final class InitBooklet{ for(IBookletPage page : chapter.getAllPages()){ pageCount++; - List items = page.getItemStacksForPage(); - List fluids = page.getFluidStacksForPage(); + List items = new ArrayList(); + page.getItemStacksForPage(items); + List fluids = new ArrayList(); + page.getFluidStacksForPage(fluids); - if((items != null && !items.isEmpty()) || (fluids != null && !items.isEmpty())){ + if((items != null && !items.isEmpty()) || (fluids != null && !fluids.isEmpty())){ if(!ActuallyAdditionsAPI.BOOKLET_PAGES_WITH_ITEM_OR_FLUID_DATA.contains(page)){ ActuallyAdditionsAPI.BOOKLET_PAGES_WITH_ITEM_OR_FLUID_DATA.add(page); infoCount++; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/chapter/BookletChapter.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/chapter/BookletChapter.java index b727e5f24..d2be30c3f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/chapter/BookletChapter.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/chapter/BookletChapter.java @@ -71,10 +71,10 @@ public class BookletChapter implements IBookletChapter{ } @Override - public int getPageNum(IBookletPage page){ + public int getPageIndex(IBookletPage page){ for(int i = 0; i < this.pages.length; i++){ if(this.pages[i] == page){ - return i+1; + return i; } } return -1; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiBooklet.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiBooklet.java index 45aac8756..6dde68818 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiBooklet.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiBooklet.java @@ -11,6 +11,7 @@ package de.ellpeck.actuallyadditions.mod.booklet.gui; import de.ellpeck.actuallyadditions.api.booklet.internal.GuiBookletBase; +import de.ellpeck.actuallyadditions.mod.inventory.gui.TexturedButton; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil; import net.minecraft.client.gui.GuiButton; @@ -34,6 +35,10 @@ public abstract class GuiBooklet extends GuiBookletBase{ public GuiScreen previousScreen; protected GuiBookletBase parentPage; + private GuiButton buttonLeft; + private GuiButton buttonRight; + private GuiButton buttonBack; + protected int xSize; protected int ySize; protected int guiLeft; @@ -53,6 +58,21 @@ public abstract class GuiBooklet extends GuiBookletBase{ this.guiLeft = (this.width-this.xSize)/2; this.guiTop = (this.height-this.ySize)/2; + + if(this.hasPageLeftButton()){ + this.buttonLeft = new TexturedButton(RES_LOC_GADGETS, -2000, this.guiLeft-12, this.guiTop+this.ySize-8, 18, 54, 18, 10); + this.buttonList.add(this.buttonLeft); + } + + if(this.hasPageRightButton()){ + this.buttonRight = new TexturedButton(RES_LOC_GADGETS, -2001, this.guiLeft+this.xSize-6, this.guiTop+this.ySize-8, 0, 54, 18, 10); + this.buttonList.add(this.buttonRight); + } + + if(this.hasBackButton()){ + this.buttonBack = new TexturedButton(RES_LOC_GADGETS, -2002, this.guiLeft-12, this.guiTop-2, 36, 54, 18, 10); + this.buttonList.add(this.buttonBack); + } } @Override @@ -69,6 +89,46 @@ public abstract class GuiBooklet extends GuiBookletBase{ return false; } + public boolean hasPageLeftButton(){ + return false; + } + + public void onPageLeftButtonPressed(){ + + } + + public boolean hasPageRightButton(){ + return false; + } + + public void onPageRightButtonPressed(){ + + } + + public boolean hasBackButton(){ + return false; + } + + public void onBackButtonPressed(){ + + } + + @Override + protected void actionPerformed(GuiButton button) throws IOException{ + if(this.hasPageLeftButton() && button == this.buttonLeft){ + this.onPageLeftButtonPressed(); + } + else if(this.hasPageRightButton() && button == this.buttonRight){ + this.onPageRightButtonPressed(); + } + else if(this.hasBackButton() && button == this.buttonBack){ + this.onBackButtonPressed(); + } + else{ + super.actionPerformed(button); + } + } + @Override protected void keyTyped(char typedChar, int keyCode) throws IOException{ if(this.previousScreen != null && keyCode == Keyboard.KEY_ESCAPE){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiEntry.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiEntry.java index c234ce7b0..86970417f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiEntry.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiEntry.java @@ -89,7 +89,17 @@ public class GuiEntry extends GuiBooklet{ } @Override - public void addItemRenderer(ItemStack renderedStack, int x, int y, float scale, boolean shouldTryTransfer){ + public void addOrModifyItemRenderer(ItemStack renderedStack, int x, int y, float scale, boolean shouldTryTransfer){ } + + @Override + public boolean hasBackButton(){ + return true; + } + + @Override + public void onBackButtonPressed(){ + this.mc.displayGuiScreen(this.parentPage); + } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiMainPage.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiMainPage.java index fadc2c625..e7d63e050 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiMainPage.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiMainPage.java @@ -62,7 +62,7 @@ public class GuiMainPage extends GuiBooklet{ } @Override - public void addItemRenderer(ItemStack renderedStack, int x, int y, float scale, boolean shouldTryTransfer){ + public void addOrModifyItemRenderer(ItemStack renderedStack, int x, int y, float scale, boolean shouldTryTransfer){ } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiPage.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiPage.java index 2ec3f79ed..38e2e5dba 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiPage.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiPage.java @@ -10,8 +10,10 @@ package de.ellpeck.actuallyadditions.mod.booklet.gui; +import de.ellpeck.actuallyadditions.api.booklet.IBookletChapter; import de.ellpeck.actuallyadditions.api.booklet.IBookletPage; import de.ellpeck.actuallyadditions.api.booklet.internal.GuiBookletBase; +import de.ellpeck.actuallyadditions.mod.booklet.misc.BookletUtils; import de.ellpeck.actuallyadditions.mod.booklet.page.ItemDisplay; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; @@ -27,6 +29,7 @@ import java.util.List; @SideOnly(Side.CLIENT) public class GuiPage extends GuiBooklet{ + private int pageTimer; private final List itemDisplays = new ArrayList(); public final IBookletPage[] pages = new IBookletPage[2]; @@ -87,8 +90,8 @@ public class GuiPage extends GuiBooklet{ @Override public void initGui(){ - super.initGui(); this.itemDisplays.clear(); + super.initGui(); for(int i = 0; i < this.pages.length; i++){ IBookletPage page = this.pages[i]; @@ -105,9 +108,11 @@ public class GuiPage extends GuiBooklet{ for(int i = 0; i < this.pages.length; i++){ IBookletPage page = this.pages[i]; if(page != null){ - page.updateScreen(this, this.guiLeft+6+i*142, this.guiTop+7); + page.updateScreen(this, this.guiLeft+6+i*142, this.guiTop+7, this.pageTimer); } } + + this.pageTimer++; } @Override @@ -138,7 +143,82 @@ public class GuiPage extends GuiBooklet{ } @Override - public void addItemRenderer(ItemStack renderedStack, int x, int y, float scale, boolean shouldTryTransfer){ + public void addOrModifyItemRenderer(ItemStack renderedStack, int x, int y, float scale, boolean shouldTryTransfer){ + for(ItemDisplay display : this.itemDisplays){ + if(display.x == x && display.y == y && display.scale == scale){ + display.stack = renderedStack; + return; + } + } + this.itemDisplays.add(new ItemDisplay(this, x, y, scale, renderedStack, shouldTryTransfer)); } + + @Override + public boolean hasPageLeftButton(){ + IBookletPage page = this.pages[0]; + if(page != null){ + IBookletChapter chapter = page.getChapter(); + if(chapter != null){ + return chapter.getPageIndex(page) > 0; + } + } + return false; + } + + @Override + public void onPageLeftButtonPressed(){ + IBookletPage page = this.pages[0]; + if(page != null){ + IBookletChapter chapter = page.getChapter(); + if(chapter != null){ + IBookletPage[] pages = chapter.getAllPages(); + + int pageNumToOpen = chapter.getPageIndex(page)-1; + if(pageNumToOpen >= 0 && pageNumToOpen < pages.length){ + this.mc.displayGuiScreen(BookletUtils.createPageGui(this.previousScreen, this.parentPage, pages[pageNumToOpen])); + } + } + } + } + + @Override + public boolean hasPageRightButton(){ + IBookletPage page = this.pages[1]; + if(page != null){ + IBookletChapter chapter = page.getChapter(); + if(chapter != null){ + int pageIndex = chapter.getPageIndex(page); + int pageAmount = chapter.getAllPages().length; + return pageIndex+1 < pageAmount-1; + } + } + return false; + } + + @Override + public void onPageRightButtonPressed(){ + IBookletPage page = this.pages[1]; + if(page != null){ + IBookletChapter chapter = page.getChapter(); + if(chapter != null){ + IBookletPage[] pages = chapter.getAllPages(); + + int pageNumToOpen = chapter.getPageIndex(page)+1; + if(pageNumToOpen >= 0 && pageNumToOpen < pages.length){ + this.mc.displayGuiScreen(BookletUtils.createPageGui(this.previousScreen, this.parentPage, pages[pageNumToOpen])); + } + } + } + } + + @Override + public boolean hasBackButton(){ + return true; + } + + @Override + public void onBackButtonPressed(){ + this.mc.displayGuiScreen(this.parentPage); + } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/misc/BookletUtils.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/misc/BookletUtils.java index 9c777c268..83bab9043 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/misc/BookletUtils.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/misc/BookletUtils.java @@ -13,6 +13,7 @@ package de.ellpeck.actuallyadditions.mod.booklet.misc; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; import de.ellpeck.actuallyadditions.api.booklet.IBookletChapter; import de.ellpeck.actuallyadditions.api.booklet.IBookletPage; +import de.ellpeck.actuallyadditions.api.booklet.internal.GuiBookletBase; import de.ellpeck.actuallyadditions.mod.booklet.gui.GuiBooklet; import de.ellpeck.actuallyadditions.mod.booklet.gui.GuiEntry; import de.ellpeck.actuallyadditions.mod.booklet.gui.GuiMainPage; @@ -21,13 +22,15 @@ import de.ellpeck.actuallyadditions.mod.util.ItemUtil; import net.minecraft.client.gui.GuiScreen; import net.minecraft.item.ItemStack; +import java.util.ArrayList; import java.util.List; public final class BookletUtils{ public static IBookletPage findFirstPageForStack(ItemStack stack){ for(IBookletPage page : ActuallyAdditionsAPI.BOOKLET_PAGES_WITH_ITEM_OR_FLUID_DATA){ - List stacks = page.getItemStacksForPage(); + List stacks = new ArrayList(); + page.getItemStacksForPage(stacks); if(stacks != null && !stacks.isEmpty()){ for(ItemStack pageStack : stacks){ if(ItemUtil.areItemsEqual(pageStack, stack, true)){ @@ -48,11 +51,11 @@ public final class BookletUtils{ return createPageGui(previousScreen, entry, page); } - public static GuiPage createPageGui(GuiScreen previousScreen, GuiBooklet parentPage, IBookletPage page){ + public static GuiPage createPageGui(GuiScreen previousScreen, GuiBookletBase parentPage, IBookletPage page){ IBookletChapter chapter = page.getChapter(); IBookletPage[] allPages = chapter.getAllPages(); - int pageIndex = chapter.getPageNum(page)-1; + int pageIndex = chapter.getPageIndex(page); IBookletPage page1; IBookletPage page2; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/BookletPage.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/BookletPage.java index 85c306afc..1e4e31cf7 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/BookletPage.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/BookletPage.java @@ -32,8 +32,8 @@ public class BookletPage implements IBookletPage{ protected IBookletChapter chapter; - protected List fluidsForPage = new ArrayList(); - protected List itemsForPage = new ArrayList(); + private final List itemsForPage = new ArrayList(); + private final List fluidsForPage = new ArrayList(); protected boolean hasNoText; protected final HashMap textReplacements = new HashMap(); @@ -44,13 +44,13 @@ public class BookletPage implements IBookletPage{ } @Override - public List getItemStacksForPage(){ - return this.itemsForPage; + public void getItemStacksForPage(List list){ + list.addAll(this.itemsForPage); } @Override - public List getFluidStacksForPage(){ - return this.fluidsForPage; + public void getFluidStacksForPage(List list){ + list.addAll(this.fluidsForPage); } @Override @@ -115,7 +115,7 @@ public class BookletPage implements IBookletPage{ @Override @SideOnly(Side.CLIENT) - public void updateScreen(GuiBookletBase gui, int startX, int startY){ + public void updateScreen(GuiBookletBase gui, int startX, int startY, int pageTimer){ } @@ -133,7 +133,7 @@ public class BookletPage implements IBookletPage{ @Override public boolean shouldBeOnLeftSide(){ - return this.chapter.getPageNum(this)%2 != 0; + return (this.chapter.getPageIndex(this)+1)%2 != 0; } public BookletPage setNoText(){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/ItemDisplay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/ItemDisplay.java index ed6e4ba55..e0402a713 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/ItemDisplay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/ItemDisplay.java @@ -24,17 +24,19 @@ import net.minecraft.init.SoundEvents; import net.minecraft.item.ItemStack; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fml.client.config.GuiUtils; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.util.List; public class ItemDisplay{ private final GuiPage gui; - private final int x; - private final int y; - private final float scale; + public final int x; + public final int y; + public final float scale; - private final ItemStack stack; + public ItemStack stack; private final IBookletPage page; public ItemDisplay(GuiPage gui, int x, int y, float scale, ItemStack stack, boolean shouldTryTransfer){ @@ -46,10 +48,12 @@ public class ItemDisplay{ this.page = shouldTryTransfer ? BookletUtils.findFirstPageForStack(stack) : null; } + @SideOnly(Side.CLIENT) public void drawPre(){ AssetUtil.renderStackToGui(this.stack, this.x, this.y, this.scale); } + @SideOnly(Side.CLIENT) public void drawPost(int mouseX, int mouseY){ if(this.isHovered(mouseX, mouseY)){ Minecraft mc = this.gui.mc; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/PageCrafting.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/PageCrafting.java index 65a0e3cc8..892726206 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/PageCrafting.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/page/PageCrafting.java @@ -32,6 +32,7 @@ import java.util.List; public class PageCrafting extends BookletPage{ + private int recipeAt; private String recipeTypeLocKey; private boolean isWildcard; private final List recipes; @@ -64,20 +65,38 @@ public class PageCrafting extends BookletPage{ } @Override - public void initGui(GuiBookletBase gui, int startX, int startY){ - super.initGui(gui, startX, startY); + @SideOnly(Side.CLIENT) + public void updateScreen(GuiBookletBase gui, int startX, int startY, int pageTimer){ + super.updateScreen(gui, startX, startY, pageTimer); + if(pageTimer%20 == 0){ + this.findRecipe(gui, startX, startY); + } + } + + private void findRecipe(GuiBookletBase gui, int startX, int startY){ if(!this.recipes.isEmpty()){ - IRecipe recipe = this.recipes.get(0); + IRecipe recipe = this.recipes.get(this.recipeAt); if(recipe != null){ this.setupRecipe(gui, recipe, startX, startY); } + + this.recipeAt++; + if(this.recipeAt >= this.recipes.size()){ + this.recipeAt = 0; + } } } @Override - public List getItemStacksForPage(){ - List stacks = super.getItemStacksForPage(); + public void initGui(GuiBookletBase gui, int startX, int startY){ + super.initGui(gui, startX, startY); + this.findRecipe(gui, startX, startY); + } + + @Override + public void getItemStacksForPage(List list){ + super.getItemStacksForPage(list); if(!this.recipes.isEmpty()){ for(IRecipe recipe : this.recipes){ @@ -88,13 +107,11 @@ public class PageCrafting extends BookletPage{ if(this.isWildcard){ copy.setItemDamage(Util.WILDCARD); } - stacks.add(copy); + list.add(copy); } } } } - - return stacks; } private void setupRecipe(GuiBookletBase gui, IRecipe recipe, int startX, int startY){ @@ -152,11 +169,11 @@ public class PageCrafting extends BookletPage{ copy.setItemDamage(0); } - gui.addItemRenderer(copy, startX+6+x*18, startY+7+y*18, 1F, true); + gui.addOrModifyItemRenderer(copy, startX+6+x*18, startY+7+y*18, 1F, true); } } } - gui.addItemRenderer(recipe.getRecipeOutput(), startX+100, startY+25, 1F, false); + gui.addOrModifyItemRenderer(recipe.getRecipeOutput(), startX+100, startY+25, 1F, false); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBooklet.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBooklet.java index e64e31f01..33236fbe5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBooklet.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemBooklet.java @@ -109,7 +109,7 @@ public class ItemBooklet extends ItemBase implements IHudDisplay{ IBookletPage page = BookletUtils.findFirstPageForStack(blockStack); if(page != null){ String strg1 = page.getChapter().getLocalizedName(); - String strg2 = "Page "+page.getChapter().getPageNum(page); + String strg2 = "Page "+(page.getChapter().getPageIndex(page)+1); String strg3 = "Right-Click to open..."; AssetUtil.renderStackToGui(page.getChapter().getDisplayItemStack() != null ? page.getChapter().getDisplayItemStack() : new ItemStack(InitItems.itemBooklet), resolution.getScaledWidth()/2-10, height+41, 1F); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/jei/booklet/BookletRecipeCategory.java b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/booklet/BookletRecipeCategory.java index eb44691d8..bdecc0209 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/jei/booklet/BookletRecipeCategory.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/booklet/BookletRecipeCategory.java @@ -16,8 +16,11 @@ import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; +import net.minecraft.item.ItemStack; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; public class BookletRecipeCategory extends BlankRecipeCategory{ @@ -49,6 +52,9 @@ public class BookletRecipeCategory extends BlankRecipeCategory list = new ArrayList(); + wrapper.thePage.getItemStacksForPage(list); + recipeLayout.getItemStacks().set(0, list); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/jei/booklet/BookletRecipeWrapper.java b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/booklet/BookletRecipeWrapper.java index 5050f29c4..a144d1fd6 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/jei/booklet/BookletRecipeWrapper.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/jei/booklet/BookletRecipeWrapper.java @@ -21,7 +21,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fluids.FluidStack; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; public class BookletRecipeWrapper extends RecipeWrapperWithButton{ @@ -34,11 +34,15 @@ public class BookletRecipeWrapper extends RecipeWrapperWithButton{ @Override public void getIngredients(IIngredients ingredients){ - ingredients.setInputs(ItemStack.class, this.thePage.getItemStacksForPage()); - ingredients.setInputs(FluidStack.class, this.thePage.getFluidStacksForPage()); + List itemList = new ArrayList(); + this.thePage.getItemStacksForPage(itemList); + ingredients.setInputs(ItemStack.class, itemList); + ingredients.setOutputs(ItemStack.class, itemList); - ingredients.setOutputs(ItemStack.class, this.thePage.getItemStacksForPage()); - ingredients.setOutputs(FluidStack.class, this.thePage.getFluidStacksForPage()); + List fluidList = new ArrayList(); + this.thePage.getFluidStacksForPage(fluidList); + ingredients.setInputs(FluidStack.class, fluidList); + ingredients.setOutputs(FluidStack.class, fluidList); } @Override @@ -56,7 +60,7 @@ public class BookletRecipeWrapper extends RecipeWrapperWithButton{ minecraft.fontRendererObj.drawString(text.get(i)+(i == maxLines-1 && text.size() > maxLines ? TextFormatting.RESET+""+TextFormatting.BLACK+"..." : ""), 0, 16+25+i*(minecraft.fontRendererObj.FONT_HEIGHT+1), 0, false); } minecraft.fontRendererObj.drawString(TextFormatting.ITALIC+chapter.getLocalizedName(), 25, 85, 0, false); - minecraft.fontRendererObj.drawString(TextFormatting.ITALIC+"Page "+chapter.getPageNum(this.thePage), 25, 95, 0, false); + minecraft.fontRendererObj.drawString(TextFormatting.ITALIC+"Page "+(chapter.getPageIndex(this.thePage)+1), 25, 95, 0, false); super.drawInfo(minecraft, recipeWidth, recipeHeight, mouseX, mouseY); } diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/booklet/guiBookletGadgets.png b/src/main/resources/assets/actuallyadditions/textures/gui/booklet/guiBookletGadgets.png index 3c519266ea74d00d7487dd72c929c6d6b7d56eaf..cf084f7c7bb6b72bf1e438fd1fcd47a56d30eeb1 100644 GIT binary patch literal 3295 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 literal 2760 zcmeHJX;jlm67OUZ0uh7}7#0Wwol&!LiR-~72?7&=kwcV40SPRJ=oq<=04C~6bPysU zgMbn+>Ak7ohkJN84 zJ!4~w$;^q|eDQDjvF~1_;$y=_>V5Y-nZp%*mp14fK3Yc}x}ID;!}CbVSFw+*fm^4n z&IWehvdOVYlf<3=@y8#kd}_%H>QPMz|8;=L|0IV^^X7 zgMU_&9|knk?1|{cpux$TEbz7}aPaukQ%5(aMStgIEE90^ z`qtKxY@_)}l*smpgQ0`0ukQ2G(#;P==#fUuCql#7=ocs681G z6k}d4tWAzF%#52zZSX&G&(}+?Ks2K8ScN@KqX^q3~}9Yr@=pG3Vh)_53MH?>1^e1Jz#N)&V{dQnb8j+E|u4 zx*T7uy7$b7Hw6$Z}R!Zmbcuv%#9$ztjN&inHJGRxC zFEnA%AifAFP&pZ?@CUdvLBmu_9WZlEx3%B!zOXImaDsl7e9u$GO7N-7y4+>5HdQ(y z>AiDWhrnoD-8_(wM$&9`kXm0={`yFI>h$0s_Q^1BUv^+c{NCp1hNq2 zI^dt+mmQTIS*Au8*=Ym)Z?nGAelIL*5nQ}sIGplOxH>H~V;p|hxa@ZN)shHDGd}dl zvVpu0g4c;2b(8MIr`xDVg>_Y-VOn+Lfq1OMvRmK$*__{Y6>5|e>t9Ic_{*y?rGQeh zs@pi=g9C5wj(WSqPRH|6i>c zrsv#YZz@ypVNlMz{@W`N&8zGu6d{4KT88SY+3Ma`*1Xui+bY^zJ~Q-cxBU`@sOB8) z1%xxh#P#T=akPkVvbl=1bzXkIh3ZHNf1W=33-uF!YvhPsN}uraK+WOK0qJbwR7qL0 z?BPTJP+C5%?q%OO04v&f3?>sVFm(tG2$g{<&%xR=TsM>Sb0m@rrS>eWZ;;`s4WVU1-|3 zwBalAPN5D25$6DZ7M!ZCm>aCKb2AwhFclJ!-LQb$jy-0dAb2_A4ffA`pa(?kSkD5~ zNLxH}38K-dcIK4eW-F04oLg(T(4x0)2yNma@!oo^@YLeCm0-KG1AK)XGq}_&y$h8- z3-C+s1h&X_+Ub`Ez{O4HM57$ZW;7{Oi9jx1^9JQk93m|MqcO3ycmJ9|PO}#7vsf06 z*e0=suODz~;5c^F4s*s}!Uw35vASRC#zbjBP>)w+wpds8&>ftAW=ae{cOS(QXB2oEJ>yFQmun*zqi!eyH7V;J9n+6`0YYr&FKCFRHtPF2!a&#N z_8kzf+JyQckzhAn{Xr4Lnb(4KbwDp>SLFqW?wtOILpY5eO8A=2I zi-yvNFPb<3<51Psi|VkXYny@QUz>j=;s3W1FeQ;nWL;#mc+-N~Z_pPLxVm^aR~;Z- F_#F`$oJjxx