예제 #1
0
 public override int GetHashCode()
 =>
 FromMin.GetHashCode()
 & FromMax.GetHashCode()
 & ToMin.GetHashCode()
 & ToMax.GetHashCode()
 ;
예제 #2
0
 /// <summary> Updates the applications on all sub evaluatables.</summary>
 public void SetApplication(Application application)
 {
     Value?.SetApplication(application);
     FromMin?.SetApplication(application);
     ToMin?.SetApplication(application);
     FromMax?.SetApplication(application);
     ToMax?.SetApplication(application);
 }
예제 #3
0
        /// <summary>Evaluate the from range and to range and return the value in the new range.</summary>
        protected override double Execute(IGameState gameState)
        {
            // Evaluate all components
            double value = Value.Evaluate(gameState);
            double fromMin = FromMin.Evaluate(gameState), fromMax = FromMax.Evaluate(gameState);
            double toMin = ToMin.Evaluate(gameState), toMax = ToMax.Evaluate(gameState);

            // Perform actual equation
            return(MathUtils.Clamp((value - fromMin) * ((toMax - toMin) / (fromMax - fromMin)) + toMin, Math.Min(toMin, toMax), Math.Max(toMin, toMax)));
            // Here is an example of it running: https://www.desmos.com/calculator/nzbiiz7vxv
        }
예제 #4
0
 public override Evaluatable <double> Clone() => new NumberMap
 {
     Value   = Value.Clone(),
     FromMin = FromMin.Clone(), FromMax = FromMax.Clone(),
     ToMin   = ToMin.Clone(), ToMax = ToMax.Clone()
 };