コード例 #1
0
ファイル: GameUnitsStats.cs プロジェクト: youmery/longomatch
 public GameUnitsStats(GameUnitsList guList, int duration)
 {
     game = new TimelineNode {
         Start = new Time(0), Stop = new Time(duration)
     };
     gameNode      = new GameUnitStatsNode(game);
     gameUnitNodes = new Dictionary <GameUnit, GameUnitStatsNode>();
     GroupGameStats(guList);
 }
コード例 #2
0
ファイル: GameUnitsStats.cs プロジェクト: youmery/longomatch
        void FindParent(GameUnitStatsNode node, List <GameUnitStatsNode> parents)
        {
            List <GameUnitStatsNode> candidates = parents.Where(p => Contained(node.Node, p.Node)).ToList();

            if (candidates.Count != 1)
            {
                Log.Warning(String.Format("Found {0} candidates for node {1}", candidates.Count, node));
            }

            foreach (GameUnitStatsNode parent in candidates)
            {
                parent.Add(node);
            }
        }
コード例 #3
0
ファイル: GameUnitsStats.cs プロジェクト: youmery/longomatch
        void GroupGameStats(GameUnitsList guList)
        {
            List <GameUnitStatsNode> parents = new List <GameUnitStatsNode>();

            parents.Add(gameNode);

            foreach (GameUnit gu in guList)
            {
                List <GameUnitStatsNode> nextParents = new List <GameUnitStatsNode>();
                foreach (TimelineNode tn in gu)
                {
                    GameUnitStatsNode node = new GameUnitStatsNode(tn);
                    nextParents.Add(node);
                    FindParent(node, parents);
                }
                gameUnitNodes.Add(gu, new GameUnitStatsNode(game, nextParents));
                parents = nextParents;
            }
        }