|
|
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
-
- /// <summary>
- /// Logic block which deals with moving a character in a direction
- /// </summary>
- [CreateAssetMenu(menuName = "Major Project/RotateHalf Block")]
- [System.Serializable]
- public class RotateHalf : LogicBlock
- {
- #region Inspector Fields
- [SerializeField]
- [Header("Rotate Settings")]
- [Tooltip("Direction to rotate in")]
- protected Direction direction;
- #endregion Inspector Fields
-
-
- #region Class Functions
-
- /// <summary>
- /// Rotates the player in the direction specified by this block
- /// </summary>
- /// <param name="player">Player to rotate</param>
- protected override IEnumerator BlockLogic(Character player, float animationTime, bool useBlockDirection = false)
- {
- player.RotateHalf(direction, animationTime);
- yield break;
- }
-
- /// <summary>
- /// Returns the block that the character will endUp on after they use this logic element
- /// </summary>
- /// <param name="startBlock">block character is on</param>
- /// <param name="layerMask">layers to ignore</param>
- /// <returns>block which character will finish on after performing this function </returns>
- public override Block GetEndBlock(Block startBlock, Transform transform, LayerMask layerMask)
- {
- //no movement when rotating
- return startBlock;
- }
-
- public override void CopyToken(BlockToken token)
- {
- base.CopyToken(token);
- direction = ((DirectionToken)token).direction;
- }
-
- public override BlockToken ToToken(BlockToken token = null)
- {
- if (token == null)
- token = new DirectionToken(this);
-
- DirectionToken retVal = (DirectionToken)base.ToToken(token);
- retVal.direction = direction;
-
- return retVal;
- }
-
- #endregion Class Functions
- }
|