using System.Collections.Generic; using Game.Pathfinding; using JetBrains.Annotations; using UnityEngine; using System.Linq; using System.Threading; using Cysharp.Threading.Tasks; using Game.RayCast; using Game.Room; namespace Game { [Procedure(ProcedureType.GameSceneLogicProcedure)] class GameSceneLogicProcedure : ProcedureBase { public override void OnEnter() { base.OnEnter(); EventManager.Instance.Subscribe(InputObjectFinishEventArgs.EventId, InputObjectFinishEvent); // EventManager.Instance.Subscribe(PlayerMoveToRoomEventArgs.EventId, PlayerMoveToRoomEvent); // UniTask.Create(async () => // { // await ResourceManager.Instance.LoadSceneAsync(SceneType.Game.ToString()); // EventManager.Instance.FireNow(this,new LoadingGameSceneFinishEventArgs(true)); // }); // player.MoveAsync() // var findPath = Game.bfsManager.FindPath(new Vector2(-29f, -16.5f), new Vector3(-15.8f, 44.3f)); // var wayPoints = new List(); // findPath.GetDatas(wayPoints); // Debug.Log($"Indices:{string.Join(',',findPath.GetNodes().Select(x=> x.index))}"); // Debug.Log($"Positions:{string.Join(',',findPath.GetNodes().Select(x=> x.data.position))}"); } // private void PlayerMoveToRoomEvent(object sender, GameEventArgs e) // { // var args = e as PlayerMoveToRoomEventArgs; // } private void InputObjectFinishEvent(object sender, GameEventArgs e) { var args = e as InputObjectFinishEventArgs; var inputData = args.data as MouseInputData; var roomInfo = inputData.go.GetComponent(); UniTask.Create(async () => { await Game.roomManager.JoinRoomAsync(roomInfo.roomType, Game.playerManager.currentPlayer, new CancellationToken()); }); } public override void OnLeave() { base.OnLeave(); // UIManager.Instance.ShowUI(UIType.GameSceneMainUI); // ProcedureManager.Instance.ChangeProcedure(ProcedureType.GameSceneLogicProcedure); } } }