public Task Init() { _sound = API.GetSoundId(); string sound = Vehicles.GetCustomHorn(_vehicle); string soundset = null; if (sound.Contains(":")) { var parts = sound.Split(':'); sound = parts[1]; soundset = parts[0]; } API.PlaySoundFromEntity(_sound, sound, _vehicle, soundset, false, 0); API.SetHornEnabled(_vehicle, false); return(Task.FromResult(0)); }
public VehicleDebugMenu() : base("PocceMod", "vehicle debug menu") { foreach (var feature in (FeatureFlag[])Enum.GetValues(typeof(FeatureFlag))) { var menuItem = new MenuItem(feature.ToString()) { Enabled = false }; _features.Add(feature, menuItem); AddMenuItem(menuItem); } foreach (var state in (StateFlag[])Enum.GetValues(typeof(StateFlag))) { var menuItem = new MenuItem(state.ToString()) { Enabled = false }; _states.Add(state, menuItem); AddMenuItem(menuItem); } var hornMenuItem = new MenuItem("Custom horn") { Enabled = false }; AddMenuItem(hornMenuItem); var lightMultiplierMenuItem = new MenuItem("Light multiplier") { Enabled = false }; AddMenuItem(lightMultiplierMenuItem); OnMenuOpen += (menu) => { _vehicle = Vehicle; Vehicles.FeatureChanged += OnFeatureChange; Vehicles.StateChanged += OnStateChange; foreach (var feature in (FeatureFlag[])Enum.GetValues(typeof(FeatureFlag))) { _features[feature].Enabled = Vehicles.IsFeatureEnabled(_vehicle, feature); } if (Vehicles.HasCustomHorn(_vehicle)) { hornMenuItem.Enabled = true; hornMenuItem.Label = Vehicles.GetCustomHorn(_vehicle); } var lightMultiplier = Vehicles.GetLightMultiplier(_vehicle); if (lightMultiplier > 1f) { lightMultiplierMenuItem.Enabled = true; lightMultiplierMenuItem.Label = lightMultiplier.ToString(); } }; OnMenuClose += (menu) => { Vehicles.FeatureChanged -= OnFeatureChange; Vehicles.StateChanged -= OnStateChange; _vehicle = -1; foreach (var menuItem in _features.Values) { menuItem.Enabled = false; } foreach (var menuItem in _states.Values) { menuItem.Enabled = false; } hornMenuItem.Enabled = false; hornMenuItem.Label = string.Empty; lightMultiplierMenuItem.Enabled = false; lightMultiplierMenuItem.Label = string.Empty; }; }