public void Run(string pluginDir) { Chat.WriteLine("InfBuddy Loaded!"); try { Config = Config.Load($"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\\AOSharp\\InfBuddy\\Config.json"); ActiveGlobalSettings = Config.GlobalSettings; _stateMachine = new StateMachine(new IdleState()); NavMeshMovementController = new NavMeshMovementController($"{pluginDir}\\NavMeshes", true); MovementController.Set(NavMeshMovementController); Chat.RegisterCommand("infbuddy", InfbuddyCommand); IPCChannel = new IPCChannel(10); IPCChannel.RegisterCallback((int)IPCOpcode.Start, OnStartMessage); IPCChannel.RegisterCallback((int)IPCOpcode.Stop, OnStopMessage); NpcDialog.AnswerListChanged += NpcDialog_AnswerListChanged; Team.TeamRequest += OnTeamRequest; Game.OnUpdate += OnUpdate; } catch (Exception e) { Chat.WriteLine(e.Message); } }
protected void SetupMovementController() { if (this.movementController == null) { this.movementController = this.GetComponent <ActorMovementController>(); } if (this.movementController != null) { this.movementController.ResetMovement(); NavMeshMovementController navController = this.movementController as NavMeshMovementController; if (navController != null) { navController.MovementSpeed = this.runSpeed; navController.TurningSpeed = this.turningSpeed; } } }
public void SetPlayerCotrollerStatus(bool userControlled) { if (userControlled) { userMovementController = gameObject.AddComponent <UserMovementController>(); userMovementController.moveSpeed = speed; userMovementController.movementEnabled = false; } else { agent = gameObject.AddComponent <NavMeshAgent>(); agent.speed = speed; navMeshMovementController = gameObject.AddComponent <NavMeshMovementController>(); navMeshMovementController.movementEnabled = false; } playerControlled = userControlled; }
private void Stop() { Running = false; _stateMachine.SetState(new IdleState()); NavMeshMovementController.Halt(); }