mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-22 23:28:35 +01:00
Added page sorting for the booklet
This commit is contained in:
parent
b57da71627
commit
39a72e176b
18 changed files with 148 additions and 17 deletions
|
@ -31,7 +31,7 @@ public final class ActuallyAdditionsAPI{
|
||||||
|
|
||||||
public static final String MOD_ID = "actuallyadditions";
|
public static final String MOD_ID = "actuallyadditions";
|
||||||
public static final String API_ID = MOD_ID+"api";
|
public static final String API_ID = MOD_ID+"api";
|
||||||
public static final String API_VERSION = "30";
|
public static final String API_VERSION = "31";
|
||||||
|
|
||||||
public static final List<CrusherRecipe> CRUSHER_RECIPES = new ArrayList<CrusherRecipe>();
|
public static final List<CrusherRecipe> CRUSHER_RECIPES = new ArrayList<CrusherRecipe>();
|
||||||
public static final List<BallOfFurReturn> BALL_OF_FUR_RETURN_ITEMS = new ArrayList<BallOfFurReturn>();
|
public static final List<BallOfFurReturn> BALL_OF_FUR_RETURN_ITEMS = new ArrayList<BallOfFurReturn>();
|
||||||
|
|
|
@ -27,4 +27,6 @@ public interface IBookletChapter{
|
||||||
String getIdentifier();
|
String getIdentifier();
|
||||||
|
|
||||||
int getPageIndex(IBookletPage page);
|
int getPageIndex(IBookletPage page);
|
||||||
|
|
||||||
|
int getSortingPriority();
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,4 +29,6 @@ public interface IBookletEntry{
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
List<IBookletChapter> getChaptersForDisplay(String searchBarText);
|
List<IBookletChapter> getChaptersForDisplay(String searchBarText);
|
||||||
|
|
||||||
|
int getSortingPriority();
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,4 +66,6 @@ public interface IBookletPage{
|
||||||
IBookletPage addTextReplacement(String key, float value);
|
IBookletPage addTextReplacement(String key, float value);
|
||||||
|
|
||||||
IBookletPage addTextReplacement(String key, int value);
|
IBookletPage addTextReplacement(String key, int value);
|
||||||
|
|
||||||
|
int getSortingPriority();
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,4 +53,14 @@ public interface IMethodHandler{
|
||||||
IBookletPage generateFurnacePage(int id, ItemStack input, ItemStack result);
|
IBookletPage generateFurnacePage(int id, ItemStack input, ItemStack result);
|
||||||
|
|
||||||
IBookletChapter generateBookletChapter(String identifier, IBookletEntry entry, ItemStack displayStack, IBookletPage... pages);
|
IBookletChapter generateBookletChapter(String identifier, IBookletEntry entry, ItemStack displayStack, IBookletPage... pages);
|
||||||
|
|
||||||
|
IBookletPage generateTextPage(int id, int priority);
|
||||||
|
|
||||||
|
IBookletPage generatePicturePage(int id, ResourceLocation resLoc, int textStartY, int priority);
|
||||||
|
|
||||||
|
IBookletPage generateCraftingPage(int id, int priority, IRecipe... recipes);
|
||||||
|
|
||||||
|
IBookletPage generateFurnacePage(int id, ItemStack input, ItemStack result, int priority);
|
||||||
|
|
||||||
|
IBookletChapter generateBookletChapter(String identifier, IBookletEntry entry, ItemStack displayStack, int priority, IBookletPage... pages);
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,7 +137,7 @@ public class ActuallyAdditions{
|
||||||
LensRecipeHandler.init();
|
LensRecipeHandler.init();
|
||||||
EmpowererHandler.init();
|
EmpowererHandler.init();
|
||||||
|
|
||||||
InitBooklet.init();
|
InitBooklet.postInit();
|
||||||
proxy.postInit(event);
|
proxy.postInit(event);
|
||||||
|
|
||||||
ModUtil.LOGGER.info("PostInitialization Finished.");
|
ModUtil.LOGGER.info("PostInitialization Finished.");
|
||||||
|
|
|
@ -45,15 +45,15 @@ import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.crafting.IRecipe;
|
import net.minecraft.item.crafting.IRecipe;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public final class InitBooklet{
|
public final class InitBooklet{
|
||||||
|
|
||||||
public static BookletChapter[] chaptersIntroduction = new BookletChapter[9];
|
public static BookletChapter[] chaptersIntroduction = new BookletChapter[9];
|
||||||
|
|
||||||
public static void preInit(){
|
public static void preInit(){
|
||||||
|
ActuallyAdditionsAPI.allAndSearch = new BookletEntryAllItems("allAndSearch").setImportant();
|
||||||
|
|
||||||
ActuallyAdditionsAPI.entryGettingStarted = new BookletEntry("gettingStarted").setImportant();
|
ActuallyAdditionsAPI.entryGettingStarted = new BookletEntry("gettingStarted").setImportant();
|
||||||
ActuallyAdditionsAPI.entryReconstruction = new BookletEntry("reconstruction");
|
ActuallyAdditionsAPI.entryReconstruction = new BookletEntry("reconstruction");
|
||||||
ActuallyAdditionsAPI.entryLaserRelays = new BookletEntry("laserRelays").setSpecial();
|
ActuallyAdditionsAPI.entryLaserRelays = new BookletEntry("laserRelays").setSpecial();
|
||||||
|
@ -64,10 +64,9 @@ public final class InitBooklet{
|
||||||
ActuallyAdditionsAPI.entryItemsRF = new BookletEntry("itemsRF");
|
ActuallyAdditionsAPI.entryItemsRF = new BookletEntry("itemsRF");
|
||||||
ActuallyAdditionsAPI.entryMisc = new BookletEntry("misc");
|
ActuallyAdditionsAPI.entryMisc = new BookletEntry("misc");
|
||||||
ActuallyAdditionsAPI.entryUpdatesAndInfos = new BookletEntry("updatesAndInfos").setSpecial();
|
ActuallyAdditionsAPI.entryUpdatesAndInfos = new BookletEntry("updatesAndInfos").setSpecial();
|
||||||
ActuallyAdditionsAPI.allAndSearch = new BookletEntryAllItems("allAndSearch").setImportant();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void init(){
|
public static void postInit(){
|
||||||
initChapters();
|
initChapters();
|
||||||
|
|
||||||
int chapCount = 0;
|
int chapCount = 0;
|
||||||
|
@ -98,6 +97,31 @@ public final class InitBooklet{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Collections.sort(ActuallyAdditionsAPI.BOOKLET_ENTRIES, new Comparator<IBookletEntry>(){
|
||||||
|
@Override
|
||||||
|
public int compare(IBookletEntry entry1, IBookletEntry entry2){
|
||||||
|
Integer prio1 = entry1.getSortingPriority();
|
||||||
|
Integer prio2 = entry2.getSortingPriority();
|
||||||
|
return prio2.compareTo(prio1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Collections.sort(ActuallyAdditionsAPI.ALL_CHAPTERS, new Comparator<IBookletChapter>(){
|
||||||
|
@Override
|
||||||
|
public int compare(IBookletChapter chapter1, IBookletChapter chapter2){
|
||||||
|
Integer prio1 = chapter1.getSortingPriority();
|
||||||
|
Integer prio2 = chapter2.getSortingPriority();
|
||||||
|
return prio2.compareTo(prio1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Collections.sort(ActuallyAdditionsAPI.BOOKLET_PAGES_WITH_ITEM_OR_FLUID_DATA, new Comparator<IBookletPage>(){
|
||||||
|
@Override
|
||||||
|
public int compare(IBookletPage page1, IBookletPage page2){
|
||||||
|
Integer prio1 = page1.getSortingPriority();
|
||||||
|
Integer prio2 = page2.getSortingPriority();
|
||||||
|
return prio2.compareTo(prio1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
ModUtil.LOGGER.info("Registered a total of "+chapCount+" booklet chapters, where "+infoCount+" out of "+pageCount+" booklet pages contain information about items or fluids!");
|
ModUtil.LOGGER.info("Registered a total of "+chapCount+" booklet chapters, where "+infoCount+" out of "+pageCount+" booklet pages contain information about items or fluids!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,13 +24,19 @@ public class BookletChapter implements IBookletChapter{
|
||||||
public final IBookletEntry entry;
|
public final IBookletEntry entry;
|
||||||
public final ItemStack displayStack;
|
public final ItemStack displayStack;
|
||||||
private final String identifier;
|
private final String identifier;
|
||||||
|
private final int priority;
|
||||||
public TextFormatting color;
|
public TextFormatting color;
|
||||||
|
|
||||||
public BookletChapter(String identifier, IBookletEntry entry, ItemStack displayStack, IBookletPage... pages){
|
public BookletChapter(String identifier, IBookletEntry entry, ItemStack displayStack, IBookletPage... pages){
|
||||||
|
this(identifier, entry, displayStack, 0, pages);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BookletChapter(String identifier, IBookletEntry entry, ItemStack displayStack, int priority, IBookletPage... pages){
|
||||||
this.pages = pages;
|
this.pages = pages;
|
||||||
this.identifier = identifier;
|
this.identifier = identifier;
|
||||||
this.entry = entry;
|
this.entry = entry;
|
||||||
this.displayStack = displayStack;
|
this.displayStack = displayStack;
|
||||||
|
this.priority = priority;
|
||||||
this.color = TextFormatting.RESET;
|
this.color = TextFormatting.RESET;
|
||||||
|
|
||||||
this.entry.addChapter(this);
|
this.entry.addChapter(this);
|
||||||
|
@ -79,6 +85,11 @@ public class BookletChapter implements IBookletChapter{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSortingPriority(){
|
||||||
|
return this.priority;
|
||||||
|
}
|
||||||
|
|
||||||
public BookletChapter setImportant(){
|
public BookletChapter setImportant(){
|
||||||
this.color = TextFormatting.DARK_GREEN;
|
this.color = TextFormatting.DARK_GREEN;
|
||||||
return this;
|
return this;
|
||||||
|
|
|
@ -31,11 +31,17 @@ import java.util.Locale;
|
||||||
public class BookletEntry implements IBookletEntry{
|
public class BookletEntry implements IBookletEntry{
|
||||||
|
|
||||||
private final String identifier;
|
private final String identifier;
|
||||||
|
private final int priority;
|
||||||
private final List<IBookletChapter> chapters = new ArrayList<IBookletChapter>();
|
private final List<IBookletChapter> chapters = new ArrayList<IBookletChapter>();
|
||||||
private TextFormatting color;
|
private TextFormatting color;
|
||||||
|
|
||||||
public BookletEntry(String identifier){
|
public BookletEntry(String identifier){
|
||||||
|
this(identifier, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BookletEntry(String identifier, int prio){
|
||||||
this.identifier = identifier;
|
this.identifier = identifier;
|
||||||
|
this.priority = prio;
|
||||||
ActuallyAdditionsAPI.addBookletEntry(this);
|
ActuallyAdditionsAPI.addBookletEntry(this);
|
||||||
|
|
||||||
this.color = TextFormatting.RESET;
|
this.color = TextFormatting.RESET;
|
||||||
|
@ -129,6 +135,11 @@ public class BookletEntry implements IBookletEntry{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSortingPriority(){
|
||||||
|
return this.priority;
|
||||||
|
}
|
||||||
|
|
||||||
public BookletEntry setImportant(){
|
public BookletEntry setImportant(){
|
||||||
this.color = TextFormatting.DARK_GREEN;
|
this.color = TextFormatting.DARK_GREEN;
|
||||||
return this;
|
return this;
|
||||||
|
|
|
@ -18,7 +18,7 @@ import java.util.List;
|
||||||
public class BookletEntryAllItems extends BookletEntry{
|
public class BookletEntryAllItems extends BookletEntry{
|
||||||
|
|
||||||
public BookletEntryAllItems(String identifier){
|
public BookletEntryAllItems(String identifier){
|
||||||
super(identifier);
|
super(identifier, -Integer.MAX_VALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -32,13 +32,19 @@ public class BookletPage implements IBookletPage{
|
||||||
|
|
||||||
protected final HashMap<String, String> textReplacements = new HashMap<String, String>();
|
protected final HashMap<String, String> textReplacements = new HashMap<String, String>();
|
||||||
protected final int localizationKey;
|
protected final int localizationKey;
|
||||||
|
private final int priority;
|
||||||
private final List<ItemStack> itemsForPage = new ArrayList<ItemStack>();
|
private final List<ItemStack> itemsForPage = new ArrayList<ItemStack>();
|
||||||
private final List<FluidStack> fluidsForPage = new ArrayList<FluidStack>();
|
private final List<FluidStack> fluidsForPage = new ArrayList<FluidStack>();
|
||||||
protected IBookletChapter chapter;
|
protected IBookletChapter chapter;
|
||||||
protected boolean hasNoText;
|
protected boolean hasNoText;
|
||||||
|
|
||||||
public BookletPage(int localizationKey){
|
public BookletPage(int localizationKey){
|
||||||
|
this(localizationKey, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BookletPage(int localizationKey, int priority){
|
||||||
this.localizationKey = localizationKey;
|
this.localizationKey = localizationKey;
|
||||||
|
this.priority = priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -174,4 +180,9 @@ public class BookletPage implements IBookletPage{
|
||||||
public BookletPage addTextReplacement(String key, int value){
|
public BookletPage addTextReplacement(String key, int value){
|
||||||
return this.addTextReplacement(key, Integer.toString(value));
|
return this.addTextReplacement(key, Integer.toString(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSortingPriority(){
|
||||||
|
return this.priority;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -37,13 +37,22 @@ public class PageCrafting extends BookletPage{
|
||||||
private String recipeTypeLocKey;
|
private String recipeTypeLocKey;
|
||||||
private boolean isWildcard;
|
private boolean isWildcard;
|
||||||
|
|
||||||
public PageCrafting(int localizationKey, List<IRecipe> recipes){
|
public PageCrafting(int localizationKey, int priority, List<IRecipe> recipes){
|
||||||
super(localizationKey);
|
super(localizationKey, priority);
|
||||||
this.recipes = recipes;
|
this.recipes = recipes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PageCrafting(int localizationKey, List<IRecipe> recipes){
|
||||||
|
this(localizationKey, 0, recipes);
|
||||||
|
}
|
||||||
|
|
||||||
public PageCrafting(int localizationKey, IRecipe... recipes){
|
public PageCrafting(int localizationKey, IRecipe... recipes){
|
||||||
this(localizationKey, Arrays.asList(recipes));
|
this(localizationKey, 0, recipes);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public PageCrafting(int localizationKey, int priority, IRecipe... recipes){
|
||||||
|
this(localizationKey, priority, Arrays.asList(recipes));
|
||||||
}
|
}
|
||||||
|
|
||||||
public BookletPage setWildcard(){
|
public BookletPage setWildcard(){
|
||||||
|
|
|
@ -62,4 +62,9 @@ public class PageEmpowerer extends BookletPage{
|
||||||
list.add(this.recipe.output);
|
list.add(this.recipe.output);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSortingPriority(){
|
||||||
|
return 20;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,11 @@ public class PageFurnace extends BookletPage{
|
||||||
private final ItemStack output;
|
private final ItemStack output;
|
||||||
|
|
||||||
public PageFurnace(int localizationKey, ItemStack output){
|
public PageFurnace(int localizationKey, ItemStack output){
|
||||||
super(localizationKey);
|
this(localizationKey, output, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PageFurnace(int localizationKey, ItemStack output, int priority){
|
||||||
|
super(localizationKey, priority);
|
||||||
this.output = output;
|
this.output = output;
|
||||||
this.input = getInputForOutput(output);
|
this.input = getInputForOutput(output);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,12 @@ public class PagePicture extends BookletPage{
|
||||||
private final ResourceLocation resLoc;
|
private final ResourceLocation resLoc;
|
||||||
private final int yTextOffset;
|
private final int yTextOffset;
|
||||||
|
|
||||||
|
public PagePicture(int localizationKey, ResourceLocation resLoc, int yTextOffset, int priority){
|
||||||
|
super(localizationKey, priority);
|
||||||
|
this.resLoc = resLoc;
|
||||||
|
this.yTextOffset = yTextOffset;
|
||||||
|
}
|
||||||
|
|
||||||
public PagePicture(int localizationKey, ResourceLocation resLoc, int yTextOffset){
|
public PagePicture(int localizationKey, ResourceLocation resLoc, int yTextOffset){
|
||||||
super(localizationKey);
|
super(localizationKey);
|
||||||
this.yTextOffset = yTextOffset;
|
this.yTextOffset = yTextOffset;
|
||||||
|
|
|
@ -57,4 +57,9 @@ public class PageReconstructor extends BookletPage{
|
||||||
list.add(this.recipe.outputStack);
|
list.add(this.recipe.outputStack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSortingPriority(){
|
||||||
|
return 20;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,10 @@ import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class PageTextOnly extends BookletPage{
|
public class PageTextOnly extends BookletPage{
|
||||||
|
|
||||||
|
public PageTextOnly(int localizationKey, int priority){
|
||||||
|
super(localizationKey, priority);
|
||||||
|
}
|
||||||
|
|
||||||
public PageTextOnly(int localizationKey){
|
public PageTextOnly(int localizationKey){
|
||||||
super(localizationKey);
|
super(localizationKey);
|
||||||
}
|
}
|
||||||
|
|
|
@ -247,26 +247,51 @@ public class MethodHandler implements IMethodHandler{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBookletPage generateTextPage(int id){
|
public IBookletPage generateTextPage(int id){
|
||||||
return new PageTextOnly(id);
|
return this.generateTextPage(id, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBookletPage generatePicturePage(int id, ResourceLocation resLoc, int textStartY){
|
public IBookletPage generatePicturePage(int id, ResourceLocation resLoc, int textStartY){
|
||||||
return new PagePicture(id, resLoc, textStartY);
|
return this.generatePicturePage(id, resLoc, textStartY, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBookletPage generateCraftingPage(int id, IRecipe... recipes){
|
public IBookletPage generateCraftingPage(int id, IRecipe... recipes){
|
||||||
return new PageCrafting(id, recipes);
|
return this.generateCraftingPage(id, 0, recipes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBookletPage generateFurnacePage(int id, ItemStack input, ItemStack result){
|
public IBookletPage generateFurnacePage(int id, ItemStack input, ItemStack result){
|
||||||
return new PageFurnace(id, result);
|
return this.generateFurnacePage(id, input, result, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IBookletChapter generateBookletChapter(String identifier, IBookletEntry entry, ItemStack displayStack, IBookletPage... pages){
|
public IBookletChapter generateBookletChapter(String identifier, IBookletEntry entry, ItemStack displayStack, IBookletPage... pages){
|
||||||
return new BookletChapter(identifier, entry, displayStack, pages);
|
return this.generateBookletChapter(identifier, entry, displayStack, 0, pages);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBookletPage generateTextPage(int id, int priority){
|
||||||
|
return new PageTextOnly(id, priority);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBookletPage generatePicturePage(int id, ResourceLocation resLoc, int textStartY, int priority){
|
||||||
|
return new PagePicture(id, resLoc, textStartY, priority);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBookletPage generateCraftingPage(int id, int priority, IRecipe... recipes){
|
||||||
|
return new PageCrafting(id, priority, recipes);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBookletPage generateFurnacePage(int id, ItemStack input, ItemStack result, int priority){
|
||||||
|
return new PageFurnace(id, result, priority);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBookletChapter generateBookletChapter(String identifier, IBookletEntry entry, ItemStack displayStack, int priority, IBookletPage... pages){
|
||||||
|
return new BookletChapter(identifier, entry, displayStack, priority, pages);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue