/* using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; using BITKit.BITInputSystem; using BITKit.Entities; using BITKit; namespace BITKit.SubSystems.Input { [SubSystemConfig(isMainThread = true)] public class EntityInputSystem : SubBITSystem, BITController.IGameplayActions { ValidHandle enabled = new(); Entity entity; bool cursorLocked; public override void OnStart() { enabled.AddListener(x => { if (x) { RegisterCallback(); } else { UnRegisterCallback(); } }); } public void RegisterCallback() { Data.AddListener(nameof(OnMovement), OnMovement); Data.AddListener(nameof(OnView), OnView); Data.AddListener(nameof(OnJump), OnJump); Data.AddListener(nameof(OnCrouch), OnCrouch); Data.AddListener(nameof(OnHoldCrouch), OnHoldCrouch); Data.AddListener(nameof(OnFire), OnFire); Data.AddListener(nameof(OnAim), OnAim); Data.AddListener(nameof(OnInteractive), OnInteractive); Data.AddListener(nameof(OnAbility), OnAbility); Data.AddListener(nameof(OnMelee), OnMelee); Data.AddListener(nameof(OnRun), OnRun); Data.AddListener(nameof(OnRunHold), OnRunHold); Data.AddListener(nameof(OnReload), OnReload); Data.AddListener(nameof(OnPrimary), OnPrimary); Data.AddListener(nameof(OnSecondary), OnSecondary); Data.AddListener(nameof(OnTertiary), OnTertiary); Data.AddListener(nameof(OnQuaternary), OnQuaternary); Data.AddListener(nameof(OnQuinary), OnQuinary); Data.AddListener(nameof(OnSenary), OnSenary); Data.AddListener(nameof(OnSeptenary), OnSeptenary); Data.AddListener(nameof(OnOctonary), OnOctonary); Data.AddListener(nameof(OnNonary), OnNonary); Data.AddListener(nameof(OnDenary), OnDenary); } public void UnRegisterCallback() { Data.RemoveListender(nameof(OnMovement), OnMovement); Data.RemoveListender(nameof(OnView), OnView); Data.RemoveListender(nameof(OnJump), OnJump); Data.RemoveListender(nameof(OnCrouch), OnCrouch); Data.RemoveListender(nameof(OnHoldCrouch), OnHoldCrouch); Data.RemoveListender(nameof(OnFire), OnFire); Data.RemoveListender(nameof(OnAim), OnAim); Data.RemoveListender(nameof(OnInteractive), OnInteractive); Data.RemoveListender(nameof(OnMelee), OnMelee); Data.RemoveListender(nameof(OnAbility), OnAbility); Data.RemoveListender(nameof(OnRunHold), OnRunHold); Data.RemoveListender(nameof(OnReload), OnReload); Data.RemoveListender(nameof(OnPrimary), OnPrimary); Data.RemoveListender(nameof(OnSecondary), OnSecondary); Data.RemoveListender(nameof(OnTertiary), OnTertiary); Data.RemoveListender(nameof(OnQuaternary), OnQuaternary); Data.RemoveListender(nameof(OnQuinary), OnQuinary); Data.RemoveListender(nameof(OnSenary), OnSenary); Data.RemoveListender(nameof(OnSeptenary), OnSeptenary); Data.RemoveListender(nameof(OnOctonary), OnOctonary); Data.RemoveListender(nameof(OnNonary), OnNonary); Data.RemoveListender(nameof(OnDenary), OnDenary); } public override void OnUpdate(float deltaTime) { entity = IEntity.LocalPlayer; enabled.SetElements(this.entity is not null); cursorLocked = Cursor.lockState is CursorLockMode.Locked; } public virtual void OnMovement(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnMovement), context); } public virtual void OnView(InputAction.CallbackContext context) { if (cursorLocked) entity?.Invoke(nameof(OnView), context); } public virtual void OnJump(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnJump), context); } public virtual void OnCrouch(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnCrouch), context); } public virtual void OnHoldCrouch(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnHoldCrouch), context); } public virtual void OnFire(InputAction.CallbackContext context) { if (cursorLocked) entity?.Invoke(nameof(OnFire), context); } public virtual void OnAim(InputAction.CallbackContext context) { if (cursorLocked) entity?.Invoke(nameof(OnAim), context); } public virtual void OnInteractive(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnInteractive), context); } public virtual void OnAbility(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnAbility), context); } public virtual void OnMelee(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnMelee), context); } public virtual void OnRun(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnRun), context); } public virtual void OnRunHold(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnRunHold), context); } public virtual void OnReload(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnReload), context); } public virtual void OnPrimary(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnPrimary), context); } public virtual void OnSecondary(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnSecondary), context); } public virtual void OnTertiary(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnTertiary), context); } public virtual void OnQuaternary(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnQuaternary), context); } public virtual void OnQuinary(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnQuinary), context); } public virtual void OnSenary(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnSenary), context); } public virtual void OnSeptenary(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnSeptenary), context); } public virtual void OnOctonary(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnOctonary), context); } public virtual void OnNonary(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnNonary), context); } public virtual void OnDenary(InputAction.CallbackContext context) { entity?.Invoke(nameof(OnDenary), context); } } } */