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
36 changes: 32 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ group = GROUP
archivesBaseName = ARCHIVE_NAME
version = VERSION

targetCompatibility = '1.6'
sourceCompatibility = '1.6'
targetCompatibility = '1.8'
sourceCompatibility = '1.8'

sourceSets {
main {
Expand All @@ -61,12 +61,40 @@ configurations {

repositories {
mavenCentral()
ivy {
name 'MineTweaker3'
artifactPattern "http://minetweaker3.powerofbytes.com/download/[module]-[classifier]-[revision].[ext]"
}
maven {
name = "chickenbones"
url = "http://chickenbones.net/maven/"
}
maven {
name = "ic2"
url = "http://maven.ic2.player.to/"
}
maven { url = "http://mobiusstrip.eu/maven" }
}


dependencies {
external files("libs/commons-math3-3.3.jar")
external "org.jetbrains.kotlin:kotlin-runtime:$kotlin_version"
external "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

// IC2:
compile 'net.industrial-craft:industrialcraft-2:2.1.477-experimental:api'

// Minetweaker:
compile name: 'MineTweaker3', version: '1.7.10-3.0.10B', classifier: 'Dev', ext: 'jar'

// NEI:
runtime 'codechicken:CodeChickenLib:1.7.10-1.1.3.138:dev'
runtime 'codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev'
runtime 'codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev'

// WAILA:
runtime 'mcp.mobius.waila:Waila:1.5.10_1.7.10'
}

jar {
Expand Down Expand Up @@ -158,7 +186,7 @@ clean {
delete("${minecraft.runDir}/crash-reports")
}

def getMinecratfDir() {
def getMinecraftDir() {
String outDir = ""
final String osName = System.getProperty("os.name").toLowerCase()
if (osName.contains('windows'))
Expand All @@ -179,7 +207,7 @@ task buildAndCopyJar(dependsOn: 'build', type: Copy) {
duplicatesStrategy = DuplicatesStrategy.INCLUDE // Overwrite the file if exists

from("build/libs")
into(getMinecratfDir() + "/mods")
into(getMinecraftDir() + "/mods")
include("*.jar")
}

Expand Down
6 changes: 5 additions & 1 deletion src/main/java/mods/eln/Eln.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import mods.eln.ghost.GhostManager;
import mods.eln.ghost.GhostManagerNbt;
import mods.eln.i18n.I18N;
import mods.eln.integration.minetweaker.MinetweakerIntegration;
import mods.eln.item.*;
import mods.eln.item.electricalinterface.ItemEnergyInventoryProcess;
import mods.eln.item.electricalitem.*;
Expand Down Expand Up @@ -867,7 +868,10 @@ boolean aRecipeExist(ItemStack stack) {
public void postInit(FMLPostInitializationEvent event) {

serverEventListener = new ServerEventListener();


if(Loader.isModLoaded("MineTweaker3")){
MinetweakerIntegration.instance.initialize();
}
}

/*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package mods.eln.integration.minetweaker;

import minetweaker.MineTweakerAPI;
import mods.eln.integration.minetweaker.machines.Compressor;
import mods.eln.integration.minetweaker.machines.Macerator;
import mods.eln.integration.minetweaker.machines.Magnetizer;
import mods.eln.integration.minetweaker.machines.PlateMachine;

public class MinetweakerIntegration {
public static MinetweakerIntegration instance = new MinetweakerIntegration();


public void initialize(){
MineTweakerAPI.registerClass(Macerator.class);
MineTweakerAPI.registerClass(Compressor.class);
MineTweakerAPI.registerClass(Magnetizer.class);
MineTweakerAPI.registerClass(PlateMachine.class);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package mods.eln.integration.minetweaker.machines;

import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
import minetweaker.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
import mods.eln.integration.minetweaker.utils.MinetweakerMachine;

@ZenClass("mods.electricalage.Compressor")
public class Compressor {

@ZenMethod
public static void addRecipe(IIngredient input, double energy, IItemStack[] output)
{
MinetweakerMachine.COMPRESSOR.addRecipe(input, energy, output);
}

@ZenMethod
public static void removeRecipe(IIngredient input)
{
MinetweakerMachine.COMPRESSOR.removeRecipe(input);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package mods.eln.integration.minetweaker.machines;

import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
import minetweaker.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
import mods.eln.integration.minetweaker.utils.MinetweakerMachine;

@ZenClass("mods.electricalage.Macerator")
public class Macerator {

@ZenMethod
public static void addRecipe(IIngredient input, double energy, IItemStack[] output)
{
MinetweakerMachine.MACERATOR.addRecipe(input, energy, output);
}

@ZenMethod
public static void removeRecipe(IIngredient input)
{
MinetweakerMachine.MACERATOR.removeRecipe(input);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package mods.eln.integration.minetweaker.machines;

import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
import minetweaker.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
import mods.eln.integration.minetweaker.utils.MinetweakerMachine;

@ZenClass("mods.electricalage.Magnetizer")
public class Magnetizer {

@ZenMethod
public static void addRecipe(IIngredient input, double energy, IItemStack[] output)
{
MinetweakerMachine.MAGNETIZER.addRecipe(input, energy, output);
}

@ZenMethod
public static void removeRecipe(IIngredient input)
{
MinetweakerMachine.MAGNETIZER.removeRecipe(input);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package mods.eln.integration.minetweaker.machines;

import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenMethod;
import minetweaker.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
import mods.eln.integration.minetweaker.utils.MinetweakerMachine;

@ZenClass("mods.electricalage.PlateMachine")
public class PlateMachine {

@ZenMethod
public static void addRecipe(IIngredient input, double energy, IItemStack[] output)
{
MinetweakerMachine.PLATEMACHINE.addRecipe(input, energy, output);
}

@ZenMethod
public static void removeRecipe(IIngredient input)
{
MinetweakerMachine.PLATEMACHINE.removeRecipe(input);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package mods.eln.integration.minetweaker.utils;

import mods.eln.misc.Recipe;

public class AddRecipe extends BasicUndoableAction {
Recipe recipe;

public AddRecipe(MinetweakerMachine machine, Recipe recipe) {
super(machine);
this.recipe = recipe;
}

@Override
public void apply() {
machine.recipes.addRecipe(recipe);
}

@Override
public void undo() {
machine.recipes.getRecipes().remove(recipe);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package mods.eln.integration.minetweaker.utils;

import minetweaker.IUndoableAction;

public abstract class BasicUndoableAction implements IUndoableAction {
MinetweakerMachine machine;

public BasicUndoableAction(MinetweakerMachine machine) {
this.machine = machine;
}

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

@Override
public String describe() {
return machine.addDesc;
}

@Override
public String describeUndo() {
return "Undo" + machine.removeDesc;
}

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

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package mods.eln.integration.minetweaker.utils;

import java.util.ArrayList;

import minetweaker.MineTweakerAPI;
import minetweaker.api.item.IIngredient;
import minetweaker.api.item.IItemStack;
import minetweaker.api.minecraft.MineTweakerMC;
import mods.eln.Eln;
import mods.eln.misc.Recipe;
import mods.eln.misc.RecipesList;

import net.minecraft.item.ItemStack;

public class MinetweakerMachine {

public static MinetweakerMachine MACERATOR = new MinetweakerMachine(Eln.instance.maceratorRecipes, "Adding Macerator Recipe", "Removing Macerator Recipe");
public static MinetweakerMachine COMPRESSOR = new MinetweakerMachine(Eln.instance.compressorRecipes, "Adding Compressor Recipe", "Removing Compressor Recipe");
public static MinetweakerMachine MAGNETIZER = new MinetweakerMachine(Eln.instance.magnetiserRecipes, "Adding Magnetizer Recipe", "Removing Magnetizer Recipe");
public static MinetweakerMachine PLATEMACHINE = new MinetweakerMachine(Eln.instance.plateMachineRecipes, "Adding Plate Machine Recipe", "Removing Plate Machine Recipe");

public RecipesList recipes;
public String removeDesc;
public String addDesc;

public MinetweakerMachine(RecipesList recipes, String addDesc, String removeDesc) {
this.recipes = recipes;
this.addDesc = addDesc;
this.removeDesc = removeDesc;
}

public void addRecipe(IIngredient input, double energy, IItemStack[] output)
{
if (input == null || output == null || energy < 0)
return;
if (output.length > 4) {
throw new IllegalArgumentException("Too much outputs");
}

ArrayList<ItemStack> outs = new ArrayList<ItemStack>();
for (IIngredient i : output) {
ItemStack stack = MineTweakerMC.getItemStack(i);
if (stack != null) {
outs.add(stack);
}
}

Recipe recipe = new Recipe(MineTweakerMC.getItemStack(input), outs.toArray(new ItemStack[] {}), energy);

MineTweakerAPI.apply(new AddRecipe(this, recipe));
}

public void removeRecipe(IIngredient input)
{
MineTweakerAPI.apply(new RemoveRecipe(this, input));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package mods.eln.integration.minetweaker.utils;

import java.util.ArrayList;

import minetweaker.api.item.IIngredient;
import minetweaker.api.minecraft.MineTweakerMC;
import mods.eln.Eln;
import mods.eln.misc.Recipe;


public class RemoveRecipe extends BasicUndoableAction{
IIngredient input;
ArrayList<Recipe> toRemove;

public RemoveRecipe(MinetweakerMachine machine, IIngredient input) {
super(machine);
this.input = input;
}

@Override
public void apply() {
toRemove = new ArrayList<Recipe>();
for (Recipe r : Eln.instance.maceratorRecipes.getRecipes()){
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is probably a bug

if(input.matches(MineTweakerMC.getIItemStack(r.input))){
toRemove.add(r);
}
}
machine.recipes.getRecipes().removeAll(toRemove);
}

@Override
public void undo() {
machine.recipes.getRecipes().addAll(toRemove);
}

}