Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.jolteffect.justsolars.tileentity;
- import com.jolteffect.justsolars.utility.EnumSolarTier;
- import com.jolteffect.justsolars.utility.LogHelper;
- import net.darkhax.tesla.api.implementation.InfiniteTeslaProducer;
- import net.darkhax.tesla.capability.TeslaCapabilities;
- import net.darkhax.tesla.lib.TeslaUtils;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.ITickable;
- import net.minecraft.world.biome.BiomeDesert;
- import net.minecraftforge.common.capabilities.Capability;
- public class TileEntitySolarPanel extends TileEntity implements ITickable {
- public int powerTransfer;
- public int tier;
- public boolean seesSun = false;
- public boolean active = false;
- public TileEntitySolarPanel() {
- switchTier();
- }
- public TileEntitySolarPanel(int tier) {
- this.tier = tier;
- switchTier();
- }
- public int getPowerTransfer() {
- return powerTransfer;
- }
- @Override
- @SuppressWarnings("unchecked")
- public <T> T getCapability (Capability<T> capability, EnumFacing facing) {
- if (capability == TeslaCapabilities.CAPABILITY_PRODUCER)
- return (T) new InfiniteTeslaProducer();
- return super.getCapability(capability, facing);
- }
- @Override
- public boolean hasCapability (Capability<?> capability, EnumFacing facing) {
- if (capability == TeslaCapabilities.CAPABILITY_PRODUCER)
- return true;
- return super.hasCapability(capability, facing);
- }
- @Override
- public void update () {
- if(!worldObj.isRemote)
- {
- if(worldObj.isDaytime() && ((!worldObj.isRaining() && !worldObj.isThundering()) || isDesert()) && !worldObj.provider.getHasNoSky() && worldObj.canSeeSky(getPos().add(0, 4, 0)))
- {
- seesSun = true;
- }
- else {
- seesSun = false;
- }
- }
- if (seesSun)
- {
- active = true;
- TeslaUtils.distributePowerToAllFaces(this.worldObj, this.pos, powerTransfer, false);
- }
- else
- {
- active = false;
- }
- }
- public void switchTier() {
- switch (tier) {
- case 1:
- powerTransfer = 1;
- break;
- case 2:
- powerTransfer = 2;
- break;
- case 3:
- powerTransfer = 4;
- break;
- case 4:
- powerTransfer = 8;
- break;
- case 5:
- powerTransfer = 16;
- break;
- default:
- powerTransfer = 1;
- break;
- }
- }
- public boolean isDesert()
- {
- return worldObj.provider.getBiomeForCoords(getPos()).getBiomeClass() == BiomeDesert.class;
- }
- @Override
- public void readFromNBT(NBTTagCompound compound) {
- super.readFromNBT(compound);
- powerTransfer = compound.getInteger("counter");
- tier = compound.getInteger("tier");
- }
- @Override
- public NBTTagCompound writeToNBT(NBTTagCompound compound) {
- super.writeToNBT(compound);
- compound.setInteger("counter", powerTransfer);
- compound.setInteger("tier", tier);
- return compound;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement