Exemple #1
0
        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));
        }
Exemple #2
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;
            };
        }