using MonoGame.FourEngine.Services;
using System;

namespace MonoGame.FourEngine
{
    public class UpdateEventArgs : EventArgs
    {
        public Scene Scene { get; set; }
        public IPointerControl Pointer { get; set; }
        public IKeyboardControl Keyboard { get; set; }
        public IGamePadControl GamePad { get; set; }
        public TimeSpan DeltaTime { get; set; }

        public UpdateEventArgs(Scene scene, IPointerControl pointer, IKeyboardControl keyboard, IGamePadControl gamePad, TimeSpan deltaTime) 
        {
            Scene = scene;
            Pointer = pointer;
            Keyboard = keyboard;
            GamePad = gamePad;
            DeltaTime = deltaTime;
        }

        public UpdateEventArgs Clone()
            => new UpdateEventArgs(
                Scene,
                Pointer,
                Keyboard,
                GamePad,
                DeltaTime);
    }
}