/******************************************************************************* * AbyssalCraft * Copyright (c) 2012 - 2017 Shinoow. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0.txt * * Contributors: * Shinoow - implementation ******************************************************************************/ package com.shinoow.abyssalcraft.common.caps; import net.minecraft.nbt.NBTBase; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.CapabilityInject; import net.minecraftforge.common.capabilities.ICapabilityProvider; import net.minecraftforge.common.util.INBTSerializable; public class NecroDataCapabilityProvider implements ICapabilityProvider, INBTSerializable<NBTBase>{ @CapabilityInject(INecroDataCapability.class) public static final Capability<INecroDataCapability> NECRO_DATA_CAP = null; private INecroDataCapability capability; public NecroDataCapabilityProvider(){ capability = new NecroDataCapability(); } @Override public boolean hasCapability(Capability<?> capability, EnumFacing facing) { return capability == NECRO_DATA_CAP; } @Override public <T> T getCapability(Capability<T> capability, EnumFacing facing) { if(capability == NECRO_DATA_CAP) return (T) this.capability; return null; } @Override public NBTBase serializeNBT() { return NecroDataCapabilityStorage.instance.writeNBT(NECRO_DATA_CAP, capability, null); } @Override public void deserializeNBT(NBTBase nbt) { NecroDataCapabilityStorage.instance.readNBT(NECRO_DATA_CAP, capability, null, nbt); } }