/// <summary> /// Initializes base class and registers to collision handler update events /// </summary> /// <param name="handler">the movement handler of any movement state</param> protected override void Initialize(StateMovementHandler handler) { base.Initialize(handler); //Collision Handler events RegisterCollisonHandlerStartStateUpdate(); RegisterCollisionHandlerGroundedStateUpdate(); }
public MovementState(uint id, string name, MovementStateMachine stateMachine) : base(id, name) { this.StateMachine = stateMachine; movementOptions = new List <EntityMovementOption>(); transitions = new List <Transition>(); requestPriorityMapping = new Dictionary <TransitionRequest, int>(); minPriorityValue = 0; MovementHandler = new StateMovementHandler(this, stateMachine.Player); isInitialized = false; }
/// <summary> /// Validates and calls base initialize /// </summary> /// <param name="handler">The handler responsible in this state of the state machine</param> protected override void Initialize(StateMovementHandler handler) { base.Initialize(handler); Validate(); }
/// <summary> /// Unregisters an action to the handlers update event /// </summary> /// <param name="handler">a states movement handler</param> /// <param name="updateAction">the action that will be registerd</param> protected void UnregisterUpdateCall(StateMovementHandler handler, Action updateAction) { handler.OnUpdate -= updateAction; }
/// <summary> /// Initialize the component /// call base.Initialize() if you don't register /// update and fixed update call on your own /// </summary> protected abstract void Initialize(StateMovementHandler handler);
/// <summary> /// Initializes movemnet optio for a states movement handler /// calls Initialize implemented by classes inheriting from base /// </summary> /// <param name="handler">a states movement handler</param> public void Init(StateMovementHandler handler) { EntiyMovementStateMachine = GetComponent <MovementStateMachine>(); Initialize(handler); }
/// <summary> /// Unregisters an action to the handlers update event /// </summary> /// <param name="handler">a states movement handler</param> /// <param name="fixedUpdateAction">the action that will be registerd</param> protected void UnregisterFixedUpdateCall(StateMovementHandler handler, Action fixedUpdateAction) { handler.OnFixedUpdate -= fixedUpdateAction; }
/// <summary> /// registers everything to the correct handler events /// </summary> /// <param name="handler">a states movement handler</param> protected override void Initialize(StateMovementHandler handler) { Register(handler); }
/// <summary> /// unregister update and fixed update procedurees from the handlers events /// </summary> /// <param name="handler">a states movement handler</param> void Unregister(StateMovementHandler handler) { UnregisterFixedUpdateCall(handler, FixedUpdateProcedure); UnregisterUpdateCall(handler, UpdateProcedure); }
/// <summary> /// registers fixed update procedure to fixed update event, and update to the update event, making sure nothing double registers /// </summary> /// <param name="handler">a states movement handler</param> void Register(StateMovementHandler handler) { Unregister(handler);//don't double register RegisterUpdateCall(handler, UpdateProcedure); RegisterFixedUpdateCall(handler, FixedUpdateProcedure); }