From 0bdcd3036ab34173f0a307b82cda8f5a11a64b8a Mon Sep 17 00:00:00 2001 From: Leonid Pershin Date: Mon, 27 Oct 2025 02:00:07 +0300 Subject: [PATCH] Refactor AIImages mod to improve UI layout and scrolling functionality in the character information display. Update prompt generation logic to enhance gender and age representation. Adjust content height calculations for better visual consistency. Update AIImages.dll to reflect these changes. --- Assemblies/AIImages.dll | Bin 89600 -> 89088 bytes .../Services/AdvancedPromptGenerator.cs | 46 +-- Source/AIImages/Window_AIImage.cs | 316 +++++++++--------- 3 files changed, 178 insertions(+), 184 deletions(-) diff --git a/Assemblies/AIImages.dll b/Assemblies/AIImages.dll index e13e64ca71600fd4efcfb6ee0429a0c2b6cbc59a..e20ccc7a720ad379572a56c3ea725873f8d34e87 100644 GIT binary patch literal 89088 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[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%0Aa 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 WmWrWi%XQcOjW+WCH|wXxf&T+CSno^# diff --git a/Source/AIImages/Services/AdvancedPromptGenerator.cs b/Source/AIImages/Services/AdvancedPromptGenerator.cs index e2a717a..8d73dff 100644 --- a/Source/AIImages/Services/AdvancedPromptGenerator.cs +++ b/Source/AIImages/Services/AdvancedPromptGenerator.cs @@ -59,14 +59,19 @@ namespace AIImages.Services prompt.Append(", "); } - // 3. Тип кадра - автоматически добавляем "portrait" для генерации персонажей - prompt.Append("portrait, head and shoulders of "); + // 3. Тип кадра + prompt.Append("portrait, "); - // 4. Базовое описание (возраст и пол) - prompt.Append(GetAgeAndGenderDescription(appearanceData)); + // 4. Пол персонажа (в формате anime/SD теги) + string genderTag = appearanceData.Gender == Gender.Female ? "1girl" : "1boy"; + prompt.Append(genderTag); prompt.Append(", "); - // 5. Тип тела + // 5. Точный возраст + prompt.Append($"{appearanceData.Age} y.o."); + prompt.Append(", "); + + // 6. Тип тела string bodyType = GetBodyTypeDescription(appearanceData.BodyType); if (!string.IsNullOrEmpty(bodyType)) { @@ -74,14 +79,14 @@ namespace AIImages.Services prompt.Append(", "); } - // 6. Цвет кожи + // 7. Цвет кожи string skinTone = ColorDescriptionService.GetSkinToneDescription( appearanceData.SkinColor ); prompt.Append(skinTone); prompt.Append(", "); - // 7. Волосы + // 8. Волосы string hairDescription = GetHairDescription(appearanceData); if (!string.IsNullOrEmpty(hairDescription)) { @@ -89,7 +94,7 @@ namespace AIImages.Services prompt.Append(", "); } - // 8. Настроение и выражение на основе черт характера + // 9. Настроение и выражение на основе черт характера string moodDescription = GetMoodFromTraits(appearanceData.Traits); if (!string.IsNullOrEmpty(moodDescription)) { @@ -97,7 +102,7 @@ namespace AIImages.Services prompt.Append(", "); } - // 9. Одежда + // 10. Одежда string apparelDescription = GetApparelDescription(appearanceData.Apparel); if (!string.IsNullOrEmpty(apparelDescription)) { @@ -105,7 +110,7 @@ namespace AIImages.Services prompt.Append(", "); } - // 10. Качественные теги + // 11. Качественные теги prompt.Append(GetQualityTags(settings.ArtStyleDefName)); return prompt.ToString().Trim().TrimEnd(','); @@ -179,27 +184,6 @@ namespace AIImages.Services return description.ToString(); } - private string GetAgeAndGenderDescription(PawnAppearanceData data) - { - string ageGroup = data.Age switch - { - < 18 => "young", - < 25 => "young adult", - < 35 => "adult", - < 50 => "middle-aged", - < 65 => "mature", - _ => "elderly", - }; - - string genderLabel = data.Gender switch - { - Gender.Male => "man", - Gender.Female => "woman", - _ => "person", - }; - return $"{ageGroup} {genderLabel}"; - } - private string GetBodyTypeDescription(string bodyType) { if (string.IsNullOrEmpty(bodyType)) diff --git a/Source/AIImages/Window_AIImage.cs b/Source/AIImages/Window_AIImage.cs index b859683..637fab6 100644 --- a/Source/AIImages/Window_AIImage.cs +++ b/Source/AIImages/Window_AIImage.cs @@ -69,16 +69,14 @@ namespace AIImages public override Vector2 InitialSize => new Vector2(900f, 800f); - private Vector2 scrollPosition = Vector2.zero; - private Vector2 rightColumnScrollPosition = Vector2.zero; + private Vector2 mainScrollPosition = Vector2.zero; private Vector2 promptScrollPosition = Vector2.zero; private Vector2 negativePromptScrollPosition = Vector2.zero; private float copiedMessageTime = 0f; - // Состояние сворачиваемых секций + // Состояние сворачиваемых секций промптов private bool showPositivePrompt = false; private bool showNegativePrompt = false; - private bool showCharacterInfo = true; /// /// Обновляет данные персонажа @@ -342,12 +340,18 @@ namespace AIImages public override void DoWindowContents(Rect inRect) { + // Рассчитываем общую высоту контента + float totalContentHeight = CalculateTotalContentHeight(); + Rect viewRect = new Rect(0f, 0f, inRect.width - 20f, totalContentHeight); + + Widgets.BeginScrollView(inRect, ref mainScrollPosition, viewRect); + float curY = 0f; // Заголовок Text.Font = GameFont.Medium; Widgets.Label( - new Rect(0f, curY, inRect.width, 40f), + new Rect(0f, curY, viewRect.width, 40f), "AIImages.Window.Title".Translate() ); curY += 45f; @@ -355,22 +359,25 @@ namespace AIImages // Имя пешки Text.Font = GameFont.Small; Widgets.Label( - new Rect(0f, curY, inRect.width, 30f), + new Rect(0f, curY, viewRect.width, 30f), "AIImages.Window.PawnLabel".Translate(pawn.NameShortColored.Resolve()) ); curY += 40f; // Разделитель - Widgets.DrawLineHorizontal(0f, curY, inRect.width); + Widgets.DrawLineHorizontal(0f, curY, viewRect.width); curY += 10f; // Разделяем на две колонки: левая - информация, правая - изображение - float leftColumnWidth = inRect.width * 0.55f; - float rightColumnWidth = inRect.width * 0.42f; - float columnGap = inRect.width * 0.03f; + float leftColumnWidth = viewRect.width * 0.35f; + float rightColumnWidth = viewRect.width * 0.62f; + float columnGap = viewRect.width * 0.03f; - // Левая колонка - прокручиваемая информация - Rect leftColumnRect = new Rect(0f, curY, leftColumnWidth, inRect.height - curY); + // Определяем высоту колонок (берем большую из двух) + float columnHeight = Mathf.Max(CalculateContentHeight(), CalculateRightColumnHeight()); + + // Левая колонка - информация + Rect leftColumnRect = new Rect(0f, curY, leftColumnWidth, columnHeight); DrawLeftColumn(leftColumnRect); // Правая колонка - превью и управление @@ -378,24 +385,23 @@ namespace AIImages leftColumnWidth + columnGap, curY, rightColumnWidth, - inRect.height - curY + columnHeight ); DrawRightColumn(rightColumnRect); + + Widgets.EndScrollView(); } private void DrawLeftColumn(Rect rect) { - Rect scrollViewRect = new Rect(0f, 0f, rect.width - 20f, CalculateContentHeight()); - Widgets.BeginScrollView(rect, ref scrollPosition, scrollViewRect); - - float contentY = 0f; + float contentY = rect.y; // Портрет персонажа (если есть) if (generatedImage != null) { - float portraitSize = Mathf.Min(scrollViewRect.width - 20f, 200f); + float portraitSize = Mathf.Min(rect.width, 250f); Rect portraitRect = new Rect( - (scrollViewRect.width - portraitSize) / 2f, + rect.x + (rect.width - portraitSize) / 2f, contentY, portraitSize, portraitSize @@ -404,29 +410,34 @@ namespace AIImages // Рамка вокруг портрета Widgets.DrawBox(portraitRect); GUI.DrawTexture(portraitRect.ContractedBy(2f), generatedImage); - contentY += portraitSize + 20f; + contentY += portraitSize + 15f; } - // Сворачиваемая секция "Информация о персонаже" - DrawCollapsibleSection( - scrollViewRect, - contentY, - "AIImages.CharacterInfo.Title".Translate(), - ref showCharacterInfo, - () => DrawCharacterInfoContent(scrollViewRect) + // Заголовок секции + Text.Font = GameFont.Medium; + Widgets.Label( + new Rect(rect.x, contentY, rect.width, 30f), + "AIImages.CharacterInfo.Title".Translate() ); + contentY += 35f; - Widgets.EndScrollView(); + // Разделитель + Widgets.DrawLineHorizontal(rect.x, contentY, rect.width); + contentY += 10f; + + // Информация о персонаже + DrawCharacterInfoContent(rect, contentY); } /// /// Отрисовывает информацию о персонаже в компактном виде /// - private float DrawCharacterInfoContent(Rect parentRect) + private void DrawCharacterInfoContent(Rect parentRect, float startY) { - float contentHeight = 0f; - float lineHeight = 24f; - float indent = 10f; + float contentY = startY; + float lineHeight = 22f; + float labelWidth = parentRect.width * 0.45f; + float valueWidth = parentRect.width * 0.50f; Text.Font = GameFont.Tiny; @@ -449,47 +460,48 @@ namespace AIImages foreach (var (label, value) in info) { + // Подсветка строк через одну + var infoArray = info.ToArray(); + int index = Array.IndexOf(infoArray, (label, value)); + if ((index % 2) == 0) + { + Widgets.DrawBoxSolid( + new Rect(parentRect.x, contentY, parentRect.width, lineHeight), + new Color(0.15f, 0.15f, 0.15f, 0.3f) + ); + } + Widgets.Label( - new Rect(indent, contentHeight, parentRect.width * 0.4f, lineHeight), + new Rect(parentRect.x + 5f, contentY, labelWidth, lineHeight), label + ":" ); Widgets.Label( - new Rect( - parentRect.width * 0.42f, - contentHeight, - parentRect.width * 0.55f, - lineHeight - ), + new Rect(parentRect.x + labelWidth + 10f, contentY, valueWidth, lineHeight), value ); - contentHeight += lineHeight; + contentY += lineHeight; } // Черты характера if (pawn.story?.traits?.allTraits != null && pawn.story.traits.allTraits.Any()) { - contentHeight += 10f; + contentY += 15f; Text.Font = GameFont.Small; Widgets.Label( - new Rect(indent, contentHeight, parentRect.width - indent * 2, lineHeight), + new Rect(parentRect.x + 5f, contentY, parentRect.width - 10f, lineHeight), "AIImages.Info.Traits".Translate() + ":" ); - contentHeight += lineHeight; + contentY += lineHeight + 2f; Text.Font = GameFont.Tiny; var traitLabels = pawn.story.traits.allTraits.Select(trait => trait.LabelCap); foreach (var traitLabel in traitLabels) { Widgets.Label( - new Rect( - indent * 2, - contentHeight, - parentRect.width - indent * 3, - lineHeight - ), + new Rect(parentRect.x + 15f, contentY, parentRect.width - 20f, lineHeight), "• " + traitLabel ); - contentHeight += lineHeight; + contentY += lineHeight; } } @@ -497,13 +509,13 @@ namespace AIImages var apparel = pawn.apparel?.WornApparel; if (apparel != null && apparel.Any()) { - contentHeight += 10f; + contentY += 15f; Text.Font = GameFont.Small; Widgets.Label( - new Rect(indent, contentHeight, parentRect.width - indent * 2, lineHeight), + new Rect(parentRect.x + 5f, contentY, parentRect.width - 10f, lineHeight), "AIImages.Info.Apparel".Translate() + ":" ); - contentHeight += lineHeight; + contentY += lineHeight + 2f; Text.Font = GameFont.Tiny; foreach (var item in apparel) @@ -512,44 +524,33 @@ namespace AIImages item.DrawColor ); string apparelLabel = $"• {colorDesc} {item.def.label}"; - float apparelHeight = Text.CalcHeight( - apparelLabel, - parentRect.width - indent * 3 - ); + float apparelHeight = Text.CalcHeight(apparelLabel, parentRect.width - 25f); Widgets.Label( new Rect( - indent * 2, - contentHeight, - parentRect.width - indent * 3, + parentRect.x + 15f, + contentY, + parentRect.width - 25f, apparelHeight ), apparelLabel ); - contentHeight += apparelHeight; + contentY += apparelHeight; } } - - return contentHeight + 10f; } private void DrawRightColumn(Rect rect) { - // Рассчитываем высоту контента для скролла - float contentHeight = CalculateRightColumnHeight(); - Rect scrollViewRect = new Rect(0f, 0f, rect.width - 20f, contentHeight); + float curY = rect.y; - Widgets.BeginScrollView(rect, ref rightColumnScrollPosition, scrollViewRect); - - float curY = 0f; - - curY = DrawImagePreview(scrollViewRect, curY); - curY = DrawGenerationStatus(scrollViewRect, curY); - curY = DrawProgressBar(scrollViewRect, curY); - curY = DrawGenerationButton(scrollViewRect, curY); + curY = DrawImagePreview(rect, curY); + curY = DrawGenerationStatus(rect, curY); + curY = DrawProgressBar(rect, curY); + curY = DrawGenerationButton(rect, curY); // Сворачиваемая секция с позитивным промптом curY = DrawPromptSection( - scrollViewRect, + rect, curY, "AIImages.Prompt.PositiveTitle".Translate(), ref showPositivePrompt, @@ -566,7 +567,7 @@ namespace AIImages // Сворачиваемая секция с негативным промптом curY = DrawPromptSection( - scrollViewRect, + rect, curY, "AIImages.Prompt.NegativeTitle".Translate(), ref showNegativePrompt, @@ -580,7 +581,7 @@ namespace AIImages // Кнопка обновления данных if ( Widgets.ButtonText( - new Rect(0f, curY, scrollViewRect.width, 30f), + new Rect(rect.x, curY, rect.width, 30f), "AIImages.Window.Refresh".Translate() ) ) @@ -594,13 +595,11 @@ namespace AIImages curY += 35f; GUI.color = new Color(0f, 1f, 0f, copiedMessageTime / 2f); Widgets.Label( - new Rect(0f, curY, scrollViewRect.width, 25f), + new Rect(rect.x, curY, rect.width, 25f), "AIImages.Prompt.Copied".Translate() ); GUI.color = Color.white; } - - Widgets.EndScrollView(); } private float CalculateContentHeight() @@ -610,26 +609,38 @@ namespace AIImages // Портрет персонажа (если есть) if (generatedImage != null) { - float portraitSize = Mathf.Min(400f, 200f); + float portraitSize = 250f; // Максимальный размер портрета height += portraitSize + 15f; } - // Заголовок "Внешность" + // Заголовок "Информация о персонаже" height += 35f; - // Текст внешности - string appearanceText = pawnDescriptionService.GetAppearanceDescription(pawn); - height += Text.CalcHeight(appearanceText, 400f) + 20f; - // Разделитель - height += 15f; + height += 10f; - // Заголовок "Одежда" - height += 35f; + // Базовая информация (6 строк по 22px) + height += 6 * 22f; - // Текст одежды - string apparelText = pawnDescriptionService.GetApparelDescription(pawn); - height += Text.CalcHeight(apparelText, 400f) + 20f; + // Черты характера (если есть) + if (pawn.story?.traits?.allTraits != null && pawn.story.traits.allTraits.Any()) + { + height += 15f; // Отступ + height += 22f; // Заголовок "Черты характера" + height += 2f; // Отступ + height += pawn.story.traits.allTraits.Count * 22f; // Каждая черта + } + + // Одежда (если есть) + var apparel = pawn.apparel?.WornApparel; + if (apparel != null && apparel.Any()) + { + height += 15f; // Отступ + height += 22f; // Заголовок "Одежда" + height += 2f; // Отступ + // Примерно по 22-30px на предмет одежды + height += apparel.Count * 26f; + } // Дополнительный отступ height += 50f; @@ -644,11 +655,11 @@ namespace AIImages // Превью изображения if (generatedImage != null) { - height += 200f + 10f; + height += 410f; // 400f изображение + 10f отступ } else if (!isGenerating) { - height += 100f + 10f; + height += 310f; // 300f placeholder + 10f отступ } // Статус генерации @@ -667,71 +678,55 @@ namespace AIImages height += 40f; // Позитивный промпт - height += 35f; // Заголовок - height += 100f + 10f; // Бокс + height += 36f; // Заголовок (32f + 4f отступ) + if (showPositivePrompt) + { + height += 140f; // Бокс развернут (120f + 10f отступ + запас) + } + height += 5f; // Отступ между промптами // Негативный промпт - height += 35f; // Заголовок - height += 100f + 10f; // Бокс - - // Кнопки копирования - height += 35f; + height += 36f; // Заголовок (32f + 4f отступ) + if (showNegativePrompt) + { + height += 140f; // Бокс развернут (120f + 10f отступ + запас) + } + height += 10f; // Отступ после промптов // Кнопка обновления - height += 35f; + height += 40f; // Увеличено с 35f до 40f // Сообщение о копировании if (copiedMessageTime > 0f) { - height += 30f; + height += 40f; } - return height + 50f; // Дополнительный отступ + return height + 100f; // Увеличен дополнительный отступ снизу } - /// - /// Отрисовывает сворачиваемую секцию с заголовком и содержимым - /// - private void DrawCollapsibleSection( - Rect parentRect, - float startY, - string title, - ref bool expanded, - System.Func drawContentFunc - ) + private float CalculateTotalContentHeight() { - float curY = startY; - float headerHeight = 32f; + float height = 0f; - // Рисуем заголовок с фоном - Rect headerRect = new Rect(0f, curY, parentRect.width, headerHeight); - Widgets.DrawBoxSolid(headerRect, new Color(0.25f, 0.25f, 0.25f, 0.8f)); - Widgets.DrawBox(headerRect); + // Заголовок и имя пешки + height += 45f + 40f; - // Иконка раскрытия (треугольник) - string icon = expanded ? "▼" : "►"; - Text.Font = GameFont.Small; - Widgets.Label(new Rect(8f, curY + 6f, 20f, headerHeight), icon); + // Разделитель + height += 10f; - // Заголовок - Text.Font = GameFont.Small; - Widgets.Label(new Rect(30f, curY + 6f, parentRect.width - 40f, headerHeight), title); + // Высота колонок (берем большую) + float columnHeight = Mathf.Max(CalculateContentHeight(), CalculateRightColumnHeight()); + height += columnHeight; - // Клик для раскрытия/сворачивания - if (Widgets.ButtonInvisible(headerRect)) - { - expanded = !expanded; - } + // Дополнительный отступ снизу + height += 30f; - // Рисуем содержимое если развернуто - if (expanded) - { - drawContentFunc(); - } + return height; } /// - /// Отрисовывает секцию с промптом + /// /// Отрисовывает секцию с промптом /// private float DrawPromptSection( Rect parentRect, @@ -750,20 +745,28 @@ namespace AIImages string prompt = getPromptFunc(); // Рисуем заголовок с фоном - Rect headerRect = new Rect(0f, curY, parentRect.width, headerHeight); + Rect headerRect = new Rect(parentRect.x, curY, parentRect.width, headerHeight); Widgets.DrawBoxSolid(headerRect, new Color(0.25f, 0.25f, 0.25f, 0.8f)); Widgets.DrawBox(headerRect); // Иконка раскрытия string icon = expanded ? "▼" : "►"; Text.Font = GameFont.Small; - Widgets.Label(new Rect(8f, curY + 6f, 20f, headerHeight), icon); + Widgets.Label(new Rect(parentRect.x + 8f, curY + 6f, 20f, headerHeight), icon); // Заголовок - Widgets.Label(new Rect(30f, curY + 6f, parentRect.width - 80f, headerHeight), title); + Widgets.Label( + new Rect(parentRect.x + 30f, curY + 6f, parentRect.width - 110f, headerHeight), + title + ); - // Кнопка копирования в заголовке - Rect copyButtonRect = new Rect(parentRect.width - 70f, curY + 4f, 65f, 24f); + // Кнопка копирования в заголовке (увеличена ширина) + Rect copyButtonRect = new Rect( + parentRect.x + parentRect.width - 100f, + curY + 4f, + 95f, + 24f + ); if (Widgets.ButtonText(copyButtonRect, "📋 " + "AIImages.Copy".Translate())) { GUIUtility.systemCopyBuffer = prompt; @@ -771,7 +774,12 @@ namespace AIImages } // Клик на остальной области для раскрытия/сворачивания - Rect clickableHeaderRect = new Rect(0f, curY, parentRect.width - 75f, headerHeight); + Rect clickableHeaderRect = new Rect( + parentRect.x, + curY, + parentRect.width - 105f, + headerHeight + ); if (Widgets.ButtonInvisible(clickableHeaderRect)) { expanded = !expanded; @@ -786,7 +794,12 @@ namespace AIImages Text.Font = GameFont.Tiny; float actualPromptHeight = Text.CalcHeight(prompt, parentRect.width - 20f); - Rect promptOuterRect = new Rect(0f, curY, parentRect.width, promptBoxHeight); + Rect promptOuterRect = new Rect( + parentRect.x, + curY, + parentRect.width, + promptBoxHeight + ); Rect promptViewRect = new Rect(0f, 0f, parentRect.width - 20f, actualPromptHeight); // Рисуем фон @@ -827,7 +840,7 @@ namespace AIImages float imageSize = Mathf.Min(rect.width, 400f); Rect imageRect = new Rect( rect.x + (rect.width - imageSize) / 2f, - rect.y + curY, + curY, imageSize, imageSize ); @@ -838,7 +851,7 @@ namespace AIImages float placeholderSize = Mathf.Min(rect.width, 300f); Rect placeholderRect = new Rect( rect.x + (rect.width - placeholderSize) / 2f, - rect.y + curY, + curY, placeholderSize, placeholderSize ); @@ -856,10 +869,7 @@ namespace AIImages Text.Font = GameFont.Small; float statusHeight = Text.CalcHeight(generationStatus, rect.width); - Widgets.Label( - new Rect(rect.x, rect.y + curY, rect.width, statusHeight), - generationStatus - ); + Widgets.Label(new Rect(rect.x, curY, rect.width, statusHeight), generationStatus); return curY + statusHeight + 10f; } @@ -868,7 +878,7 @@ namespace AIImages if (!isGenerating || generationProgress <= 0.0) return curY; - Rect progressBarRect = new Rect(rect.x, rect.y + curY, rect.width, 24f); + Rect progressBarRect = new Rect(rect.x, curY, rect.width, 24f); string progressText; if (totalSteps > 0) @@ -900,7 +910,7 @@ namespace AIImages ? "AIImages.Generation.Cancel".Translate() : "AIImages.Generation.Generate".Translate(); - if (Widgets.ButtonText(new Rect(rect.x, rect.y + curY, rect.width, 35f), buttonLabel)) + if (Widgets.ButtonText(new Rect(rect.x, curY, rect.width, 35f), buttonLabel)) { if (isGenerating) CancelGeneration();