Fixed subinventory slots of equipped items going outside the screen if the item has too many slots (e.g. metal crates)
This commit is contained in:
@@ -247,6 +247,11 @@ namespace Barotrauma
|
|||||||
subInventory.slots[i].InteractRect = subRect;
|
subInventory.slots[i].InteractRect = subRect;
|
||||||
subInventory.slots[i].InteractRect.Inflate(5, 5);
|
subInventory.slots[i].InteractRect.Inflate(5, 5);
|
||||||
|
|
||||||
|
if (subRect.Y < GameMain.GraphicsHeight * 0.4f)
|
||||||
|
{
|
||||||
|
subRect = slot.Rect;
|
||||||
|
subRect.X = subInventory.slots[i].Rect.Right + 10;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
subInventory.isSubInventory = true;
|
subInventory.isSubInventory = true;
|
||||||
@@ -297,7 +302,7 @@ namespace Barotrauma
|
|||||||
idJob = s[1];
|
idJob = s[1];
|
||||||
}
|
}
|
||||||
if (idName != null)
|
if (idName != null)
|
||||||
description = "This belongs to " + idName + (idJob != null ? ", the " + idJob + ".\n" : ".\n") + description;
|
description = "This belongs to " + idName + (idJob != null ? ", the " + idJob + "." : ".") + description;
|
||||||
}
|
}
|
||||||
toolTip = string.IsNullOrEmpty(description) ?
|
toolTip = string.IsNullOrEmpty(description) ?
|
||||||
Items[i].Name :
|
Items[i].Name :
|
||||||
@@ -319,9 +324,9 @@ namespace Barotrauma
|
|||||||
Vector2 textSize = GUI.Font.MeasureString(toolTip);
|
Vector2 textSize = GUI.Font.MeasureString(toolTip);
|
||||||
Vector2 rectSize = textSize * 1.2f;
|
Vector2 rectSize = textSize * 1.2f;
|
||||||
|
|
||||||
Vector2 pos = new Vector2(highlightedSlot.Right, highlightedSlot.Y - rectSize.Y);
|
Vector2 pos = new Vector2(highlightedSlot.Right, highlightedSlot.Y);
|
||||||
pos.X = (int)(pos.X + 3);
|
pos.X = (int)(pos.X + 3);
|
||||||
pos.Y = (int)pos.Y;
|
pos.Y = (int)pos.Y - Math.Max((pos.Y + rectSize.Y) - GameMain.GraphicsHeight, 0);
|
||||||
|
|
||||||
GUI.DrawRectangle(spriteBatch, pos, rectSize, Color.Black * 0.8f, true);
|
GUI.DrawRectangle(spriteBatch, pos, rectSize, Color.Black * 0.8f, true);
|
||||||
GUI.Font.DrawString(spriteBatch, toolTip,
|
GUI.Font.DrawString(spriteBatch, toolTip,
|
||||||
@@ -351,14 +356,16 @@ namespace Barotrauma
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
var slot = slots[slotIndex];
|
var slot = slots[slotIndex];
|
||||||
Rectangle containerRect = new Rectangle(slot.Rect.X - 5, slot.Rect.Y - (40 + 10) * itemCapacity - 5,
|
Rectangle containerRect = container.Inventory.slots[0].InteractRect;
|
||||||
slot.Rect.Width + 10, slot.Rect.Height + (40 + 10) * itemCapacity + 10);
|
for (int i = 1; i< container.Inventory.slots.Length; i++)
|
||||||
|
{
|
||||||
|
containerRect = Rectangle.Union(containerRect, container.Inventory.slots[i].InteractRect);
|
||||||
|
}
|
||||||
|
|
||||||
GUI.DrawRectangle(spriteBatch, new Rectangle(containerRect.X, containerRect.Y, containerRect.Width, containerRect.Height - slot.Rect.Height - 5), Color.Black * 0.8f, true);
|
GUI.DrawRectangle(spriteBatch, new Rectangle(containerRect.X, containerRect.Y, containerRect.Width, containerRect.Height - slot.Rect.Height - 5), Color.Black * 0.8f, true);
|
||||||
GUI.DrawRectangle(spriteBatch, containerRect, Color.White);
|
GUI.DrawRectangle(spriteBatch, containerRect, Color.White);
|
||||||
|
|
||||||
container.Inventory.Draw(spriteBatch, true);
|
container.Inventory.Draw(spriteBatch, true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void UpdateDragging()
|
public static void UpdateDragging()
|
||||||
|
|||||||
Reference in New Issue
Block a user