Example #1
0
        private StoryDebugInfo FromProtobuf(StoryDebugInfoMsg msg)
        {
            var debugInfo = new StoryDebugInfo();

            debugInfo.Version = msg.Version;

            foreach (var dbMsg in msg.Databases)
            {
                var db = FromProtobuf(dbMsg);
                debugInfo.Databases.Add(db.Id, db);
            }

            foreach (var goalMsg in msg.Goals)
            {
                var goal = FromProtobuf(goalMsg);
                debugInfo.Goals.Add(goal.Id, goal);
            }

            foreach (var ruleMsg in msg.Rules)
            {
                var rule = FromProtobuf(ruleMsg);
                debugInfo.Rules.Add(rule.Id, rule);
            }

            foreach (var nodeMsg in msg.Nodes)
            {
                var node = FromProtobuf(nodeMsg);
                debugInfo.Nodes.Add(node.Id, node);
            }

            foreach (var funcMsg in msg.Functions)
            {
                var func = FromProtobuf(funcMsg);
                debugInfo.Functions.Add(new FunctionNameAndArity(func.Name, func.Params.Count), func);
            }

            return(debugInfo);
        }
        private StoryDebugInfoMsg ToProtobuf(StoryDebugInfo debugInfo)
        {
            var msg = new StoryDebugInfoMsg();

            msg.Version = debugInfo.Version;

            foreach (var db in debugInfo.Databases)
            {
                var dbMsg = ToProtobuf(db.Value);
                msg.Databases.Add(dbMsg);
            }

            foreach (var goal in debugInfo.Goals)
            {
                var goalMsg = ToProtobuf(goal.Value);
                msg.Goals.Add(goalMsg);
            }

            foreach (var rule in debugInfo.Rules)
            {
                var ruleMsg = ToProtobuf(rule.Value);
                msg.Rules.Add(ruleMsg);
            }

            foreach (var node in debugInfo.Nodes)
            {
                var nodeMsg = ToProtobuf(node.Value);
                msg.Nodes.Add(nodeMsg);
            }

            foreach (var func in debugInfo.Functions)
            {
                var funcMsg = ToProtobuf(func.Value);
                msg.Functions.Add(funcMsg);
            }

            return(msg);
        }