Exemple #1
0
        /// <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);
        }
Exemple #2
0
    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;
        }
    }
Exemple #3
0
 private void LateUpdate()
 {
     if (UtilLib.InRange(PlayerData.player.Position, transform.position, 1.0f))
     {
         PlayerData.player.TakeDMG(DMG);
         Destroy(gameObject);
     }
 }
Exemple #4
0
 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);
     }
 }
Exemple #6
0
    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;
    }
Exemple #7
0
    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;
    }
Exemple #8
0
        /// <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);
        }
Exemple #10
0
        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();
        }
Exemple #11
0
        /// <summary>
        /// タスクテーブルのインポートを行います([内容]の同じレコードが既に存在する場合、追加も上書きもしません)
        /// </summary>
        public void ImportTodoTask(DataSet _importTables)
        {
            DataTable importTable = UtilLib.ConvertTableFirstRowAsColumnName(_importTables.Tables["ToDoListMetro"]);

            this.ImportTodoTask(importTable);
        }
Exemple #12
0
        /// <summary>
        /// 各テーブルのリストアを行います(現在のデータは復旧用データに全て置き換わります)
        /// </summary>
        public void RestoreTables(DataSet _restoreTables)
        {
            DataTable todoTaskRestoreTable = UtilLib.ConvertTableFirstRowAsColumnName(_restoreTables.Tables["todo_task"]);

            this.RestoreTableTodoTask(todoTaskRestoreTable);
        }