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