Esempio n. 1
0
    public void ReDrawDisRailLine(List <List <Railway.Point> > mRailPointList)
    {
        RemoveAllDisLine();
        for (int i = 0; i < mRailPointList.Count; i++)
        {
            GameObject disLine = GameObject.Instantiate(mDisLinePrefab) as GameObject;
            disLine.transform.parent        = mLinesContent.transform;
            disLine.transform.localPosition = new Vector3(0, 0, 0);
            disLine.transform.localScale    = new Vector3(1, 1, 1);

            UIDisconnectionLine uiDisLine = disLine.GetComponent <UIDisconnectionLine>();
            uiDisLine.Init(mRailPointList[i], i);
            uiDisLine.CreateLine();
            uiDisLine.ResetLinePos(mMapCtrl);

            uiDisLine.mSelectedLine += OnSeletedLine;
            mDisRailLineList.Add(uiDisLine);
        }
    }
Esempio n. 2
0
    void BtnStationTitleRightOnClick()
    {
        if (mSelectedStation == null)
        {
            return;
        }

        if (isConnectLine)
        {
            UIRailLine Line = mRailLineList.Find(
                delegate(UIRailLine li)
            {
                return(li.mRoute.id == mSelectedLineId);
            });

            if (Line == null || Line.mRoute.pointCount == 0)
            {
                return;
            }

            int index = Line.FindStationIndex(mSelectedStation.mRailPointData.id);
            do
            {
                index++;
                if (index < 0 || index >= Line.mRoute.pointCount)
                {
                    break;
                }
            }while(Line.mRoute.GetPointByIndex(index).pointType == Railway.Point.EType.Joint);

            if (index < 0 || index >= Line.mRoute.pointCount)
            {
                index = 0;
            }

            if (Line.mRoute.pointCount > 0)
            {
                OnSeletedLine(true, Line.mRoute.id, Line.mRoute.GetPointByIndex(index).id);
            }
        }
        else
        {
            UIDisconnectionLine Line = mDisRailLineList.Find(
                delegate(UIDisconnectionLine li)
            {
                return(li.mIndex == mSelectedLineId);
            });

            if (Line == null || Line.mPointList.Count == 0)
            {
                return;
            }

            int index = Line.FindStationIndex(mSelectedStation.mRailPointData.id);
            do
            {
                index++;
                if (index < 0 || index >= Line.mPointList.Count)
                {
                    break;
                }
            }while(Line.mPointList[index].pointType == Railway.Point.EType.Joint);

            if (index < 0 || index >= Line.mPointList.Count)
            {
                index = 0;
            }

            if (Line.mPointList.Count > 0)
            {
                OnSeletedLine(false, Line.mIndex, Line.mPointList[index].id);
            }
        }
    }
Esempio n. 3
0
    void OnSeletedLine(bool isConnect, int routeID, int stationID)
    {
        isConnectLine = isConnect;

        ChangeUILineInfo(isConnect);

        if (mSelectedLineId != -1)
        {
            UIRailLine lineOld = mRailLineList.Find(
                delegate(UIRailLine li)
            {
                return(li.mRoute.id == mSelectedLineId);
            });
            if (lineOld != null)
            {
                lineOld.SetSelected(false);
            }

            UIDisconnectionLine disLineOld = mDisRailLineList.Find(
                delegate(UIDisconnectionLine li)
            {
                return(li.mIndex == mSelectedLineId);
            });
            if (disLineOld != null)
            {
                disLineOld.SetSelected(false);
            }
        }


        if (isConnect)
        {
            UIRailLine line = mRailLineList.Find(
                delegate(UIRailLine li)
            {
                return(li.mRoute.id == routeID);
            });
            if (line == null)
            {
                ClearLineInfo();
                return;
            }

            mSelectedLineIndex = mRailLineList.FindIndex(
                delegate(UIRailLine li)
            {
                return(li == line);
            });


            line.SetSelected(true);
            mSelectedLineId = routeID;
            SetLineInfo(line.mRoute);

            if (mSelectedStation != null)
            {
                mSelectedStation.SetSelected(false);
            }

            UIRailStation station = line.FindStation(stationID);
            if (station != null)
            {
                station.SetSelected(true);
                mSelectedStation = station;
            }
            SetSatationInfo(station.mRailPointData);
            EnableBtn(mBtnStop, true);
        }

        else
        {
            int index = routeID;

            UIDisconnectionLine disLine = mDisRailLineList.Find(
                delegate(UIDisconnectionLine li)
            {
                return(li.mIndex == index);
            });

            if (disLine == null)
            {
                ClearLineInfo();
                return;
            }

            disLine.SetSelected(true);
            mSelectedLineId = index;

            if (mSelectedStation != null)
            {
                mSelectedStation.SetSelected(false);
            }

            UIRailStation station = disLine.FindStation(stationID);
            if (station != null)
            {
                station.SetSelected(true);
                mSelectedStation = station;
            }
            SetSatationInfo(station.mRailPointData);
            bool ok = PERailwayCtrl.CheckRoute(station.mRailPointData);
            EnableBtn(mBtnStop, ok);
        }
    }