public override void DeSerialize(string input, ModCrate crate) { string[] vals = input.Split(';'); if (vals.Length != (Value.GetLength(0) * Value.GetLength(1)) + 1 && vals.Length != (Value.GetLength(0) * Value.GetLength(1))) { Console.WriteLine("Error: Input Named Float array2 length mismatch!"); return; } int page = 0; int pos = 0; for (int i = 0; i < vals.Length - 1; i++) { float val; if (float.TryParse(vals[i], out val)) { Value[page, pos] = val; } pos++; if (pos > Value.GetLength(1) - 1) { pos = 0; page++; } } }
public override void DeSerialize(string input, ModCrate crate) { float val; if (float.TryParse(input, out val)) { Value = val; } }
public override void DeSerialize(string input, ModCrate crate) { if (input == "1") { Value = true; } else { Value = false; } }
public override void DeSerialize(string input, ModCrate crate) { string[] vals = input.Split(';'); if (vals.Length != Value.Length + 1 && vals.Length != Value.Length) { Console.WriteLine("Error: Input Named float array length mismatch!"); return; } for (int i = 0; i < vals.Length - 1; i++) { float val; if (float.TryParse(vals[i], out val)) { Value[i] = val; } } }
public override void DeSerialize(string input, ModCrate crate) { }
public override void DeSerialize(string input, ModCrate crate) { Value = false; if (input != "") { if (input.StartsWith("file:")) { string inputPath = input.Substring(5); if (TryResource(inputPath)) { ResourcePath = inputPath; Value = true; } } else if (input.StartsWith("crate:")) { string inputPath = input.Substring(6); if (crate != null) { if (crate.IsFolder) { string testPath = Path.Combine(crate.Path, inputPath); if (TryResource(testPath)) { ResourcePath = inputPath; Value = true; } } else { string targetPath = ModLoaderGlobals.BaseDirectory + "resource.dat"; using (ZipArchive archive = ZipFile.OpenRead(crate.Path)) { foreach (ZipArchiveEntry entry in archive.Entries) { if (entry.FullName == inputPath) { entry.ExtractToFile(targetPath, true); } } } if (TryResource(targetPath)) { ResourcePath = inputPath; Value = true; } File.Delete(targetPath); } } else { // loading from a settings file... no crate data, but needs a path to find the resources } } else if (input.StartsWith("data:")) { string inputData = input.Substring(5); try { byte[] bytes = Convert.FromBase64String(inputData); using (MemoryStream ms = new MemoryStream(bytes, 0, bytes.Length)) { ms.Write(bytes, 0, bytes.Length); ms.Position = 0; BinaryFormatter bf = new BinaryFormatter(); Resource = (T)bf.Deserialize(ms); } Value = true; } catch { } } else { Value = false; } } }