static void Postfix(TaleReference __instance) { if (__instance is BakedTaleReference reference) { Scribe_Values.Look(ref reference.bakedTale, "bakedTale", "Default Baked Tale Whatever", false); } }
private static string RandomArtworkDescription(TaleReference tr) { RulePackDef extraInclude = null; switch (Rand.RangeInclusive(0, 4)) { case 0: extraInclude = RulePackDefOf.ArtDescription_Sculpture; break; case 1: extraInclude = RulePackDefOf.ArtDescription_WeaponMelee; break; case 2: extraInclude = RulePackDefOf.ArtDescription_WeaponGun; break; case 3: extraInclude = RulePackDefOf.ArtDescription_Furniture; break; case 4: extraInclude = RulePackDefOf.ArtDescription_SarcophagusPlate; break; } return(tr.GenerateText(TextGenerationPurpose.ArtDescription, extraInclude)); }
static bool Prefix(TaleReference __instance, ref string __result) { if (!(__instance is BakedTaleReference reference)) { return(true); } __result = reference.bakedTale; // Debug.Message("Set result of generate text to {0}", __result); return(false); }
protected override void FillTab() { Rect rect = new Rect(0f, 0f, this.size.x, this.size.y).ContractedBy(20f); Rect rect2 = rect; Text.Font = GameFont.Medium; CompArt compArt = (CompArt)this.selectedCompArtGetter.Invoke(this, null); Widgets.Label(rect2, compArt.Title); if (ITab_Art_Alternate.cachedImageSource != compArt || ITab_Art_Alternate.cachedTaleRef != compArt.TaleRef) { ITab_Art_Alternate.cachedImageDescription = compArt.ImageDescription(); ITab_Art_Alternate.cachedImageSource = compArt; ITab_Art_Alternate.cachedTaleRef = compArt.TaleRef; } Rect rect3 = rect; rect3.yMin += 35f; Text.Font = GameFont.Small; Widgets.Label(rect3, ITab_Art_Alternate.cachedImageDescription); }
/// <summary> /// A reimplementation of CompArt.InitializeArt() for specific tales. /// </summary> private static void InitializeArt(CompArt comp, Tale tale) { if (comp.TaleRef != null) { comp.TaleRef.ReferenceDestroyed(); } TaleReference taleRef; if (tale == null) { taleRef = TaleReference.Taleless; } else { tale.Notify_NewlyUsed(); taleRef = new TaleReference(tale); } var traverse = Traverse.Create(comp); traverse.Field("taleRef").SetValue(taleRef); traverse.Field("titleInt").SetValue(new TaggedString(traverse.Method("GenerateTitle").GetValue <string>())); }
private static void LogTales(IEnumerable <Tale> tales) { StringBuilder stringBuilder = new StringBuilder(); int num = 0; foreach (Tale tale in tales) { TaleReference tr = new TaleReference(tale); stringBuilder.AppendLine(RandomArtworkName(tr)); stringBuilder.AppendLine(RandomArtworkDescription(tr)); stringBuilder.AppendLine(); num++; if (num % 20 == 0) { Log.Message(stringBuilder.ToString()); stringBuilder = new StringBuilder(); } } if (!stringBuilder.ToString().NullOrEmpty()) { Log.Message(stringBuilder.ToString()); } }