public override net.minecraft.src.ItemStack Func_27086_a(int i) { net.minecraft.src.ItemStack itemstack = null; net.minecraft.src.Slot slot = (net.minecraft.src.Slot)inventorySlots[i]; if (slot != null && slot.Func_27006_b()) { net.minecraft.src.ItemStack itemstack1 = slot.GetStack(); itemstack = itemstack1.Copy(); if (i < field_27088_b * 9) { Func_28126_a(itemstack1, field_27088_b * 9, inventorySlots.Count, true); } else { Func_28126_a(itemstack1, 0, field_27088_b * 9, false); } if (itemstack1.stackSize == 0) { slot.PutStack(null); } else { slot.OnSlotChanged(); } } return(itemstack); }
public virtual net.minecraft.src.ItemStack Func_27086_a(int i) { net.minecraft.src.Slot slot = (net.minecraft.src.Slot)inventorySlots[i]; if (slot != null) { return(slot.GetStack()); } else { return(null); } }
public virtual net.minecraft.src.Slot Func_20127_a(net.minecraft.src.IInventory iinventory , int i) { for (int j = 0; j < inventorySlots.Count; j++) { net.minecraft.src.Slot slot = (net.minecraft.src.Slot)inventorySlots[j]; if (slot.IsHere(iinventory, i)) { return(slot); } } return(null); }
public override net.minecraft.src.ItemStack Func_27086_a(int i) { net.minecraft.src.ItemStack itemstack = null; net.minecraft.src.Slot slot = (net.minecraft.src.Slot)inventorySlots[i]; if (slot != null && slot.Func_27006_b()) { net.minecraft.src.ItemStack itemstack1 = slot.GetStack(); itemstack = itemstack1.Copy(); if (i == 2) { Func_28126_a(itemstack1, 3, 39, true); } else { if (i >= 3 && i < 30) { Func_28126_a(itemstack1, 30, 39, false); } else { if (i >= 30 && i < 39) { Func_28126_a(itemstack1, 3, 30, false); } else { Func_28126_a(itemstack1, 3, 39, false); } } } if (itemstack1.stackSize == 0) { slot.PutStack(null); } else { slot.OnSlotChanged(); } if (itemstack1.stackSize != itemstack.stackSize) { slot.OnPickupFromSlot(itemstack1); } else { return(null); } } return(itemstack); }
protected internal virtual void Func_28126_a(net.minecraft.src.ItemStack itemstack , int i, int j, bool flag) { int k = i; if (flag) { k = j - 1; } if (itemstack.Func_21132_c()) { while (itemstack.stackSize > 0 && (!flag && k < j || flag && k >= i)) { net.minecraft.src.Slot slot = (net.minecraft.src.Slot)inventorySlots[k]; net.minecraft.src.ItemStack itemstack1 = slot.GetStack(); if (itemstack1 != null && itemstack1.itemID == itemstack.itemID && (!itemstack.GetHasSubtypes () || itemstack.GetItemDamage() == itemstack1.GetItemDamage())) { int i1 = itemstack1.stackSize + itemstack.stackSize; if (i1 <= itemstack.GetMaxStackSize()) { itemstack.stackSize = 0; itemstack1.stackSize = i1; slot.OnSlotChanged(); } else { if (itemstack1.stackSize < itemstack.GetMaxStackSize()) { itemstack.stackSize -= itemstack.GetMaxStackSize() - itemstack1.stackSize; itemstack1.stackSize = itemstack.GetMaxStackSize(); slot.OnSlotChanged(); } } } if (flag) { k--; } else { k++; } } } if (itemstack.stackSize > 0) { int l; if (flag) { l = j - 1; } else { l = i; } do { if ((flag || l >= j) && (!flag || l < i)) { break; } net.minecraft.src.Slot slot1 = (net.minecraft.src.Slot)inventorySlots[l]; net.minecraft.src.ItemStack itemstack2 = slot1.GetStack(); if (itemstack2 == null) { slot1.PutStack(itemstack.Copy()); slot1.OnSlotChanged(); itemstack.stackSize = 0; break; } if (flag) { l--; } else { l++; } }while (true); } }
protected internal virtual void AddSlot(net.minecraft.src.Slot slot) { slot.id = inventorySlots.Count; inventorySlots.Add(slot); inventoryItemStacks.Add(null); }
public virtual net.minecraft.src.ItemStack Func_27085_a(int i, int j, bool flag, net.minecraft.src.EntityPlayer entityplayer) { net.minecraft.src.ItemStack itemstack = null; if (j == 0 || j == 1) { net.minecraft.src.InventoryPlayer inventoryplayer = entityplayer.inventory; if (i == -999) { if (inventoryplayer.GetItemStack() != null && i == -999) { if (j == 0) { entityplayer.DropPlayerItem(inventoryplayer.GetItemStack()); inventoryplayer.SetItemStack(null); } if (j == 1) { entityplayer.DropPlayerItem(inventoryplayer.GetItemStack().SplitStack(1)); if (inventoryplayer.GetItemStack().stackSize == 0) { inventoryplayer.SetItemStack(null); } } } } else { if (flag) { net.minecraft.src.ItemStack itemstack1 = Func_27086_a(i); if (itemstack1 != null) { int k = itemstack1.stackSize; itemstack = itemstack1.Copy(); net.minecraft.src.Slot slot1 = (net.minecraft.src.Slot)inventorySlots[i]; if (slot1 != null && slot1.GetStack() != null) { int l = slot1.GetStack().stackSize; if (l < k) { Func_27085_a(i, j, flag, entityplayer); } } } } else { net.minecraft.src.Slot slot = (net.minecraft.src.Slot)inventorySlots[i]; if (slot != null) { slot.OnSlotChanged(); net.minecraft.src.ItemStack itemstack2 = slot.GetStack(); net.minecraft.src.ItemStack itemstack3 = inventoryplayer.GetItemStack(); if (itemstack2 != null) { itemstack = itemstack2.Copy(); } if (itemstack2 == null) { if (itemstack3 != null && slot.IsItemValid(itemstack3)) { int i1 = j != 0 ? 1 : itemstack3.stackSize; if (i1 > slot.GetSlotStackLimit()) { i1 = slot.GetSlotStackLimit(); } slot.PutStack(itemstack3.SplitStack(i1)); if (itemstack3.stackSize == 0) { inventoryplayer.SetItemStack(null); } } } else { if (itemstack3 == null) { int j1 = j != 0 ? (itemstack2.stackSize + 1) / 2 : itemstack2.stackSize; net.minecraft.src.ItemStack itemstack5 = slot.DecrStackSize(j1); inventoryplayer.SetItemStack(itemstack5); if (itemstack2.stackSize == 0) { slot.PutStack(null); } slot.OnPickupFromSlot(inventoryplayer.GetItemStack()); } else { if (slot.IsItemValid(itemstack3)) { if (itemstack2.itemID != itemstack3.itemID || itemstack2.GetHasSubtypes() && itemstack2 .GetItemDamage() != itemstack3.GetItemDamage()) { if (itemstack3.stackSize <= slot.GetSlotStackLimit()) { net.minecraft.src.ItemStack itemstack4 = itemstack2; slot.PutStack(itemstack3); inventoryplayer.SetItemStack(itemstack4); } } else { int k1 = j != 0 ? 1 : itemstack3.stackSize; if (k1 > slot.GetSlotStackLimit() - itemstack2.stackSize) { k1 = slot.GetSlotStackLimit() - itemstack2.stackSize; } if (k1 > itemstack3.GetMaxStackSize() - itemstack2.stackSize) { k1 = itemstack3.GetMaxStackSize() - itemstack2.stackSize; } itemstack3.SplitStack(k1); if (itemstack3.stackSize == 0) { inventoryplayer.SetItemStack(null); } itemstack2.stackSize += k1; } } else { if (itemstack2.itemID == itemstack3.itemID && itemstack3.GetMaxStackSize() > 1 && (!itemstack2.GetHasSubtypes() || itemstack2.GetItemDamage() == itemstack3.GetItemDamage ())) { int l1 = itemstack2.stackSize; if (l1 > 0 && l1 + itemstack3.stackSize <= itemstack3.GetMaxStackSize()) { itemstack3.stackSize += l1; itemstack2.SplitStack(l1); if (itemstack2.stackSize == 0) { slot.PutStack(null); } slot.OnPickupFromSlot(inventoryplayer.GetItemStack()); } } } } } } } } } return(itemstack); }
public override void HandlePlace(net.minecraft.src.Packet15Place packet15place) { net.minecraft.src.WorldServer worldserver = mcServer.GetWorldServer(playerEntity .dimension); net.minecraft.src.ItemStack itemstack = playerEntity.inventory.GetCurrentItem(); bool flag = worldserver.weirdIsOpCache = worldserver.worldProvider.worldType != 0 || mcServer.serverConfigurationManager.IsOp(playerEntity.username); if (packet15place.direction == 255) { if (itemstack == null) { return; } playerEntity.itemInWorldManager.Func_6154_a(playerEntity, worldserver, itemstack); } else { int i = packet15place.xPosition; int j = packet15place.yPosition; int k = packet15place.zPosition; int l = packet15place.direction; net.minecraft.src.ChunkCoordinates chunkcoordinates = worldserver.GetSpawnPoint(); int i1 = (int)net.minecraft.src.MathHelper.Abs(i - chunkcoordinates.posX); int j1 = (int)net.minecraft.src.MathHelper.Abs(k - chunkcoordinates.posZ); if (i1 > j1) { j1 = i1; } if (hasMoved && playerEntity.GetDistanceSq((double)i + 0.5D, (double)j + 0.5D, (double )k + 0.5D) < 64D && (j1 > 16 || flag)) { playerEntity.itemInWorldManager.ActiveBlockOrUseItem(playerEntity, worldserver, itemstack , i, j, k, l); } playerEntity.netServerHandler.SendPacket(new net.minecraft.src.Packet53BlockChange (i, j, k, worldserver)); if (l == 0) { j--; } if (l == 1) { j++; } if (l == 2) { k--; } if (l == 3) { k++; } if (l == 4) { i--; } if (l == 5) { i++; } playerEntity.netServerHandler.SendPacket(new net.minecraft.src.Packet53BlockChange (i, j, k, worldserver)); } itemstack = playerEntity.inventory.GetCurrentItem(); if (itemstack != null && itemstack.stackSize == 0) { playerEntity.inventory.mainInventory[playerEntity.inventory.currentItem] = null; } playerEntity.isChangingQuantityOnly = true; playerEntity.inventory.mainInventory[playerEntity.inventory.currentItem] = net.minecraft.src.ItemStack .CloneStack(playerEntity.inventory.mainInventory[playerEntity.inventory.currentItem ]); net.minecraft.src.Slot slot = playerEntity.currentCraftingInventory.Func_20127_a( playerEntity.inventory, playerEntity.inventory.currentItem); playerEntity.currentCraftingInventory.UpdateCraftingMatrix(); playerEntity.isChangingQuantityOnly = false; if (!net.minecraft.src.ItemStack.AreItemStacksEqual(playerEntity.inventory.GetCurrentItem (), packet15place.itemStack)) { SendPacket(new net.minecraft.src.Packet103SetSlot(playerEntity.currentCraftingInventory .windowId, slot.id, playerEntity.inventory.GetCurrentItem())); } worldserver.weirdIsOpCache = false; }