Fix rolling machine CT

This commit is contained in:
modmuss50 2017-10-11 17:42:27 +01:00
parent 610c2e479e
commit 23ccd878bd
2 changed files with 26 additions and 4 deletions

View file

@ -26,6 +26,8 @@ package techreborn.compat.crafttweaker;
import crafttweaker.api.item.IIngredient;
import crafttweaker.api.item.IItemStack;
import gnu.trove.set.TCharSet;
import gnu.trove.set.hash.TCharHashSet;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.ResourceLocation;
import reborncore.common.util.ItemUtils;
@ -64,11 +66,15 @@ public class CTRollingMachine {
}
}
//Stolen from https://github.com/jaredlll08/MTLib/blob/1.12/src/main/java/com/blamejared/mtlib/helpers/InputHelper.java#L170-L213
//License as seen here: https://github.com/jaredlll08/MTLib/blob/1.12/LICENSE.md (MIT at time of writing)
public static Object[] toShapedObjects(IIngredient[][] ingredients) {
if (ingredients == null)
return null;
else {
ArrayList<Object> prep = new ArrayList<Object>();
ArrayList<Object> prep = new ArrayList<>();
TCharSet usedCharSet = new TCharHashSet();
prep.add("abc");
prep.add("def");
prep.add("ghi");
@ -78,11 +84,27 @@ public class CTRollingMachine {
for (int y = 0; y < ingredients[x].length; y++) {
if (ingredients[x][y] != null && x < map.length && y < map[x].length) {
prep.add(map[x][y]);
usedCharSet.add(map[x][y]);
prep.add(CraftTweakerCompat.toObject(ingredients[x][y]));
}
}
}
}
for (int i = 0; i < 3; i++) {
StringBuilder sb = new StringBuilder();
if (prep.get(i) instanceof String) {
String s = (String) prep.get(i);
for (int j = 0; j < 3; j++) {
char c = s.charAt(j);
if (usedCharSet.contains(c)) {
sb.append(c);
} else {
sb.append(" ");
}
}
prep.set(i, sb.toString());
}
}
return prep.toArray();
}
}

View file

@ -45,14 +45,14 @@ import static crafttweaker.api.minecraft.CraftTweakerMC.getLiquidStack;
public class CraftTweakerCompat implements ICompatModule {
public static ItemStack toStack(IItemStack iStack) {
if (iStack == null){
return null;
return ItemStack.EMPTY;
}
return getItemStack(iStack);
}
public static Object toObject(IIngredient iStack) {
if (iStack == null)
return null;
return ItemStack.EMPTY;
else {
if (iStack instanceof IOreDictEntry)
return ((IOreDictEntry) iStack).getName();
@ -62,7 +62,7 @@ public class CraftTweakerCompat implements ICompatModule {
IIngredient ingr = ReflectionHelper.getPrivateValue(IngredientStack.class, (IngredientStack) iStack, "ingredient");
return toObject(ingr);
} else
return null;
return ItemStack.EMPTY;
}
}