public override void GetState([NotNull] BaseLocoState state) { state.Reverser = _inner.reverser; state.ReverserSymbol = _inner.GetReverserSymbol(); state.Throttle = (float)Math.Round(_inner.throttle, 2); state.TargetThrottle = (float)Math.Round(_inner.targetThrottle, 2); state.Break = (float)Math.Round(_inner.brake, 2); state.TargetBreak = (float)Math.Round(_inner.targetBrake, 2); state.Derailed = _inner.IsDerailed(); state.WheelSlip = _inner.IsWheelslipping(); state.Speed = (float)Math.Round(_inner.GetSpeedKmH(), 2); state.CanCouple = _inner.IsCouplerInRange(); state.MinCouplePos = -_inner.GetNumberOfCarsInRear() - 1; state.MaxCouplePos = _inner.GetNumberOfCarsInFront() + 1; state.LocoType = "base"; }