Ejemplo n.º 1
0
 public float GetValue(InteractionObject.WeightCurve.Type curveType)
 {
     for (int i = 0; i < this.multipliers.Length; i++)
     {
         if (this.multipliers[i].curve == curveType)
         {
             return(this.multipliers[i].multiplier);
         }
     }
     return(1f);
 }
Ejemplo n.º 2
0
 private int GetWeightCurveIndex(InteractionObject.WeightCurve.Type weightCurveType)
 {
     for (int i = 0; i < this.weightCurves.Length; i++)
     {
         if (this.weightCurves[i].type == weightCurveType)
         {
             return(i);
         }
     }
     return(-1);
 }
Ejemplo n.º 3
0
 private int GetMultiplierIndex(InteractionObject.WeightCurve.Type weightCurveType)
 {
     for (int i = 0; i < this.multipliers.Length; i++)
     {
         if (this.multipliers[i].result == weightCurveType)
         {
             return(i);
         }
     }
     return(-1);
 }
Ejemplo n.º 4
0
 public bool CurveUsed(InteractionObject.WeightCurve.Type type)
 {
     foreach (InteractionObject.WeightCurve weightCurve in this.weightCurves)
     {
         if (weightCurve.type == type)
         {
             return(true);
         }
     }
     foreach (InteractionObject.Multiplier multiplier in this.multipliers)
     {
         if (multiplier.result == type)
         {
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 5
0
 public bool CurveUsed(InteractionObject.WeightCurve.Type type)
 {
     InteractionObject.WeightCurve[] array = this.weightCurves;
     for (int i = 0; i < array.Length; i++)
     {
         if (array[i].type == type)
         {
             return(true);
         }
     }
     InteractionObject.Multiplier[] array2 = this.multipliers;
     for (int i = 0; i < array2.Length; i++)
     {
         if (array2[i].result == type)
         {
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 6
0
        public float GetValue(InteractionObject.WeightCurve.Type weightCurveType, InteractionTarget target, float timer)
        {
            int weightCurveIndex = this.GetWeightCurveIndex(weightCurveType);

            if (weightCurveIndex != -1)
            {
                float num = (!(target == null)) ? target.GetValue(weightCurveType) : 1f;
                return(this.weightCurves[weightCurveIndex].GetValue(timer) * num);
            }
            for (int i = 0; i < this.multipliers.Length; i++)
            {
                if (this.multipliers[i].result == weightCurveType)
                {
                    int weightCurveIndex2 = this.GetWeightCurveIndex(this.multipliers[i].curve);
                    if (weightCurveIndex2 != -1)
                    {
                        float num2 = (!(target == null)) ? target.GetValue(this.multipliers[i].result) : 1f;
                        return(this.multipliers[i].GetValue(this.weightCurves[weightCurveIndex2], timer) * num2);
                    }
                }
            }
            return(0f);
        }
Ejemplo n.º 7
0
        private void Apply(IKSolverFullBodyBiped solver, FullBodyBipedEffector effector, InteractionObject.WeightCurve.Type type, float value, float weight)
        {
            switch (type)
            {
            case InteractionObject.WeightCurve.Type.PositionWeight:
                solver.GetEffector(effector).positionWeight = Mathf.Lerp(solver.GetEffector(effector).positionWeight, value, weight);
                return;

            case InteractionObject.WeightCurve.Type.RotationWeight:
                solver.GetEffector(effector).rotationWeight = Mathf.Lerp(solver.GetEffector(effector).rotationWeight, value, weight);
                return;

            case InteractionObject.WeightCurve.Type.PositionOffsetX:
                solver.GetEffector(effector).position += ((!(this.positionOffsetSpace != null)) ? solver.GetRoot().rotation : this.positionOffsetSpace.rotation) * Vector3.right * value * weight;
                return;

            case InteractionObject.WeightCurve.Type.PositionOffsetY:
                solver.GetEffector(effector).position += ((!(this.positionOffsetSpace != null)) ? solver.GetRoot().rotation : this.positionOffsetSpace.rotation) * Vector3.up * value * weight;
                return;

            case InteractionObject.WeightCurve.Type.PositionOffsetZ:
                solver.GetEffector(effector).position += ((!(this.positionOffsetSpace != null)) ? solver.GetRoot().rotation : this.positionOffsetSpace.rotation) * Vector3.forward * value * weight;
                return;

            case InteractionObject.WeightCurve.Type.Pull:
                solver.GetChain(effector).pull = Mathf.Lerp(solver.GetChain(effector).pull, value, weight);
                return;

            case InteractionObject.WeightCurve.Type.Reach:
                solver.GetChain(effector).reach = Mathf.Lerp(solver.GetChain(effector).reach, value, weight);
                return;

            case InteractionObject.WeightCurve.Type.Push:
                solver.GetChain(effector).push = Mathf.Lerp(solver.GetChain(effector).push, value, weight);
                return;

            case InteractionObject.WeightCurve.Type.PushParent:
                solver.GetChain(effector).pushParent = Mathf.Lerp(solver.GetChain(effector).pushParent, value, weight);
                return;
            }
        }
Ejemplo n.º 8
0
        }                                                                               // 0x00000001807E5C00-0x00000001807E5C40

        public float GetValue(InteractionObject.WeightCurve.Type curveType) => default; // 0x00000001807E5C40-0x00000001807E5CD0