Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import cofh.redstoneflux.api.IEnergyProvider;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.EnumFacing;
- import net.minecraftforge.common.capabilities.Capability;
- import net.minecraftforge.common.capabilities.ICapabilityProvider;
- import net.minecraftforge.energy.CapabilityEnergy;
- import net.minecraftforge.items.ItemStackHandler;
- public class PowerAdapterTileEntity extends TileEntity implements ICapabilityProvider, IEnergyProvider {
- protected ModEnergyStorage energyStorage;
- private ItemStackHandler handler;
- private Object forgeWrapper;
- private long transfer;
- public PowerAdapterTileEntity() {
- this(1000000000, 1000000, 1000000);
- this.handler = new ItemStackHandler(2);
- this.transfer = 1000L;
- }
- PowerAdapterTileEntity(int capacity, int maxReceive, int maxExtract) {
- this.transfer = maxExtract;
- this.energyStorage = new ModEnergyStorage(capacity, maxReceive, maxExtract, 0);
- this.handler = new ItemStackHandler(2);
- }
- @Override
- public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
- nbt.setTag("Inventory", this.handler.serializeNBT());
- return super.writeToNBT(nbt);
- }
- /**
- * Read data from nbt
- */
- @Override
- public void readFromNBT(NBTTagCompound nbt) {
- this.handler.deserializeNBT(nbt.getCompoundTag("Inventory"));
- this.energyStorage.setMaxTransfer(0);
- super.readFromNBT(nbt);
- }
- @Override
- public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
- if (capability == CapabilityEnergy.ENERGY)
- return true;
- return super.hasCapability(capability, facing);
- }
- @Override
- public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
- if (capability == CapabilityEnergy.ENERGY) {
- if (this.forgeWrapper == null)
- this.forgeWrapper = new ForgeEnergyWrapper(this.energyStorage);
- return (T) this.forgeWrapper;
- }
- return super.getCapability(capability, facing);
- }
- @Override
- public int getEnergyStored(EnumFacing from) {
- return (int) this.energyStorage.getEnergyStored();
- }
- @Override
- public int getMaxEnergyStored(EnumFacing from) {
- return (int) this.energyStorage.getMaxEnergyStored();
- }
- @Override
- public boolean canConnectEnergy(EnumFacing from) {
- return true;
- }
- @Override
- public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate) {
- return (int) this.energyStorage.extractEnergy(maxExtract, simulate);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement