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/SlotBonfire.class | Bin 0 -> 1666 bytes .../plusplus/fbs/container/slot/SlotBonfire.java | 46 ++++++++++++ .../plusplus/fbs/container/slot/SlotContract.class | Bin 0 -> 1572 bytes .../plusplus/fbs/container/slot/SlotContract.java | 49 +++++++++++++ .../plusplus/fbs/container/slot/SlotCrafting.class | Bin 0 -> 3758 bytes .../plusplus/fbs/container/slot/SlotCrafting.java | 81 +++++++++++++++++++++ .../fbs/container/slot/SlotCraftingPottery.class | Bin 0 -> 3490 bytes .../fbs/container/slot/SlotCraftingPottery.java | 78 ++++++++++++++++++++ .../fbs/container/slot/SlotInventory.class | Bin 0 -> 2327 bytes .../plusplus/fbs/container/slot/SlotInventory.java | 49 +++++++++++++ .../jp/plusplus/fbs/container/slot/SlotMagic.class | Bin 0 -> 887 bytes .../jp/plusplus/fbs/container/slot/SlotMagic.java | 20 +++++ .../fbs/container/slot/SlotMagicCopy.class | Bin 0 -> 914 bytes .../plusplus/fbs/container/slot/SlotMagicCopy.java | 25 +++++++ .../fbs/container/slot/SlotMagicTakeOnly.class | Bin 0 -> 735 bytes .../fbs/container/slot/SlotMagicTakeOnly.java | 20 +++++ .../fbs/container/slot/SlotMagicTimeTrace.class | Bin 0 -> 1132 bytes .../fbs/container/slot/SlotMagicTimeTrace.java | 28 +++++++ .../plusplus/fbs/container/slot/SlotShowOnly.class | Bin 0 -> 865 bytes .../plusplus/fbs/container/slot/SlotShowOnly.java | 25 +++++++ .../plusplus/fbs/container/slot/SlotTakeOnly.class | Bin 0 -> 2420 bytes .../plusplus/fbs/container/slot/SlotTakeOnly.java | 53 ++++++++++++++ .../container/slot/SlotTakeOnlyWithMagicEXP.class | Bin 0 -> 2662 bytes .../container/slot/SlotTakeOnlyWithMagicEXP.java | 65 +++++++++++++++++ 24 files changed, 539 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotBonfire.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotBonfire.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotContract.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotContract.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotCrafting.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotCrafting.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotCraftingPottery.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotCraftingPottery.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotInventory.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotInventory.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotMagic.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotMagic.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotMagicCopy.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotMagicCopy.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTakeOnly.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTakeOnly.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTimeTrace.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTimeTrace.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotShowOnly.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotShowOnly.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.java create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnlyWithMagicEXP.class create mode 100644 src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnlyWithMagicEXP.java (limited to 'src/main/java/jp/plusplus/fbs/container/slot') diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotBonfire.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotBonfire.class new file mode 100644 index 0000000..55fb95a Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotBonfire.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotBonfire.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotBonfire.java new file mode 100644 index 0000000..876f09a --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotBonfire.java @@ -0,0 +1,46 @@ +package jp.plusplus.fbs.container.slot; + +import jp.plusplus.fbs.alchemy.AlchemyRegistry; +import jp.plusplus.fbs.alchemy.IAlchemyMaterial; +import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import shift.mceconomy2.api.MCEconomyAPI; + +/** + * Created by plusplus_F on 2015/10/31. + */ +public class SlotBonfire extends Slot{ + protected int type; + + public SlotBonfire(IInventory p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_, int type) { + super(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_); + this.type=type; + } + + public boolean isItemValid(ItemStack itemStack) { + if(type==0){ + //焼くもの + if(itemStack.isItemStackDamageable()){ + ItemStack it = itemStack.copy(); + it.setItemDamage(0); + return MCEconomyAPI.getPurchase(it) >= 0 || itemStack.isItemEnchanted(); + } + else { + return MCEconomyAPI.getPurchase(itemStack)>=0 || itemStack.isItemEnchanted() || itemStack.getItem()== Items.enchanted_book; + } + } + if(type==1){ + //ハーブ + Item item=itemStack.getItem(); + if(!(item instanceof IAlchemyMaterial)) return false; + return AlchemyRegistry.IsMatching("herb", itemStack); + } + + return true; + } + + +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotContract.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotContract.class new file mode 100644 index 0000000..ee7d789 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotContract.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotContract.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotContract.java new file mode 100644 index 0000000..673b886 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotContract.java @@ -0,0 +1,49 @@ +package jp.plusplus.fbs.container.slot; + +import jp.plusplus.fbs.Registry; +import jp.plusplus.fbs.alchemy.AlchemyRegistry; +import jp.plusplus.fbs.alchemy.IAlchemyMaterial; +import jp.plusplus.fbs.item.ItemBookSorcery; +import jp.plusplus.fbs.item.ItemStoneSpirit; +import jp.plusplus.fbs.spirit.SpiritManager; +import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import shift.mceconomy2.api.MCEconomyAPI; + +/** + * Created by plusplus_F on 2015/11/04. + */ +public class SlotContract extends Slot{ + protected int type; + + public SlotContract(IInventory p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_, int type) { + super(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_); + this.type=type; + } + + @Override + public boolean isItemValid(ItemStack itemStack) { + if(type==0){ + //武器 + return SpiritManager.isTool(itemStack.getItem()); + } + else if(type==1){ + //精霊石 + return itemStack.getItem() instanceof ItemStoneSpirit; + } + else if(type==2){ + //書物 + if(!(itemStack.getItem() instanceof ItemBookSorcery)) return false; + Registry.BookData bd=Registry.GetBookDataFromItemStack(itemStack); + if(bd==null) return false; + return bd.title.equals("fbs.contract"); + } + + return true; + } + + +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotCrafting.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotCrafting.class new file mode 100644 index 0000000..8645c7a Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotCrafting.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotCrafting.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotCrafting.java new file mode 100644 index 0000000..3e73133 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotCrafting.java @@ -0,0 +1,81 @@ +package jp.plusplus.fbs.container.slot; + +import cpw.mods.fml.common.FMLCommonHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent; + +/** + * Createdby pluslus_Fon 2015/06/14. + */ +public class SlotCrafting extends Slot { + private EntityPlayer thePlayer; + private int amountCrafted; + private IInventory inventory; + + public SlotCrafting(EntityPlayer player, IInventory p_i1823_3_, int p_i1823_4_, int p_i1823_5_, int p_i1823_6_) { + super(p_i1823_3_, p_i1823_4_, p_i1823_5_, p_i1823_6_); + this.thePlayer = player; + this.inventory=p_i1823_3_; + } + + @Override + public boolean isItemValid(ItemStack p_75214_1_) + { + return false; + } + + @Override + public ItemStack decrStackSize(int p_75209_1_) { + if (this.getHasStack()) { + this.amountCrafted += Math.min(p_75209_1_, this.getStack().stackSize); + } + return super.decrStackSize(p_75209_1_); + } + + @Override + protected void onCrafting(ItemStack p_75210_1_, int p_75210_2_) { + this.amountCrafted += p_75210_2_; + this.onCrafting(p_75210_1_); + } + + @Override + protected void onCrafting(ItemStack p_75208_1_) { + p_75208_1_.onCrafting(this.thePlayer.worldObj, this.thePlayer, this.amountCrafted); + this.amountCrafted = 0; + } + + @Override + public void onPickupFromSlot(EntityPlayer p_82870_1_, ItemStack p_82870_2_) { + FMLCommonHandler.instance().firePlayerCraftingEvent(p_82870_1_, p_82870_2_, inventory); + this.onCrafting(p_82870_2_); + + for (int i = 0; i < 9; ++i) { + ItemStack itemstack1 = inventory.getStackInSlot(i); + + if (itemstack1 != null) { + inventory.decrStackSize(i, 1); + + if (itemstack1.getItem().hasContainerItem(itemstack1)) { + ItemStack itemstack2 = itemstack1.getItem().getContainerItem(itemstack1); + + if (itemstack2 != null && itemstack2.isItemStackDamageable() && itemstack2.getItemDamage() > itemstack2.getMaxDamage()) { + MinecraftForge.EVENT_BUS.post(new PlayerDestroyItemEvent(thePlayer, itemstack2)); + continue; + } + + if (!itemstack1.getItem().doesContainerItemLeaveCraftingGrid(itemstack1) || !this.thePlayer.inventory.addItemStackToInventory(itemstack2)) { + if (inventory.getStackInSlot(i) == null) { + inventory.setInventorySlotContents(i, itemstack2); + } else { + this.thePlayer.dropPlayerItemWithRandomChoice(itemstack2, false); + } + } + } + } + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotCraftingPottery.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotCraftingPottery.class new file mode 100644 index 0000000..fe12dd8 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotCraftingPottery.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotCraftingPottery.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotCraftingPottery.java new file mode 100644 index 0000000..2149c66 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotCraftingPottery.java @@ -0,0 +1,78 @@ +package jp.plusplus.fbs.container.slot; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent; + +/** + * Createdby pluslus_Fon 2015/08/29. + */ +public class SlotCraftingPottery extends Slot { + private EntityPlayer thePlayer; + private int amountCrafted; + + public SlotCraftingPottery(EntityPlayer player, IInventory p_i1823_3_, int p_i1823_4_, int p_i1823_5_, int p_i1823_6_) { + super(p_i1823_3_, p_i1823_4_, p_i1823_5_, p_i1823_6_); + this.thePlayer = player; + } + + @Override + public boolean isItemValid(ItemStack p_75214_1_) + { + return false; + } + + @Override + public ItemStack decrStackSize(int p_75209_1_) { + if (this.getHasStack()) { + this.amountCrafted += Math.min(p_75209_1_, this.getStack().stackSize); + } + return super.decrStackSize(p_75209_1_); + } + + @Override + protected void onCrafting(ItemStack p_75210_1_, int p_75210_2_) { + this.amountCrafted += p_75210_2_; + this.onCrafting(p_75210_1_); + } + + @Override + protected void onCrafting(ItemStack p_75208_1_) { + p_75208_1_.onCrafting(this.thePlayer.worldObj, this.thePlayer, this.amountCrafted); + this.amountCrafted = 0; + } + + @Override + public void onPickupFromSlot(EntityPlayer p_82870_1_, ItemStack p_82870_2_) { + //FMLCommonHandler.instance().firePlayerCraftingEvent(p_82870_1_, p_82870_2_, craftMatrix); + this.onCrafting(p_82870_2_); + + for (int i = 0; i < 25; ++i) { + ItemStack itemstack1 = inventory.getStackInSlot(i); + + if (itemstack1 != null) { + inventory.decrStackSize(i, 1); + + if (itemstack1.getItem().hasContainerItem(itemstack1)) { + ItemStack itemstack2 = itemstack1.getItem().getContainerItem(itemstack1); + + if (itemstack2 != null && itemstack2.isItemStackDamageable() && itemstack2.getItemDamage() > itemstack2.getMaxDamage()) { + MinecraftForge.EVENT_BUS.post(new PlayerDestroyItemEvent(thePlayer, itemstack2)); + continue; + } + + if (!itemstack1.getItem().doesContainerItemLeaveCraftingGrid(itemstack1) || !this.thePlayer.inventory.addItemStackToInventory(itemstack2)) { + if (inventory.getStackInSlot(i) == null) { + inventory.setInventorySlotContents(i, itemstack2); + } else { + this.thePlayer.dropPlayerItemWithRandomChoice(itemstack2, false); + } + } + } + } + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotInventory.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotInventory.class new file mode 100644 index 0000000..d489ee4 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotInventory.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotInventory.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotInventory.java new file mode 100644 index 0000000..76a7c5a --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotInventory.java @@ -0,0 +1,49 @@ +package jp.plusplus.fbs.container.slot; + +import jp.plusplus.fbs.alchemy.AlchemyRegistry; +import jp.plusplus.fbs.alchemy.IAlchemyMaterial; +import jp.plusplus.fbs.alchemy.IAlchemyProduct; +import jp.plusplus.fbs.item.ItemBookSorcery; +import jp.plusplus.fbs.item.ItemCore; +import jp.plusplus.fbs.item.ItemStaff; +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.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +import java.util.ArrayList; + +/** + * Createdby pluslus_Fon 2015/06/15. + */ +public class SlotInventory extends Slot { + private int type;//0 book, 1 charm,book, 2 inv, 3 alchemy + public SlotInventory(IInventory p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_, int type) { + super(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_); + this.type=type; + } + + + public boolean isItemValid(ItemStack p_75214_1_) { + if (type == 0) return p_75214_1_.getItem() == ItemCore.bookSorcery; + if (type == 1){ + ArrayList list=OreDictionary.getOres("fbs.charm"); + for(ItemStack item : list){ + if(OreDictionary.itemMatches(item, p_75214_1_, false)) return true; + } + return false; + } + if(type==3){ + Item it=p_75214_1_.getItem(); + return it instanceof IAlchemyMaterial || it instanceof IAlchemyProduct || AlchemyRegistry.isBasketItem(p_75214_1_); + } + return true; + } + + @Override + public boolean canTakeStack(EntityPlayer p_82869_1_) { + return !(getHasStack() && getStack().getItem() instanceof ItemStaff); + } +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotMagic.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagic.class new file mode 100644 index 0000000..28c1683 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagic.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotMagic.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagic.java new file mode 100644 index 0000000..b437a68 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagic.java @@ -0,0 +1,20 @@ +package jp.plusplus.fbs.container.slot; + +import jp.plusplus.fbs.container.inventory.InventoryMagic; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +/** + * Created by pluslus_F on 2015/06/18. + */ +public class SlotMagic extends Slot { + public SlotMagic(InventoryMagic p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_) { + super(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_); + } + + @Override + public void onSlotChanged(){ + super.onSlotChanged(); + ((InventoryMagic)inventory).onInventoryChanged(getSlotIndex()); + } +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicCopy.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicCopy.class new file mode 100644 index 0000000..65d9a01 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicCopy.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicCopy.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicCopy.java new file mode 100644 index 0000000..f0ed794 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicCopy.java @@ -0,0 +1,25 @@ +package jp.plusplus.fbs.container.slot; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.container.inventory.InventoryMagic; +import jp.plusplus.fbs.mod.ForSS2; +import net.minecraft.item.ItemStack; + +/** + * Created by pluslus_F on 2015/06/18. + */ +public class SlotMagicCopy extends SlotMagic { + public SlotMagicCopy(InventoryMagic p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_) { + super(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_); + } + + @Override + public boolean isItemValid(ItemStack p_75214_1_) { + return p_75214_1_.getMaxStackSize()>1; + } + @Override + public int getSlotStackLimit() + { + return 1; + } +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTakeOnly.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTakeOnly.class new file mode 100644 index 0000000..c855f2e Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTakeOnly.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTakeOnly.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTakeOnly.java new file mode 100644 index 0000000..0316492 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTakeOnly.java @@ -0,0 +1,20 @@ +package jp.plusplus.fbs.container.slot; + +import jp.plusplus.fbs.container.inventory.InventoryMagic; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +/** + * Createdby pluslus_Fon 2015/06/18. + */ +public class SlotMagicTakeOnly extends SlotMagic{ + public SlotMagicTakeOnly(InventoryMagic p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_) { + super(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_); + } + + @Override + public boolean isItemValid(ItemStack item){ + return false; + } +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTimeTrace.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTimeTrace.class new file mode 100644 index 0000000..94e315a Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTimeTrace.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTimeTrace.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTimeTrace.java new file mode 100644 index 0000000..a5ef88b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotMagicTimeTrace.java @@ -0,0 +1,28 @@ +package jp.plusplus.fbs.container.slot; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.container.inventory.InventoryMagic; +import jp.plusplus.fbs.mod.ForSS2; +import net.minecraft.item.ItemStack; + +/** + * Created by pluslus_F on 2015/02/28. + */ +public class SlotMagicTimeTrace extends SlotMagic { + public SlotMagicTimeTrace(InventoryMagic p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_) { + super(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_); + } + + @Override + public boolean isItemValid(ItemStack p_75214_1_) { + if(FBS.cooperatesSS2 && ForSS2.canTimeTrace(p_75214_1_)){ + return true; + } + return p_75214_1_.getItem().isItemTool(p_75214_1_); + } + @Override + public int getSlotStackLimit() + { + return 64; + } +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotShowOnly.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotShowOnly.class new file mode 100644 index 0000000..02ee690 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotShowOnly.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotShowOnly.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotShowOnly.java new file mode 100644 index 0000000..14f6be3 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotShowOnly.java @@ -0,0 +1,25 @@ +package jp.plusplus.fbs.container.slot; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +/** + * Created by plusplus_F on 2015/02/06. + */ +public class SlotShowOnly extends Slot { + public SlotShowOnly(IInventory p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_) { + super(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_); + } + + @Override + public boolean isItemValid(ItemStack item){ + return false; + } + + @Override + public boolean canTakeStack(EntityPlayer p_82869_1_) { + return false; + } +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.class new file mode 100644 index 0000000..81c8e61 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnly.class differ 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); + } +} diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnlyWithMagicEXP.class b/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnlyWithMagicEXP.class new file mode 100644 index 0000000..24aae06 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnlyWithMagicEXP.class differ diff --git a/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnlyWithMagicEXP.java b/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnlyWithMagicEXP.java new file mode 100644 index 0000000..dd6f2a8 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/slot/SlotTakeOnlyWithMagicEXP.java @@ -0,0 +1,65 @@ +package jp.plusplus.fbs.container.slot; + +import cpw.mods.fml.common.FMLCommonHandler; +import jp.plusplus.fbs.AchievementRegistry; +import jp.plusplus.fbs.alchemy.AlchemyRegistry; +import jp.plusplus.fbs.api.FBSEntityPropertiesAPI; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.inventory.SlotFurnace; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.stats.AchievementList; +import net.minecraft.util.MathHelper; + +/** + * Created by plusplus_F on 2015/10/31. + */ +public class SlotTakeOnlyWithMagicEXP extends Slot { + protected EntityPlayer thePlayer; + protected int achievement; + + public SlotTakeOnlyWithMagicEXP(EntityPlayer p_i1813_1_, IInventory p_i1813_2_, int p_i1813_3_, int p_i1813_4_, int p_i1813_5_) { + this(p_i1813_1_, p_i1813_2_, p_i1813_3_, p_i1813_4_, p_i1813_5_, 0); + } + public SlotTakeOnlyWithMagicEXP(EntityPlayer p_i1813_1_, IInventory p_i1813_2_, int p_i1813_3_, int p_i1813_4_, int p_i1813_5_, int achievement) { + super(p_i1813_2_, p_i1813_3_, p_i1813_4_, p_i1813_5_); + this.thePlayer = p_i1813_1_; + this.achievement=achievement; + } + + public boolean isItemValid(ItemStack p_75214_1_) { + return false; + } + + public ItemStack decrStackSize(int p_75209_1_) { + return super.decrStackSize(p_75209_1_); + } + + public void onPickupFromSlot(EntityPlayer p_82870_1_, ItemStack p_82870_2_) { + this.onCrafting(p_82870_2_); + if(achievement==1){ + p_82870_1_.triggerAchievement(AchievementRegistry.alchemy); + } + super.onPickupFromSlot(p_82870_1_, p_82870_2_); + } + + protected void onCrafting(ItemStack p_75210_1_, int p_75210_2_) { + this.onCrafting(p_75210_1_); + } + + protected void onCrafting(ItemStack p_75208_1_) { + p_75208_1_.onCrafting(this.thePlayer.worldObj, this.thePlayer, 1); + + if (!this.thePlayer.worldObj.isRemote) { + double baseEXP = AlchemyRegistry.GetProductExp(p_75208_1_); + + if(baseEXP>0){ + FBSEntityPropertiesAPI.AddExp(thePlayer, baseEXP, true); + } + } + } +} -- cgit v1.2.3