Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CapabilityManager.INSTANCE.register(IEnergyData.class, new EnergyData(), EnergyData.class);
- public class EnergyData implements ICapabilitySerializable<NBTTagCompound>, IEnergyData, Capability.IStorage<IEnergyData>
- {
- private int energy = 0, maxEnergy = 25000;
- public EnergyData()
- {
- }
- @Override
- public int getEnergy()
- {
- return energy;
- }
- @Override
- public void setEnergy(int energy)
- {
- this.energy = MathHelper.clamp_int(energy, 0, getMaxEnergy());
- }
- @Override
- public int getMaxEnergy()
- {
- return maxEnergy;
- }
- @Override
- public void setMaxEnergy(int energy)
- {
- maxEnergy = energy;
- }
- @Override
- public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing)
- {
- return capability == ENERGY_CAPABILITY;
- }
- @Override
- public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing)
- {
- if (capability == ENERGY_CAPABILITY)
- return (T) this;
- return null;
- }
- @Override
- public NBTTagCompound serializeNBT()
- {
- NBTTagCompound tag = new NBTTagCompound();
- tag.setInteger("energy", getEnergy());
- tag.setInteger("maxEnergy", getMaxEnergy());
- return tag;
- }
- @Override
- public void deserializeNBT(NBTTagCompound tag)
- {
- setEnergy(tag.getInteger("energy"));
- setMaxEnergy(tag.getInteger("maxEnergy"));
- Logger.info(tag);
- }
- @Override
- public NBTBase writeNBT(Capability<IEnergyData> capability, IEnergyData instance, EnumFacing side)
- {
- return serializeNBT();
- }
- @Override
- public void readNBT(Capability<IEnergyData> capability, IEnergyData instance, EnumFacing side, NBTBase nbt)
- {
- deserializeNBT((NBTTagCompound) nbt);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement