using System.Collections; using System.Collections.Generic; using Animancer; using BITKit; using BITKit.Entities; using BITKit.StateMachine; using Cysharp.Threading.Tasks; using UnityEngine; // ReSharper disable UnassignedField.Global namespace BITFALL.Entities.Equipment { public abstract class BasicWeaponController:MonoBehaviour , IEquipBase { [SerializeField] internal ScriptableItem scriptableItem; [SerializeField] internal AnimancerComponent animancerComponent; [SerializeField] internal Renderer[] renderers; [Inject] protected InputActionGroup inputActionGroup; public virtual bool IsEntered { get; set; } public virtual void Entry() { foreach (var x in renderers) { x.enabled = true; } } public virtual UniTask EntryAsync() { return UniTask.CompletedTask; } public virtual void Entered() { } public virtual void Exit() { } public virtual UniTask ExitAsync() { return UniTask.CompletedTask; } public virtual void Exited() { foreach (var x in renderers) { x.enabled = false; } animancerComponent.Stop(); } public virtual void OnAwake() { foreach (var x in renderers) { x.enabled = false; } } public virtual void OnStart() { } public virtual void OnUpdate(float deltaTime) { } public virtual string AddressablePath => scriptableItem.AddressablePath; public virtual IEntity Entity { get; set; } public virtual IBasicItem Item { get; set; } public virtual bool IsSupportItem(IBasicItem item)=>item is not null && item.AddressablePath == AddressablePath; public virtual void PlayAudio(string audioName) { } } }