private async Task ToggleSpotlight() { var vehicle = API.GetVehiclePedIsIn(API.GetPlayerPed(-1), false); if (IsSpotlightUsageAllowed(vehicle)) { if (IsSpotlightEnabled(vehicle)) { API.DecorSetBool(vehicle, DECOR_NAME_STATUS, false); API.DecorSetFloat(vehicle, DECOR_NAME_BRIGHTNESS, 0f); for (int i = 0; i < 250; i++) { if (IsSpotlightEnabled(vehicle)) { break; } DrawSpotlightLabel(false); await Delay(0); } } else { API.DecorSetBool(vehicle, DECOR_NAME_STATUS, true); await TranslateDecorSmoothly(vehicle, DECOR_NAME_BRIGHTNESS, 0f, Config.GetValueFloat(Config.BRIGHTNESS_LEVEL, 30f), 30); } } await Task.FromResult(0); }
private static async Task TranslateDecorSmoothly(int handle, string decorName, float from, float to, int timeMs) { for (int i = 0; i < 10; i++) { API.DecorSetFloat(handle, decorName, from + (to - from) * i / 10); await Delay(timeMs); } }
private void SetSpotlightDefaultsIfNull(int handle) { if (!API.DecorExistOn(handle, DECOR_NAME_XY)) { API.DecorSetFloat(handle, DECOR_NAME_XY, 0f); } if (!API.DecorExistOn(handle, DECOR_NAME_Z)) { API.DecorSetFloat(handle, DECOR_NAME_Z, 0.05f); } if (!API.DecorExistOn(handle, DECOR_NAME_BRIGHTNESS)) { API.DecorSetFloat(handle, DECOR_NAME_BRIGHTNESS, 0f); } }
private async Task ToggleSpotlight() { var vehicle = API.GetVehiclePedIsIn(API.GetPlayerPed(-1), false); if (API.GetVehicleClass(vehicle) == 18 || !Config.GetValueBool(Config.EMERGENCY_ONLY, true)) { if (IsSpotlightEnabled(vehicle)) { API.DecorSetBool(vehicle, DECOR_NAME_STATUS, false); API.DecorSetFloat(vehicle, DECOR_NAME_BRIGHTNESS, 0f); } else { API.DecorSetBool(vehicle, DECOR_NAME_STATUS, true); await TranslateDecorSmoothly(vehicle, DECOR_NAME_BRIGHTNESS, 0f, Config.GetValueFloat(Config.BRIGHTNESS_LEVEL, 30f), 30); } } await Task.FromResult(0); }