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); } }
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); }
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(); }
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); } }
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); }