/// <summary> /// インポートデータの値のチェックを行います /// </summary> private static List <CheckImportSheetsResult> CheckImportSheetValue(DataSet _importSheets) { List <CheckImportSheetsResult> result = new List <CheckImportSheetsResult>(); DataTable sheet = UtilLib.ConvertTableFirstRowAsColumnName(_importSheets.Tables[SHEET_NAME]); foreach (DataRow row in sheet.Rows) { string dueDate = Convert.ToString(row[COLUMN_NAME_DUE_DATE]); string statusName = Convert.ToString(row[COLUMN_NAME_STATUS_NAME]); string subject = Convert.ToString(row[COLUMN_NAME_SUBJECT]); DateTime tempDateTime; if (!(DateTime.TryParse(dueDate, out tempDateTime))) { result.Add(CheckImportSheetsResult.COLUMN_DUE_DATE_INVALID_DATETIME); } if (!(StatusCode.HasName(statusName))) { result.Add(CheckImportSheetsResult.COLUMN_STATUS_NAME_INVALID_CODE_NAME); } if (string.IsNullOrEmpty(subject)) { result.Add(CheckImportSheetsResult.COLUMN_SUBJECT_BLANK); } } return(result); }
private void CheckPlayer() { if (!UtilLib.InRange(transform.position, PlayerData.player.Position, viewDistance)) { controller.playerInRange = false; return; } Vector3 dir = PlayerData.player.Position - transform.position; if (Vector3.Angle(direction, dir) < fov / 2) { RaycastHit hit; Physics.Raycast(transform.position, dir, out hit, viewDistance); if (hit.transform.name == "Player") { controller.playerInRange = true; } else { controller.playerInRange = false; } } else { controller.playerInRange = false; } }
private void LateUpdate() { if (UtilLib.InRange(PlayerData.player.Position, transform.position, 1.0f)) { PlayerData.player.TakeDMG(DMG); Destroy(gameObject); } }
private void ResetAuto() { string[] files = Directory.GetFiles(UtilLib.GetTempPath(), "fort.*"); foreach (string file in files) { try { File.Delete(file); } catch (Exception) { } } }
void Update() { if (playerInRange) { Attack(); } else { if (!UtilLib.InRange(currentPos, originalPos, eData.moveDistance)) { SwapDirection(); } transform.Translate(direction * eData.movementSpeed * Time.deltaTime); } }
public void SetDirection(Vector3 dir) { if (dir == Vector3.zero) { isMoving = false; return; } isMoving = true; direction = dir; float angle = UtilLib.GetAngleFromDirection(direction); if (angle < 0) { angle += 360; } currentAngle = angle + fov / 2; }
private void CalculateFoV() { Vector3[] vertices = new Vector3[rayCount + 2]; Vector2[] uv = new Vector2[vertices.Length]; int[] triangles = new int[rayCount * 3]; vertices[0] = Vector3.zero; int vertexIndex = 1; int triangleIndex = 0; for (int i = 0; i <= rayCount; i++) { Vector3 vertex; RaycastHit hit; Physics.Raycast(transform.position, UtilLib.GetVectorFromAngle(currentAngle), out hit, viewDistance, mask); if (hit.collider == null) { vertex = UtilLib.GetVectorFromAngle(currentAngle) * viewDistance; } else { vertex = hit.point - transform.position; } vertices[vertexIndex] = vertex; if (i > 0) { triangles[triangleIndex + 0] = 0; triangles[triangleIndex + 1] = vertexIndex - 1; triangles[triangleIndex + 2] = vertexIndex; triangleIndex += 3; } vertexIndex++; currentAngle -= angleStep; } mesh.vertices = vertices; mesh.uv = uv; mesh.triangles = triangles; }
/// <summary> /// インポートデータのフォーマットチェックを行います /// </summary> private static List <CheckImportSheetsResult> CheckImportSheetFormat(DataSet _importSheets) { List <CheckImportSheetsResult> result = new List <CheckImportSheetsResult>(); DataTable sheet = _importSheets.Tables[SHEET_NAME]; // シートにデータが存在すること if (sheet.Rows.Count == 0) { result.Add(CheckImportSheetsResult.SHEET_TODO_TASK_ROW_NOT_FOUND); } else { // インポートデータの列名リスト List <string> importColumnNames = new List <string>(); for (int colIndex = 0; colIndex < sheet.Columns.Count; colIndex++) { importColumnNames.Add(Convert.ToString(sheet.Rows[0][colIndex])); } // インポートデータに存在するべき列名リスト List <string> properColumnNamesOfTodoTask = new List <string>() { COLUMN_NAME_DUE_DATE, COLUMN_NAME_STATUS_NAME, COLUMN_NAME_SUBJECT }; // シートの列の不足をチェック if (UtilLib.IsFirstContainsAllOfSecond(importColumnNames, properColumnNamesOfTodoTask) == false) { result.Add(CheckImportSheetsResult.SHEET_TODO_TASK_COLUMN_INVALID); } } return(result); }
/// <summary> /// 復旧用データの検証を行います /// </summary> public static List <CheckRestoreSheetsResult> CheckRestoreSheets(DataSet _restoreSheets) { List <CheckRestoreSheetsResult> ret = new List <CheckRestoreSheetsResult>(); // 復旧用データに存在するべきシート名 List <string> properSheetNames = new List <string>() { "todo_task" }; // 復旧用データ todo_task に存在するべき列名 List <string> properColumnNamesOfTodoTask = new List <string>() { "id", "created_at", "updated_at", "subject", "due_date", "status_code" }; // 復旧用データに存在するシート名をチェック { List <string> restoreSheetNames = new List <string>(); foreach (DataTable restoreSheet in _restoreSheets.Tables) { restoreSheetNames.Add(restoreSheet.TableName); } if (UtilLib.IsMatched(properSheetNames, restoreSheetNames) == false) { ret.Add(CheckRestoreSheetsResult.SHEET_NAMES_INVALID); } } if (ret.Count != 0) { return(ret); // これまでの検証でNG個所があれば、ここで処理を終了する } // 復旧用データ todo_task のフォーマットチェック { DataTable sheet = _restoreSheets.Tables["todo_task"]; // シートにデータが存在すること if (sheet.Rows.Count == 0) { ret.Add(CheckRestoreSheetsResult.SHEET_TODO_TASK_ROW_NOT_FOUND); } else { List <string> restoreColumnNames = new List <string>(); for (int colIndex = 0; colIndex < sheet.Columns.Count; colIndex++) { restoreColumnNames.Add(Convert.ToString(sheet.Rows[0][colIndex])); } // シートの列の過不足をチェック if (UtilLib.IsMatched(properColumnNamesOfTodoTask, restoreColumnNames) == false) { ret.Add(CheckRestoreSheetsResult.SHEET_TODO_TASK_COLUMN_INVALID); } } } return(ret); }
private void PlotResults(AutoResult oResult) { graphControl1.ZedControl.GraphPane.CurveList.Clear(); var oRot = new ColorSymbolRotator(); CurrentPlot = new List <PlotInfo>(); foreach (AutoResultRun run in oResult.AllRuns) { var series = run.DataSeries; if (series.Count < 2) { continue; } if (series[0].Length < 10) { continue; } for (int i = 0; i < series.Count - 1; i++) { var sLabel = GetNthName(i); var oLineColor = oRot.NextColor; var info = new PlotInfo { Label = sLabel, MainCurve = new PointPairList(series[0], series[i + 1]) }; if (oResult.Positions.Count == 0) { AddNthCurveToGraph(i, series, sLabel, oLineColor); } else { var thickSegments = FindNthThickSegments(i, oResult, series); AddNthSegmentedCurveToGraph(i, thickSegments, series, sLabel, oLineColor); info.ThickSegments = thickSegments; } CurrentPlot.Add(info); } foreach (IntTripple tripple in oResult.Labels) { for (int i = 0; i < series.Count - 1; i++) { int currentPos = UtilLib.FindClosestStablePoint(tripple.Key, oResult.Positions); double x = series[0][currentPos]; double y = series[1 + i][currentPos]; var text = new TextObj(UtilLib.ConvertIntTypeToShortString(tripple.Value2), x, y); text.Tag = new TagData { Series = 1 + i, Tripple = tripple, Label = GetNthName(i) }; graphControl1.ZedControl.GraphPane.GraphObjList.Add(text); } } } graphControl1.ZedControl.GraphPane.XAxis.Scale.MaxGrace = 0f; graphControl1.ZedControl.GraphPane.XAxis.Scale.MinGrace = 0f; graphControl1.ZedControl.GraphPane.YAxis.Scale.MaxGrace = 0f; graphControl1.ZedControl.GraphPane.YAxis.Scale.MinGrace = 0f; SetParameterAxisTitle(); graphControl1.ZedControl.AxisChange(); tabControl1.Refresh(); }
/// <summary> /// タスクテーブルのインポートを行います([内容]の同じレコードが既に存在する場合、追加も上書きもしません) /// </summary> public void ImportTodoTask(DataSet _importTables) { DataTable importTable = UtilLib.ConvertTableFirstRowAsColumnName(_importTables.Tables["ToDoListMetro"]); this.ImportTodoTask(importTable); }
/// <summary> /// 各テーブルのリストアを行います(現在のデータは復旧用データに全て置き換わります) /// </summary> public void RestoreTables(DataSet _restoreTables) { DataTable todoTaskRestoreTable = UtilLib.ConvertTableFirstRowAsColumnName(_restoreTables.Tables["todo_task"]); this.RestoreTableTodoTask(todoTaskRestoreTable); }