Пример #1
0
        public static Boolean IngestScriptFile(String Filename)
        {
            if (Filename.EndsWith(".esa"))
            {
                Filename = Filename.Remove(Filename.Length - 4);
            }
            DirectoryInfo ScriptArchive = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Blackhole Media Systems\\Event Horizon Framework\\appdata\\scripts");

            if (ScriptArchive.Exists)
            {
                foreach (FileInfo F in ScriptArchive.EnumerateFiles())
                {
                    String FName = F.Name;
                    if (FName.EndsWith(".esa"))
                    {
                        FName = FName.Remove(FName.Length - 4);
                    }
                    if (FName.ToUpper() == Filename.ToUpper())
                    {
                        StreamReader Reader        = new StreamReader(F.OpenRead());
                        String       ScriptContent = Reader.ReadToEnd();
                        Reader.Close();
                        Hashtable ExtractedScripts = new Hashtable();
                        try
                        {
                            ExtractedScripts = ScriptProcessor.ExtractEventScriptArchive(ScriptContent);
                        }
                        catch (Exception E)
                        {
                            throw new ManifestReaderException("Could not extract EventScriptArchive file \"" + FName + "\". Check for a malformed script! Error: " + E.Message + E.StackTrace);
                        }
                        foreach (String Key in ExtractedScripts.Keys)
                        {
                            ScriptProcessor.ScriptCache.Add(Key, ExtractedScripts[Key]);
                            Shell.WriteLine("Added script " + Key + " to cache.");
                        }
                        return(true);
                    }
                }
                return(false);
            }
            else
            {
                return(false);
            }
        }