From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../plusplus/fbs/container/slot/SlotTakeOnly.java | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.java (limited to 'src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.java') diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.java new file mode 100644 index 0000000..4476bb4 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.java @@ -0,0 +1,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); + } +} -- cgit v1.2.3