Guest User

Untitled

a guest
Jun 7th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. package com.thenewjourney.blocks.pervateki;
  2.  
  3. import cofh.redstoneflux.api.IEnergyProvider;
  4. import net.minecraft.nbt.NBTTagCompound;
  5. import net.minecraft.tileentity.TileEntity;
  6. import net.minecraft.util.EnumFacing;
  7. import net.minecraftforge.common.capabilities.Capability;
  8. import net.minecraftforge.common.capabilities.ICapabilityProvider;
  9. import net.minecraftforge.energy.CapabilityEnergy;
  10. import net.minecraftforge.items.ItemStackHandler;
  11.  
  12. public class PowerAdapterTileEntity extends TileEntity implements ICapabilityProvider, IEnergyProvider {
  13.  
  14. protected ModEnergyStorage energyStorage;
  15. private ItemStackHandler handler;
  16. private Object forgeWrapper;
  17. private long transfer;
  18.  
  19. public PowerAdapterTileEntity() {
  20. this(1000000000, 1000000, 1000000);
  21. this.handler = new ItemStackHandler(2);
  22. this.transfer = 1000L;
  23.  
  24. }
  25.  
  26. PowerAdapterTileEntity(int capacity, int maxReceive, int maxExtract) {
  27. this.transfer = maxExtract;
  28. this.energyStorage = new ModEnergyStorage(capacity, maxReceive, maxExtract, 0);
  29. this.handler = new ItemStackHandler(2);
  30. }
  31.  
  32.  
  33. @Override
  34. public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
  35. nbt.setTag("Inventory", this.handler.serializeNBT());
  36. return super.writeToNBT(nbt);
  37. }
  38.  
  39. /**
  40. * Read data from nbt
  41. */
  42. @Override
  43. public void readFromNBT(NBTTagCompound nbt) {
  44. this.handler.deserializeNBT(nbt.getCompoundTag("Inventory"));
  45. this.energyStorage.setMaxTransfer(0);
  46. super.readFromNBT(nbt);
  47. }
  48.  
  49. @Override
  50. public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
  51. if (capability == CapabilityEnergy.ENERGY)
  52. return true;
  53. return super.hasCapability(capability, facing);
  54. }
  55.  
  56. @Override
  57. public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
  58. if (capability == CapabilityEnergy.ENERGY) {
  59. if (this.forgeWrapper == null)
  60. this.forgeWrapper = new ForgeEnergyWrapper(this.energyStorage);
  61. return (T) this.forgeWrapper;
  62. }
  63. return super.getCapability(capability, facing);
  64. }
  65.  
  66. @Override
  67. public int getEnergyStored(EnumFacing from) {
  68. return (int) this.energyStorage.getEnergyStored();
  69. }
  70.  
  71. @Override
  72. public int getMaxEnergyStored(EnumFacing from) {
  73. return (int) this.energyStorage.getMaxEnergyStored();
  74. }
  75.  
  76. @Override
  77. public boolean canConnectEnergy(EnumFacing from) {
  78. return true;
  79. }
  80.  
  81. @Override
  82. public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate) {
  83. return (int) this.energyStorage.extractEnergy(maxExtract, simulate);
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment