public void RegisterReplay(InstantReplay replay)
 {
     if (replay.map != map)
     {
         Log.Error("[Trailblazer] Tried to register a replay from a different map");
     }
     else
     {
         if (DebugViewSettings.drawPaths)
         {
             replays.Add(new ReplayDrawer(replay));
         }
     }
 }
            internal ReplayDrawer(InstantReplay replay)
            {
                this.replay = replay;
                color       = colors[colorIndex % colors.Length];
                colorIndex++;
                frame         = 0;
                framesPerTick = Math.Max(replay.frames.Count / finishWithinTicks, 5);

                ReplayFrame firstFrame = replay.frames[0];

                frameCells = firstFrame.cells;
                frameLines = firstFrame.lines;

                ICellBoolGiver oldCellGiver = new ReplayCellBoolGiver(cells.Contains, color);

                oldCellDrawer = new CellBoolDrawer(oldCellGiver, replay.map.Size.x, replay.map.Size.z, 0.10f);

                ICellBoolGiver frameCellGiver = new ReplayCellBoolGiver(c => frameCells.Contains(c), color);

                frameCellDrawer = new CellBoolDrawer(frameCellGiver, replay.map.Size.x, replay.map.Size.z, 0.66f);
            }