#What do you guys think of this turbo sim

1 messages · Page 1 of 1 (latest)

near folio
#

I wrote it for my arcade car controller and wanted to get feedback on potential failure points

  if(InductionType == InductionTypes.Turbocharger)
      {
        MaxInductorRPM = (MaxRPM*10*ExhaustPressure)/TurboSize;
        InductorRPM = Mathf.Round(Mathf.Lerp(InductorRPM,MaxInductorRPM*(rpmFloat/(float)MaxRPM),(Time.fixedDeltaTime*TurboSpoolSpeed)/TurboSize));
        currentInductorBoost = Mathf.Round(10*ExhaustPressure*(InductorRPM/MaxInductorRPM)*TurboEfficiencyCurve.Evaluate(InductorRPM/MaxInductorRPM)*TurboSize)/10;
       
        MaxInductorBoostAmount = (Mathf.Round(10*ExhaustPressure*(MaximaArgument+0.001f)*InductionCurveMaxima()*TurboSize)/100)+1;
        MaxInductorBoostInBar = (MaxInductorBoostAmount-1)*10;
        InductorBoostAmount = (currentInductorBoost/10)+1;
      }

 float InductionCurveMaxima()
    {

        if(TurboEfficiencyCurve.GetHashCode() != TurboEfficiencyHash)
        {
        float maxVal = 0;

        int samples = 1000;
        for (int i = 0; i < samples; i++)
        {
            float time = (i / (float)(samples - 1));
            float value = TurboEfficiencyCurve.Evaluate(time);
            if (value > maxVal)
            {
                maxVal = value;
                TurboEfficiencyMaxima=maxVal;
                MaximaArgument=time;
            }
        }
        TurboEfficiencyHash = TurboEfficiencyCurve.GetHashCode();
        return maxVal;
        }
        else
        {
        TurboEfficiencyHash = TurboEfficiencyCurve.GetHashCode();
        return TurboEfficiencyMaxima;
        }
    }
dapper quartz
#

what's that TurboEfficiencyHash for?

near folio
misty jackal
misty jackal