Factorization rework
This commit is contained in:
parent
39e415b36d
commit
47be63311c
6 changed files with 94 additions and 9 deletions
|
@ -14,6 +14,7 @@ import modtweaker2.mods.botania.lexicon.commands.LexiconKnowledgeTypesLogger;
|
||||||
import modtweaker2.mods.botania.lexicon.commands.LexiconPageLogger;
|
import modtweaker2.mods.botania.lexicon.commands.LexiconPageLogger;
|
||||||
import modtweaker2.mods.chisel.commands.ChiselGroupLogger;
|
import modtweaker2.mods.chisel.commands.ChiselGroupLogger;
|
||||||
import modtweaker2.mods.chisel.commands.ChiselVariationLogger;
|
import modtweaker2.mods.chisel.commands.ChiselVariationLogger;
|
||||||
|
import modtweaker2.mods.factorization.commands.FactorizationLogger;
|
||||||
import modtweaker2.mods.mekanism.gas.GasLogger;
|
import modtweaker2.mods.mekanism.gas.GasLogger;
|
||||||
import modtweaker2.mods.tconstruct.MaterialLogger;
|
import modtweaker2.mods.tconstruct.MaterialLogger;
|
||||||
import modtweaker2.mods.tconstruct.commands.TConstructLogger;
|
import modtweaker2.mods.tconstruct.commands.TConstructLogger;
|
||||||
|
@ -75,6 +76,10 @@ public class Commands {
|
||||||
if (TweakerPlugin.isLoaded("ThermalExpansion")) {
|
if (TweakerPlugin.isLoaded("ThermalExpansion")) {
|
||||||
MineTweakerAPI.server.addMineTweakerCommand("texpansion", new String[] {"/minetweaker texpansion [FILTER]", " Outputs a list of all Thermal Expansion recipes."}, new ThermalExpansionLogger());
|
MineTweakerAPI.server.addMineTweakerCommand("texpansion", new String[] {"/minetweaker texpansion [FILTER]", " Outputs a list of all Thermal Expansion recipes."}, new ThermalExpansionLogger());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (TweakerPlugin.isLoaded("factorization")) {
|
||||||
|
MineTweakerAPI.server.addMineTweakerCommand("factorization", new String[] {"/minetweaker factorization [FILTER]", " Outputs a list of all Factorization recipes."}, new FactorizationLogger());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,8 +8,11 @@ import modtweaker2.helpers.ReflectionHelper;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
public class FactorizationHelper {
|
public class FactorizationHelper {
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
public static List lacerator = null;
|
public static List lacerator = null;
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
public static List slag = null;
|
public static List slag = null;
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
public static List crystallizer = null;
|
public static List crystallizer = null;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
@ -22,15 +25,13 @@ public class FactorizationHelper {
|
||||||
|
|
||||||
private FactorizationHelper() {}
|
private FactorizationHelper() {}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
public static Object getLaceratorRecipe(Object input, ItemStack output, float probability) {
|
||||||
public static Object getLaceratorRecipe(ItemStack input, ItemStack output, float probability) {
|
|
||||||
return ReflectionHelper.getInstance(ReflectionHelper.getConstructor("factorization.oreprocessing.TileEntityGrinder$GrinderRecipe", Object.class, ItemStack.class, float.class),
|
return ReflectionHelper.getInstance(ReflectionHelper.getConstructor("factorization.oreprocessing.TileEntityGrinder$GrinderRecipe", Object.class, ItemStack.class, float.class),
|
||||||
input,
|
input,
|
||||||
output,
|
output,
|
||||||
probability);
|
probability);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public static Object getSlagFurnaceRecipe(ItemStack input, float chance1, ItemStack output1, float chance2, ItemStack output2) {
|
public static Object getSlagFurnaceRecipe(ItemStack input, float chance1, ItemStack output1, float chance2, ItemStack output2) {
|
||||||
return ReflectionHelper.getInstance(ReflectionHelper.getConstructor("factorization.oreprocessing.TileEntitySlagFurnace$SmeltingResult", ItemStack.class, float.class, ItemStack.class, float.class, ItemStack.class),
|
return ReflectionHelper.getInstance(ReflectionHelper.getConstructor("factorization.oreprocessing.TileEntitySlagFurnace$SmeltingResult", ItemStack.class, float.class, ItemStack.class, float.class, ItemStack.class),
|
||||||
input,
|
input,
|
||||||
|
@ -40,7 +41,6 @@ public class FactorizationHelper {
|
||||||
output2);
|
output2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public static Object getCrystallizerRecipe(ItemStack input, ItemStack output, ItemStack solution, float output_count) {
|
public static Object getCrystallizerRecipe(ItemStack input, ItemStack output, ItemStack solution, float output_count) {
|
||||||
return ReflectionHelper.getInstance(ReflectionHelper.getConstructor("factorization.oreprocessing.TileEntityCrystallizer$CrystalRecipe", ItemStack.class, ItemStack.class, float.class, ItemStack.class),
|
return ReflectionHelper.getInstance(ReflectionHelper.getConstructor("factorization.oreprocessing.TileEntityCrystallizer$CrystalRecipe", ItemStack.class, ItemStack.class, float.class, ItemStack.class),
|
||||||
input,
|
input,
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
package modtweaker2.mods.factorization.commands;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import minetweaker.MineTweakerAPI;
|
||||||
|
import minetweaker.MineTweakerImplementationAPI;
|
||||||
|
import minetweaker.api.player.IPlayer;
|
||||||
|
import minetweaker.api.server.ICommandFunction;
|
||||||
|
import modtweaker2.helpers.InputHelper;
|
||||||
|
import modtweaker2.helpers.ReflectionHelper;
|
||||||
|
import modtweaker2.helpers.StringHelper;
|
||||||
|
import modtweaker2.mods.factorization.FactorizationHelper;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
public class FactorizationLogger implements ICommandFunction {
|
||||||
|
|
||||||
|
private static final List<String> validArguments = new LinkedList<String>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
validArguments.add("crystallizer");
|
||||||
|
validArguments.add("lacerator");
|
||||||
|
validArguments.add("slagfurnace");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(String[] arguments, IPlayer player) {
|
||||||
|
List<String> args = StringHelper.toLowerCase(Arrays.asList(arguments));
|
||||||
|
|
||||||
|
if(!validArguments.containsAll(args)) {
|
||||||
|
if(player != null) {
|
||||||
|
player.sendChat(MineTweakerImplementationAPI.platform.getMessage("Invalid arguments for command. Valid arguments: " + StringHelper.join(validArguments, ", ")));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(args.isEmpty() || args.contains("crystallizer")) {
|
||||||
|
for(Object recipe : FactorizationHelper.crystallizer) {
|
||||||
|
MineTweakerAPI.logCommand(String.format("mods.factorization.Crystallizer.addRecipe(%s, %s, %s, %s);",
|
||||||
|
InputHelper.getStackDescription(ReflectionHelper.<ItemStack>getObject(recipe, "input")),
|
||||||
|
InputHelper.getStackDescription(ReflectionHelper.<ItemStack>getObject(recipe, "output")),
|
||||||
|
InputHelper.getStackDescription(ReflectionHelper.<ItemStack>getObject(recipe, "solution")),
|
||||||
|
ReflectionHelper.<Float>getObject(recipe, "output_count")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(args.isEmpty() || args.contains("lacerator")) {
|
||||||
|
for(Object recipe : FactorizationHelper.lacerator) {
|
||||||
|
MineTweakerAPI.logCommand(String.format("mods.factorization.Lacerator.addRecipe(%s, %s, %s);",
|
||||||
|
ReflectionHelper.<String>getObject(recipe, "oreName") != null ?
|
||||||
|
InputHelper.getStackDescription(ReflectionHelper.<String>getObject(recipe, "oreName")) :
|
||||||
|
InputHelper.getStackDescription(ReflectionHelper.<ItemStack>getObject(recipe, "itemstack")),
|
||||||
|
InputHelper.getStackDescription(ReflectionHelper.<ItemStack>getObject(recipe, "output")),
|
||||||
|
ReflectionHelper.<Float>getObject(recipe, "probability")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(args.isEmpty() || args.contains("slagfurnace")) {
|
||||||
|
for(Object recipe : FactorizationHelper.slag) {
|
||||||
|
MineTweakerAPI.logCommand(String.format("mods.factorization.SlagFurnace.addRecipe(%s, %s, %s, %s, %s);",
|
||||||
|
InputHelper.getStackDescription(ReflectionHelper.<ItemStack>getObject(recipe, "input")),
|
||||||
|
InputHelper.getStackDescription(ReflectionHelper.<ItemStack>getObject(recipe, "output2")),
|
||||||
|
ReflectionHelper.<Float>getObject(recipe, "prob2"),
|
||||||
|
InputHelper.getStackDescription(ReflectionHelper.<ItemStack>getObject(recipe, "output1")),
|
||||||
|
ReflectionHelper.<Float>getObject(recipe, "prob1")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (player != null) {
|
||||||
|
player.sendChat(MineTweakerImplementationAPI.platform.getMessage("List generated; see minetweaker.log in your minecraft dir"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -35,6 +35,7 @@ public class Crystallizer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Add extends BaseListAddition<Object> {
|
private static class Add extends BaseListAddition<Object> {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public Add(Object recipe) {
|
public Add(Object recipe) {
|
||||||
super(Crystallizer.name, FactorizationHelper.crystallizer);
|
super(Crystallizer.name, FactorizationHelper.crystallizer);
|
||||||
recipes.add(recipe);
|
recipes.add(recipe);
|
||||||
|
@ -69,6 +70,7 @@ public class Crystallizer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Remove extends BaseListRemoval<Object> {
|
private static class Remove extends BaseListRemoval<Object> {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public Remove(List<Object> recipes) {
|
public Remove(List<Object> recipes) {
|
||||||
super(Crystallizer.name, FactorizationHelper.crystallizer, recipes);
|
super(Crystallizer.name, FactorizationHelper.crystallizer, recipes);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package modtweaker2.mods.factorization.handlers;
|
package modtweaker2.mods.factorization.handlers;
|
||||||
|
|
||||||
import static modtweaker2.helpers.InputHelper.toIItemStack;
|
import static modtweaker2.helpers.InputHelper.toIItemStack;
|
||||||
|
import static modtweaker2.helpers.InputHelper.toObject;
|
||||||
import static modtweaker2.helpers.InputHelper.toStack;
|
import static modtweaker2.helpers.InputHelper.toStack;
|
||||||
import static modtweaker2.helpers.StackHelper.matches;
|
import static modtweaker2.helpers.StackHelper.matches;
|
||||||
|
|
||||||
|
@ -28,13 +29,14 @@ public class Lacerator {
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@ZenMethod
|
@ZenMethod
|
||||||
public static void addRecipe(IItemStack input, IItemStack output, double probability) {
|
public static void addRecipe(IIngredient input, IItemStack output, double probability) {
|
||||||
Object recipe = FactorizationHelper.getLaceratorRecipe(toStack(input), toStack(output), (float) probability);
|
Object recipe = FactorizationHelper.getLaceratorRecipe(toObject(input), toStack(output), (float) probability);
|
||||||
MineTweakerAPI.apply(new Add(toStack(input), recipe));
|
MineTweakerAPI.apply(new Add(recipe));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Add extends BaseListAddition<Object> {
|
private static class Add extends BaseListAddition<Object> {
|
||||||
public Add(ItemStack output, Object recipe) {
|
@SuppressWarnings("unchecked")
|
||||||
|
public Add(Object recipe) {
|
||||||
super(Lacerator.name, FactorizationHelper.lacerator);
|
super(Lacerator.name, FactorizationHelper.lacerator);
|
||||||
recipes.add(recipe);
|
recipes.add(recipe);
|
||||||
}
|
}
|
||||||
|
@ -67,6 +69,7 @@ public class Lacerator {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Remove extends BaseListRemoval<Object> {
|
private static class Remove extends BaseListRemoval<Object> {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public Remove(List<Object> recipes) {
|
public Remove(List<Object> recipes) {
|
||||||
super(Lacerator.name, FactorizationHelper.lacerator, recipes);
|
super(Lacerator.name, FactorizationHelper.lacerator, recipes);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ public class SlagFurnace {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Add extends BaseListAddition<Object> {
|
private static class Add extends BaseListAddition<Object> {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public Add(ItemStack input, Object recipe) {
|
public Add(ItemStack input, Object recipe) {
|
||||||
super(SlagFurnace.name, FactorizationHelper.slag);
|
super(SlagFurnace.name, FactorizationHelper.slag);
|
||||||
recipes.add(recipe);
|
recipes.add(recipe);
|
||||||
|
@ -69,7 +70,8 @@ public class SlagFurnace {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Remove extends BaseListRemoval<Object> {
|
private static class Remove extends BaseListRemoval<Object> {
|
||||||
public Remove(List<Object> recipes) {
|
@SuppressWarnings("unchecked")
|
||||||
|
public Remove(List<Object> recipes) {
|
||||||
super(SlagFurnace.name, FactorizationHelper.slag, recipes);
|
super(SlagFurnace.name, FactorizationHelper.slag, recipes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue