예제 #1
0
    private void DrawDisplayEditor(int _ID)
    {
        string [] stationDisplayModeString =
        {
            StationDisplayMode.AllStaion.ToString(),
            StationDisplayMode.BigStation.ToString(),
            StationDisplayMode.SmartDisplay.ToString(),
        };

        GUILayout.BeginHorizontal();
        m_StationDisplayMode = GUILayout.SelectionGrid(m_StationDisplayMode,
                                                       stationDisplayModeString, stationDisplayModeString.Length);
        pUpdateStaionPtr.m_StationDisplayMode = (StationDisplayMode)m_StationDisplayMode;
        GUILayout.EndHorizontal();


        string [] selectionString =
        {
            DisplayEditorMode.NearStation.ToString(),
            DisplayEditorMode.SpecifiedTrain.ToString(),
            DisplayEditorMode.AllTrains.ToString(),
            DisplayEditorMode.NoTrain.ToString(),
        };
        string keyword = "";

        GUILayout.BeginHorizontal();
        m_SelectMode = GUILayout.SelectionGrid(m_SelectMode,
                                               selectionString, selectionString.Length);
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        switch ((DisplayEditorMode)m_SelectMode)
        {
        case DisplayEditorMode.NearStation:
            // specified station
            GUILayout.Label("Station");

            if (0 == m_SpecifiedStation.Length)
            {
                StationData[] stationData = new StationData[pLevelGeneratorPtr.m_Stations.Count];
                pLevelGeneratorPtr.m_Stations.Values.CopyTo(stationData, 0);
                if (stationData.Length > 0)
                {
                    m_SpecifiedStation = stationData[0].DisplayName;
                }
            }
            keyword = m_SpecifiedStation = GUILayout.TextField(m_SpecifiedStation);
            break;

        case DisplayEditorMode.SpecifiedTrain:

            if (0 == m_SpecifiedTrain.Length)
            {
                int[] trainKeys = new int[pLevelGeneratorPtr.m_TrainData.Count];
                pLevelGeneratorPtr.m_TrainData.Keys.CopyTo(trainKeys, 0);
                if (trainKeys.Length > 0)
                {
                    m_SpecifiedTrain = trainKeys[0].ToString();
                }
            }
            GUILayout.Label("Train");
            keyword = m_SpecifiedTrain = GUILayout.TextField(m_SpecifiedTrain);
            break;

        case DisplayEditorMode.AllTrains:
            GUILayout.Label("Be careful!!!");
            break;

        case DisplayEditorMode.NoTrain:
            GUILayout.Label("No Train.");
            break;
        }
        GUILayout.EndHorizontal();

        // GUILayout.Label( "Description:" ) ;
        // m_StatusText = GUILayout.TextArea( m_StatusText ) ;


        string [] modeString =
        {
            UpdateTrainTimeMode.SystemTime.ToString(),
            UpdateTrainTimeMode.SpecifiedTime.ToString(),
        };
        int updateTrainTimeMode = (int)pUpdateTrainPtr.m_TimeMode;

        GUILayout.BeginHorizontal();

        updateTrainTimeMode = GUILayout.SelectionGrid(updateTrainTimeMode,
                                                      modeString, modeString.Length);

        pUpdateTrainPtr.SetUpdateTrainTimeMode((UpdateTrainTimeMode)updateTrainTimeMode);

        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();


        GUILayout.Label(modeString[updateTrainTimeMode]);

        GUILayout.Label(pUpdateTrainPtr.m_SpecifiedHour.ToString() + ":" + pUpdateTrainPtr.m_SpecifiedMinute.ToString());
        GUILayout.EndHorizontal();

        switch (pUpdateTrainPtr.m_TimeMode)
        {
        case UpdateTrainTimeMode.SystemTime:
            break;

        case UpdateTrainTimeMode.SpecifiedTime:
            int specifiedTimeValue = pUpdateTrainPtr.m_SpecifiedHour * 60 + pUpdateTrainPtr.m_SpecifiedMinute;
            int maxTimeADay        = 24 * 60;
            specifiedTimeValue = (int)GUILayout.HorizontalSlider((float)specifiedTimeValue,
                                                                 (float)0, (float)maxTimeADay);
            pUpdateTrainPtr.SetSpecifiedTime(specifiedTimeValue);

            break;
        }

        GUILayout.BeginHorizontal();
        if (true == GUILayout.Button("Close"))
        {
            m_DisplayEditor = false;
        }
        if (true == GUILayout.Button("Apply"))
        {
            // RecreatScene
            pLevelGeneratorPtr.ReCreateTrainDisplayByData(
                (DisplayEditorMode)m_SelectMode,
                keyword);
        }
        GUILayout.EndHorizontal();

        GUI.DragWindow();
    }
예제 #2
0
    private void DrawEditor_TrainsData()
    {
        GUILayout.Label("Insert");
        GUILayout.BeginHorizontal();

        string inputTrainLabel = "";

        DrawTrainData(ref inputTrainLabel);
        if (true == GUILayout.Button("Insert") &&
            0 != inputTrainLabel.Length)
        {
            TrainData newTD = new TrainData();
            newTD.ID          = m_LevelGeneratorStaticPtr.GetANewTrainID();
            newTD.DisplayName = inputTrainLabel;

            Debug.Log("newSD.ID" + newTD.ID);
            m_LevelGeneratorStaticPtr.m_TrainData.Add(newTD.ID, newTD);
            m_LevelGeneratorStaticPtr.ReCreateTrainDisplayByData();
        }
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        GUILayout.Label("Train Table");
        GUILayout.Label("Page Start Index:" + m_StationStartIndex);
        if (true == GUILayout.Button("Previous Page"))
        {
            m_TrainStartIndex -= m_TrainNumInPage;
            if (m_TrainStartIndex < 0)
            {
                m_TrainStartIndex = 0;
            }
        }
        if (true == GUILayout.Button("Next Page"))
        {
            m_TrainStartIndex += m_TrainNumInPage;
            if (m_TrainStartIndex >= m_LevelGeneratorStaticPtr.m_TrainData.Count)
            {
                m_TrainStartIndex -= m_TrainNumInPage;
            }
        }
        GUILayout.EndHorizontal();

        int i = 0;

        foreach (TrainData td in m_LevelGeneratorStaticPtr.m_TrainData.Values)
        {
            if (i < m_TrainStartIndex || i >= m_TrainStartIndex + m_TrainNumInPage)
            {
                ++i;
                continue;
            }

            GUILayout.BeginHorizontal();

            string PreDisplayName = td.DisplayName;

            DrawTrainData(ref PreDisplayName);

            td.DisplayName = PreDisplayName;

            if (true == GUILayout.Button("MoveUp"))
            {
                SwapTrainData(i, i - 1);
                return;                 // end this round
            }
            if (true == GUILayout.Button("MoveDown"))
            {
                SwapTrainData(i, i + 1);
                return;                 // end this round
            }
            if (true == GUILayout.Button("Remove"))
            {
                m_LevelGeneratorStaticPtr.RemoveTrain(td.ID);
                return;                 // end this round
            }
            if (true == GUILayout.Button("SetRoutes"))
            {
                m_SetRouteTrainID     = td.ID;
                m_DisplayRouteOfTrain = true;
                m_DisplayTrainData    = false;
                return;                 // end this round
            }
            GUILayout.EndHorizontal();
            ++i;
        }
    }