Essgee.Unity/Assets/Plugins/Essgee/EventArguments/PollInputEventArgs.cs

54 lines
1.7 KiB
C#
Raw Normal View History

2025-01-02 17:55:16 +08:00
using Essgee.Utilities.XInput;
using System;
using System.Collections.Generic;
namespace Essgee.EventArguments
{
public class PollInputEventArgs : EventArgs
{
2025-02-05 13:13:19 +08:00
public List<EssgeeMotionKey> Keyboard { get; set; }
2025-01-02 17:55:16 +08:00
public MouseButtons MouseButtons { get; set; }
public (int X, int Y) MousePosition { get; set; }
2025-01-02 17:55:16 +08:00
//public ControllerState ControllerState { get; set; }
2025-01-02 17:55:16 +08:00
//public PollInputEventArgs()
//{
// Keyboard = new List<MotionKey>();
2025-01-02 17:55:16 +08:00
// MouseButtons = MouseButtons.None;
// MousePosition = (0, 0);
2025-01-02 17:55:16 +08:00
// ControllerState = new ControllerState();
//}
public static PollInputEventArgs Create()
{
var eventArgs = ObjectPoolAuto.Acquire<PollInputEventArgs>();
//eventArgs.Keyboard = new List<MotionKey>();
2025-02-05 13:13:19 +08:00
eventArgs.Keyboard = ObjectPoolAuto.AcquireList<EssgeeMotionKey>();
eventArgs.MouseButtons = MouseButtons.None;
eventArgs.MousePosition = (0, 0);
//eventArgs.ControllerState = new ControllerState();
//eventArgs.ControllerState = ObjectPoolAuto.Acquire<ControllerState>();
return eventArgs;
}
}
public static class PollInputEventArgsEx
{
public static void Release(this PollInputEventArgs eventArgs)
{
ObjectPoolAuto.Release(eventArgs.Keyboard);
eventArgs.Keyboard = null;
eventArgs.MouseButtons = MouseButtons.None;
eventArgs.MousePosition = (0, 0);
//ObjectPoolAuto.Release(eventArgs.ControllerState);
//eventArgs.ControllerState = null;
ObjectPoolAuto.Release(eventArgs);
}
}
2025-01-02 17:55:16 +08:00
}