Fixed NEI bug & overlays

- Fixed Cutter NEI overlay aligment
- Fixed NEI showing only 1 item in wildcard recipes, when should be more
This commit is contained in:
TheDarkDnKTv 2021-03-04 20:02:11 +02:00
parent ed6fb5a14b
commit 0941fa049f
24 changed files with 137 additions and 27 deletions

View file

@ -151,6 +151,15 @@ public class GT_Utility {
return null;
}
public static void setFieldContent(Object aObject, Object value, String aField, boolean aPrivate, boolean aLogErrors) {
Field f = getField(aObject, aField, aPrivate, aLogErrors);
try {
f.set(aObject, value);
} catch (Throwable e) {
if (aLogErrors) GT_Log.log.catching(e);
}
}
public static Object callPublicMethod(Object aObject, String aMethod, Object... aParameters) {
return callMethod(aObject, aMethod, false, false, true, aParameters);
}

View file

@ -7,6 +7,7 @@ import gregtechmod.api.recipe.Ingredient;
import gregtechmod.api.recipe.Recipe;
import gregtechmod.api.recipe.RecipeMap;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.mistaqur.nei.handlers.FixedPositionedStack;
import static codechicken.lib.gui.GuiDraw.changeTexture;
@ -75,21 +76,21 @@ public abstract class GT_RecipeHandler extends TemplateRecipeHandler {
nonConsumables.add(GT_Utility.stackToInt(s));
}
}
resources.add(new PositionedStack(input.getVariants(), offsets.getKey(), offsets.getValue()));
resources.add(new FixedPositionedStack(input.getVariants(), offsets.getKey(), offsets.getValue()));
}
int offset = 0;
List<ItemStack> outputs = recipe.getOutputs();
for (offset = 0; offset < outputs.size(); offset++) {
Pair<Integer, Integer> offsets = getOutputAligment(offset);
products.add(new PositionedStack(outputs.get(offset), offsets.getKey(), offsets.getValue()));
products.add(new FixedPositionedStack(outputs.get(offset), offsets.getKey(), offsets.getValue()));
}
List<ChancedOutput> chanced = recipe.getChancedOutputs();
for (int i = 0; i < chanced.size(); i++) {
Pair<Integer, Integer> offsets = getOutputAligment(i + offset);
ChancedOutput output = chanced.get(i);
products.add(new PositionedStack(output.getStack(), offsets.getKey(), offsets.getValue()));
products.add(new FixedPositionedStack(output.getStack(), offsets.getKey(), offsets.getValue()));
this.chanced.put(GT_Utility.stackToInt(output.getStack()), output.getChance());
}

View file

@ -11,6 +11,25 @@ import gregtechmod.common.gui.GT_GUIContainer_PlasmaGenerator;
import gregtechmod.common.gui.GT_GUIContainer_SemifluidGenerator;
import gregtechmod.common.gui.GT_GUIContainer_ThermalGenerator;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.handlers.AssemblerRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.BenderRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.BlastRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.BronzeBlastRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.CannerRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.CentrifugeRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.ChemicalRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.CutterRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.DistillationRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.ElectrolyzerRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.ExtruderRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.FusionRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.GeneratorHandler;
import gregtechmod.mistaqur.nei.handlers.GrinderRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.ImplosionRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.LatheRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.SawmillRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.VacuumFreezerRecipeHandler;
import gregtechmod.mistaqur.nei.handlers.WiremillRecipeHandler;
import codechicken.nei.api.IConfigureNEI;
public class NEI_GregTech_Config implements IConfigureNEI {

View file

@ -22,9 +22,9 @@ import net.minecraftforge.fluids.FluidStack;
*/
public class PositionedFluidStack {
protected int x;
protected int y;
protected FluidStack fluid;
public int x;
public int y;
public FluidStack fluid;
/**
*
*/

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Assembler;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Bender;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BlastFurnace;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Canner;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_Centrifuge;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_ChemicalReactor;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Cutter;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;
@ -67,7 +68,7 @@ public class CutterRecipeHandler extends GT_RecipeHandler {
@Override
protected Pair<Integer, Integer> getOutputAligment(int itemIdx) {
return Pair.of(107 - sOffsetX * (18 * itemIdx), 25 - sOffsetY);
return Pair.of(102 - sOffsetX * (18 * itemIdx), 25 - sOffsetY);
}
};
}

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_DistillationTower;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_Electrolyzer;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import java.util.Collections;
import java.awt.Rectangle;
@ -12,6 +12,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Extruder;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import net.minecraft.client.resources.I18n;
import net.minecraft.util.StatCollector;

View file

@ -0,0 +1,64 @@
package gregtechmod.mistaqur.nei.handlers;
import java.util.ArrayList;
import java.util.List;
import codechicken.nei.ItemList;
import codechicken.nei.PositionedStack;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
/**
* @author TheDarkDnKTv
* Fixed {@link PositionedStack}, in default NEI's brocken {@link PositionedStack#generatePermutations()} method. Do not saves amounts
*/
public class FixedPositionedStack extends PositionedStack {
protected boolean permutated = false;
public FixedPositionedStack(Object object, int x, int y) {
super(object, x, y);
}
public FixedPositionedStack(Object object, int x, int y, boolean genPerms) {
super(object, x, y, genPerms);
}
@Override
public void generatePermutations() {
if (permutated) return;
List<ItemStack> stacks = new ArrayList<ItemStack>();
for (ItemStack item : items) {
if (item == null || item.getItem() == null)
continue;
if (item.getItemDamage() == Short.MAX_VALUE) {
List<ItemStack> permutations = ItemList.itemMap.get(item.getItem());
if (!permutations.isEmpty()) {
for (ItemStack stack : permutations) {
ItemStack copy = stack.copy();
copy.stackSize = item.stackSize;
stacks.add(copy);
}
} else {
ItemStack base = new ItemStack(item.getItem(), item.stackSize);
base.stackTagCompound = item.stackTagCompound;
stacks.add(base);
}
continue;
}
stacks.add(item.copy());
}
items = stacks.toArray(new ItemStack[0]);
if (items.length == 0)
items = new ItemStack[] { new ItemStack(Blocks.fire) };
permutated = true;
setPermutationToRender(0);
}
}

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_FusionComputer;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import java.awt.Rectangle;
import java.util.ArrayList;
@ -13,7 +13,7 @@ import gregtechmod.api.recipe.Recipe;
import gregtechmod.api.recipe.RecipeMap;
import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.util.StatCollector;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_Grinder;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_ImplosionCompressor;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Lathe;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_Sawmill;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_VacuumFreezer;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package gregtechmod.mistaqur.nei;
package gregtechmod.mistaqur.nei.handlers;
import gregtechmod.api.GregTech_API;
import gregtechmod.api.recipe.Recipe;
@ -7,6 +7,7 @@ import gregtechmod.api.util.GT_Log;
import gregtechmod.api.util.GT_Utility;
import gregtechmod.common.gui.GT_GUIContainer_BasicMachine_Wiremill;
import gregtechmod.common.recipe.RecipeMaps;
import gregtechmod.mistaqur.nei.GT_RecipeHandler;
import java.awt.Rectangle;
import java.util.ArrayList;