Advertisement
Guest User

Untitled

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