Esempio n. 1
0
        public static void LoadFace(ref CustomPawn __result, SaveRecordPawnV3 record)
        {
            if (!SaveRecordPawnV3_Postfix.LoadedPawns.Keys.Contains(record))
            {
                return;
            }

            Pawn pawn = __result.Pawn;

            if (!pawn.HasCompFace())
            {
                return;
            }

            PawnFace pawnFace = SaveRecordPawnV3_Postfix.LoadedPawns[record].Face;

            if (pawn.GetCompFace(out CompFace compFace))
            {
                if (pawnFace == null)
                {
                    pawnFace = new PawnFace(compFace, Faction.OfPlayer.def, false);
                }

                compFace.SetPawnFace(pawnFace);
                // ReSharper disable once PossibleNullReferenceException
                pawn.story.hairColor = compFace.PawnFace.HairColor;
            }
        }
Esempio n. 2
0
        public static void ExposeFaceData(SaveRecordPawnV3 __instance)
        {
            if (SavedPawns.Keys.Contains(__instance.id) && Scribe.mode == LoadSaveMode.Saving)
            {
                CustomPawn customPawn = SavedPawns[__instance.id] as CustomPawn;
                if (!customPawn?.Pawn.HasCompFace() == true)
                {
                    return;
                }

                if (customPawn != null)
                {
                    SaveRecordFaceV3 face = new SaveRecordFaceV3(customPawn.Pawn);
                    face.ExposeData();
                }
            }
            else if (Scribe.mode == LoadSaveMode.LoadingVars)
            {
                SaveRecordFaceV3 face = new SaveRecordFaceV3();
                face.ExposeData();
                LoadedPawns.Add(__instance, face);
            }
        }