2014-08-10 04:20:49 +02:00
|
|
|
package mekanism.common.base;
|
2012-10-02 20:39:40 +02:00
|
|
|
|
2012-12-20 22:53:39 +01:00
|
|
|
import java.util.Map;
|
2012-10-02 20:39:40 +02:00
|
|
|
|
2014-09-05 05:20:12 +02:00
|
|
|
import mekanism.common.recipe.inputs.MachineInput;
|
|
|
|
import mekanism.common.recipe.machines.MachineRecipe;
|
|
|
|
import mekanism.common.recipe.outputs.MachineOutput;
|
|
|
|
|
2012-10-02 20:39:40 +02:00
|
|
|
/**
|
2023-01-22 17:18:34 +01:00
|
|
|
* Internal interface containing methods that are shared by many core Mekanism machines.
|
|
|
|
* TODO: remove next minor MC version.
|
2012-10-02 20:39:40 +02:00
|
|
|
* @author AidanBrady
|
|
|
|
*
|
|
|
|
*/
|
2023-01-22 17:18:34 +01:00
|
|
|
public interface IElectricMachine<INPUT extends MachineInput<INPUT>, OUTPUT
|
|
|
|
extends MachineOutput<OUTPUT>, RECIPE
|
|
|
|
extends MachineRecipe<INPUT, OUTPUT, RECIPE>> {
|
|
|
|
/**
|
|
|
|
* Update call for machines. Use instead of updateEntity() - it's called every tick.
|
|
|
|
*/
|
|
|
|
public void onUpdate();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Whether or not this machine can operate.
|
|
|
|
* @return can operate
|
|
|
|
*/
|
|
|
|
public boolean canOperate(RECIPE recipe);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Runs this machine's operation -- or smelts the item.
|
|
|
|
*/
|
|
|
|
public void operate(RECIPE recipe);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets this machine's recipes.
|
|
|
|
*/
|
|
|
|
public Map<INPUT, RECIPE> getRecipes();
|
|
|
|
|
|
|
|
public RECIPE getRecipe();
|
|
|
|
|
|
|
|
public INPUT getInput();
|
2012-10-02 20:39:40 +02:00
|
|
|
}
|