private CompoundFactory() { cupboardCollection = new Dictionary <string, Compound> (); cupboardCollection = ComponentsSaver.LoadCupboardCompounds(); collection = new Dictionary <string, Compound> (); collection = ComponentsSaver.LoadBackgroundCompounds(); }
/* -------------PRODUCT------------- */ //! Reads/Loads the dictionary from file. public static Dictionary <string, Compound> LoadBackgroundCompounds() { JSONEditor jsonEditor = new JSONEditor("products"); Dictionary <string, Compound> products = new Dictionary <string, Compound>(); for (int i = 0; i < jsonEditor.NumberOfObjects(); i++) { Compound productAcc = new Compound(); productAcc.Name = jsonEditor.GetString(i, "name"); productAcc.Formula = jsonEditor.GetString(i, "formula"); productAcc.IsSolid = jsonEditor.GetBool(i, "isSolid" + i.ToString()); productAcc.MolarMass = jsonEditor.GetFloat(i, "molarMass"); productAcc.Purity = jsonEditor.GetFloat(i, "purity"); productAcc.Density = jsonEditor.GetFloat(i, "density"); productAcc.Polarizability = jsonEditor.GetFloat(i, "polarizability"); if (!string.IsNullOrEmpty(jsonEditor.GetString(i, "irSpecter"))) { productAcc.irSpecter = Resources.Load <Texture2D>("specter/" + jsonEditor.GetString(i, "irSpecter")); } else { productAcc.irSpecter = null; } productAcc.Conductibility = jsonEditor.GetFloat(i, "conductibility"); productAcc.Solubility = jsonEditor.GetFloat(i, "solubility"); productAcc.FumeHoodOnly = jsonEditor.GetBool(i, "fumeHoodOnly"); productAcc.compoundColor = new Color32((byte)jsonEditor.GetInt(i, "compoundColorR"), (byte)jsonEditor.GetInt(i, "compoundColorG"), (byte)jsonEditor.GetInt(i, "compoundColorB"), (byte)255); //!Gets the liquid-related variables if (!jsonEditor.GetBool(i, "isSolid")) { productAcc.PH = jsonEditor.GetFloat(i, "ph"); productAcc.Turbidity = jsonEditor.GetFloat(i, "turbidity"); productAcc.Refratometer = jsonEditor.GetFloat(i, "refratometer"); productAcc.FlameSpecter = jsonEditor.GetFloat(i, "flameSpecter"); if (!string.IsNullOrEmpty(jsonEditor.GetString(i, "uvSpecter"))) { productAcc.uvSpecter = Resources.Load <Texture2D>("specter/" + jsonEditor.GetString(i, "uvSpecter")); } else { productAcc.uvSpecter = null; } if (!string.IsNullOrEmpty(jsonEditor.GetString(i, "hplc"))) { productAcc.hplc = Resources.Load <Texture2D>("specter/" + jsonEditor.GetString(i, "hplc")); } else { productAcc.hplc = null; } } productAcc.Molarity = ((productAcc.Purity * productAcc.Density) / productAcc.MolarMass); // number of mols / volume Debug.Log(productAcc.Formula + ".Molarity = " + productAcc.Molarity); products.Add(productAcc.Formula, productAcc); } Dictionary <string, Compound> cupboard = ComponentsSaver.LoadCupboardCompounds(); foreach (string name in cupboard.Keys) { products.Add(cupboard[name].Formula, cupboard[name]); } return(products); }