public void StartMachine(Type startState = null) { if (startState == null) { startState = Type.GetType(StartingState); } startingStateDriver = StateDriver.For(startState); startingStateDriver.StartMachine(this); }
//------------------------------------------------------------------------- // Helper Methods //------------------------------------------------------------------------- /// <summary> /// Get the state driver for the current state. /// </summary> /// <param name="pose">The pose clip.</param> /// <returns>The state driver for the current state.</returns> private StateDriver GetDriver(PoseInfo pose) { if (pose == null || pose.State == null) { return(null); } if (!stateDrivers.ContainsKey(pose.State)) { stateDrivers.Add(pose.State, StateDriver.For(pose.State)); } return(stateDrivers[pose.State]); }
/// <summary> /// Constructor. /// </summary> /// <param name="player">The player character.</param> public PlayerSnapshot(PlayerCharacter player) { if (player != null) { driver = StateDriver.For(player.FSM.CurrentState); position = player.transform.position; rotation = player.transform.eulerAngles; scale = player.transform.localScale; facing = player.Facing; active = player.gameObject.activeSelf; sprite = player.Sprite.sprite; colliderSize = player.Collider.size; colliderOffset = player.Collider.offset; } }
//------------------------------------------------------------------------- // Auto Node API //------------------------------------------------------------------------- public override void Handle(GraphEngine graphEngine) { if (State != null) { Type t = Type.GetType(State); if (t != null) { StateDriver driver = StateDriver.For(State); if (!driver.IsInState(GameManager.Player.FSM)) { driver.ForceStateChangeOn(player.FSM); } } } }