#nullable enable namespace Barotrauma { public class LimitLString : LocalizedString { private readonly LocalizedString nestedStr; private readonly GUIFont font; private readonly int maxWidth; private ScalableFont? cachedFont = null; public LimitLString(LocalizedString text, GUIFont font, int maxWidth) { this.nestedStr = text; this.font = font; this.maxWidth = maxWidth; } public override bool Loaded => nestedStr.Loaded; protected override bool MustRetrieveValue() { return base.MustRetrieveValue() || cachedFont != font.Value || cachedFont.Size != font.Size; } public override void RetrieveValue() { cachedValue = ToolBox.LimitString(nestedStr.Value, font.Value, maxWidth); cachedFont = font.Value; UpdateLanguage(); } } }