summaryrefslogtreecommitdiff
path: root/src/main/java/jp/plusplus/fbs/item/ItemMonocle.java
blob: dcd1b415b23cb8e6f40f6482885a5f34525a60f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package jp.plusplus.fbs.item;

import jp.plusplus.fbs.AchievementRegistry;
import jp.plusplus.fbs.FBS;
import jp.plusplus.fbs.api.event.CheckingMonocleEvent;
import jp.plusplus.fbs.api.event.DamageMonocleEvent;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;

import java.util.List;

/**
 * Createdby pluslus_Fon 2015/06/06.
 */
public class ItemMonocle extends ItemArmor{
    public ItemMonocle(ArmorMaterial p_i45325_1_) {
        super(p_i45325_1_, 0, 0);
        setCreativeTab(FBS.tab);
    }

    @Override
    public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) {
        Item item=stack.getItem();
        if(item==ItemCore.monocleWood) return FBS.MODID+":textures/armor/monocleWood.png";
        if(item==ItemCore.monocleGold) return FBS.MODID+":textures/armor/monocleGold.png";
        return FBS.MODID+":textures/armor/monocle.png";
    }
    @Override
    public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
        if(!FBS.enableDescription) return;
        p_77624_3_.add(StatCollector.translateToLocal("info.fbs.monocle.0"));
        if(p_77624_1_.getItem()==ItemCore.monocleGold) p_77624_3_.add(StatCollector.translateToLocal("info.fbs.monocle.1"));
    }


    public static ItemStack findMonocle(EntityPlayer player){
        //まずモノクル
        ItemStack helm = player.getCurrentArmor(3);
        if (helm == null || !(helm.getItem() instanceof ItemMonocle)){
            helm=null;
        }

        //だめならイベントで
        CheckingMonocleEvent event=new CheckingMonocleEvent(player, helm);
        MinecraftForge.EVENT_BUS.post(event);

        if(event.hasMonocle()){
            return event.getMonocle();
        }
        return null;
    }
    public static void damageMonocle(EntityPlayer player, ItemStack monocle){
        DamageMonocleEvent event=new DamageMonocleEvent(player, monocle);
        if(!MinecraftForge.EVENT_BUS.post(event)){
            monocle.damageItem(1, player);
            if(monocle.stackSize<=0 || monocle.getItemDamage()>monocle.getMaxDamage()){
                player.playSound("random.break", 0.8F, 0.8F + player.worldObj.rand.nextFloat() * 0.4F);
                for(int i=0;i<player.inventory.getSizeInventory();i++){
                    ItemStack itemStack=player.inventory.getStackInSlot(i);
                    if( itemStack!=null && monocle.isItemEqual(itemStack)){
                        player.inventory.setInventorySlotContents(i, null);
                        break;
                    }
                }
            }
        }
    }

    @Override
    public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) {
        if(!world.isRemote) player.triggerAchievement(AchievementRegistry.monocle);
    }
}