Пример #1
0
        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++;
                }
            }
        }
Пример #2
0
        public override void DeSerialize(string input, ModCrate crate)
        {
            float val;

            if (float.TryParse(input, out val))
            {
                Value = val;
            }
        }
Пример #3
0
 public override void DeSerialize(string input, ModCrate crate)
 {
     if (input == "1")
     {
         Value = true;
     }
     else
     {
         Value = false;
     }
 }
Пример #4
0
        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;
                }
            }
        }
Пример #5
0
 public override void DeSerialize(string input, ModCrate crate)
 {
 }
Пример #6
0
        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;
                }
            }
        }