package mekanism.generators.common.tile; import java.util.EnumSet; import mekanism.api.Coord4D; import mekanism.api.IEvaporationSolar; import mekanism.api.MekanismConfig.generators; import mekanism.common.base.IBoundingBlock; import mekanism.common.capabilities.Capabilities; import mekanism.common.util.MekanismUtils; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; public class TileEntityAdvancedSolarGenerator extends TileEntitySolarGenerator implements IBoundingBlock, IEvaporationSolar { public TileEntityAdvancedSolarGenerator() { super("AdvancedSolarGenerator", 200000, generators.advancedSolarGeneration*2); GENERATION_RATE = generators.advancedSolarGeneration; } @Override public EnumSet<EnumFacing> getOutputtingSides() { return EnumSet.of(facing); } @Override public void onPlace() { Coord4D current = Coord4D.get(this); MekanismUtils.makeBoundingBlock(worldObj, getPos().add(0, 1, 0), current); for(int x = -1; x <= 1; x++) { for(int z = -1; z <= 1; z++) { MekanismUtils.makeBoundingBlock(worldObj, getPos().add(x, 2, z), current); } } } @Override public void onBreak() { worldObj.setBlockToAir(getPos().add(0, 1, 0)); for(int x = -1; x <= 1; x++) { for(int z = -1; z <= 1; z++) { worldObj.setBlockToAir(getPos().add(x, 2, z)); } } invalidate(); worldObj.setBlockToAir(getPos()); } @Override public boolean seesSun() { return seesSun; } @Override public boolean hasCapability(Capability<?> capability, EnumFacing side) { return capability == Capabilities.EVAPORATION_SOLAR_CAPABILITY || super.hasCapability(capability, side); } @Override public <T> T getCapability(Capability<T> capability, EnumFacing side) { if(capability == Capabilities.EVAPORATION_SOLAR_CAPABILITY) { return (T)this; } return super.getCapability(capability, side); } }