Exemple #1
0
    public void UpdateMap(int frame)
    {
        if (controlsScript == null)
        {
            return;
        }
        if (animationMaps == null && controlsScript.myInfo.useAnimationMaps)
        {
            Debug.LogError("Animation '" + moveSetScript.GetCurrentClipName() + "' has no animation maps");
            return;
        }
        if (controlsScript.myInfo.useAnimationMaps)
        {
            HitBoxMap[] hitBoxMaps   = new HitBoxMap[0];
            int         highestFrame = 0;
            foreach (AnimationMap map in animationMaps)
            {
                if (map.frame > highestFrame)
                {
                    highestFrame = map.frame;
                }
                if (map.frame == frame)
                {
                    hitBoxMaps    = map.hitBoxMaps;
                    deltaPosition = map.deltaDisplacement;
                    break;
                }
            }

            // If frame can't be found, cast the highest possible frame
            if (hitBoxMaps.Length == 0)
            {
                hitBoxMaps    = animationMaps[highestFrame].hitBoxMaps;
                deltaPosition = animationMaps[highestFrame].deltaDisplacement;
            }


            foreach (HitBoxMap map in hitBoxMaps)
            {
                foreach (HitBox hitBox in hitBoxes)
                {
                    if (hitBox.bodyPart == map.bodyPart)
                    {
                        hitBox.mappedPosition = map.mappedPosition;
                        if (currentMirror)
                        {
                            hitBox.mappedPosition.x += (hitBox.mappedPosition.x * -2);
                        }
                    }
                }
            }
        }
        else
        {
            foreach (HitBox hitBox in hitBoxes)
            {
                hitBox.mappedPosition = FPVector.ToFPVector(hitBox.position.position) - worldTransform.position;
            }
        }
    }
Exemple #2
0
    public HitBoxMap[] GetAnimationMaps()
    {
        List <HitBoxMap> animMaps = new List <HitBoxMap>();

        foreach (HitBox hitBox in hitBoxes)
        {
            HitBoxMap animMap = new HitBoxMap();
            animMap.bodyPart       = hitBox.bodyPart;
            animMap.mappedPosition = FPVector.ToFPVector(hitBox.position.position);
            animMaps.Add(animMap);
        }

        return(animMaps.ToArray());
    }