Advertisement
Guest User

Untitled

a guest
Aug 14th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. package com.jolteffect.justsolars.block.powercube;
  2.  
  3. import com.jolteffect.justsolars.block.BlockSolarPanel;
  4. import com.jolteffect.justsolars.utility.EnumSolarTier;
  5.  
  6. import net.darkhax.tesla.api.ITeslaConsumer;
  7. import net.darkhax.tesla.api.implementation.BaseTeslaContainer;
  8. import net.darkhax.tesla.capability.TeslaCapabilities;
  9. import net.darkhax.tesla.lib.TeslaUtils;
  10. import net.minecraft.entity.player.EntityPlayer;
  11. import net.minecraft.nbt.NBTTagCompound;
  12. import net.minecraft.network.NetworkManager;
  13. import net.minecraft.network.play.server.SPacketUpdateTileEntity;
  14. import net.minecraft.tileentity.TileEntity;
  15. import net.minecraft.util.EnumFacing;
  16. import net.minecraft.util.ITickable;
  17. import net.minecraft.world.biome.BiomeDesert;
  18. import net.minecraftforge.common.capabilities.Capability;
  19. import net.minecraftforge.items.CapabilityItemHandler;
  20. import net.minecraftforge.items.ItemStackHandler;
  21.  
  22. public class TileEntityPowerCube extends TileEntity implements ITickable {
  23.  
  24. private PowerContainerPowerCube powerContainer;
  25. public static final int SIZE = 9;
  26.  
  27.  
  28. private ItemStackHandler itemStackHandler = new ItemStackHandler(SIZE) {
  29. @Override
  30. protected void onContentsChanged(int slot) {
  31.  
  32. TileEntityPowerCube.this.markDirty();
  33. }
  34. };
  35.  
  36. public TileEntityPowerCube() {
  37.  
  38. // Initializes the container. Very straight forward.
  39. this.powerContainer = new PowerContainerPowerCube(1000000, 1000);
  40. }
  41.  
  42. @Override
  43. public void readFromNBT (NBTTagCompound compound) {
  44.  
  45. super.readFromNBT(compound);
  46. itemStackHandler.deserializeNBT((NBTTagCompound) compound.getTag("items"));
  47. this.powerContainer.setPower(compound.getLong("StoredPower"));
  48.  
  49. }
  50.  
  51. @Override
  52. public NBTTagCompound writeToNBT (NBTTagCompound compound) {
  53.  
  54. compound.setTag("items", itemStackHandler.serializeNBT());
  55. compound.setLong("StoredPower", this.powerContainer.getStoredPower());
  56. return super.writeToNBT(compound);
  57. }
  58.  
  59.  
  60. @Override
  61. @SuppressWarnings("unchecked")
  62. public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
  63.  
  64. if (capability == TeslaCapabilities.CAPABILITY_HOLDER ||
  65. capability == TeslaCapabilities.CAPABILITY_CONSUMER ||
  66. capability == TeslaCapabilities.CAPABILITY_PRODUCER)
  67. {
  68. return (T) this.powerContainer;
  69. }
  70. else if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
  71. {
  72. return (T) itemStackHandler;
  73. }
  74.  
  75. return super.getCapability(capability, facing);
  76. }
  77.  
  78. @Override
  79. public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
  80.  
  81. if (capability == TeslaCapabilities.CAPABILITY_HOLDER ||
  82. capability == TeslaCapabilities.CAPABILITY_CONSUMER ||
  83. capability == TeslaCapabilities.CAPABILITY_PRODUCER)
  84. {
  85. return true;
  86. }
  87. else if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
  88. {
  89. return true;
  90. }
  91.  
  92. return super.hasCapability(capability, facing);
  93.  
  94. }
  95.  
  96. @Override
  97. public void update() {
  98. // TODO Auto-generated method stub
  99.  
  100. }
  101.  
  102.  
  103.  
  104. public boolean canInteractWith(EntityPlayer playerIn) {
  105. // If we are too far away from this tile entity you cannot use it
  106. return !isInvalid() && playerIn.getDistanceSq(pos.add(0.5D, 0.5D, 0.5D)) <= 64D;
  107. }
  108.  
  109.  
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement