Ejemplo n.º 1
0
 static void OnShowOptions(RoadEditorCollapsiblePanel groupPanel)
 {
     try {
         Array array  = groupPanel.GetArray();
         var   target = groupPanel.GetTarget();
         if (groupPanel.GetArray() is NetLaneProps.Prop[] m_props)
         {
             bool hasItems         = m_props.Length > 0;
             bool clipBoardHasData = ClipBoard.HasData <NetLaneProps.Prop>();
             if (hasItems || clipBoardHasData)
             {
                 var panel = MiniPanel.Display();
                 if (hasItems)
                 {
                     panel.AddButton("Copy all props", null,
                                     () => ClipBoard.SetData(m_props));
                     panel.AddButton("Clear all props", null,
                                     () => ClearAll(groupPanel));
                     panel.AddButton("Save Template", null, () => {
                         SaveTemplatePanel.Display(m_props);
                     });
                 }
                 if (clipBoardHasData)
                 {
                     panel.AddButton("Paste all props", null,
                                     () => PasteAll(groupPanel));
                 }
                 panel.AddButton(
                     "Displace all",
                     null,
                     () => DisplaceAll(m_props));
             }
         }
         else if (
             array is NetInfo.Lane[] m_lanes &&
             m_lanes.Any(_lane => _lane.HasProps()) &&
             target == NetInfoExtionsion.EditedNetInfo)
         {
             var panel = MiniPanel.Display();
             panel.AddButton(
                 "Copy props to other elevation",
                 "appends props to other elevations",
                 () => PropHelpers.CopyPropsToOtherElevations(clear: false));
             panel.AddButton(
                 "replace props to other elevation",
                 "clears props from other elevations before copying.",
                 () => PropHelpers.CopyPropsToOtherElevations(clear: true));
             panel.AddButton(
                 "Displace all",
                 null,
                 () => RoadEditorUtils.DisplaceAllProps(m_lanes));
         }
     } catch (Exception ex) {
         Log.Exception(ex);
     }
 }
Ejemplo n.º 2
0
        public static UICheckBox AddSavedToggle(this UIHelperBase helper, string label, SavedBool savedBool)
        {
            return(helper.AddCheckbox(label, savedBool, delegate(bool value) {
                savedBool.value = value;
                Log.Debug($"option {label} is set to " + value);
                RoadEditorUtils.RefreshRoadEditor();
            }) as UICheckBox);

            Log.Debug($"option {label} is set to " + savedBool.value);
        }
Ejemplo n.º 3
0
        public static void OnRefreshARMode()
        {
            ARMode.value = !VanillaModeToggle.isChecked;
            Log.Debug($"Vanilla Mode toggle =  {VanillaModeToggle.isChecked}. ARMode = {ARMode.value}");

            if (Helpers.InStartupMenu)
            {
                return;
            }
            NetInfoExtionsion.Ensure_EditedNetInfos();
            RoadEditorUtils.RefreshRoadEditor();
        }
Ejemplo n.º 4
0
 public static void OnLoadFromTempalteClicked(
     UIComponent component, UIMouseEventParameter eventParam)
 {
     try {
         var groupPanel = component.GetComponentInParent <RoadEditorCollapsiblePanel>();
         var roadEditor = component.GetComponentInParent <RoadEditorPanel>();
         var lane       = roadEditor.GetTarget() as NetInfo.Lane;
         Assertion.AssertNotNull(lane, "target is lane");
         bool unidirectional  = lane.IsGoingForward() || lane.IsGoingBackward();
         bool suggestBackward = lane.m_laneType == NetInfo.LaneType.Pedestrian && lane.m_position < 0;
         LoadTemplatePanel.Display(
             loadedProps => RoadEditorUtils.AddProps(groupPanel, loadedProps),
             unidirectional: unidirectional,
             suggestBackward: suggestBackward);
     } catch (Exception ex) {
         Log.Exception(ex);
     }
 }
Ejemplo n.º 5
0
        public static void OnSettingsUI(UIHelperBase helper)
        {
            var general = helper.AddGroup("General") as UIHelper;

            var keymappingsPanel = general.AddKeymappingsPanel();

            keymappingsPanel.AddKeymapping("Hotkey", Hotkey);

            VanillaModeToggle = general.AddCheckbox("Vanilla mode", !ARMode, delegate(bool vanillaMode) {
                if (ARMode == !vanillaMode) // happens after rejecting confirmation message
                {
                    return;                 // no change is necessary
                }
                if (vanillaMode)
                {
                    OnConfimRemoveARdata(); // set to vanilla mode
                }
                else
                {
                    OnRefreshARMode(); // set to ARMode
                }
            }) as UICheckBox;

            var btn = general.AddCheckbox("Left Hand Traffic", NetUtil.LHT, RoadUtils.SetDirection) as UICheckBox;

            btn.eventVisibilityChanged += (_, __) => btn.isChecked = NetUtil.LHT;


            var dd = general.AddDropdown(
                "prefered speed unit",
                Enum.GetNames(typeof(SpeedUnitType)),
                0, // kph
                sel => {
                var value       = GetEnumValues <SpeedUnitType>()[sel];
                SpeedUnit.value = (int)value;
                Log.Debug("option 'prefered speed unit' is set to " + value);
                RoadEditorUtils.RefreshRoadEditor();
            });

            general.AddSavedToggle("hide irrelevant flags", HideIrrelavant);
            general.AddSavedToggle("hide floating hint box", HideHints);
            general.AddSavedToggle("Set default scale to 100", DefaultScale100);

            //var export = helper.AddGroup("import/export:");
            //export.AddButton("export edited road", null);
            //export.AddButton("import to edited road", null);

            var extensions = helper.AddGroup("UI components visible in asset editor:");
            var segment    = extensions.AddGroup("Segment");

            segment.AddSavedToggle("Node flags", Segment_Node);
            segment.AddSavedToggle("Segment End flags", Segment_SegmentEnd);

            var node = extensions.AddGroup("Node");

            node.AddSavedToggle("Segment and Segment-extension flags", Node_Segment);

            var laneProp = extensions.AddGroup("Lane prop");

            laneProp.AddSavedToggle("Segment and Segment-extension flags", Lane_Segment);
            //laneProp.AddSavedToggle("Node flags", Lane_Node);
            laneProp.AddSavedToggle("Segment End flags", Lane_SegmentEnd);
        }