package zmaster587.advancedRocketry.tile; import java.util.List; import net.minecraft.entity.player.EntityPlayer; import zmaster587.advancedRocketry.api.Configuration; import zmaster587.libVulpes.inventory.TextureResources; import zmaster587.libVulpes.inventory.modules.ModuleBase; import zmaster587.libVulpes.inventory.modules.ModuleProgress; import zmaster587.libVulpes.inventory.modules.ModuleSlotArray; import zmaster587.libVulpes.inventory.modules.ModuleText; import zmaster587.libVulpes.tile.TileInventoriedForgePowerMachine; public class TileSolarPanel extends TileInventoriedForgePowerMachine { ModuleText text; public TileSolarPanel() { super(10000, 1); text = new ModuleText(60, 40, "Collecting Energy", 0x2f2f2f); } @Override public boolean canGeneratePower() { float angle = worldObj.getCelestialAngle(0); return worldObj.canBlockSeeTheSky(xCoord,yCoord + 1,zCoord) && (angle > 0.75 || angle < 0.25); } @Override public void updateEntity() { if(canGeneratePower()) { if(worldObj.isRemote) text.setText("Collecting Energy:\n" + getPowerPerOperation() + " RF/t"); if(hasEnoughEnergyBuffer(getPowerPerOperation())) { if(!worldObj.isRemote) this.energy.acceptEnergy(getPowerPerOperation(), false); onGeneratePower(); } else notEnoughBufferForFunction(); } else if(worldObj.isRemote) text.setText("Unable to collect Energy"); if(!worldObj.isRemote) transmitPower(); } @Override public List<ModuleBase> getModules(int ID, EntityPlayer player) { List<ModuleBase> modules = super.getModules(ID, player); modules.add(text); return modules; } @Override public int getPowerPerOperation() { return Configuration.solarGeneratorMult; } @Override public void onGeneratePower() { } @Override public String getModularInventoryName() { return "tile.solarGenerator.name"; } @Override public boolean canInteractWithContainer(EntityPlayer entity) { return true; } }