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/ContainerContract.java | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/container/ContainerContract.java (limited to 'src/main/java/jp/plusplus/fbs/container/ContainerContract.java') diff --git a/src/main/java/jp/plusplus/fbs/container/ContainerContract.java b/src/main/java/jp/plusplus/fbs/container/ContainerContract.java new file mode 100644 index 0000000..56a431b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/container/ContainerContract.java @@ -0,0 +1,91 @@ +package jp.plusplus.fbs.container; + +import jp.plusplus.fbs.AchievementRegistry; +import jp.plusplus.fbs.Registry; +import jp.plusplus.fbs.container.inventory.InventoryContract; +import jp.plusplus.fbs.container.slot.SlotBonfire; +import jp.plusplus.fbs.container.slot.SlotContract; +import jp.plusplus.fbs.container.slot.SlotInventory; +import jp.plusplus.fbs.container.slot.SlotTakeOnly; +import jp.plusplus.fbs.item.ItemBookSorcery; +import jp.plusplus.fbs.item.ItemStoneSpirit; +import jp.plusplus.fbs.spirit.SpiritManager; +import jp.plusplus.fbs.spirit.SpiritStatus; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +/** + * Created by plusplus_F on 2015/11/14. + */ +public class ContainerContract extends Container { + public EntityPlayer player; + public InventoryContract inventory; + + public ContainerContract(EntityPlayer player){ + inventory=new InventoryContract(player); + inventory.openInventory(); + + for(int i=0;i<2;i++){ + addSlotToContainer(new SlotContract(inventory, i, 26+18*i, 46, i)); + } + addSlotToContainer(new SlotContract(inventory, 2, 98, 23, 2)); + addSlotToContainer(new SlotTakeOnly(inventory, 3, 133, 40)); + + //player's inv + for (int j = 0; j < 3; ++j) { + for (int k = 0; k < 9; ++k) { + this.addSlotToContainer(new SlotInventory(player.inventory, k + j * 9 + 9, 8 + k * 18, 84 + j * 18, 2)); + } + } + + for (int j = 0; j < 9; ++j) { + this.addSlotToContainer(new SlotInventory(player.inventory, j, 8 + j * 18, 142, 2)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer p_75145_1_) { + return true; + } + + @Override + public void onContainerClosed(EntityPlayer p_75134_1_) { + super.onContainerClosed(p_75134_1_); + this.inventory.closeInventory(); + } + + public boolean canContract(){ + if(inventory.itemStacks[0]==null || !SpiritManager.isTool(inventory.itemStacks[0].getItem())) return false; + if(inventory.itemStacks[1]==null || !(inventory.itemStacks[1].getItem() instanceof ItemStoneSpirit)) return false; + if(inventory.itemStacks[2]==null) return false; + Registry.BookData bd=Registry.GetBookDataFromItemStack(inventory.itemStacks[2]); + return bd!=null && bd.title.equals("fbs.contract") && ItemBookSorcery.getMagicMaxUse(inventory.itemStacks[2])>0 && inventory.itemStacks[3]==null; + } + + public String contract(String name, EntityPlayer player){ + if(!canContract()) return null; + SpiritManager.ToolEntry te=SpiritManager.getTool(inventory.itemStacks[0].getItem()); + if(te!=null){ + boolean m=((ItemStoneSpirit)inventory.itemStacks[1].getItem()).getSex(); + inventory.setInventorySlotContents(3, te.getSpiritToolStack(m, SpiritManager.getRandomCharacter(m), name, player, inventory.itemStacks[0])); + inventory.setInventorySlotContents(0, null); + inventory.setInventorySlotContents(1, null); + ItemBookSorcery.reduceMagicMaxUse(inventory.itemStacks[2]); + + if(!player.worldObj.isRemote) player.triggerAchievement(AchievementRegistry.contract); + + SpiritStatus status=SpiritStatus.readFromNBT(inventory.itemStacks[3].getTagCompound()); + SpiritManager.talk(player, status.getCharacter(), "first", inventory.itemStacks[3]); + return status.getCharacter(); + } + return null; + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2) { + ItemStack itemStack = null; + return itemStack; + } +} -- cgit v1.2.3