// Path: src/main/java/com/legobmw99/stormlight/Stormlight.java
// @Mod(Stormlight.MODID)
// public class Stormlight {
//     public static final String MODID = "stormlight";
//     public static final Logger LOGGER = LogManager.getLogger();
// 
//     public static final CreativeModeTab stormlight_group = new CreativeModeTab(Stormlight.MODID) {
//         @Override
//         public ItemStack makeIcon() {
//             int type = (int) (System.currentTimeMillis() / (1000 * 60)) % 10;
//             return new ItemStack(CombatSetup.SHARDBLADES.get(type).get());
//         }
//     };
// 
//     public static Stormlight instance;
// 
//     public Stormlight() {
//         instance = this;
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(Stormlight::init);
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(Stormlight::clientInit);
//         FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(EntityType.class, WorldSetup::onEntityRegister);
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(WorldSetup::onEntityAttribute);
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(SurgebindingCapability::registerCapability);
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(WorldSetup::registerEntityModels);
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(WorldSetup::registerEntityRenders);
//         MinecraftForge.EVENT_BUS.addListener(Stormlight::registerCommands);
// 
//         PowersSetup.register();
//         WorldSetup.register();
//         CombatSetup.register();
//     }
// 
//     public static Item.Properties createStandardItemProperties() {
//         return new Item.Properties().tab(stormlight_group).stacksTo(64);
//     }
// 
//     public static void clientInit(final FMLClientSetupEvent e) {
//         PowersClientSetup.clientInit(e);
//         WorldSetup.clientInit(e);
//         CombatSetup.clientInit(e);
//     }
// 
//     public static void registerCommands(final RegisterCommandsEvent e) {
//         StormlightCommand.register(e.getDispatcher());
//     }
// 
//     public static void init(final FMLCommonSetupEvent e) {
//         PowersSetup.init(e);
//         Network.registerPackets();
//     }
// 
// 
// }
// 
// Path: src/main/java/com/legobmw99/stormlight/api/ISurgebindingData.java
// public interface ISurgebindingData {
// 
//     @Nullable
//     Order getOrder();
// 
//     void setOrder(Order order);
// 
//     Ideal getIdeal();
// 
//     void setIdeal(Ideal ideal);
// 
//     void storeBlade(@Nonnull ItemStack blade);
// 
// 
//     boolean isBladeStored();
// 
//     boolean addBladeToInventory(Player player);
// 
//     UUID getSprenID();
// 
//     void setSprenID(UUID sprenID);
// 
// 
//     default boolean isKnight() {
//         return getOrder() != null && getIdeal() != Ideal.UNINVESTED && getIdeal() != Ideal.TRAITOR;
//     }
// 
//     default Ideal progressIdeal() {
//         Ideal next = getIdeal().progressIdeal();
//         setIdeal(next);
//         return next;
//     }
// 
//     default Ideal regressIdeal() {
//         Ideal next = getIdeal().regressIdeal();
//         setIdeal(next);
//         return next;
//     }
// 
//     default boolean earnedBlade() {
//         Order order = getOrder();
//         return order != null && order.getBladeIdeal().compareTo(getIdeal()) < 0;
//     }
// 
//     default boolean canUseSurge(Surge surge) {
//         Order order = getOrder();
//         Ideal ideal = getIdeal();
//         return order != null &&
//                ((surge == order.getFirst() && order.getFirstIdeal().compareTo(ideal) < 0) || (surge == order.getSecond() && order.getSecondIdeal().compareTo(ideal) < 0));
//     }
// 
//     void load(CompoundTag nbt);
// 
//     CompoundTag save();
// }


import com.legobmw99.stormlight.Stormlight;
import com.legobmw99.stormlight.api.ISurgebindingData;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.common.capabilities.CapabilityToken;
import net.minecraftforge.common.capabilities.RegisterCapabilitiesEvent;
package com.legobmw99.stormlight.modules.powers.data;


public class SurgebindingCapability {

    public static final Capability<ISurgebindingData> PLAYER_CAP = CapabilityManager.get(new CapabilityToken<>() {
    });

// Path: src/main/java/com/legobmw99/stormlight/Stormlight.java
// @Mod(Stormlight.MODID)
// public class Stormlight {
//     public static final String MODID = "stormlight";
//     public static final Logger LOGGER = LogManager.getLogger();
// 
//     public static final CreativeModeTab stormlight_group = new CreativeModeTab(Stormlight.MODID) {
//         @Override
//         public ItemStack makeIcon() {
//             int type = (int) (System.currentTimeMillis() / (1000 * 60)) % 10;
//             return new ItemStack(CombatSetup.SHARDBLADES.get(type).get());
//         }
//     };
// 
//     public static Stormlight instance;
// 
//     public Stormlight() {
//         instance = this;
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(Stormlight::init);
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(Stormlight::clientInit);
//         FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(EntityType.class, WorldSetup::onEntityRegister);
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(WorldSetup::onEntityAttribute);
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(SurgebindingCapability::registerCapability);
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(WorldSetup::registerEntityModels);
//         FMLJavaModLoadingContext.get().getModEventBus().addListener(WorldSetup::registerEntityRenders);
//         MinecraftForge.EVENT_BUS.addListener(Stormlight::registerCommands);
// 
//         PowersSetup.register();
//         WorldSetup.register();
//         CombatSetup.register();
//     }
// 
//     public static Item.Properties createStandardItemProperties() {
//         return new Item.Properties().tab(stormlight_group).stacksTo(64);
//     }
// 
//     public static void clientInit(final FMLClientSetupEvent e) {
//         PowersClientSetup.clientInit(e);
//         WorldSetup.clientInit(e);
//         CombatSetup.clientInit(e);
//     }
// 
//     public static void registerCommands(final RegisterCommandsEvent e) {
//         StormlightCommand.register(e.getDispatcher());
//     }
// 
//     public static void init(final FMLCommonSetupEvent e) {
//         PowersSetup.init(e);
//         Network.registerPackets();
//     }
// 
// 
// }
// 
// Path: src/main/java/com/legobmw99/stormlight/api/ISurgebindingData.java
// public interface ISurgebindingData {
// 
//     @Nullable
//     Order getOrder();
// 
//     void setOrder(Order order);
// 
//     Ideal getIdeal();
// 
//     void setIdeal(Ideal ideal);
// 
//     void storeBlade(@Nonnull ItemStack blade);
// 
// 
//     boolean isBladeStored();
// 
//     boolean addBladeToInventory(Player player);
// 
//     UUID getSprenID();
// 
//     void setSprenID(UUID sprenID);
// 
// 
//     default boolean isKnight() {
//         return getOrder() != null && getIdeal() != Ideal.UNINVESTED && getIdeal() != Ideal.TRAITOR;
//     }
// 
//     default Ideal progressIdeal() {
//         Ideal next = getIdeal().progressIdeal();
//         setIdeal(next);
//         return next;
//     }
// 
//     default Ideal regressIdeal() {
//         Ideal next = getIdeal().regressIdeal();
//         setIdeal(next);
//         return next;
//     }
// 
//     default boolean earnedBlade() {
//         Order order = getOrder();
//         return order != null && order.getBladeIdeal().compareTo(getIdeal()) < 0;
//     }
// 
//     default boolean canUseSurge(Surge surge) {
//         Order order = getOrder();
//         Ideal ideal = getIdeal();
//         return order != null &&
//                ((surge == order.getFirst() && order.getFirstIdeal().compareTo(ideal) < 0) || (surge == order.getSecond() && order.getSecondIdeal().compareTo(ideal) < 0));
//     }
// 
//     void load(CompoundTag nbt);
// 
//     CompoundTag save();
// }


// Path: src/main/java/com/legobmw99/stormlight/modules/powers/data/SurgebindingCapability.java
import com.legobmw99.stormlight.Stormlight;
import com.legobmw99.stormlight.api.ISurgebindingData;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.common.capabilities.CapabilityToken;
import net.minecraftforge.common.capabilities.RegisterCapabilitiesEvent;

package com.legobmw99.stormlight.modules.powers.data;


public class SurgebindingCapability {

    public static final Capability<ISurgebindingData> PLAYER_CAP = CapabilityManager.get(new CapabilityToken<>() {
    });

    public static final ResourceLocation IDENTIFIER = new ResourceLocation(Stormlight.MODID, "surgebinding_data");