summaryrefslogtreecommitdiff
path: root/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.java
blob: 4476bb45fd1f1b11e5949c303a2111d19d31bfa1 (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
package jp.plusplus.fbs.container.slot;

import cpw.mods.fml.common.FMLCommonHandler;
import jp.plusplus.fbs.AchievementRegistry;
import jp.plusplus.fbs.api.IPottery;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;

/**
 * Createdby pluslus_Fon 2015/06/08.
 */
public class SlotTakeOnly extends Slot{
    protected int achievement;

    public SlotTakeOnly(IInventory p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_) {
        this(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_, 0);
    }
    public SlotTakeOnly(IInventory p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_, int achievement){
        super(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_);
        this.achievement=achievement;
    }

    @Override
    public boolean isItemValid(ItemStack item){
        return false;
    }

    @Override
    public void onPickupFromSlot(EntityPlayer player, ItemStack stack) {
        Item item=stack.getItem();
        if(achievement==1){
            if(item instanceof ItemBlock){
                Block b=((ItemBlock) item).field_150939_a;
                if(b instanceof IPottery){
                    player.triggerAchievement(AchievementRegistry.grade);
                    if(((IPottery) b).getGrade(stack.getTagCompound())== IPottery.PotteryGrade.SOULFUL){
                        player.triggerAchievement(AchievementRegistry.soulful);
                    }
                }
            }
        }
        else if(achievement==2){
            FMLCommonHandler.instance().firePlayerCraftingEvent(player, stack, null);
        }

        super.onPickupFromSlot(player, stack);
    }
}