protected override void AwakeOverride()
        {
            m_weight = GameConstants.MinVoxelActorWeight;

            m_animationState = VoxelActorState.Idle;
            m_movementState  = new NormalMovementState(this);

            RoundStomicRotation();
        }
        private void OnAnimatorStateEnter(AnimatorStateInfo stateInfo)
        {
            if (stateInfo.IsName("Wait"))
            {
                if (m_animationState == VoxelActorState.Move1X)
                {
                    m_isFlipped = !m_isFlipped;
                    OnFlipped(m_isFlipped);

                    RoundRotation();
                    RoundPosition();
                    RoundStomicRotation();

                    RaiseMoveCompleted(m_startTick);
                    ExecuteNextAction();
                }
                else if ((m_animationState & VoxelActorState.Rotate) != 0)
                {
                    RoundRotation();
                    RoundPosition();

                    RaiseRotateCompleted(m_startTick);
                    ExecuteNextAction();
                }
                else if ((m_animationState & VoxelActorState.Resize) != 0)
                {
                    if (m_animationState == VoxelActorState.Grow)
                    {
                        Weight++;
                        Height *= 2;
                    }
                    else
                    {
                        Weight--;
                        Height /= 2;
                    }

                    RoundRotation();
                    RoundPosition();

                    RaiseResizeCompleted(m_startTick);
                    ExecuteNextAction();
                }

                m_animationState = VoxelActorState.Idle;
            }
            else if (stateInfo.IsName("RotateLeft"))
            {
                m_animationState = VoxelActorState.RotateLeft;
            }
            else if (stateInfo.IsName("RotateRight"))
            {
                m_animationState = VoxelActorState.RotateRight;
            }
            else if (stateInfo.IsName("Grow"))
            {
                m_animationState = VoxelActorState.Grow;
            }
            else if (stateInfo.IsName("Diminish"))
            {
                m_animationState = VoxelActorState.Diminish;
            }
            else if (stateInfo.IsName("Move"))
            {
                if (m_animationState == VoxelActorState.Move2X)
                {
                    OnMoveCompleted();
                }
                m_animationState = VoxelActorState.Move1X;
            }
            else if (stateInfo.IsName("MoveFast"))
            {
                if (m_animationState == VoxelActorState.Move1X)
                {
                    OnMoveCompleted();
                }

                m_animationState = VoxelActorState.Move2X;
            }
        }