Beispiel #1
0
 public IdLookupFactory(string importPath = null)
 {
     idNames = new BiDictionaryOneToOne <string, LookupResult>();
     if (importPath != null)
     {
         LoadFromFile(importPath);
     }
     random = new Random();
 }
Beispiel #2
0
        public ModelBase(string modelFileName)
        {
            m_ModelFileName = modelFileName;
            m_ModelPath     = Path.GetDirectoryName(m_ModelFileName);

            m_BoneTree          = new BoneDefRoot();
            m_Materials         = new Dictionary <string, MaterialDef>();
            m_Textures          = new Dictionary <string, TextureDefBase>();
            m_Animations        = new Dictionary <string, AnimationDef>();
            m_BoneTransformsMap = new BiDictionaryOneToOne <string, int>();
        }
        public static BiDictionaryOneToOne<string, LanguageInstruction> Parse(string[] languageDefinition)
        {
            var operators = new BiDictionaryOneToOne<string, LanguageInstruction>();
            foreach (var line in languageDefinition)
            {
                var firstSpace = line.IndexOf(" ");
                string dilInstruction = line.Substring(0, firstSpace),
                       languageToken = line.Substring(firstSpace + 1);

                operators.Add(languageToken, (LanguageInstruction)Enum.Parse(typeof(LanguageInstruction), dilInstruction));
            }

            return operators;
        }
        public static BiDictionaryOneToOne <string, LanguageInstruction> Parse(string[] languageDefinition)
        {
            var operators = new BiDictionaryOneToOne <string, LanguageInstruction>();

            foreach (var line in languageDefinition)
            {
                var    firstSpace     = line.IndexOf(" ");
                string dilInstruction = line.Substring(0, firstSpace),
                       languageToken  = line.Substring(firstSpace + 1);

                operators.Add(languageToken, (LanguageInstruction)Enum.Parse(typeof(LanguageInstruction), dilInstruction));
            }

            return(operators);
        }
Beispiel #5
0
        private static void LoadCharList(string txtName, BiDictionaryOneToOne<byte, string> charList,
            Dictionary<string, uint> sizeList)
        {
            string filename = Path.Combine(Application.StartupPath, txtName);
            string text = File.ReadAllText(filename);

            string[] lines = text.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < lines.Length; i++)
            {
                // Ignore comments
                if (lines[i].ToCharArray()[0] == '#')
                    continue;

                string[] pair = lines[i].Split('=');
                if (pair.Length < 3)
                    continue;

                try {
                    charList.Add(byte.Parse(pair[0]), pair[2]);
                    sizeList.Add(pair[2], uint.Parse(pair[1]));
                }
                catch (Exception e) { MessageBox.Show("Error in " + filename + "\n\n" + "Line " + i + "\n\n" +
                    pair[0] + "\t" + pair[1] + "\t" + pair[2]); }
            }
        }
Beispiel #6
0
 protected Parser(BiDictionaryOneToOne<string, LanguageInstruction> instructions)
 {
     AllowedInstructions = instructions;
     MinimumTokenLength = instructions.Min(d => d.Key.Length);
 }
Beispiel #7
0
        /* Reads in the list of known Global Collision Type values
         */
        private void loadGlobalCLPSTypes()
        {
            GLOBAL_CLPS_TYPES = new BiDictionaryOneToOne<string, byte[]>(new ByteArrayComparer());
            string entryName = "";
            byte[] entryValue = new byte[8];
            int valueCount = 0;

            // Create an XML reader for this file.
            using (XmlReader reader = XmlReader.Create(Path.Combine(Application.StartupPath, "CLPS_Types.xml")))
            {
                reader.MoveToContent();

                while (reader.Read())
                {
                    if (reader.NodeType.Equals(XmlNodeType.Element))
                    {
                        switch (reader.LocalName)
                        {
                            case "Entry":
                                entryName = reader.GetAttribute("name");
                                break;
                            case "Value":
                                entryValue = new byte[8];
                                valueCount = 0;
                                break;
                            case "Byte":
                                entryValue[valueCount] = Byte.Parse(reader.ReadElementContentAsString());
                                valueCount++;
                                break;
                        }
                    }
                    else if (reader.NodeType.Equals(XmlNodeType.EndElement))
                    {
                        switch (reader.LocalName)
                        {
                            case "Entry":
                                GLOBAL_CLPS_TYPES.Add(entryName, entryValue);
                                break;
                        }
                    }
                }
            }
        }