Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions java/ec3/common/mod/EssentialCraftCore.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import net.minecraft.command.CommandHandler;
import net.minecraft.server.MinecraftServer;
import DummyCore.Core.Core;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
Expand Down Expand Up @@ -34,6 +35,7 @@
import ec3.common.registry.StructureRegistry;
import ec3.common.registry.VillagersRegistry;
import ec3.common.world.WorldGenManager;
import ec3.integration.minetweaker.MTRegistry;
import ec3.integration.rotarycraft.RCLoadingHandler;
import ec3.integration.versionChecker.Check;
import ec3.integration.waila.WailaInitialiser;
Expand Down Expand Up @@ -97,6 +99,23 @@ public void beforeMinecraftLoaded(FMLPreInitializationEvent event)
Check.checkerCommit();
WailaInitialiser.sendIMC();
RCLoadingHandler.runPreInitChecks();

if(Loader.isModLoaded("MineTweaker3"))
{
try
{
MTRegistry.init();
}
catch(Exception ex)
{
System.out.println("[EssentialCraft3]Unable to add MineTweaker3 integration!");
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}
else
System.out.println("[EssentialCraft3]Unable to add MineTweaker3 integration - mod not found");

}

@EventHandler
Expand Down
15 changes: 15 additions & 0 deletions java/ec3/integration/minetweaker/MTRegistry.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ec3.integration.minetweaker;

import minetweaker.MineTweakerAPI;

public class MTRegistry {

public static void init()
{
MineTweakerAPI.registerClass(MagicianTable.class);
MineTweakerAPI.registerClass(WindImbue.class);
MineTweakerAPI.registerClass(MithrilineFurnace.class);
MineTweakerAPI.registerClass(RadiatingChamber.class);
}

}
175 changes: 175 additions & 0 deletions java/ec3/integration/minetweaker/MagicianTable.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
package ec3.integration.minetweaker;

import java.util.ArrayList;
import java.util.List;

import DummyCore.Utils.UnformedItemStack;
import minetweaker.IUndoableAction;
import minetweaker.MineTweakerAPI;
import minetweaker.api.data.DataInt;
import minetweaker.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
import net.minecraft.item.ItemStack;
import ec3.api.MagicianTableRecipe;
import ec3.api.MagicianTableRecipes;
import scala.actors.threadpool.Arrays;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;

/**
*
* @author Artem226
*
* @Description Adding/removing MagicianTable recipes
*
*/
@ZenClass("mods.ec3.MagicianTable")
public class MagicianTable {

public MagicianTable() {
// TODO Auto-generated constructor stub
}

@ZenMethod
public static void add(IItemStack output, IIngredient[] ingredients, int mru)
{
List<UnformedItemStack> items = new ArrayList<UnformedItemStack>();

if(ingredients!=null && ingredients.length > 0)
{
for(IIngredient in : ingredients)
{
items.add(SomeMTUtils.toUnformedIS(in));
}

UnformedItemStack[] stack = new UnformedItemStack[items.size()];

for(int i = 0; i < items.size(); i++)
{
stack[i] = items.get(i);
}



MineTweakerAPI.apply(new Add(new MagicianTableRecipe(stack, SomeMTUtils.toItem(output).copy(), mru)));
}
else
{
MineTweakerAPI.getLogger().logError("Ingredients can't be null!");
}

}

@ZenMethod
public static void remove(IItemStack recipeOutput)
{
if(recipeOutput != null)
{
MineTweakerAPI.apply(new Remove(SomeMTUtils.toItem(recipeOutput)));
}
else
MineTweakerAPI.getLogger().logError("Target item can't be null!");
}

private static class Add implements IUndoableAction {
MagicianTableRecipe recipe;

public Add(MagicianTableRecipe add){
recipe = add;
}

@Override
public void apply(){

MagicianTableRecipes.addRecipe(recipe);
}

@Override
public boolean canUndo(){
return true;
}

@Override
public void undo(){
MagicianTableRecipes.recipes.remove(Arrays.asList(recipe.requiredItems));
ItemStack search = recipe.result.copy();
search.stackSize = 0;
String searchStr = search.toString();
search = null;
MagicianTableRecipes.recipesByIS.remove(searchStr);
MagicianTableRecipes.craftMatrixByID.remove(Arrays.asList(recipe.requiredItems));
}

@Override
public String describe(){
return "Adding magician table recipe: "+recipe.getRecipeOutput().getDisplayName();

}

@Override
public String describeUndo(){
return "UnAdding magician table recipe: " + recipe.getRecipeOutput().getDisplayName();
}

@Override
public Object getOverrideKey() {
return null;
}

}

private static class Remove implements IUndoableAction {
MagicianTableRecipe recipe = null;
ItemStack ToRemove;

public Remove(ItemStack rem){
ToRemove = rem;
}

@Override
public void apply(){
MagicianTableRecipe rec = MagicianTableRecipes.getRecipeByResult(ToRemove);

if(rec != null)
{
MagicianTableRecipes.recipes.remove(Arrays.asList(rec.requiredItems));
ItemStack search = rec.result.copy();
search.stackSize = 0;
String searchStr = search.toString();
search = null;
MagicianTableRecipes.recipesByIS.remove(searchStr);
MagicianTableRecipes.craftMatrixByID.remove(Arrays.asList(rec.requiredItems));

recipe = rec;
}
else
MineTweakerAPI.getLogger().logError("Magician table recipe from "+ToRemove.getDisplayName()+" not found!");
}

@Override
public boolean canUndo(){
return recipe != null;
}

@Override
public void undo(){
MagicianTableRecipes.addRecipe(recipe);
}

@Override
public String describe(){
return "Removing magician table recipe for " + recipe.getRecipeOutput().getDisplayName();
}

@Override
public String describeUndo(){
return "UnRemoving magician table recipe for " + recipe.getRecipeOutput().getDisplayName();
}

@Override
public Object getOverrideKey() {
return null;
}

}
}
143 changes: 143 additions & 0 deletions java/ec3/integration/minetweaker/MithrilineFurnace.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
package ec3.integration.minetweaker;

import net.minecraft.item.ItemStack;
import ec3.api.MagicianTableRecipe;
import ec3.api.MithrilineFurnaceRecipe;
import ec3.api.MithrilineFurnaceRecipes;
import minetweaker.IUndoableAction;
import minetweaker.MineTweakerAPI;
import minetweaker.api.data.DataFloat;
import minetweaker.api.data.DataInt;
import minetweaker.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;

@ZenClass("mods.ec3.MithrilineFurnace")
/**
*
* @author Artem226
*
* @Description Adding/removing MithrilineFurnace recipes
*
*/
public class MithrilineFurnace {

public MithrilineFurnace() {
// TODO Auto-generated constructor stub
}

@ZenMethod
public static void add(IItemStack output, IIngredient ingredient, int stackSizeOfIngr, int enderpower)
{
MineTweakerAPI.apply(new Add(new MithrilineFurnaceRecipe(SomeMTUtils.toUnformedIS(ingredient), SomeMTUtils.toItem(output), enderpower, stackSizeOfIngr)));
}

@ZenMethod
public static void remove(IItemStack recipeOutput)
{
if(recipeOutput != null)
{
MineTweakerAPI.apply(new Remove(SomeMTUtils.toItem(recipeOutput)));
}
else
MineTweakerAPI.getLogger().logError("Target item can't be null!");
}

private static class Add implements IUndoableAction {
MithrilineFurnaceRecipe recipe;

public Add(MithrilineFurnaceRecipe rec)
{
recipe = rec;
}

@Override
public void apply() {
MithrilineFurnaceRecipes.addRecipe(recipe);

}

@Override
public boolean canUndo() {

return recipe !=null;
}

@Override
public void undo() {
MithrilineFurnaceRecipes.allRegisteredRecipes.remove(recipe);

}

@Override
public String describe() {

return "Adding Mithriline Furnace recipe for " + recipe.getRecipeOutput().getDisplayName();
}

@Override
public String describeUndo() {

return "UnAdding Mithriline Furnace recipe for " + recipe.getRecipeOutput().getDisplayName();
}

@Override
public Object getOverrideKey() {

return null;
}
}

private static class Remove implements IUndoableAction {
MithrilineFurnaceRecipe recipe = null;
ItemStack ToRemove;

public Remove(ItemStack rem)
{
ToRemove = rem;
}

@Override
public void apply() {
MithrilineFurnaceRecipe rec = MithrilineFurnaceRecipes.findRecipeByResult(ToRemove);

if(rec != null)
{
MithrilineFurnaceRecipes.allRegisteredRecipes.remove(rec);
recipe = rec;
}

}

@Override
public boolean canUndo() {

return recipe != null;
}

@Override
public void undo() {
MithrilineFurnaceRecipes.addRecipe(recipe);

}

@Override
public String describe() {

return "Removing Mithriline Furnace recipe for " + recipe.getRecipeOutput().getDisplayName();
}

@Override
public String describeUndo() {

return "UnRemoving Mithriline Furnace recipe for " + recipe.getRecipeOutput().getDisplayName();
}

@Override
public Object getOverrideKey() {

return null;
}
}
}
Loading