diff options
author | Blood-Asp <bloodasphendrik@gmail.com> | 2017-03-16 14:55:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-16 14:55:12 +0100 |
commit | e7d0ced8204fbb01f0e4390e83fd78e5f1a75d14 (patch) | |
tree | 0a3ac4a5949f4ee28603f0126a367cd4602c9c90 | |
parent | d7203bccbde715d006783615c4c05a646d58ccaa (diff) | |
parent | 288f44e347097c75933909d5155d47fb66d4c8f6 (diff) | |
download | GT5-Unofficial-e7d0ced8204fbb01f0e4390e83fd78e5f1a75d14.tar.gz GT5-Unofficial-e7d0ced8204fbb01f0e4390e83fd78e5f1a75d14.tar.bz2 GT5-Unofficial-e7d0ced8204fbb01f0e4390e83fd78e5f1a75d14.zip |
Merge pull request #965 from Techlone/nei_sort_recipes
Nei sort recipes
-rw-r--r-- | src/main/java/gregtech/api/util/GT_Recipe.java | 24 | ||||
-rw-r--r-- | src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java | 15 |
2 files changed, 32 insertions, 7 deletions
diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java index d509e6afe3..30874b2897 100644 --- a/src/main/java/gregtech/api/util/GT_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Recipe.java @@ -33,7 +33,7 @@ import static gregtech.api.enums.GT_Values.*; * <p/> * I know this File causes some Errors, because of missing Main Functions, but if you just need to compile Stuff, then remove said erroreous Functions. */ -public class GT_Recipe { +public class GT_Recipe implements Comparable<GT_Recipe> { public static volatile int VERSION = 509; /** * If you want to change the Output, feel free to modify or even replace the whole ItemStack Array, for Inputs, please add a new Recipe, because of the HashMaps. @@ -412,7 +412,27 @@ public class GT_Recipe { return true; } - + @Override + public int compareTo(GT_Recipe recipe) { + // first lowest tier recipes + // then fastest + // then with lowest special value + // then dry recipes + // then with fewer inputs + if (this.mEUt != recipe.mEUt) { + return this.mEUt - recipe.mEUt; + } else if (this.mDuration != recipe.mDuration) { + return this.mDuration - recipe.mDuration; + } else if (this.mSpecialValue != recipe.mSpecialValue) { + return this.mSpecialValue - recipe.mSpecialValue; + } else if (this.mFluidInputs.length != recipe.mFluidInputs.length) { + return this.mFluidInputs.length - recipe.mFluidInputs.length; + } else if (this.mInputs.length != recipe.mInputs.length) { + return this.mInputs.length - recipe.mInputs.length; + } + return 0; + } + public static class GT_Recipe_AssemblyLine{ public static final ArrayList<GT_Recipe_AssemblyLine> sAssemblylineRecipes = new ArrayList<GT_Recipe_AssemblyLine>(); diff --git a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java index 247a7df4a6..71e458c634 100644 --- a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java +++ b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java @@ -29,8 +29,7 @@ import net.minecraftforge.fluids.FluidStack; import org.lwjgl.opengl.GL11;
import java.awt.*;
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.*;
import java.util.List;
public class GT_NEI_DefaultHandler
@@ -55,6 +54,12 @@ public class GT_NEI_DefaultHandler }
}
+ public List<GT_Recipe> getSortedRecipes() {
+ List<GT_Recipe> result = new ArrayList<>(this.mRecipeMap.mRecipeList);
+ Collections.sort(result);
+ return result;
+ }
+
public static void drawText(int aX, int aY, String aString, int aColor) {
Minecraft.getMinecraft().fontRenderer.drawString(aString, aX, aY, aColor);
}
@@ -65,7 +70,7 @@ public class GT_NEI_DefaultHandler public void loadCraftingRecipes(String outputId, Object... results) {
if (outputId.equals(getOverlayIdentifier())) {
- for (GT_Recipe tRecipe : this.mRecipeMap.mRecipeList) {
+ for (GT_Recipe tRecipe : getSortedRecipes()) {
if (!tRecipe.mHidden) {
this.arecipes.add(new CachedDefaultRecipe(tRecipe));
}
@@ -95,7 +100,7 @@ public class GT_NEI_DefaultHandler }
}
}
- for (GT_Recipe tRecipe : this.mRecipeMap.mRecipeList) {
+ for (GT_Recipe tRecipe : getSortedRecipes()) {
if (!tRecipe.mHidden) {
CachedDefaultRecipe tNEIRecipe = new CachedDefaultRecipe(tRecipe);
for (ItemStack tStack : tResults) {
@@ -129,7 +134,7 @@ public class GT_NEI_DefaultHandler }
}
}
- for (GT_Recipe tRecipe : this.mRecipeMap.mRecipeList) {
+ for (GT_Recipe tRecipe : getSortedRecipes()) {
if (!tRecipe.mHidden) {
CachedDefaultRecipe tNEIRecipe = new CachedDefaultRecipe(tRecipe);
for (ItemStack tStack : tInputs) {
|