Exemplo n.º 1
0
        public void LoadSegment(ushort id)
        {
            if (id == 0)
            {
                isSegmentSelected       = false;
                idLabel.text            = "Segment ID: < Select segment >";
                nameTF.text             = "";
                factorTF.text           = "5";
                randBox.isChecked       = false;
                activeBox.isChecked     = false;
                vehicleBox.isChecked    = false;
                pedestrianBox.isChecked = false;
                //slider.value = data.probability;
                probabilityTF.text     = "0.7";
                saveButton.isEnabled   = false;
                removeButton.isEnabled = false;
                return;
            }

            isSegmentSelected = true;
            AdjustedSegment data;

            if (!APManager.Instance.Dictionary.TryGetValue(id, out data))
            {
                data                   = new AdjustedSegment(id);
                isNewSegment           = true;
                saveButton.text        = "Save new";
                saveButton.isEnabled   = true;
                removeButton.isEnabled = false;
            }
            else
            {
                isNewSegment           = false;
                saveButton.text        = "Save";
                saveButton.isEnabled   = true;
                removeButton.isEnabled = true;
            }

            idLabel.text            = "Segment: " + id;
            nameTF.text             = data.name;
            factorTF.text           = data.factor.ToString();
            randBox.isChecked       = data.randomize;
            activeBox.isChecked     = data.active;
            vehicleBox.isChecked    = (data.flags & AdjustedSegment.Flags.AffectVehicles) != AdjustedSegment.Flags.None;
            pedestrianBox.isChecked = (data.flags & AdjustedSegment.Flags.AffectPedestrians) != AdjustedSegment.Flags.None;
            //slider.value = data.probability;
            probabilityTF.text = data.probability.ToString();
        }
Exemplo n.º 2
0
        private void Save()
        {
            if (AdjustPathfindingTool.Instance.SelectedSegment == 0)
            {
                return;
            }

            if (!SimulationManager.instance.SimulationPaused)
            {
                UIWindow.ThrowErrorMsg("Simulation must be paused!");
                return;
            }

            if (!isSegmentSelected)
            {
                UIWindow.ThrowErrorMsg("No selected segment!");
                return;
            }

            float newFactor;
            float newProbability;

            if (!float.TryParse(factorTF.text, out newFactor) || !float.TryParse(probabilityTF.text, out newProbability) || newFactor <= 0 || newProbability > 1 || newProbability < 0)
            {
                UIWindow.ThrowErrorMsg("Invalid fields!");
                return;
            }

            AdjustedSegment data;

            if (isNewSegment)
            {
                data = new AdjustedSegment(AdjustPathfindingTool.Instance.SelectedSegment);
            }
            else
            {
                if (!APManager.Instance.Dictionary.TryGetValue(AdjustPathfindingTool.Instance.SelectedSegment, out data))
                {
                    Debug.Log("Failed to save data in existing AdjustedSegment.");
                }
            }

            data.name      = nameTF.text;
            data.factor    = newFactor;
            data.randomize = randBox.isChecked;
            data.active    = activeBox.isChecked;
            //data.probability = slider.value;
            data.probability = newProbability;

            if (vehicleBox.isChecked)
            {
                data.flags |= AdjustedSegment.Flags.AffectVehicles;
            }
            else
            {
                data.flags &= ~AdjustedSegment.Flags.AffectVehicles;
            }
            if (pedestrianBox.isChecked)
            {
                data.flags |= AdjustedSegment.Flags.AffectPedestrians;
            }
            else
            {
                data.flags &= ~AdjustedSegment.Flags.AffectPedestrians;
            }

            if (isNewSegment)
            {
                APManager.Instance.Dictionary.Add(AdjustPathfindingTool.Instance.SelectedSegment, data);
                isNewSegment = false;
            }

            UIWindow.Instance.dropDown.Populate();
            UIWindow.Instance.SelectSegment(AdjustPathfindingTool.Instance.SelectedSegment);
        }