(d653e2340) Fixed workshop items switching order in the workshop menu when the preview thumbnails are received.

This commit is contained in:
Joonas Rikkonen
2019-04-29 21:11:07 +03:00
parent 2ffb8d922d
commit dd24c604d1
2 changed files with 102 additions and 24 deletions
@@ -309,14 +309,23 @@ namespace Barotrauma
return;
}
int prevIndex = -1;
var existingFrame = listBox.Content.FindChild(item);
if (existingFrame != null) { listBox.Content.RemoveChild(existingFrame); }
if (existingFrame != null)
{
prevIndex = listBox.Content.GetChildIndex(existingFrame);
listBox.Content.RemoveChild(existingFrame);
}
var itemFrame = new GUIFrame(new RectTransform(new Vector2(1.0f, 0.1f), listBox.Content.RectTransform, minSize: new Point(0, 80)),
style: "ListBoxElement")
{
UserData = item
};
if (prevIndex > -1)
{
itemFrame.RectTransform.RepositionChildInHierarchy(prevIndex);
}
var innerFrame = new GUILayoutGroup(new RectTransform(new Vector2(0.9f, 0.9f), itemFrame.RectTransform, Anchor.Center), isHorizontal: true)
{
@@ -329,6 +338,7 @@ namespace Barotrauma
{
new GUIImage(new RectTransform(new Point(iconSize), innerFrame.RectTransform), itemPreviewSprites[item.PreviewImageUrl], scaleToFit: true)
{
UserData = "previewimage",
CanBeFocused = false
};
}
@@ -336,6 +346,7 @@ namespace Barotrauma
{
new GUIImage(new RectTransform(new Point(iconSize), innerFrame.RectTransform), SteamManager.Instance.DefaultPreviewImage, scaleToFit: true)
{
UserData = "previewimage",
CanBeFocused = false
};
try
@@ -548,7 +559,17 @@ namespace Barotrauma
itemPreviewSprites.Add(item.PreviewImageUrl, newSprite);
}
CreateWorkshopItemFrame(item, listBox);
var previewImage = listBox.Content.FindChild(item)?.GetChildByUserData("previewimage") as GUIImage;
if (previewImage != null)
{
previewImage.Sprite = newSprite;
}
else
{
CreateWorkshopItemFrame(item, listBox);
}
if (modsPreviewFrame.FindChild(item) != null)
{
ShowItemPreview(item, modsPreviewFrame);