diff options
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.java')
| -rw-r--r-- | src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.java | 53 |
1 files changed, 53 insertions, 0 deletions
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);
+ }
+}
|
