protected override void FillTab() { Rect rect = new Rect(0f, 0f, WinSize.x, WinSize.y).ContractedBy(10f); Text.Font = GameFont.Medium; Widgets.Label(rect, SelectedCompBook.Title); if (cachedImageSource != SelectedCompBook || cachedTaleRef != SelectedCompBook.TaleRef) { cachedImageDescription = SelectedCompBook.GenerateImageDescription(); cachedImageSource = SelectedCompBook; cachedTaleRef = SelectedCompBook.TaleRef; } Rect rect2 = rect; rect2.yMin += 35f; Text.Font = GameFont.Small; Widgets.Label(rect2, cachedImageDescription); }
public static TaggedString GenerateTextFromTale(TextGenerationPurpose purpose, Tale tale, int seed, RulePackDef extraInclude, CompBook compBook) { Rand.PushState(); Rand.Seed = seed; string rootKeyword = null; GrammarRequest request = default(GrammarRequest); request.Includes.Add(extraInclude); switch (purpose) { case TextGenerationPurpose.ArtDescription: rootKeyword = compBook.Props.nameMaker.RulesImmediate .Where(x => x.keyword != null && x.keyword.Length > 0).RandomElement().keyword; //Log.Message("rootKeyword for description: " + rootKeyword); if (tale != null && !Rand.Chance(0.2f)) { request.Includes.Add(RulePackDefOf.ArtDescriptionRoot_HasTale); request.IncludesBare.AddRange(tale.GetTextGenerationIncludes()); request.Rules.AddRange(tale.GetTextGenerationRules()); } else { request.Includes.Add(RulePackDefOf.ArtDescriptionRoot_Taleless); request.Includes.Add(RulePackDefOf.TalelessImages); } request.Includes.Add(RulePackDefOf.ArtDescriptionUtility_Global); break; case TextGenerationPurpose.ArtName: rootKeyword = compBook.Props.descriptionMaker.RulesImmediate .Where(x => x.keyword != null && x.keyword.Length > 0).RandomElement().keyword; //Log.Message("rootKeyword for name: " + rootKeyword); if (tale != null) { request.IncludesBare.AddRange(tale.GetTextGenerationIncludes()); request.Rules.AddRange(tale.GetTextGenerationRules()); } break; } string str = GrammarResolver.Resolve(rootKeyword, request, (tale != null) ? tale.def.defName : "null_tale"); Rand.PopState(); return(str); }
public TaggedString GenerateText(TextGenerationPurpose purpose, RulePackDef extraInclude, CompBook compBook) { return(TaleTextGenerator.GenerateTextFromTale(purpose, tale, seed, extraInclude, compBook)); }