123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package me.km.capabilities;
- import java.util.List;
- import me.km.KajetansMod;
- import me.km.items.ItemGun;
- import me.km.items.ItemKey;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemArmor;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.ResourceLocation;
- import net.minecraft.util.text.TextFormatting;
- import net.minecraftforge.common.capabilities.CapabilityManager;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- import net.minecraftforge.event.AttachCapabilitiesEvent;
- import net.minecraftforge.event.entity.player.ItemTooltipEvent;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- public class CapabilitiesEvents
- {
- public static final ResourceLocation DEFENSE_CAP = new ResourceLocation(KajetansMod.MODID, "defense");
- public static final ResourceLocation CHEST_KEY_CAP = new ResourceLocation(KajetansMod.MODID, "chestkey");
- public static final ResourceLocation GUN_LOAD_CAP = new ResourceLocation(KajetansMod.MODID, "gunload");
-
- public static void init()
- {
- CapabilityManager.INSTANCE.register(IDefense.class, new DefenseStorage(), ItemDefenseStats.class);
- CapabilityManager.INSTANCE.register(IChestKey.class, new ChestKeyStorage(), ItemChestKey.class);
- CapabilityManager.INSTANCE.register(IGunLoad.class, new GunLoadStorage(), ItemGunLoad.class);
- }
-
- @SubscribeEvent
- public void attachDefenseData(AttachCapabilitiesEvent<ItemStack> e)
- {
- Item item = e.getObject().getItem();
- if(item instanceof ItemArmor)
- {
- e.addCapability(DEFENSE_CAP, new DefenseProvider());
- }
- else if(item.getClass() == ItemKey.class)
- {
- e.addCapability(CHEST_KEY_CAP, new ChestKeyProvider());
- }
- else if(item.getClass() == ItemGun.class)
- {
- e.addCapability(GUN_LOAD_CAP, new GunLoadProvider());
- }
- }
-
- @SideOnly(Side.CLIENT)
- @SubscribeEvent
- public void showingTooltip(ItemTooltipEvent e)
- {
- ItemStack stack = e.getItemStack();
- if(stack.hasCapability(DefenseProvider.DEFENSE_CAP, null))
- {
- IDefense defense = stack.getCapability(DefenseProvider.DEFENSE_CAP, null);
- int magic = defense.getMagicDefense();
- if(magic != 0)
- {
- List<String> list = e.getToolTip();
- String s = TextFormatting.BLUE + " +";
- for(int i = 0; i < list.size(); i++)
- {
- if(list.get(i).startsWith(s))
- {
- list.add(i, TextFormatting.BLUE + " +" + magic + " Magic Armor");
- break;
- }
- }
- }
- }
- else if(stack.hasCapability(GunLoadProvider.GUN_LOAD_CAP, null))
- {
- IGunLoad gunLoad = stack.getCapability(GunLoadProvider.GUN_LOAD_CAP, null);
- int load = gunLoad.getCurrentLoad();
- if(load >= 0)
- {
- List<String> list = e.getToolTip();
- if(load == 1)
- {
- list.add(1, TextFormatting.GOLD + "" + load + " shot loaded");
- }
- else
- {
- list.add(1, TextFormatting.GOLD + "" + load + " shots loaded");
- }
- }
- }
- else if(stack.hasCapability(ChestKeyProvider.CHEST_KEY_CAP, null))
- {
- IChestKey key = stack.getCapability(ChestKeyProvider.CHEST_KEY_CAP, null);
- List<String> list = e.getToolTip();
- if(key.getKey().isEmpty())
- {
- list.set(0, TextFormatting.RED + list.get(0));
- }
- else
- {
- list.set(0, TextFormatting.GREEN + list.get(0));
- }
- }
- }
- }
|