/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com
*
* The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which
* should be located as "LICENSE.API" in the BuildCraft source code distribution. */
package buildcraft.api.power;
import net.minecraft.util.EnumFacing;
/** Engines should implement this interface if they want to support BuildCraft's behaviour of passing energy between
* engines without using receiveEnergy() (which has other issues). */
public interface IEngine {
/** Returns true if the engine wants to receive power from another engine on this side.
*
* @param side
* @return */
boolean canReceiveFromEngine(EnumFacing side);
/** Receives energy from an engine. See
* {@link cofh.api.energy.IEnergyHandler#receiveEnergy(EnumFacing, int, boolean)}
*
* @param side The side the engine is receiving energy from.
* @param energy The amount of energy given to the engine.
* @param simulate True if the energy should not actually be added.
* @return The amount of energy used by the engine. */
int receiveEnergyFromEngine(EnumFacing side, int energy, boolean simulate);
}