示例#1
0
        public void Compile()
        {
            using (var stream = Manifest.OpenText())
            {
                string line = null;
                while ((line = stream.ReadLine()) != null)
                {
                    var splitLine = line.Split(',');
                    var tileType  = splitLine[0];

                    if (tileType == _tileType_monster)
                    {
                        MonsterCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_object)
                    {
                        ObjectCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_artifact)
                    {
                        ArtifactCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_cmap)
                    {
                        CmapCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_misc)
                    {
                        MiscCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_player)
                    {
                        PlayerCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_cmap_variation)
                    {
                        CmapVariationCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_UI)
                    {
                        UICompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_animation)
                    {
                        AnimationCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_enlargement)
                    {
                        EnlargementCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_replacement)
                    {
                        ReplacementCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_broken_cmap)
                    {
                        BrokenCmapCompiler.CompileOne(splitLine);
                    }
                    else if (tileType == _tileType_broken_cmap_variation)
                    {
                        BrokenCmapVariationCompiler.CompileOne(splitLine);
                    }
                    else
                    {
                        throw new Exception(string.Format("Unknown tile type '{0}' in line '{1}'.", tileType, line));
                    }
                }

                // Close Manifest Steram
                stream.Close();
            }
        }