Esempio n. 1
0
 internal ModuleDataContainer(string tag, ModuleData data, ModuleInheritanceMode inheritanceMode, bool inherited)
 {
     Tag             = tag;
     Data            = data;
     InheritanceMode = inheritanceMode;
     Inherited       = inherited;
 }
Esempio n. 2
0
 internal static ModuleDataContainer ParseBody(IniParser parser, ModuleInheritanceMode inheritanceMode) => ParseModule(parser, BodyParseTable, inheritanceMode);
Esempio n. 3
0
 internal static ModuleDataContainer ParseClientUpdate(IniParser parser, ModuleInheritanceMode inheritanceMode) => ParseModule(parser, ClientUpdateParseTable, inheritanceMode);
Esempio n. 4
0
 internal static ModuleDataContainer ParseDrawModule(IniParser parser, ModuleInheritanceMode inheritanceMode) => ParseModule(parser, DrawModuleParseTable, inheritanceMode);
Esempio n. 5
0
        internal static ModuleDataContainer ParseModule <T>(IniParser parser, Dictionary <string, Func <IniParser, T> > moduleParseTable, ModuleInheritanceMode inheritanceMode)
            where T : ModuleData
        {
            var moduleType = parser.GetNextToken();
            var tag        = parser.GetNextToken();

            if (!moduleParseTable.TryGetValue(moduleType.Text, out var moduleParser))
            {
                throw new IniParseException($"Unknown module type: {moduleType.Text}", moduleType.Position);
            }

            var result = moduleParser(parser);

            return(new ModuleDataContainer(tag.Text, result, inheritanceMode, false));
        }