Frame/Assets/Scripts/Procedure/Logic/GameSceneLogicProcedure.cs

60 lines
2.2 KiB
C#

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<WayPoint>();
// 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<RoomInfo>();
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);
}
}
}