예제 #1
0
        private IEnumerator CreateProp()
        {
            Debug.Log("CreateProp detour");
            UndoMod.Instsance.BeginObserving("Build prop", "Vanilla");
            IEnumerator result = null;

            RedirectionHelper.RevertRedirect(createProp_original, state);
            try
            {
                result = (IEnumerator)createProp_original.Invoke(ToolsModifierControl.GetTool <PropTool>(), new object[] { });
                AsyncTask asyncTask = new AsyncTask(result, null);
                asyncTask.Execute();
            }
            catch (Exception e)
            {
                Debug.LogError(e);
                UndoMod.Instsance.InvalidateAll();
            }
            state = RedirectionHelper.RedirectCalls(createProp_original, patch);

            //Singleton<SimulationManager>.instance.AddAction(() => {
            UndoMod.Instsance.EndObserving();
            //});

            yield return(0);

            yield break;
        }
예제 #2
0
        public MainPanel()
        {
            UIView uiView = UIView.GetAView();

            dialog = uiView.AddUIComponent(typeof(DropdownDialog)) as DropdownDialog;
            dialog.Hide();

            placeSignBtn = (UIButton)uiView.AddUIComponent(typeof(UIButton));

            placeSignBtn.text              = "DB";
            placeSignBtn.width             = 75;
            placeSignBtn.height            = 30;
            placeSignBtn.normalBgSprite    = "ButtonMenu";
            placeSignBtn.disabledBgSprite  = "ButtonMenuDisabled";
            placeSignBtn.hoveredBgSprite   = "ButtonMenuHovered";
            placeSignBtn.focusedBgSprite   = "ButtonMenuFocused";
            placeSignBtn.pressedBgSprite   = "ButtonMenuPressed";
            placeSignBtn.textColor         = new Color32(255, 255, 255, 255);
            placeSignBtn.disabledTextColor = new Color32(7, 7, 7, 255);
            placeSignBtn.hoveredTextColor  = new Color32(7, 132, 255, 255);
            placeSignBtn.focusedTextColor  = new Color32(255, 255, 255, 255);
            placeSignBtn.pressedTextColor  = new Color32(30, 30, 44, 255);
            placeSignBtn.eventClick       += propSelectorToolBtn_eventClick;
            placeSignBtn.relativePosition  = new Vector3(30, 60);

            propSelectorTool = ToolsModifierControl.toolController.gameObject.AddComponent <PropSelectorTool>();

            ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
            ToolsModifierControl.SetTool <DefaultTool>();

            propSelectorTool.dialog = dialog;
        }
예제 #3
0
        public MainPanel()
        {
            UIView uiView = UIView.GetAView();

            markRouteBtn = (UIButton)uiView.AddUIComponent(typeof(UIButton));

            markRouteBtn.text              = "Mark a Route";
            markRouteBtn.width             = 150;
            markRouteBtn.height            = 30;
            markRouteBtn.normalBgSprite    = "ButtonMenu";
            markRouteBtn.disabledBgSprite  = "ButtonMenuDisabled";
            markRouteBtn.hoveredBgSprite   = "ButtonMenuHovered";
            markRouteBtn.focusedBgSprite   = "ButtonMenuFocused";
            markRouteBtn.pressedBgSprite   = "ButtonMenuPressed";
            markRouteBtn.textColor         = new Color32(255, 255, 255, 255);
            markRouteBtn.disabledTextColor = new Color32(7, 7, 7, 255);
            markRouteBtn.hoveredTextColor  = new Color32(7, 132, 255, 255);
            markRouteBtn.focusedTextColor  = new Color32(255, 255, 255, 255);
            markRouteBtn.pressedTextColor  = new Color32(30, 30, 44, 255);
            markRouteBtn.eventClick       += markRouteBtn_eventClick;
            markRouteBtn.relativePosition  = new Vector3(180f, 60f);

            ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
            ToolsModifierControl.SetTool <DefaultTool>();
        }
예제 #4
0
 protected override void HandleSignPlaced()
 {
     RouteManager.Instance().SetSign(this.m_cachedPosition, this.m_cachedAngle, routePrefix, routeStr, destination, this.signType);
     RenderingManager.instance.ForceUpdate();
     ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
     ToolsModifierControl.SetTool <DefaultTool>();
 }
        public void Update()
        {
            var tool = ToolsModifierControl.GetTool <SelectionTool>();

            if (tool == null)
            {
                return;
            }

            if (!tool.enabled && bar.isVisible)
            {
                bar.Hide();
            }

            if (ModInfo.ClipboardToolShortcut.IsPressed())
            {
                if (!_keyPressProcessed)
                {
                    _keyPressProcessed = true;
                    ToggleTool();
                }
            }
            else
            {
                _keyPressProcessed = false;
            }
        }
        public static void SetUpUndoModififcationPanel(UIComponent optionsBar)
        {
            if (GameObject.Find("UndoTerrainPanel") != null)
            {
                return;
            }
            var undoPanel = optionsBar.AddUIComponent <UIPanel>();

            undoPanel.name             = "UndoTerrainPanel";
            undoPanel.backgroundSprite = "MenuPanel2";
            undoPanel.size             = new Vector2(231, 106);
            undoPanel.isVisible        = false;
            undoPanel.relativePosition = new Vector3(-256, -594);
            UIUtil.SetupTitle("", undoPanel);
            var applyButton = undoPanel.AddUIComponent <UIButton>();

            applyButton.name             = "Apply";
            applyButton.localeID         = "MAPEDITOR_UNDO_TERRAIN";
            applyButton.size             = new Vector2(191, 38);
            applyButton.relativePosition = new Vector3(20, 54);
            applyButton.normalBgSprite   = "ButtonMenu";
            applyButton.hoveredBgSprite  = "ButtonMenuHovered";
            applyButton.pressedBgSprite  = "ButtonMenuPressed";
            applyButton.disabledBgSprite = "ButtonMenuDisabled";
            applyButton.canFocus         = false;
            var utoPanel = undoPanel.gameObject.AddComponent <UndoTerrainOptionPanel>();

            applyButton.eventClick += (component, eventParam) => { utoPanel.UndoTerrain(); };

            var toolField = typeof(UndoTerrainOptionPanel).GetField("m_TerrainTool", BindingFlags.Instance | BindingFlags.NonPublic);

            toolField.SetValue(utoPanel, ToolsModifierControl.GetTool <TerrainTool>());
        }
예제 #7
0
 private static void DisableTool()
 {
     if (ToolsModifierControl.toolController.CurrentTool == _simpleSelectionTool)
     {
         ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
         ToolsModifierControl.SetTool <DefaultTool>();
     }
 }
예제 #8
0
 public new void OnPoliciesClick()
 {
     if ((Object)ToolsModifierControl.GetTool <DistrictTool>() != (Object)ToolsModifierControl.GetCurrentTool <DistrictTool>())
     {
         ToolsModifierControl.keepThisWorldInfoPanel = true;
     }
     ToolsModifierControl.mainToolbar.ShowPoliciesPanel(this.m_InstanceID.District);
     UIView.Find <UIPanel>("PoliciesPanel").Find <UITabstrip>("Tabstrip").selectedIndex = 0;
 }
예제 #9
0
        protected override void OnToolUpdate()
        {
            if (m_toolController != null && !m_toolController.IsInsideUI && Cursor.visible)
            {
                RaycastOutput raycastOutput;

                if (RaycastRoad(out raycastOutput))
                {
                    ushort netSegmentId = raycastOutput.m_netSegment;

                    if (netSegmentId != 0)
                    {
                        NetManager netManager = Singleton <NetManager> .instance;
                        NetSegment netSegment = netManager.m_segments.m_buffer[(int)netSegmentId];

                        if (netSegment.m_flags.IsFlagSet(NetSegment.Flags.Created))
                        {
                            if (Event.current.type == EventType.MouseDown /*&& Event.current.button == (int)UIMouseButton.Left*/)
                            {
                                Vector3 pos1;
                                Vector3 pos2;
                                Vector3 rot1;
                                Vector3 rot2;
                                bool    smooth1;
                                bool    smooth2;

                                netSegment.CalculateCorner(netSegmentId, true, true, true, out pos1, out rot1, out smooth1);
                                netSegment.CalculateCorner(netSegmentId, true, false, true, out pos2, out rot2, out smooth2);
                                LoggerUtils.Log(string.Format("pos:{0},rot:{1}", pos1, rot1));
                                LoggerUtils.Log(string.Format("pos:{0},rot:{1}", pos2, rot2));
                                Vector3 diff  = pos2 - pos1;
                                float   angle = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
                                LoggerUtils.Log(string.Format("angle:{0}", angle));

                                ShowToolInfo(false, null, new Vector3());
                                VehicleInfo info = VehicleHolder.getInstance().getVehicleInfo();
                                VehicleHolder.getInstance().setActive(netSegment.m_middlePosition, Vector3.zero);

                                //unset self as tool
                                ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
                                ToolsModifierControl.SetTool <DefaultTool>();
                                UnityEngine.Object.Destroy(this);
                            }
                            else
                            {
                                ShowToolInfo(true, "Spawn Vehicle", netSegment.m_bounds.center);
                            }
                        }
                    }
                }
            }
            else
            {
                ShowToolInfo(false, null, new Vector3());
            }
        }
예제 #10
0
            public override void OnLoadData()
            {
                if ((CSLTraffic.Options & OptionsManager.ModOptions.BetaTestRoadCustomizerTool) == OptionsManager.ModOptions.None || (CSLTraffic.Options & OptionsManager.ModOptions.GhostMode) == OptionsManager.ModOptions.GhostMode)
                {
                    return;
                }

                Debug.Log("Traffic++: Loading road data!");
                byte[] data = serializableDataManager.LoadData(LANE_DATA_ID);
                if (data == null)
                {
                    Debug.Log("Traffic++: No road data to load!");
                    return;
                }

                MemoryStream memStream = new MemoryStream();

                memStream.Write(data, 0, data.Length);
                memStream.Position = 0;

                BinaryFormatter binaryFormatter = new BinaryFormatter();

                try
                {
                    RoadManager.sm_lanes = (Lane[])binaryFormatter.Deserialize(memStream);

                    FastList <ushort> nodesList = new FastList <ushort>();
                    foreach (Lane lane in RoadManager.sm_lanes)
                    {
                        if (lane == null)
                        {
                            continue;
                        }

                        lane.UpdateArrows();
                        if (lane.ConnectionCount() > 0)
                        {
                            nodesList.Add(lane.m_nodeId);
                        }
                    }

                    RoadCustomizerTool customizerTool = ToolsModifierControl.GetTool <RoadCustomizerTool>();
                    foreach (ushort nodeId in nodesList)
                    {
                        customizerTool.SetNodeMarkers(nodeId);
                    }
                }
                catch (Exception e)
                {
                    Debug.Log("Traffic++: Unexpected " + e.GetType().Name + " loading road data.");
                }
                finally
                {
                    memStream.Close();
                }
            }
        public void UndoTerrain()
        {
            var terrainTool = ToolsModifierControl.GetTool <TerrainTool>();

            if (terrainTool == null || !terrainTool.IsUndoAvailable())
            {
                return;
            }
            TerrainToolDetour.Undo(terrainTool);
        }
        /// <summary>
        ///     This method initializes mod's first time loading.
        ///     If <see cref="NetTool" /> is detected we initialize all the support structures, load the available networks and
        ///     finally create the UI.
        /// </summary>
        public void Start()
        {
            try
            {
                // Find NetTool and deploy
                if (ToolsModifierControl.GetTool <NetTool>() == null)
                {
                    Log.Warning($"[{nameof(ParallelRoadTool)}.{nameof(Start)}] Net Tool not found, can't deploy!");
                    enabled = false;
                    return;
                }

                Log.Info($"[{nameof(ParallelRoadTool)}.{nameof(Start)}] Loading version: {ModInfo.ModName} ({nameof(IsInGameMode)} is {IsInGameMode})");

                // Init support data
                SelectedRoadTypes = new List <NetTypeItem>();
                IsSnappingEnabled = false;
                IsLeftHandTraffic = Singleton <SimulationManager> .instance.m_metaData.m_invertTraffic ==
                                    SimulationMetaData.MetaBool.True;
                _isToolActive = _isToolEnabled = false;

                LoadNetworks();

                // Subscribe to milestones updated, but only if we're not in map editor
                if (IsInGameMode)
                {
                    Singleton <UnlockManager> .instance.m_milestonesUpdated += OnMilestoneUpdate;
                }

                Log._Debug($"[{nameof(ParallelRoadTool)}.{nameof(Start)}] Adding UI components");

                // Main UI init
                var view = UIView.GetAView();
                _mainWindow ??= view.FindUIComponent <UIMainWindow>($"{Configuration.ResourcePrefix}MainWindow");
                if (_mainWindow != null)
                {
                    DestroyImmediate(_mainWindow);
                }
                _mainWindow = view.AddUIComponent(typeof(UIMainWindow)) as UIMainWindow;

                SubscribeToUIEvents();

                _mainWindow.OnToolChanged += ToolBaseDetour_OnToolChanged;

                Log.Info($"[{nameof(ParallelRoadTool)}.{nameof(Start)}] Loaded");
            }
            catch (Exception e)
            {
                Log._DebugOnlyError($"[{nameof(ParallelRoadTool)}.{nameof(Start)}] Loading failed");
                Log.Exception(e);

                enabled = false;
            }
        }
        public new void OnClick(UIComponent comp, UIMouseEventParameter p)
        {
            UIButton uiButton = p.source as UIButton;
            int      byIndex  = this.GetByIndex((UIComponent)uiButton);

            if (byIndex == -1)
            {
                return;
            }
            this.SelectByIndex(byIndex);
            Texture2D texture2D        = uiButton.objectUserData as Texture2D;
            var       brushesContainer =
                (UIScrollablePanel)typeof(BrushOptionPanel).GetField("m_BrushesContainer", BindingFlags.NonPublic | BindingFlags.Instance)
                .GetValue(this);

            if (!((UnityEngine.Object)uiButton.parent == (UnityEngine.Object)brushesContainer) || !((UnityEngine.Object)texture2D != (UnityEngine.Object)null))
            {
                return;
            }
            TerrainTool tool1 = ToolsModifierControl.GetTool <TerrainTool>();

            if ((UnityEngine.Object)tool1 != (UnityEngine.Object)null)
            {
                tool1.m_brush = texture2D;
            }
            TreeTool tool2 = ToolsModifierControl.GetTool <TreeTool>();

            if ((UnityEngine.Object)tool2 != (UnityEngine.Object)null)
            {
                tool2.m_brush = texture2D;
            }
            ResourceTool tool3 = ToolsModifierControl.GetTool <ResourceTool>();

            if ((UnityEngine.Object)tool3 != (UnityEngine.Object)null)
            {
                tool3.m_brush = texture2D;
            }
            PropTool tool4 = ToolsModifierControl.GetTool <PropTool>();

            if ((UnityEngine.Object)tool4 == (UnityEngine.Object)null)
            {
                tool4.m_brush = texture2D;
            }
            //begin mod
            try
            {
                Plugins.SetBrush(texture2D);
            }
            catch (Exception e)
            {
                UnityEngine.Debug.LogException(e);
            }
            //end mod
        }
예제 #14
0
        private void OnEnable()
        {
            this.RefreshPanel();
            RoadCustomizerTool rct = ToolsModifierControl.GetTool <RoadCustomizerTool>();

            if (rct != null)
            {
                rct.OnStartLaneCustomization += EnableIcons;
                rct.OnEndLaneCustomization   += DisableIcons;
            }
        }
        private static void SetUpNaturalResourcesTool(ICollection <ToolBase> extraTools)
        {
            var resourceTool = ToolsModifierControl.GetTool <ResourceTool>();

            if (resourceTool == null)
            {
                resourceTool = ToolsModifierControl.toolController.gameObject.AddComponent <ResourceTool>();
                extraTools.Add(resourceTool);
            }
            resourceTool.m_brush = ToolsModifierControl.toolController.m_brushes[0];
        }
예제 #16
0
        private void DestroyTool()
        {
            if (TrafficManagerTool != null)
            {
                ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
                ToolsModifierControl.SetTool <DefaultTool>();

                Object.Destroy(TrafficManagerTool);
                TrafficManagerTool = null;
            }
        }
 /// <summary>
 /// Destroy the EnhancedDistrictServicesTool object.
 /// </summary>
 public override void OnReleased()
 {
     if (ToolsModifierControl.toolController != null && ToolsModifierControl.toolController.gameObject != null)
     {
         ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
         var tool = ToolsModifierControl.toolController.gameObject.GetComponent <EnhancedDistrictServicesTool>();
         if (tool != null)
         {
             UnityEngine.Object.Destroy(tool);
         }
     }
 }
예제 #18
0
 public void Update()
 {
     if ((Input.GetKey(KeyCode.RightShift) || Input.GetKey(KeyCode.LeftShift)) && Input.GetKeyDown(KeyCode.N))
     {
         var tool = ToolsModifierControl.GetTool <NodeElevationTool>();
         if (tool == null)
         {
             return;
         }
         tool.enabled = true;
     }
 }
        private void MainWindowOnNetworkItemAdded(object sender, EventArgs e)
        {
            // Previous item's offset so that we can try to separate this one from previous one without overlapping
            var prevOffset = SelectedRoadTypes.Any() ? SelectedRoadTypes.Last().HorizontalOffset : 0;
            var netInfo    = ToolsModifierControl.GetTool <NetTool>().Prefab;
            var item       = new NetTypeItem(netInfo, prevOffset + netInfo.m_halfWidth * 2, 0, false);

            SelectedRoadTypes.Add(item);

            _mainWindow.AddItem(item);
            NetManagerDetour.NetworksCount = SelectedRoadTypes.Count;
        }
예제 #20
0
 private void propSelectorToolBtn_eventClick(UIComponent component, UIMouseEventParameter eventParam)
 {
     if (ToolsModifierControl.toolController.CurrentTool == propSelectorTool)
     {
         ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
         ToolsModifierControl.SetTool <DefaultTool>();
     }
     else
     {
         ToolsModifierControl.toolController.CurrentTool = propSelectorTool;
         ToolsModifierControl.SetTool <PropSelectorTool>();
     }
 }
 public static void DisableTool()
 {
     Log._Debug("LoadingExtension.DisableTool: called");
     if (ToolsModifierControl.toolController != null)
     {
         ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
         ToolsModifierControl.SetTool <DefaultTool>();
     }
     else
     {
         Log.Warning("LoadingExtensions.DisableTool: ToolsModifierControl.toolController is null!");
     }
 }
예제 #22
0
        private void OnDisable()
        {
            RoadCustomizerTool rct = ToolsModifierControl.GetTool <RoadCustomizerTool>();

            if (rct != null)
            {
                if (m_panelType == Panel.VehicleRestrictions)
                {
                    rct.OnStartLaneCustomization -= EnableIcons;
                    rct.OnEndLaneCustomization   -= DisableIcons;
                }
            }
        }
예제 #23
0
        public static void Update()
        {
            if (ploppedPrefab == null)
            {
                return;
            }

            var toolManager = Singleton <ToolManager> .instance;

            if (toolManager?.m_properties == null)
            {
                return;
            }

            if (Input.GetKeyDown(KeyCode.Escape))
            {
                Singleton <ToolManager> .instance.m_properties.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
                ploppedPrefab = null;
                return;
            }

            var currentTool = toolManager.m_properties.CurrentTool;

            if (currentTool == null)
            {
                return;
            }

            if (currentTool is BuildingTool || currentTool is NetTool || currentTool is TreeTool ||
                currentTool is PropTool)
            {
                var prefabField = currentTool.GetType()
                                  .GetField("m_prefab", BindingFlags.Instance | BindingFlags.Public);
                if (prefabField != null)
                {
                    var prefab = prefabField.GetValue(currentTool);
                    if ((PrefabInfo)prefab != ploppedPrefab)
                    {
                        ploppedPrefab = null;
                    }
                }
                else
                {
                    ploppedPrefab = null;
                }
            }
            else
            {
                ploppedPrefab = null;
            }
        }
예제 #24
0
        private void markRouteBtn_eventClick(UIComponent component, UIMouseEventParameter eventParam)
        {
            ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
            ToolsModifierControl.SetTool <DefaultTool>();

            if (m_isUiShowing)
            {
                hideUI();
            }
            else
            {
                showUI();
            }
        }
        /// <summary>
        /// Create the EnhancedDistrictServicesTool object.
        /// </summary>
        public override void OnLevelLoaded(LoadMode mode)
        {
            base.OnLevelLoaded(mode);

            if (mode == LoadMode.LoadGame || mode == LoadMode.NewGame)
            {
                var tool = ToolsModifierControl.toolController.gameObject.GetComponent <EnhancedDistrictServicesTool>();
                if (tool == null)
                {
                    ToolsModifierControl.toolController.gameObject.AddComponent <EnhancedDistrictServicesTool>();
                    ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
                }
            }
        }
        public IEnumerable <ToolBase> SetupTools(LoadMode mode)
        {
            if (mode != LoadMode.LoadGame && mode != LoadMode.NewGame)
            {
                return(new ToolBase[] { });
            }
            var surfaceBrushTool = ToolsModifierControl.GetTool <InGameSurfaceTool>();

            if (surfaceBrushTool != null)
            {
                return(new ToolBase[] { });
            }
            surfaceBrushTool = ToolsModifierControl.toolController.gameObject.AddComponent <InGameSurfaceTool>();
            return(new ToolBase[] { surfaceBrushTool });
        }
예제 #27
0
 private void deleteSignBtn_eventClick(UIComponent component, UIMouseEventParameter eventParam)
 {
     mSignDeletionTool.isDynamic = false;
     if (ToolsModifierControl.toolController.CurrentTool != mSignDeletionTool)
     {
         ToolsModifierControl.toolController.CurrentTool = mSignDeletionTool;
         ToolsModifierControl.SetTool <SignDeletionTool>();
     }
     else
     {
         ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
         ToolsModifierControl.SetTool <DefaultTool>();
     }
     EventBusManager.Instance().Publish("closeAll", null);
 }
예제 #28
0
 private void addDynamicSignBtn_eventClick(UIComponent component, UIMouseEventParameter eventParam)
 {
     mRoadSelectTool.isDynamic   = true;
     mRoadSelectTool.angleDialog = angleDialog;
     if (ToolsModifierControl.toolController.CurrentTool != mRoadSelectTool)
     {
         ToolsModifierControl.toolController.CurrentTool = mRoadSelectTool;
         ToolsModifierControl.SetTool <RoadSelectorTool>();
     }
     else
     {
         ToolsModifierControl.toolController.CurrentTool = ToolsModifierControl.GetTool <DefaultTool>();
         ToolsModifierControl.SetTool <DefaultTool>();
     }
     EventBusManager.Instance().Publish("closeAll", null);
 }
예제 #29
0
        // When one presses "ESC" they expect tools to be cleared. This fix returns that functionality.
        public override void OnAfterSimulationTick()
        {
            if ((Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Return)) && ResolveOverlapsTool.instance != null && ToolsModifierControl.GetTool <ResolveOverlapsTool>())
            {
                ToolsModifierControl.GetTool <ResolveOverlapsTool>().enabled = false;
                UIView.Find("E3A")?.Unfocus();
                UIView.Find("E3B")?.Unfocus();
                ToolsModifierControl.SetTool <DefaultTool>();
            }

            // The strangest bugfix known to man
            if (ToolsModifierControl.toolController.CurrentTool == null)
            {
                ToolsModifierControl.SetTool <DefaultTool>();
            }
        }
예제 #30
0
        public static bool ClearLaneConnections(uint laneId)
        {
            bool result = false;
            Lane lane   = GetLane(laneId);

            if (lane != null)
            {
                result = true;
                foreach (uint connectionId in GetLaneConnections(laneId))
                {
                    result &= lane.RemoveConnection(connectionId);
                }
                ToolsModifierControl.GetTool <RoadCustomizerTool>().SetNodeMarkers(lane.m_nodeId, true);
            }

            return(result);
        }