fix: clean gitignore for Godot C#

This commit is contained in:
maxwes08
2026-04-17 12:38:11 +02:00
commit 3ac0b6b866
23 changed files with 841 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
using System;
public class EngineControlUnit
{
public double Throttle;
public bool IsInNeutral = true;
private const double _revLimit = 7000;
private const double _idleRpm = 800;
private const double _idleSensitivity = 1e-2;
private const double _throttleSensitivity = 20;
private const double _neutralThrottleLimit = 0.2;
private double _idlePosition = 0;
private double _targetThrottle = 0;
private double _currentThrottle = 0;
public EngineControlUnit()
{
}
public void Update(double dt, Engine engine)
{
if (engine.RPM > _revLimit)
{
engine.ThrottlePosition = 0; return;
}
_targetThrottle = Math.Clamp(GetIdleThrottle(dt, engine.RPM) + Throttle, 0, 1);
_currentThrottle = Util.Lerp(_currentThrottle, _targetThrottle, dt * _throttleSensitivity);
if (IsInNeutral) _currentThrottle = Math.Min(_currentThrottle, _neutralThrottleLimit);
engine.ThrottlePosition = _currentThrottle;
}
public double GetIdleThrottle(double dt, double rpm)
{
if (rpm > _idleRpm) return 0;
double diff = rpm - _idleRpm;
_idlePosition = Math.Clamp(_idlePosition - (diff * _idleSensitivity * dt), 0, 1.0);
return _idlePosition;
}
}