Example #1
0
    public FloorNode GetNode(Vector2Int CurrentPosition, FloorNode.CardinalNodeDirections TargetDirection)
    {
        Vector2Int FinalPosition = new Vector2Int(CurrentPosition.x + m_CardinalPositions[TargetDirection].x,
                                                  CurrentPosition.y + m_CardinalPositions[TargetDirection].y);

        int FinalIndex = m_FloorCore.GetIndex(FinalPosition.x, FinalPosition.y);

        Debug.Log("Current position " + CurrentPosition + " TargetDirection " + m_CardinalPositions[TargetDirection] + " Final index: " + FinalIndex
                  + " Final Position: " + FinalPosition);

        return(m_FloorNodes[FinalIndex]);
    }
Example #2
0
    public void RotatePlayer(int aRotateDirection)
    {
        //Inverting Direction
        int direction = aRotateDirection * -1;

        CurrentDirectionValue += direction;

        CheckMinAndMax();

        CurrentDirection = CardinalDirections[CurrentDirectionValue];

        Vector3 NewRotation = m_DirectionRotations[CurrentDirection];

        StartCoroutine(InterpolateRotationSmooth(transform, NewRotation, 0.9f));
    }
Example #3
0
    public void Initialize()
    {
        CardinalDirections = new []
        {
            FloorNode.CardinalNodeDirections.Up, FloorNode.CardinalNodeDirections.Left,
            FloorNode.CardinalNodeDirections.Down, FloorNode.CardinalNodeDirections.Right
        };

        m_DirectionRotations = new Dictionary <FloorNode.CardinalNodeDirections, Vector3>();

        m_DirectionRotations.Add(FloorNode.CardinalNodeDirections.Down, new Vector3(0, 90, 0));
        m_DirectionRotations.Add(FloorNode.CardinalNodeDirections.Left, new Vector3(0, 180, 0));
        m_DirectionRotations.Add(FloorNode.CardinalNodeDirections.Up, new Vector3(0, 270, 0));
        m_DirectionRotations.Add(FloorNode.CardinalNodeDirections.Right, new Vector3(0, 360, 0));
        CurrentDirectionValue = 0;

        CurrentDirection = CardinalDirections[CurrentDirectionValue];
        StartCoroutine(InterpolateRotationSmooth(transform, m_DirectionRotations[CurrentDirection], 0.0f));

        InputManager.Instance.m_MovementControls.Player.Movement.performed += movement => PlayerMovement(movement.ReadValue <Vector2>());
    }