From 2eb24205d9646355c4784127b1aaa0062ad4844d Mon Sep 17 00:00:00 2001 From: TheVillageGuy Date: Wed, 13 Dec 2023 23:33:54 +0100 Subject: [PATCH] PNG setting was not saved Prevent init loop when already steady default file size changed from 25 to 20 prevent rounding causing occasional bouncing by using math.ceiling/floor filesize in messages now shown as 0.00 --- Common/Languages/English/Keyed/All.xml | 2 +- .../GameComponentProgressManager.cs | 2 +- .../MapComponents/MapComponent_RenderManager.cs | 15 ++++++++++----- Source/Mod/PRModSettings.cs | 1 + 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Common/Languages/English/Keyed/All.xml b/Common/Languages/English/Keyed/All.xml index 7ecfe47..e1361fd 100644 --- a/Common/Languages/English/Keyed/All.xml +++ b/Common/Languages/English/Keyed/All.xml @@ -60,7 +60,7 @@ Quality adjustment Manual Automatic - Target render size for this map + Target render size for this world JPG quality will automatically be adjusted after each render to be near this target, preferencing quality slightly. JPG Quality Higher values correspond to higher image quality, lower values correspond to smaller image size diff --git a/Source/GameComponents/GameComponentProgressManager.cs b/Source/GameComponents/GameComponentProgressManager.cs index fdc7aa8..a03ab85 100644 --- a/Source/GameComponents/GameComponentProgressManager.cs +++ b/Source/GameComponents/GameComponentProgressManager.cs @@ -18,7 +18,7 @@ namespace ProgressRenderer // variables related to automatic quality adjustment public static JPGQualityAdjustmentSetting defaultJPGQualityAdjustment = JPGQualityAdjustmentSetting.Manual; - public static int defaultRenderSize = 25; + public static int defaultRenderSize = 20; public static int defaultJPGQuality_WORLD = 93; public static int defaultpixelsPerCell_WORLD = 32; diff --git a/Source/MapComponents/MapComponent_RenderManager.cs b/Source/MapComponents/MapComponent_RenderManager.cs index 1f055bc..4190436 100644 --- a/Source/MapComponents/MapComponent_RenderManager.cs +++ b/Source/MapComponents/MapComponent_RenderManager.cs @@ -580,6 +580,11 @@ private void AdjustJPGQuality(string filePath) if (GameComponentProgressManager.JPGQualitySteady) { + if (PRModSettings.JPGQualityInitialize) + { + renderMessage += "Target size reached, initialization ended, "; + PRModSettings.JPGQualityInitialize = false; + } Messages.Message(renderMessage, MessageTypeDefOf.CautionInput, false); return; } @@ -597,7 +602,7 @@ private void AdjustJPGQuality(string filePath) private string CalculateQuality(float renderSize, string renderMessage) { - // render is too large, let's take a closer look + // if render is too large, let's take a closer look if (renderSize > GameComponentProgressManager.renderSize) { if (GameComponentProgressManager.JPGQuality_WORLD > 0) @@ -608,18 +613,18 @@ private string CalculateQuality(float renderSize, string renderMessage) GameComponentProgressManager.JPGQuality_WORLD -= 1; renderMessage += "JPG quality decreased to " + GameComponentProgressManager.JPGQuality_WORLD + - "% · render size: " + renderSize + " Target: " + + "% · render size: " + renderSize.ToString("0.00") + " Target: " + GameComponentProgressManager.renderSize; } // if quality was going up and then down again, we have found the target quality else if (!GameComponentProgressManager.JPGQualitySteady) { GameComponentProgressManager.JPGQualitySteady = true; - GameComponentProgressManager.JPGQualityTopMargin = Convert.ToInt32(renderSize); + GameComponentProgressManager.JPGQualityTopMargin = Convert.ToInt32(Math.Ceiling(renderSize)); PRModSettings.JPGQualityInitialize = false; // if initializing, end it now renderMessage += "JPG quality target reached (" + GameComponentProgressManager.JPGQuality_WORLD + - "%) · render size: " + renderSize + " Target: " + + "%) · render size: " + renderSize.ToString("0.00") + " Target: " + GameComponentProgressManager.renderSize; } @@ -636,7 +641,7 @@ private string CalculateQuality(float renderSize, string renderMessage) if (GameComponentProgressManager.JPGQuality_WORLD < 100) { GameComponentProgressManager.JPGQuality_WORLD += 1; - GameComponentProgressManager.JPGQualityBottomMargin = Convert.ToInt32(renderSize); + GameComponentProgressManager.JPGQualityBottomMargin = Convert.ToInt32(Math.Floor(renderSize)); renderMessage += "JPG quality increased to " + GameComponentProgressManager.JPGQuality_WORLD + "% · render size: " + renderSize + " Target: " + diff --git a/Source/Mod/PRModSettings.cs b/Source/Mod/PRModSettings.cs index 20b4308..401fc3e 100644 --- a/Source/Mod/PRModSettings.cs +++ b/Source/Mod/PRModSettings.cs @@ -252,6 +252,7 @@ public override void ExposeData() Scribe_Values.Look(ref smoothRenderAreaSteps, "smoothRenderAreaSteps", DefaultSmoothRenderAreaSteps); Scribe_Values.Look(ref whichInterval, "whichInterval", RenderIntervalHelper.Intervals.IndexOf(DefaultInterval)); Scribe_Values.Look(ref timeOfDay, "timeOfDay", DefaultTimeOfDay); + Scribe_Values.Look(ref encoding, "encodingFormat", DefaultEncoding); Scribe_Values.Look(ref JPGQuality, "JPGQuality", DefaultJPGQuality); Scribe_Values.Look(ref pixelsPerCell, "pixelsPerCell", DefaultpixelsPerCell); Scribe_Values.Look(ref scaleOutputImage, "scaleOutputImage", DefaultScaleOutputImage);