4f9fd1b369
* IC2 rework to avoid a coremod or @Optional Updated IC2 dependency Refactored IC2 itemcharging to use an IBackupElectricManager. Allows charging any ae powered item by using an IBackupElectricManager instead of having to implement IElectricItem and stripping it by some sort. Updated IAEItemPowerStorage to use Actionable for an easier handling with power APIs supporting a simulation. Refactored EU P2P to avoid method stripping Use a modified internal BasicSinkSource instead of implementing IEnergySource and IEnergySink directly on the tunnel. Removed the superfluous EU P2P layers. * Removed internalBattery due to being too complex * Creative Energy Cell is not a chargeable item
75 lines
2.4 KiB
Java
75 lines
2.4 KiB
Java
/*
|
|
* The MIT License (MIT)
|
|
*
|
|
* Copyright (c) 2013 AlgorithmX2
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
* this software and associated documentation files (the "Software"), to deal in
|
|
* the Software without restriction, including without limitation the rights to
|
|
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
* the Software, and to permit persons to whom the Software is furnished to do so,
|
|
* subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in all
|
|
* copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
|
|
package appeng.api.implementations.items;
|
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import appeng.api.config.AccessRestriction;
|
|
import appeng.api.config.Actionable;
|
|
import appeng.api.networking.energy.IAEPowerStorage;
|
|
|
|
|
|
/**
|
|
* Basically the same as {@link IAEPowerStorage}, but for items.
|
|
*/
|
|
public interface IAEItemPowerStorage
|
|
{
|
|
|
|
/**
|
|
* Inject amt, power into the device, it will store what it can, and return
|
|
* the amount unable to be stored.
|
|
*
|
|
* @return amount unable to be stored
|
|
*/
|
|
double injectAEPower( ItemStack stack, double amount, Actionable mode );
|
|
|
|
/**
|
|
* Attempt to extract power from the device, it will extract what it can and
|
|
* return it.
|
|
*
|
|
* @param amount to be extracted power from device
|
|
*
|
|
* @return what it could extract
|
|
*/
|
|
double extractAEPower( ItemStack stack, double amount, Actionable mode );
|
|
|
|
/**
|
|
* @return the current maximum power ( this can change :P )
|
|
*/
|
|
double getAEMaxPower( ItemStack stack );
|
|
|
|
/**
|
|
* @return the current AE Power Level, this may exceed getMEMaxPower()
|
|
*/
|
|
double getAECurrentPower( ItemStack stack );
|
|
|
|
/**
|
|
* Control the power flow by telling what the network can do, either add? or
|
|
* subtract? or both!
|
|
*
|
|
* @return access restriction of network
|
|
*/
|
|
AccessRestriction getPowerFlow( ItemStack stack );
|
|
} |