Advertisement
Guest User

Untitled

a guest
Aug 12th, 2016
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.45 KB | None | 0 0
  1. package com.jolteffect.justsolars.tileentity;
  2.  
  3.  
  4.  
  5. import com.jolteffect.justsolars.utility.EnumSolarTier;
  6. import com.jolteffect.justsolars.utility.LogHelper;
  7.  
  8. import net.darkhax.tesla.api.implementation.InfiniteTeslaProducer;
  9. import net.darkhax.tesla.capability.TeslaCapabilities;
  10. import net.darkhax.tesla.lib.TeslaUtils;
  11. import net.minecraft.nbt.NBTTagCompound;
  12. import net.minecraft.tileentity.TileEntity;
  13. import net.minecraft.util.EnumFacing;
  14. import net.minecraft.util.ITickable;
  15. import net.minecraft.world.biome.BiomeDesert;
  16. import net.minecraftforge.common.capabilities.Capability;
  17.  
  18.  
  19. public class TileEntitySolarPanel extends TileEntity implements ITickable {
  20.  
  21. public int powerTransfer;
  22. public int tier;
  23. public boolean seesSun = false;
  24. public boolean active = false;
  25.  
  26. public TileEntitySolarPanel() {
  27. switchTier();
  28. }
  29. public TileEntitySolarPanel(int tier) {
  30. this.tier = tier;
  31. switchTier();
  32. }
  33.  
  34. public int getPowerTransfer() {
  35. return powerTransfer;
  36. }
  37.  
  38. @Override
  39. @SuppressWarnings("unchecked")
  40. public <T> T getCapability (Capability<T> capability, EnumFacing facing) {
  41.  
  42. if (capability == TeslaCapabilities.CAPABILITY_PRODUCER)
  43. return (T) new InfiniteTeslaProducer();
  44.  
  45. return super.getCapability(capability, facing);
  46. }
  47.  
  48. @Override
  49. public boolean hasCapability (Capability<?> capability, EnumFacing facing) {
  50.  
  51. if (capability == TeslaCapabilities.CAPABILITY_PRODUCER)
  52. return true;
  53.  
  54. return super.hasCapability(capability, facing);
  55. }
  56.  
  57. @Override
  58. public void update () {
  59.  
  60. if(!worldObj.isRemote)
  61. {
  62. if(worldObj.isDaytime() && ((!worldObj.isRaining() && !worldObj.isThundering()) || isDesert()) && !worldObj.provider.getHasNoSky() && worldObj.canSeeSky(getPos().add(0, 4, 0)))
  63. {
  64. seesSun = true;
  65. }
  66. else {
  67. seesSun = false;
  68. }
  69. }
  70.  
  71. if (seesSun)
  72. {
  73. active = true;
  74. TeslaUtils.distributePowerToAllFaces(this.worldObj, this.pos, powerTransfer, false);
  75. }
  76. else
  77. {
  78. active = false;
  79. }
  80. }
  81.  
  82. public void switchTier() {
  83. switch (tier) {
  84. case 1:
  85. powerTransfer = 1;
  86. break;
  87.  
  88. case 2:
  89. powerTransfer = 2;
  90. break;
  91.  
  92. case 3:
  93. powerTransfer = 4;
  94. break;
  95.  
  96. case 4:
  97. powerTransfer = 8;
  98. break;
  99. case 5:
  100. powerTransfer = 16;
  101. break;
  102.  
  103. default:
  104. powerTransfer = 1;
  105. break;
  106. }
  107. }
  108.  
  109. public boolean isDesert()
  110. {
  111. return worldObj.provider.getBiomeForCoords(getPos()).getBiomeClass() == BiomeDesert.class;
  112. }
  113.  
  114. @Override
  115. public void readFromNBT(NBTTagCompound compound) {
  116. super.readFromNBT(compound);
  117.  
  118. powerTransfer = compound.getInteger("counter");
  119. tier = compound.getInteger("tier");
  120. }
  121.  
  122. @Override
  123. public NBTTagCompound writeToNBT(NBTTagCompound compound) {
  124. super.writeToNBT(compound);
  125. compound.setInteger("counter", powerTransfer);
  126. compound.setInteger("tier", tier);
  127.  
  128. return compound;
  129. }
  130.  
  131.  
  132.  
  133.  
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement