package com.amadornes.framez.compat.rf; import java.util.Collection; import net.minecraftforge.common.util.ForgeDirection; import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyReceiver; import com.amadornes.framez.api.modifier.IMotorModifier; import com.amadornes.framez.api.modifier.IMotorModifierPower; import com.amadornes.framez.api.movement.IMotor; import com.amadornes.jtraits.ITrait; import com.amadornes.jtraits.JTrait; public class MotorModifierRF implements IMotorModifierPower { @Override public String getType() { return "rf"; } @Override public boolean isCompatibleWith(IMotorModifier mod) { return true; } @Override public boolean isValidCombination(Collection<IMotorModifier> combination) { return true; } @Override public Class<? extends ITrait> getTraitClass() { return TMotorRF.class; } public static abstract class TMotorRF extends JTrait<IMotor> implements IMotor, IEnergyHandler, IEnergyReceiver { @Override public boolean canConnectEnergy(ForgeDirection from) { return true; } @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { return (int) ((IMotor) this).injectPower(maxReceive, simulate); } @Override public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { return 0; } @Override public int getEnergyStored(ForgeDirection from) { return (int) ((IMotor) this).getEnergyBuffer(); } @Override public int getMaxEnergyStored(ForgeDirection from) { return (int) ((IMotor) this).getEnergyBufferSize(); } } }