package mekanism.common.capabilities;
import mekanism.api.IAlloyInteraction;
import mekanism.api.IConfigCardAccess;
import mekanism.api.IConfigCardAccess.ISpecialConfigData;
import mekanism.api.IConfigurable;
import mekanism.api.IEvaporationSolar;
import mekanism.api.IHeatTransfer;
import mekanism.api.energy.ICableOutputter;
import mekanism.api.energy.IStrictEnergyAcceptor;
import mekanism.api.energy.IStrictEnergyStorage;
import mekanism.api.gas.IGasHandler;
import mekanism.api.gas.ITubeConnection;
import mekanism.api.lasers.ILaserReceptor;
import mekanism.api.transmitters.IBlockableConnection;
import mekanism.api.transmitters.IGridTransmitter;
import mekanism.common.base.ILogisticalTransporter;
import mekanism.common.base.ITileNetwork;
import net.darkhax.tesla.api.ITeslaConsumer;
import net.darkhax.tesla.api.ITeslaHolder;
import net.darkhax.tesla.api.ITeslaProducer;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityInject;
/**
* Created by ben on 30/04/16.
*/
public class Capabilities
{
@CapabilityInject(IStrictEnergyStorage.class)
public static Capability<IStrictEnergyStorage> ENERGY_STORAGE_CAPABILITY = null;
@CapabilityInject(IStrictEnergyAcceptor.class)
public static Capability<IStrictEnergyAcceptor> ENERGY_ACCEPTOR_CAPABILITY = null;
@CapabilityInject(ICableOutputter.class)
public static Capability<ICableOutputter> CABLE_OUTPUTTER_CAPABILITY = null;
@CapabilityInject(IConfigurable.class)
public static Capability<IConfigurable> CONFIGURABLE_CAPABILITY = null;
@CapabilityInject(IGasHandler.class)
public static Capability<IGasHandler> GAS_HANDLER_CAPABILITY = null;
@CapabilityInject(IHeatTransfer.class)
public static Capability<IHeatTransfer> HEAT_TRANSFER_CAPABILITY = null;
@CapabilityInject(IBlockableConnection.class)
public static Capability<IBlockableConnection> BLOCKABLE_CONNECTION_CAPABILITY = null;
@CapabilityInject(IGridTransmitter.class)
public static Capability<IGridTransmitter> GRID_TRANSMITTER_CAPABILITY = null;
@CapabilityInject(IAlloyInteraction.class)
public static Capability<IAlloyInteraction> ALLOY_INTERACTION_CAPABILITY = null;
@CapabilityInject(ITubeConnection.class)
public static Capability<ITubeConnection> TUBE_CONNECTION_CAPABILITY = null;
@CapabilityInject(IConfigCardAccess.class)
public static Capability<IConfigCardAccess> CONFIG_CARD_CAPABILITY = null;
@CapabilityInject(ISpecialConfigData.class)
public static Capability<ISpecialConfigData> SPECIAL_CONFIG_DATA_CAPABILITY = null;
@CapabilityInject(IEvaporationSolar.class)
public static Capability<IEvaporationSolar> EVAPORATION_SOLAR_CAPABILITY = null;
@CapabilityInject(ILaserReceptor.class)
public static Capability<ILaserReceptor> LASER_RECEPTOR_CAPABILITY = null;
@CapabilityInject(ITileNetwork.class)
public static Capability<ITileNetwork> TILE_NETWORK_CAPABILITY = null;
@CapabilityInject(ILogisticalTransporter.class)
public static Capability<ILogisticalTransporter> LOGISTICAL_TRANSPORTER_CAPABILITY = null;
@CapabilityInject(ITeslaConsumer.class)
public static Capability<ITeslaConsumer> TESLA_CONSUMER_CAPABILITY = null;
@CapabilityInject(ITeslaProducer.class)
public static Capability<ITeslaProducer> TESLA_PRODUCER_CAPABILITY = null;
@CapabilityInject(ITeslaHolder.class)
public static Capability<ITeslaHolder> TESLA_HOLDER_CAPABILITY = null;
public static void registerCapabilities()
{
DefaultStrictEnergyStorage.register();
DefaultStrictEnergyAcceptor.register();
DefaultCableOutputter.register();
DefaultGridTransmitter.register();
DefaultLogisticalTransporter.register();
DefaultBlockableConnection.register();
DefaultGasHandler.register();
DefaultTubeConnection.register();
DefaultConfigurable.register();
DefaultTileNetwork.register();
DefaultAlloyInteraction.register();
DefaultHeatTransfer.register();
DefaultConfigCardAccess.register();
DefaultSpecialConfigData.register();
DefaultEvaporationSolar.register();
DefaultLaserReceptor.register();
}
}