Advertisement
Guest User

Untitled

a guest
Jul 16th, 2016
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1.  
  2. CapabilityManager.INSTANCE.register(IEnergyData.class, new EnergyData(), EnergyData.class);
  3.  
  4.  
  5.  
  6.  
  7. public class EnergyData implements ICapabilitySerializable<NBTTagCompound>, IEnergyData, Capability.IStorage<IEnergyData>
  8. {
  9. private int energy = 0, maxEnergy = 25000;
  10.  
  11. public EnergyData()
  12. {
  13.  
  14. }
  15.  
  16. @Override
  17. public int getEnergy()
  18. {
  19. return energy;
  20. }
  21.  
  22. @Override
  23. public void setEnergy(int energy)
  24. {
  25. this.energy = MathHelper.clamp_int(energy, 0, getMaxEnergy());
  26. }
  27.  
  28. @Override
  29. public int getMaxEnergy()
  30. {
  31. return maxEnergy;
  32. }
  33.  
  34. @Override
  35. public void setMaxEnergy(int energy)
  36. {
  37. maxEnergy = energy;
  38. }
  39.  
  40. @Override
  41. public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing)
  42. {
  43. return capability == ENERGY_CAPABILITY;
  44. }
  45.  
  46. @Override
  47. public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing)
  48. {
  49. if (capability == ENERGY_CAPABILITY)
  50. return (T) this;
  51.  
  52. return null;
  53. }
  54.  
  55. @Override
  56. public NBTTagCompound serializeNBT()
  57. {
  58. NBTTagCompound tag = new NBTTagCompound();
  59.  
  60. tag.setInteger("energy", getEnergy());
  61. tag.setInteger("maxEnergy", getMaxEnergy());
  62.  
  63. return tag;
  64. }
  65.  
  66. @Override
  67. public void deserializeNBT(NBTTagCompound tag)
  68. {
  69. setEnergy(tag.getInteger("energy"));
  70. setMaxEnergy(tag.getInteger("maxEnergy"));
  71.  
  72. Logger.info(tag);
  73. }
  74.  
  75. @Override
  76. public NBTBase writeNBT(Capability<IEnergyData> capability, IEnergyData instance, EnumFacing side)
  77. {
  78. return serializeNBT();
  79. }
  80.  
  81. @Override
  82. public void readNBT(Capability<IEnergyData> capability, IEnergyData instance, EnumFacing side, NBTBase nbt)
  83. {
  84. deserializeNBT((NBTTagCompound) nbt);
  85. }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement