public static GameEventArgs Create <T>(Game.GameEvents name, T value)
        {
            GameEventArgs eventArgs = new GameEventArgs(name);

            eventArgs.Add(value);
            return(eventArgs);
        }
        public void RaiseGameEvent <T>(Game.GameEvents eventName, object sender, T arg0)
        {
            GameEventArgs e = GameEventArgs.Create(eventName, arg0);

            RaiseGameEvent(e, sender);
        }
 public void RaiseGameEvent(Game.GameEvents eventName, object sender)
 {
     RaiseGameEvent(new GameEventArgs(eventName), sender);
 }
 public void RaiseGameEvent(Game.GameEvents eventName)
 {
     RaiseGameEvent(eventName, this);
 }
 public GameEventArgs(Game.GameEvents name, float value)
 {
     Name = name;
     Args.Add(value);
 }
        //------------------------------------------------------------------------------
        // Public Functions:
        //------------------------------------------------------------------------------

        public GameEventArgs(Game.GameEvents name)
        {
            Name = name;
        }
 public void AddEventHandler(Game.GameEvents eventType, GameEventHandler handler)
 {
     EventHandlers[eventType] = handler;
 }