private static string SaveState_SaveToString(On.SaveState.orig_SaveToString orig, SaveState self) { if (!(self is CustomSaveState css)) { return(orig(self)); } StringBuilder sb = new StringBuilder(orig(self)); string customData = css.SaveCustomToString(); if (!string.IsNullOrEmpty(customData)) { sb.Append("SLUGBASE<svB>"); sb.Append(customData); sb.Append("<svA>"); } customData = css.SaveCustomPermanentToString(false, false); if (!string.IsNullOrEmpty(customData)) { sb.Append("SLUGBASEPERSISTENT<svB>"); sb.Append(customData); sb.Append("<svA>"); } return(sb.ToString()); }
private static string SaveState_SaveToString(On.SaveState.orig_SaveToString orig, SaveState self) { Debug.Log("SAVE!"); string text = string.Empty; string text2 = text; text = string.Concat(new object[] { text2, "SAV STATE NUMBER<svB>", self.saveStateNumber, "<svA>" }); text2 = text; text = string.Concat(new object[] { text2, "SEED<svB>", self.seed, "<svA>" }); text2 = text; text = string.Concat(new object[] { text2, "VERSION<svB>", self.gameVersion, "<svA>" }); text2 = text; text = string.Concat(new object[] { text2, "INITVERSION<svB>", self.initiatedInGameVersion, "<svA>" }); text2 = text; text = string.Concat(new object[] { text2, "WORLDVERSION<svB>", self.worldVersion, "<svA>" }); text = text + "DENPOS<svB>" + self.denPosition + "<svA>"; text2 = text; text = string.Concat(new object[] { text2, "CYCLENUM<svB>", self.cycleNumber, "<svA>" }); text2 = text; text = string.Concat(new object[] { text2, "FOOD<svB>", self.food, "<svA>" }); text2 = text; text = string.Concat(new object[] { text2, "NEXTID<svB>", self.nextIssuedID, "<svA>" }); if (self.theGlow) { text += "HASTHEGLOW<svA>"; } if (self.guideOverseerDead) { text += "GUIDEOVERSEERDEAD<svA>"; } if (self.respawnCreatures.Count > 0) { text += "RESPAWNS<svB>"; for (int i = 0; i < self.respawnCreatures.Count; i++) { text = text + self.respawnCreatures[i] + ((i >= self.respawnCreatures.Count - 1) ? string.Empty : "."); } text += "<svA>"; } if (self.waitRespawnCreatures.Count > 0) { text += "WAITRESPAWNS<svB>"; for (int j = 0; j < self.waitRespawnCreatures.Count; j++) { text = text + self.waitRespawnCreatures[j] + ((j >= self.waitRespawnCreatures.Count - 1) ? string.Empty : "."); } text += "<svA>"; } if (self.creatureCommunitiesString != null) { text = text + "COMMUNITIES<svB>" + self.creatureCommunitiesString + "<svA>"; } for (int k = 0; k < self.regionStates.Length; k++) { if (self.regionStates[k] != null) { text = text + "REGIONSTATE<svB>" + self.regionStates[k].SaveToString() + "<svA>"; } else if (self.regionLoadStrings[k] != null) { text = text + "REGIONSTATE<svB>" + self.regionLoadStrings[k] + "<svA>"; } } text = text + "DEATHPERSISTENTSAVEDATA<svB>" + self.deathPersistentSaveData.SaveToString(false, false) + "<svA>"; string text3 = self.miscWorldSaveData.ToString(); if (text3 != string.Empty) { text = text + "MISCWORLDSAVEDATA<svB>" + text3 + "<svA>"; } if (self.swallowedItems != null) { text += "SWALLOWEDITEMS<svB>"; for (int l = 0; l < self.swallowedItems.Length; l++) { text = text + self.swallowedItems[l] + ((l >= self.swallowedItems.Length - 1) ? string.Empty : "<svB>"); } text += "<svA>"; } if (self.dreamsState != null) { text = text + "DREAMSSTATE<svB>" + self.dreamsState.ToString() + "<svA>"; } text2 = text; text = string.Concat(new object[] { text2, "TOTFOOD<svB>", self.totFood, "<svA>" }); text2 = text; text = string.Concat(new object[] { text2, "TOTTIME<svB>", self.totTime, "<svA>" }); text2 = text; text = string.Concat(new object[] { text2, "CURRVERCYCLES<svB>", self.cyclesInCurrentWorldVersion, "<svA>" }); if (self.kills.Count > 0) { text += "KILLS<svB>"; for (int m = 0; m < self.kills.Count; m++) { text2 = text; text = string.Concat(new object[] { text2, self.kills[m].Key, "<svD>", self.kills[m].Value, (m >= self.kills.Count - 1) ? string.Empty : "<svC>" }); } text += "<svA>"; } if (self.redExtraCycles) { text += "REDEXTRACYCLES<svA>"; } if (KarmaAppetite_ExtraInventory.SaveEnabled && KarmaAppetite_ExtraInventory.Inventories.Count > 0) { text += "EXTRAINVENTORY<svB>"; int m = 0; foreach (var kvp in KarmaAppetite_ExtraInventory.Inventories) { if (kvp.Value.Count > 0) { text = text + kvp.Key + "<svD>"; for (int n = 0; n < kvp.Value.Count; n++) { text2 = text; text = string.Concat(new object[] { text2, kvp.Value[n].ToString(), (n >= kvp.Value.Count - 1) ? string.Empty : "<svD>" }); } text += (m >= KarmaAppetite_ExtraInventory.Inventories.Count - 1) ? string.Empty : "svC"; } m++; } text += "<svA>"; } return(text); }