public void OnLoaded(object sender, OnLoadedEvent loadedEvent) { try{ foreach (Vector3 vector in District.PlayerAddedColors.ToArray()) { Color color = ColorConversions.ConvertVector3ToColor(vector); Swatch swatch = District.Swatches.Find(i => i.color == color); if (swatch != null) { District.Swatches.Remove(swatch); Destroy(swatch.gameObject); } } }catch (Exception err) { Mod.helper.Log(err.ToString()); } string json = LoadSave.ReadDataGeneric("DistrictModV2", "DistrictModV2Identifier"); if (json != null) { var savedObject = Newtonsoft.Json.JsonConvert.DeserializeObject <DistrictSave>(json); District.DistrictBuildingData = savedObject.DistrictBuildingData; District.PlayerAddedColors = ColorConversions.ConvertArrayToList(savedObject.PlayerAddedColors); } else { Mod.helper.Log("JSON IS NULL"); } LoadSwatches(); LoadBuildingColors(); }
void LoadSwatches() { try{ foreach (Vector3 vector in District.PlayerAddedColors.ToArray()) { Color color = ColorConversions.ConvertVector3ToColor(vector); AddSwatch(color, SwatchType.Player); } }catch (Exception err) { Mod.helper.Log(err.ToString()); } }
void LoadBuildingColors() { foreach (KeyValuePair <Guid, Vector3[]> entry in District.DistrictBuildingData) { Building b = Player.inst.GetBuilding(entry.Key); if (b != null) { for (int i = 0; i < b.fullMaterial.Count; i++) { if (entry.Value[i] != null) { this.ApplyShader(b.fullMaterial[i]); b.fullMaterial[i].color = ColorConversions.ConvertVector3ToColor(entry.Value[i]); b.useSharedMaterialIfPossible = false; b.UpdateMaterialSelection(); } } } } }