Skip to content

Commit

Permalink
Fix inventory properly
Browse files Browse the repository at this point in the history
  • Loading branch information
wormzjl committed Jul 3, 2017
1 parent 0c56d66 commit d31b327
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public ContainerPlayerTFC(InventoryPlayer playerInv, boolean par2, EntityPlayer

for (x = 0; x < playerInv.armorInventory.length; ++x)
{
int index = playerInv.getSizeInventory() - 1 - x;
int index = playerInv.getSizeInventory() - 2 - x;
this.addSlotToContainer(new SlotArmorTFC(this, playerInv, index, 8, 8 + x * 18, x));
}
PlayerInventory.buildInventoryLayout(this, playerInv, 8, 90, false, true);
Expand Down
51 changes: 31 additions & 20 deletions src/Common/com/bioxx/tfc/Core/Player/InventoryPlayerTFC.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,14 @@ public void readFromNBT(NBTTagList par1NBTTagList)
public ItemStack getStackInSlot(int par1)
{
ItemStack[] aitemstack = this.mainInventory;
if (par1 >= this.mainInventory.length + this.extraEquipInventory.length)
if (par1 >= this.mainInventory.length + 4)
{
par1 -= this.mainInventory.length + this.extraEquipInventory.length;
aitemstack = this.armorInventory;
par1-= this.mainInventory.length + 4;
aitemstack = this.extraEquipInventory;
}
else if(par1 >= this.mainInventory.length){
par1-= aitemstack.length;
aitemstack = this.extraEquipInventory;
par1 -= this.mainInventory.length;
aitemstack = this.armorInventory;
}
return aitemstack[par1];
}
Expand All @@ -86,14 +86,14 @@ public ItemStack getStackInSlotOnClosing(int par1)
{
ItemStack[] aitemstack = this.mainInventory;

if (par1 >= this.mainInventory.length + this.extraEquipInventory.length)
if (par1 >= this.mainInventory.length + 4)
{
aitemstack = this.armorInventory;
par1 -= this.mainInventory.length + this.extraEquipInventory.length;
par1-= this.mainInventory.length + 4;
aitemstack = this.extraEquipInventory;
}
else if(par1 >= this.mainInventory.length){
par1-= aitemstack.length;
aitemstack = this.extraEquipInventory;
par1 -= this.mainInventory.length;
aitemstack = this.armorInventory;
}
if (aitemstack[par1] != null)
{
Expand Down Expand Up @@ -139,14 +139,14 @@ public ItemStack decrStackSize(int par1, int par2)
{
ItemStack[] aitemstack = this.mainInventory;

if (par1 >= this.mainInventory.length + this.extraEquipInventory.length)
if (par1 >= this.mainInventory.length + 4)
{
aitemstack = this.armorInventory;
par1 -= this.mainInventory.length + this.extraEquipInventory.length;
par1-= this.mainInventory.length + 4;
aitemstack = this.extraEquipInventory;
}
else if(par1 >= this.mainInventory.length){
par1-= aitemstack.length;
aitemstack = this.extraEquipInventory;
par1 -= this.mainInventory.length;
aitemstack = this.armorInventory;
}


Expand Down Expand Up @@ -191,6 +191,8 @@ public void dropAllItems()
this.extraEquipInventory[i] = null;
}
}
NBTTagList derp = new NBTTagList();
this.player.getEntityData().setTag("ExtraInventory", derp);
super.dropAllItems();
}

Expand All @@ -210,19 +212,28 @@ public boolean hasItemStack(ItemStack par1ItemStack)
}

@Override
public void setInventorySlotContents(int par1, ItemStack par2ItemStack)
public void setInventorySlotContents(int par1, ItemStack par2ItemStack)//par1 index ItemStack 调用的物品
{

ItemStack[] aitemstack = this.mainInventory;

if (par1 >= this.mainInventory.length + this.extraEquipInventory.length)
/*if (par1 >= this.mainInventory.length + this.extraEquipInventory.length) //这里是par1>= 36 + 1[默认是1]
{
par1 -= this.mainInventory.length + this.extraEquipInventory.length;
aitemstack = this.armorInventory;
par1 -= this.mainInventory.length + this.extraEquipInventory.length;//这里是par1 -= 36 + 1[默认是1]
aitemstack = this.armorInventory; this.armorInventory数组 0 1 2 3 [0=头盔 1=胸甲 2=裤子 3=鞋子][头盔TFC原版index=40 胸甲=39 裤子=38 鞋子=37]
}
else if(par1 >= this.mainInventory.length){
par1-= aitemstack.length;
aitemstack = this.extraEquipInventory;
}*/
if (par1 >= this.mainInventory.length + 4)
{
par1-= this.mainInventory.length + 4;
aitemstack = this.extraEquipInventory;
}
else if(par1 >= this.mainInventory.length){
par1 -= this.mainInventory.length;
aitemstack = this.armorInventory;
}

aitemstack[par1] = par2ItemStack;
Expand Down Expand Up @@ -268,7 +279,7 @@ public NBTTagList writeToNBT(NBTTagList par1NBTTagList)
for (i = 0; i < extraEquipInventory.length; i++)
{
ItemStack is = extraEquipInventory[i];
if (is != null)
if (is != null && is.stackSize != 0)
{
nbt = new NBTTagCompound();
nbt.setByte("Slot", (byte) i);
Expand Down
2 changes: 1 addition & 1 deletion src/Common/com/bioxx/tfc/Core/Player/PlayerInventory.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public static void loadBagInventory(ItemStack is, Container c)
}

public static void addExtraEquipables(Container container, InventoryPlayer inventory, int x, int y, boolean freezeSlot){
int index = 36; // Should be the correct index
int index = 40; // Should be the correct index
addSlotToContainer(container, new SlotExtraEquipable(inventory, index, 8 + 18, 8 + 18, IEquipable.EquipType.BACK));
}

Expand Down

0 comments on commit d31b327

Please sign in to comment.