Beispiel #1
0
 protected bool IsOnScreen(Point topLeft)
 {
     return(ToolManager.IsOnScreen(topLeft));
 }
        public MovieZone(IMovie movie, IEmulator emulator, ToolManager tools, IMovieSession movieSession, int start, int length, string key = "")
        {
            _emulator     = emulator;
            _tools        = tools;
            _movieSession = movieSession;
            var lg = movie.LogGeneratorInstance(movieSession.MovieController);

            _targetController = movieSession.GenerateMovieController();
            _targetController.SetFrom(_targetController);             // Reference and create all buttons

            if (key == "")
            {
                key = lg.GenerateLogKey();
            }

            key = key.Replace("LogKey:", "").Replace("#", "");
            key = key.Substring(0, key.Length - 1);

            _inputKey = key;
            Length    = length;
            _log      = new string[length];

            // Get a IController that only contains buttons in key.
            string[] keys = key.Split('|');
            var      d    = new ControllerDefinition();

            foreach (var k in keys)
            {
                if (_emulator.ControllerDefinition.BoolButtons.Contains(k))
                {
                    d.BoolButtons.Add(k);
                }
                else
                {
                    d.Axes.Add(k, _emulator.ControllerDefinition.Axes[k]);
                }
            }

            _controller = movieSession.GenerateMovieController(d);
            var logGenerator = movieSession.Movie.LogGeneratorInstance(_controller);

            logGenerator.GenerateLogEntry();             // Reference and create all buttons.

            string movieKey = logGenerator.GenerateLogKey().Replace("LogKey:", "").Replace("#", "");

            movieKey = movieKey.Substring(0, movieKey.Length - 1);
            if (key == movieKey)
            {
                for (int i = 0; i < length; i++)
                {
                    _log[i] = movie.GetInputLogEntry(i + start);
                }
            }
            else
            {
                for (int i = 0; i < length; i++)
                {
                    _controller.SetFrom(movie.GetInputState(i + start));
                    _log[i] = logGenerator.GenerateLogEntry();
                }
            }
        }
Beispiel #3
0
        public IEnumerable <Type> AvailableTools => _toolManager.AvailableTools.ToList();        // defensive copy in case ToolManager's implementation changes

        public ToolApi(ToolManager toolManager) => _toolManager = toolManager;
Beispiel #4
0
        public MovieZone(IMovie movie, IEmulator emulator, ToolManager tools, int start, int length, string key = "")
        {
            _emulator = emulator;
            _tools    = tools;
            var lg = movie.LogGeneratorInstance();

            lg.SetSource(Global.MovieSession.MovieControllerAdapter);
            _targetController = new Bk2ControllerAdapter {
                Definition = _emulator.ControllerDefinition
            };
            _targetController.LatchFromSource(_targetController);             // Reference and create all buttons

            if (key == "")
            {
                key = lg.GenerateLogKey();
            }

            key = key.Replace("LogKey:", "").Replace("#", "");
            key = key.Substring(0, key.Length - 1);

            _inputKey = key;
            Length    = length;
            _log      = new string[length];

            // Get a IController that only contains buttons in key.
            string[] keys = key.Split('|');
            var      d    = new ControllerDefinition();

            foreach (var k in keys)
            {
                if (_emulator.ControllerDefinition.BoolButtons.Contains(k))
                {
                    d.BoolButtons.Add(k);
                }
                else
                {
                    d.FloatControls.Add(k);
                    int rangeIndex = _emulator.ControllerDefinition.FloatControls.IndexOf(k);
                    d.FloatRanges.Add(_emulator.ControllerDefinition.FloatRanges[rangeIndex]);
                }
            }

            _controller = new Bk2ControllerAdapter {
                Definition = d
            };
            var logGenerator = new Bk2LogEntryGenerator("");

            logGenerator.SetSource(_controller);
            logGenerator.GenerateLogEntry();             // Reference and create all buttons.

            string movieKey = logGenerator.GenerateLogKey().Replace("LogKey:", "").Replace("#", "");

            movieKey = movieKey.Substring(0, movieKey.Length - 1);
            if (key == movieKey)
            {
                for (int i = 0; i < length; i++)
                {
                    _log[i] = movie.GetInputLogEntry(i + start);
                }
            }
            else
            {
                for (int i = 0; i < length; i++)
                {
                    _controller.LatchFromSource(movie.GetInputState(i + start));
                    _log[i] = logGenerator.GenerateLogEntry();
                }
            }
        }